About

Below are some plots exploring the differences between several different temperature datasets for a site on Mount Washington, located in the Snake Range in eastern Nevada. In dendroclimatology, its important to know the relationships between growth response and certain environmental variables (mainly temperature and precipitation in our case). We have annually responved tree-rings at this site going back over 4000 years. If we can get a better sense of what the temperatures were like (or even what the decadal/centennial trends were) for even a fraction of this time, we’ll be able learn more about the incredibly long lived species Pinus longaeva.

Here, I’m exploring the differences between modeled temperatures downloaded from PRISM, and actual recorded temperatures from a network of sensors placed near treeline on Mount Washington. This is for both exploratory (to get to know the data better, and to try my hand at comparing these data) and quality control purposes. This is mostly eye-candy (as Andy calls it), as I don’t yet have any analytical measures of quantifying the differences in the data. The goal is to develop/learn some good ways of doing this.

Calculation Methods

The sensor data was aggregated from hourly values to daily values, yielding daily minimum, maximum, and average temperatures. These values are compared against the PRISM model’s daily minimum, maximum, and average temperatures.

The first plot in each section (Tmin, Tmax, and Tmean) are the raw values plotted on the same axis.

The second plot in each section shows the raw thermochron temperatures, but with the PRISM temperatures scaled to fit the thermochron values. The scaling was performed by removing the mean difference between each 90-day lowess smoother. Below I’ll explore other methods of fitting the curves together, but this first method is just the difference in means of the smoothers.

The third plot is the same as the second, just over the growing season at this site.

The fourth plot in each section displays the daily difference in raw temperatures, and then fits another 90-day smoothing function to the raw differences.

Smoothed Differences Plot

At the end, I’ve added another plot highlighting and comparing the differences between the PRISM data and the thermochron data for all three variables. This method is slightly different than calculating the raw differences and then smoothing them, as in the fourth plot is each section, outlined above. This method take the differenece between the original 90-day smoothers, and plots those. The actual difference here is probably mathematically insignificant, althought I have not tested that speculation.

Any and all questions/suggestions/ideas/critical observations are welcomed.

## Loading required package: zoo
## Warning: package 'zoo' was built under R version 3.1.3
## 
## Attaching package: 'zoo'
## 
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## 
## Loading required package: hydroTSM
## Warning: package 'hydroTSM' was built under R version 3.1.3
## Loading required package: xts
## Warning: package 'xts' was built under R version 3.1.3

Minimum temperature

Raw Tmin

Scaled Tmin

Growing Season Scaled Tmin

Raw Tmin difference

This plot shows the difference (resolved daily) between the model’s output and the observed values

Maximum Temperature

Raw Tmax

Scaled Tmax

Growing Season Scaled Tmax

Raw Tmax difference

This plot shows the difference (resolved daily) between the model’s output and the observed values

Average Temperature

Raw Tmean

Scaled Tmean

Growing Season Scaled Tmean

Raw Tmean difference

This plot shows the difference (resolved daily) between the model’s output and the observed values

Smoothed Differences

This plot shows the smoothed (using 90-day lowess splines) differences of Tmin, Tmax, and Tmean, plotted on the same axis for easy comparison.

This last plot I find the most interesting. Its some quantifiable way of showing absolute differences between the modeled temperatures, and the actual temperatures experienced on the ground (well, the average of 50 specific points, to be more precise). In a perfect world one might (should?) expect these curves to all overlap exactly, and yet this is not the case. This harkens back to the idea that models are inherently flawed. The tricky part is trying to decide when to trust a model. From the above plots, I’m quite suprised by the accuracy that PRISM has, when compared to 50 little sensonrs that sat on the landscape for a year. PRISM basically interpolates between weather stations, and uses elevation and topography to scale the interpolations. Some of the error seen in the above plot results from the elevation differences between the thermochrons and the PRISM model. the model’s resolution is a 4km cell, and thus will not (as I’ve quickly learned) have the same elevation as the average of our thermochron points. So, a next step might be to apply some lapse rates here, to correct for the elevation difference between the PRISM is spitting out and what the thermochrons are telling us is happening at the exact locations. After a lapse rate correction, I’d presume the remaining differences will show how the model and observations vary in relation to eachother throught the calendar year.

More smoothing

Above, when I scaled the two different temperature series, I did this by finding the average of the lowess smoother for each curve, and then subtracting this single value from the PRISM data, to scale it ‘down’ to the thermochrons level. Here, rather than subtracting the average, I’m going to calculate the daily difference between the smoothers, and ues this vector to scale each day individually. Of course, this is totally dependent on the stiffness of the smoothers. Imagine if I used a smoother of 1 day (actually that would not be a smoother at all, but rather the raw data itself); subtracting the daily difference between the data sets would render 0 for every day. By using the difference between stiff smoothing curves that capture the main trends in both datasets, I’ll be able to compare the higher frequency variation in the data. This is useful, because it may allow us to see when, or if, there is greater or less difference between the model’s output and our measured values.

Below, I’m using 3 different stiffnesses in the splines with 30, 60, and 90 days lengths.