r.watershed mods

Charles Ehlschlaeger chuck at rap.NCGIA.UCSB.EDU
Thu Jan 12 21:28:20 EST 1995


>For each cell in an accumulation map, my client wants to know how much
>came from each landuse in the watershed.  Say we have 3 landuses: A,
>B, C. Then in r.mapcalc parlance,
>    accumulation_map=A+B+C
>Has anyone done something like this? It would require adding
>an additional command line option (landuse=) and would create more
>(potentially a large number of) output files (depending upon
>how many landuses are present).

A simple shell script could do the job.  
Assuming the landuse map has categories from 1 to 10, the script would be:
***********cut here******************
#!/bin/csh -f

set i = 1
while ( $i < 11 )
  r.mapcalc "Category$i = if( landuse == $i)"
  r.watershed elev=dem.name flow=Category$i accumulation=Accum$i
  @ i++

***********cut here******************
You will end up with 10 maps: Accum1, Accum2,...,Accum10 where each cell 
contains the number of cells upstream and including that cell for that
category.  Add a few bells and whisles, you got yourself a program.

BTW, the 3.1+ interactive version of r.watershed can collect basin statistics
based on the threshold size for any number of categorical or continuous
maps, but the output is ASCII text.  I'm not sure that version still exists.
Charles Ehlschlaeger                         e-mail  : chuck at geog.ucsb.edu
Nat. Centr for Geographic Information and Analysis
3510 Phelps Hall                             Phone   : 805-893-8652
University of California                     Fax     : 805-893-8617
Santa Barbara, CA 93106 

The Information Superhighway is really an acronym for:

"Interactive Network For Organizing, Retrieving, Manipulating, Accessing, 
 And Transferring Information On National Systems, Unleasing Practically
 Every Rebellious Human Intelligence, Gratifying Hackers, Wiseacres, And

More information about the grass-dev mailing list