I have monthly (and sometimes daily) data on temperatures from about 30 Swedish weather stations in the mid-19th century that I want interpolate to the whole country. I'm using ArcGIS and Stata.

For later years, I have data on additional weather stations (around 100), so I've thought of using the later data as to calibrate a model using the old stations to predict weather at the new stations. Since I know the actual weather at the new stations, I could calibrate to model to achieve the best possible fit. But I'm not sure what a good method for going about achieving a suitable fit (don't want to risk overfitting for example).


You can likely get a reasonable interpolation using a linear regression (assuming your 30 weather stations are a representative sample) using elevation, latitude and distance from the coast as independent variables with the day as a factor. I've done this using ArcGIS and R previously.

Daily 9am and 3pm temperatures over 10 days in 2003

Daily 9am and 3pm temperatures over 10 days in 2003 from weather stations in South Eastern Australia

Basic steps:

  • Get a digital elevation model of your area.
  • Get vector or raster coastline
  • Generate a latitude raster (example)
  • Generate a distance from coast raster (perhaps with Euclidian Distance)
  • For the variables that you don't have data for for each station, use the Sample or Extract Values to Points tool to query the relevant raster. I only needed to do this for distance from coast as my weather station data contained lon, lat and elevation.
  • Plug elevation, lat and distance as independent variables, temperature as dependent variable and day as a factor into a linear regression model in r/spss/stata/etc...
  • If you get a decent fit, use the model coefficients to create a raster calculator expression (temp = α + βelev*elev + βlat*lat + βdist*dist) to estimate temperature from elevation, lat and distance. You may need to script this as you'll get different coefficients for each day.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.