For this project I was researching the relationship between ambient air temperature and MODIS land surface temperature measurements across Oregon. Public health research around heat stress and negative health outcomes currently uses point source measurements of weather to estimate exposures. The problem with this is that it is difficult to interpolate measurements between monitoring stations and these estimates are not accurate enough to realistically depend on. Using MODIS imagery to estimate exposure would allow researchers to look retrospectively and prospectively at estimates of exposure across nearly the entire planet over a very large temporal resolution.
For this project I used 1km resolution MODIS LST imagery for every day in 2014. I used only one swath of MODIS data, which covered approximately 85% of Oregon. This was compared with more accurate temperature measurements from NOAA monitoring stations. I used 46 stations across Oregon for the comparison.
To explore this relationship I used a Python script to extract the raster values across the entire time frame at the points of the 46 NOAA stations. I then used 2 R scripts to combine the data sets, change them into long format, and do the analysis. I used a linear mixed effects model to account for the random effect of location and also to introduce a temporal relationship to the data. Using the LME model I started with NLCD value, month of measurement, time of MODIS measurement, and elevation as covariates. I then removed covariates that were not significant to refine the model and minimize the standardized residuals.
NLCD and time of MODIS measurement were not found to be significant, and were therefore removed from the model. The results from the final model are shown below:
Parameter | Estimate | 95% CI | P-value |
(Intercept) | 6.240 | (3.007 – 9.472) | 0.0002 |
MODIS Value | 0.313 | (0.302 – 0.324) | 0.0000 |
Elevation | -0.004 | (-0.005 – -0.003) | 0.0000 |
NLCD (evgrForst) | 2.272 | (-1.288 – 5.832) | 0.2038 |
NLCD (lowIntDev) | -2.446 | (-7.133 – 2.240) | 0.2968 |
NLCD (scrubBrsh) | 0.961 | (-2.661 – 4.583) | 0.5939 |
Month (Feb) | -1.341 | (-1.944 – -0.738) | 0.0000 |
Month (Mar) | -0.631 | (-1.207 – -0.053) | 0.0322 |
Month (Apr) | 0.301 | (-0.255 – 0.858) | 0.2889 |
Month (May) | 2.354 | (1.795 – 2.912) | 0.0000 |
Month (Jun) | 3.261 | (2.680 – 3.840) | 0.0000 |
Month (Jul) | 7.894 | (7.298 – 8.488) | 0.0000 |
Month (Aug) | 6.790 | (6.202 – 7.378) | 0.0000 |
Month (Sept) | 6.077 | (5.501 – 6.654) | 0.0000 |
Month (Oct) | 4.085 | (3.523 – 4.645) | 0.0000 |
Month (Nov) | -2.161 | (-2.724 – -1.597) | 0.0000 |
Month (Dec) | -1.970 | (-2.554 – -1.385) | 0.0000 |
Finally, to test how effective this model is I plotted the average residual value for each location on a map to attempt to identify any spatial pattern. There was none obvious; however there are still some missing factors in the model.
These results were interesting and I think that this type of model shows promise for public health research. With some refinement I believe that a good approximation could be made for ambient air temp using LST imagery.
This project was a great opportunity to combine the skills I have gained in R, Python, and using spatial data. Scripting the entire process made standardization and reproducibility easier, and will allow me to continue working on this model in the future (after a good break, that is).