Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have 15 raster layers. Each one shows accumulated precipitation (rainfalls) for the month of April for the same US state during a given year. So, I cover the period from 1997 to 2012. I would like to have an idea of the variability of precipitation during the last 15 years.

I would like for example to calculate the standard deviation at each pixel across the 15 layers. I am guessing I can do it through the raster calculator using sums, subtractions and divisions. But the final formula would pretty long. Is there a more efficient way to achieve my goal? (So far, I am only a QGis user and I don't know Python...but I can start learning if necessary).

share|improve this question
up vote 5 down vote accepted

You could use the GRASS module r.series with method=stddev. For example, if you have rasters named apr_precip_97, apr_precip_98, and so on then in a GRASS terminal you would run:

r.series in=`g.mlist rast pat=apr_precip* sep=,` out=apr_precip_stddev method=stddev
share|improve this answer
Thanks a lot, I didn't know that module. I used it (through QGis "GRASS tools") and I was a little disappointed. It looks like the module changes the scale of the layer, aggregating the data. The output layer looses a lot of columns and rows. Any idea about how to fix this issue? – Bap Nov 15 '12 at 22:59
Sounds like your GRASS region settings need to set the correct cell size. – underdark Nov 16 '12 at 9:21

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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