[GRASS-user] Automatic extraction of valley features

Jean-Roc Morreale jr.morreale at enoreth.net
Thu Nov 12 07:18:30 PST 2015

Thank you Vaclav and Stefan,

I'm trying r.geomorphon which seems to be quite a great tool

r.geomorphon -m dem=DEM at hydro forms=geoform search=900 skip=0 flat=1 
r.mapcalc "DEM_valley = if(geoform == 9, 1, null())"

here is a result -> https://goo.gl/XChymf

This example shows what Stefan pointed out, I'll have to change the 
search radius to cover each scale as a 30cells radius is identifying all 
the secondary branches but not the main. Another point I'll have to look 
at is the resolution to avoid unnecessary noise which would create 
choppy polygons.

Le 2015-11-12 13:59, Blumentrath, Stefan a écrit :

> Hi,
> Something to have in mind is that your definition of a valley will be 
> heavily scale dependent, e.g. what depth and width (and possibly even 
> length) do you consider as a valley. As a consequence, also results 
> from r.param.scale and r.geomorphon are likewise scale dependent (where 
> scale is - amongst others - accounted for in neighborhood parameter).
> Another option to identify valleys is the Topographic Position Index 
> (TPI), which is defined as the altitude of a pixel in relation to the 
> average altitude of the pixels in the neighborhood. In GRASS terms:
> r.neighbors input=dem output=dem_avg_11 size=11
> r.mapcalc expression="TPI_11=dem-dem_avg_11"
> Negative TPI values indicate valleys. However, a drawback of TPI is 
> that it may also give negative values at the foot of a slope, and that 
> the signal will "fork" in wide U-valleys...
> In order to address scale effects, you can use a multiscale approach 
> with increasing neighborhoods for all the above methods...
> Cheers,
> Stefan
> FROM: grass-user [mailto:grass-user-bounces at lists.osgeo.org] ON BEHALF 
> OF Vaclav Petras
> SENT: 12. november 2015 13:42
> TO: Jean-Roc Morreale <jr.morreale at enoreth.net>
> CC: GRASS user list <grass-user at lists.osgeo.org>
> SUBJECT: Re: [GRASS-user] Automatic extraction of valley features
> Hi,
> On Thu, Nov 12, 2015 at 5:09 AM, Jean-Roc Morreale 
> <jr.morreale at enoreth.net> wrote:
>> I would like to know how to extract a valley feature from a DEM as a 
>> polygon
> The classic way would be to use r.param.scale with method=feature, but 
> I would recommend using r.geomorphon by Stepinski and Jasiewicz (2011, 
> 2013).
> Both modules will give you a raster map. You can use r.to.vect to get 
> vector polygons. To get just the valley use either raster algebra 
> (r.mapcalc) on the raster map or v.extract on the vector map.
> Note that r.geomorphon module is in GRASS Addons repository, so use 
> e.g., g.extension r.geomorphon to get it.
> Vaclav
> https://grass.osgeo.org/grass70/manuals/r.param.scale.html [1]
> https://grass.osgeo.org/grass70/manuals/addons/r.geomorphon.html [2]

[1] https://grass.osgeo.org/grass70/manuals/r.param.scale.html
[2] https://grass.osgeo.org/grass70/manuals/addons/r.geomorphon.html

More information about the grass-user mailing list