Thank you Vaclav and Stefan,
I'm trying r.geomorphon which seems to be quite a great tool
r.geomorphon -m dem=DEM@hydro forms=geoform search=900 skip=0 flat=1
dist=0
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-boun...@lists.osgeo.org] ON BEHALF
OF Vaclav Petras
SENT: 12. november 2015 13:42
TO: Jean-Roc Morreale <jr.morre...@enoreth.net>
CC: GRASS user list <grass-user@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.morre...@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]
Links:
------
[1] https://grass.osgeo.org/grass70/manuals/r.param.scale.html
[2] https://grass.osgeo.org/grass70/manuals/addons/r.geomorphon.html
_______________________________________________
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user