Following methods are available:
r.series input=map1,...,mapN \ output=map.mean,map.stddev \ method=average,stddev
r.series input=map1,...,mapN \ output=map.p10,map.p50,map.p90 \ method=quantile,quantile,quantile \ quantile=0.1,0.5,0.9
Without -n flag, the complete list of inputs for each cell (including NULLs) is passed to the aggregate function. Individual aggregates can handle data as they choose. Mostly, they just compute the aggregate over the non-NULL values, producing a NULL result only if all inputs are NULL.
/etc/security/limits.conf # <domain> <type> <item> <value> your_username hard nofile 4096
For each map a weighting factor can be specified using the weights option. Using weights can be meaningful when computing the sum or average of maps with different temporal extent. The default weight is 1.0. The number of weights must be identical to the number of input maps and must have the same order. Weights can also be specified in the input file.
Use the -z flag to analyze large amounts of raster maps without hitting open files limit and the file option to avoid hitting the size limit of command line arguments. Note that the computation using the file option is slower than with the input option. For every single row in the output map(s) all input maps are opened and closed. The amount of RAM will rise linearly with the number of specified input maps. The input and file options are mutually exclusive: the former is a comma separated list of raster map names and the latter is a text file with a new line separated list of raster map names and optional weights. As separator between the map name and the weight the character "|" must be used.
r.series input="`g.list pattern='insitu_data.*' sep=,`" \ output=insitu_data.stddev method=stddev
Note the g.list script also supports regular expressions for selecting map names.
Using r.series with NULL raster maps (in order to consider a
"complete" time series):
r.mapcalc "dummy = null()" r.series in=map2001,map2002,dummy,dummy,map2005,map2006,dummy,map2008 \ out=res_slope,res_offset,res_coeff meth=slope,offset,detcoeff
Example for multiple aggregates to be computed in one run (3 resulting aggregates from two input maps):
r.series in=one,two out=result_avg,res_slope,result_count meth=sum,slope,count
Example to use the file option of r.series:
cat > input.txt << EOF map1 map2 map3 EOF r.series file=input.txt out=result_sum meth=sum
Example to use the file option of r.series including weights. The weight 0.75 should be assigned to map2. As the other maps do not have weights we can leave it out:
cat > input.txt << EOF map1 map2|0.75 map3 EOF r.series file=input.txt out=result_sum meth=sum
Example for counting the number of days above a certain temperature using daily average maps ('???' as DOY wildcard):
# Approach for shell based systems r.series input=`g.list rast pattern="temp_2003_???_avg" sep=,` \ output=temp_2003_days_over_25deg range=25.0,100.0 method=count # Approach in two steps (e.g., for Windows systems) g.list rast pattern="temp_2003_???_avg" output=mapnames.txt r.series file=mapnames.txt \ output=temp_2003_days_over_25deg range=25.0,100.0 method=count
Hints for large raster data processing
Last changed: $Date$