[GRASS-user] sum one raster map conditional on another raster map
Martin Wegmann
martin.wegmann at uni-wuerzburg.de
Thu Mar 18 09:07:02 EDT 2010
Hello Stephen,
On Mittwoch, 17. März 2010 23:06:55 stephen sefick wrote:
> I would like to sum all of the positive values of one raster map
> (NDVI) based on a raster containing many watersheds that have values
> 1-22. Is there a way to do this in GRASS? Or a way to export this
[..]
Glynn already pointed you to r.statistics hence you only need to combine it
with a few if-else statement in r.mapcalc:
r.mapcalc "watershed_new = if(watershed >=1 && watershed <=22,1,0)"
# if watersheds values are larger-equal 1 AND smaller-equal 22, assign value 1
otherwise value 0
r.mapcalc "ndvi_new = if(ndvi_raster >=0,ndvi_raster,null())"
#all values above 0 keep their values, below 0 are converted to null()
(nothing)
r.mapcalc "ndvi_new_clip = if(watershed_new == 1,ndvi_new,null())"
# if watershed_new is equal 1 (see above), then assign the values of ndvi_new,
otherwise nothing
now you can perform the r.statistics method=sum analysis on NDVI values above
0 only and for areas where watershed is above 1 and below 22.
hope this helps and I understood your question right, Martin
P.S.: in case you want to do the analysis on single watersheds (1-22) then you
would need another statement like:
for i in 1 2 3 4 5 ... 22 ; do
r.mapcalc "new = if(watershed == $i,1,null())"
r.statistics ....
; done
--
Dr. Martin Wegmann
University of Wuerzburg
Institute of Geography
Department of Remote Sensing
Remote Sensing and Ecosystem Research
Am Hubland
97074 Wuerzburg, Germany
@
German Aerospace Center (DLR)
German Remote Sensing Data Center (DFD)
Phone: +49-(0)931-31-83446
Fax: +49-(0)931-888-4961
Email: martin.wegmann at uni-wuerzburg.de
url: http://www.remote-sensing.uni-wuerzburg.de
url: http://www.dlr.de/caf
url: http://www.global-change-ecology.de
More information about the grass-user
mailing list