Simulate past climate based on the insolation, as described in Laepple, Thomas, and Gerrit Lohmann. 2009. “Seasonal Cycle as Template for Climate Variability on Astronomical Timescales.” Paleoceanography 24 (4): PA4201. doi:10.1029/2008PA001674.
library(PaleoSpec) library(ecustools) library(pfields)
Set latitude and longitude of the simulated record
lat1 <- 40 #latitude of the simulated core lon1 <- 200 #longitude of the simulated core
Simulate stochastic climate variability
climate.stochastic <- SimPowerlaw(1, 10000)
Simulate the seasonality from orbital forcing
#First extract the modern daily temperature from NCEP reanalysis climate.modern <- SelSpace3D(sat.ncep.clim, lat1 = lat1, lon1 = lon1) - 273.15 #estimate the modern relationship between insolation and T transfer <- EstimateTransferfunctionInsolation(climate = climate.modern, latitude = lat1, bPlot = TRUE, b3plot = TRUE)
#Sample the climate in 25yr bins timevector <- seq(from = 1000, to = 9000, by = 25) climate.stochastic.25 <- SubsampleTimeseriesBlock(climate.stochastic, timevector) #Change to a timex12 matrix climate.stochastic.25.monthly <- rep(climate.stochastic.25, 12) dim(climate.stochastic.25.monthly) <- c(length(timevector), 12)
# and add the simulated orbital variability; as this is slow, it can be added to # the 25yr binned data without any loss for (i in 1:length(timevector)) { climate.stochastic.25.monthly[i, ] <- climate.stochastic.25.monthly[i, ] + MonthlyFromDaily( SimulateYearFromInsolation(kyear = timevector[i]/1000, transfer = transfer, latitude = lat1, bPolynomial = TRUE) ) }
plot(timevector, climate.stochastic.25.monthly[, 1], type = "n", ylim = range(climate.stochastic.25.monthly), xlab = "yr BP", ylab = "Temperature (degC)") for (i in (1:4) * 3) lines(timevector, climate.stochastic.25.monthly[, i], col = i) lines(timevector, rowMeans(climate.stochastic.25.monthly), lwd = 3, col = "red") legend("topleft", col = c(1:4) * 3, lwd = 2, paste("month of the year", (1:4) * 3), bty = "n") legend("topright", col = "red", lwd = 3, "annual mean", bty = "n")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.