[GRASS-user] Stream power Index calculation?

Michael Barton Michael.Barton at asu.edu
Wed Mar 4 07:57:18 PST 2015


We use stream power in our landscape evolution script r.landscape.evol. One version is already in the GRASS addons repository. We are continuing to enhance and refine this.

Michael
______________________________
C. Michael Barton
Director, Center for Social Dynamics & Complexity
Professor of Anthropology, School of Human Evolution & Social Change
Head, Graduate Faculty in Complex Adaptive Systems Science
Arizona State University
Tempe, AZ  85287-2402
USA

voice:  480-965-6262 (SHESC), 480-965-8130/727-9746 (CSDC)
fax:          480-965-7671(SHESC), 480-727-0709 (CSDC)
www:  http://csdc.asu.edu, http://shesc.asu.edu
http://www.public.asu.edu/~cmbarton

On Mar 4, 2015, at 2:50 AM, grass-user-request at lists.osgeo.org<mailto:grass-user-request at lists.osgeo.org> wrote:

From: Markus Metz <markus.metz.giswork at gmail.com<mailto:markus.metz.giswork at gmail.com>>
Cc: grass-user <grass-user at lists.osgeo.org<mailto:grass-user at lists.osgeo.org>>
To: Helmut Kudrnovsky <hellik at web.de<mailto:hellik at web.de>>
Date: March 4, 2015 at 2:50:51 AM MST
Subject: Re: [GRASS-user] Stream power Index calculation?


On Wed, Mar 4, 2015 at 9:46 AM, Helmut Kudrnovsky <hellik at web.de<mailto:hellik at web.de>> wrote:
in the book SPI is defined as:

   SPI = A x tan(beta)

where A is the specific catchment area and beta is the local slope angle.

in link [1] there is the SAGA GIS formula.


sometimes SPI is also defined as:

   SPI = ln(A x tan(beta))

This is also known as Topographic Convergence Index (TCI) or
Topographic Wetness Index (TWI). You can calculate this index with
r.watershed and r.terraflow. If you need the non-logarithmic form, you
can use r.mapcalc "SPI = exp(TCI)".

AFAIU from the manual:

http://grass.osgeo.org/grass71/manuals/r.watershed.html

TCI is definded as: Topographic index ln(a / tan(b))

divison vs. multiplication

OK. You can get SPI with a little math:

exp(TCI) = a / tan(b)
tan(b) = a / exp(TCI)

a = flow accumulation / res

or a bit more precise, for flow direction to direct neighbors:
a = flow accumulation / ((ns_res + ew_res) / 2)
and diagonal neighbors:
a = flow accumulation / sqrt(ns_res * ns_res + ew_res * ew_res)

now you have a, can calculate tan(b) and SPI

note that slope from r.slope.aspect could be used but does not
necessarily point to the predominant flow direction. r.slope.aspect
calculates slope for a given cell from its 3x3 neighborhood whereas
TCI uses the slope from the current cell to the next downstream cell.
Thus for TCI and SPI the upstream slope does not matter so much, it is
important how it continues immediately downstream (e.g. waterfall).

Since a and tan(b) are already calculated by r.watershed for TCI,
implementing SPI (as yet another option to r.watershed) would be
relatively easy.

Markus M


-----
best regards
Helmut
--
View this message in context: http://osgeo-org.1560.x6.nabble.com/Stream-power-Index-calculation-tp5190756p5191377.html
Sent from the Grass - Users mailing list archive at Nabble.com<http://nabble.com/>.
_______________________________________________
grass-user mailing list
grass-user at lists.osgeo.org<mailto:grass-user at lists.osgeo.org>
http://lists.osgeo.org/mailman/listinfo/grass-user


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/grass-user/attachments/20150304/df2fae59/attachment-0001.html>


More information about the grass-user mailing list