I am currently performing a bioclimatic analysis using monthly averaged climate grids. One particular calculation, Growing Degree Days, relies on daily maximum/minimum temperature and a threshold temperature that is surpassed (0, 5, 10, etc. Celsius). For instance, Winkler's GDD calculation is as follows
Σ [April 1, October 31] : [ ((Max Temp + Min Temp)/2) - 10 ]
My approach to date has been to perform this calculation using the monthly values and then multiply the sum by the number of days in the month for each month. This leads to a rough, step-funtion-like estimate and is not ideal.
In a paper by Coops et al. (2001, International Journal of Geographical Information Science, 15:4, 345-361, DOI: 10.1080/13658810010011401), the authors describe using Singular Value Decomposition to solve the following equation able to provide daily value estimations from monthly climate values:
Where the result is 12 equations per variable (Max and Min Monthly Temperature) with 5 unknowns each (p and q) and X pertains to the Julian Day. The paper goes on to claim that they were able to solve the unknowns and apply this equation to their climate rasters, performing calculations similar to the degree-day calculation listed above. The end result would resemble this curve:
I would like to know how I could possibly perform this type of analysis spatially, solving for p and q for individual climate variables for sets of raster images representing monthly average values (Max, Min, Mean Temp, etc.) and translate these values either to individual grids representing daily values or outputting to a grid of summed growing degree days above a base temperature.
If possible, I am curious to know if there are any Open Source tools which may already do this (Python, R, PyQGIS etc.) or a way of setting this up through the QGIS Model Builder for performing these calculations on multiple sets of climate data.
I realize this might be better suited to the Math or Earth Science SE's, but given that the solution needs to be performed using raster images, people here likely have much more experience with this type of problem.
Followed up with the authors and found out that the original code to perform this type of analysis is long gone. They likely approached this using NetCDF files and IDL/Matlab. PyClimate (Link) seems to have capabilities for using SVD to solve curves for coupled data sets, but the documentation is not very clear, and the tools seems to be abandoned (last update in 2004).