Re: [GRASS-user] Automatic extraction of valley
Dear Jean, If I understand you correctly what you are looking for is to make a swath profile along curved geomorphic features e.g botton valleys. I think that if you want to this in grass gis, it would be enough to create a mask using the the polygon you show in your picture and then extract that area using r.mapcalc. You also can use the geomorphons approach, described by Vaclav, but you have to be careful with the parameters, since they will yield different results depending on your parameters.I would rather use gemorphons instead of r.param.scale, since it is scale independent. If you want something more specific I suggest you to take a look at this paper it might give some ideas about the topic. http://www.earth-surf-dynam.net/2/97/2014/esurf-2-97-2014.pdf Best regards.. Rengifo Ortega > > Message: 4 > Date: Thu, 12 Nov 2015 11:09:48 +0100 > From: Jean-Roc Morreale > To: grass-user@lists.osgeo.org > Subject: [GRASS-user] Automatic extraction of valley features > Message-ID: > Content-Type: text/plain; charset=US-ASCII; format=flowed > > Hi, > > I would like to know how to extract a valley feature from a DEM as a > polygon : the wanted result isn't equal to a watershed or a sub-basin, > it is the cumulated shape of the two slopes and the bottom where the > stream is located. > > As I do not master the geomorphological vocabulary, here is a image > showing the desired outcome : > https://drive.google.com/open?id=0B1sJg8zddqSPUk9BcTdncVRNNHc > > I'm using GRASS7, I've tried r.watershed and several r.stream.* modules > but my lack of knowledge in this domain is blocking. The elevation data > used is the EU-DEM. > > Regards, > Jean-Roc > > > -- > > Message: 5 > Date: Thu, 12 Nov 2015 07:41:47 -0500 > From: Vaclav Petras > To: Jean-Roc Morreale > Cc: GRASS user list > Subject: Re: [GRASS-user] Automatic extraction of valley features > Message-ID: > > Content-Type: text/plain; charset="utf-8" > > Hi, > > On Thu, Nov 12, 2015 at 5:09 AM, Jean-Roc Morreale > 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 > https://grass.osgeo.org/grass70/manuals/addons/r.geomorphon.html > -- next part -- > An HTML attachment was scrubbed... > URL: > <http://lists.osgeo.org/pipermail/grass-user/attachments/20151112/cf81f265/attachment-0001.html> > > -- > > Message: 6 > Date: Thu, 12 Nov 2015 12:59:47 + > From: "Blumentrath, Stefan" > To: Vaclav Petras , Jean-Roc Morreale > > Cc: GRASS user list > Subject: Re: [GRASS-user] Automatic extraction of valley features > Message-ID: > Content-Type: text/plain; charset="utf-8" > > 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 > Cc: GRASS user list > Subject: Re: [GRASS-user] Automatic extraction of valley features > > Hi, > On Th
Re: [GRASS-user] Automatic extraction of valley
Thank you for this article Rengifo ! To be clearer, I've been asked by a geologist to create a polygon cover of valley features, the polygon shown in my example was just a quick doodle showing the wanted result (I would take me several weeks to manually digitize the whole region). Le 2015-11-12 15:27, Rengifo Ortega a écrit : Dear Jean, If I understand you correctly what you are looking for is to make a swath profile along curved geomorphic features e.g botton valleys. I think that if you want to this in grass gis, it would be enough to create a mask using the the polygon you show in your picture and then extract that area using r.mapcalc. You also can use the geomorphons approach, described by Vaclav, but you have to be careful with the parameters, since they will yield different results depending on your parameters.I would rather use gemorphons instead of r.param.scale, since it is scale independent. If you want something more specific I suggest you to take a look at this paper it might give some ideas about the topic. http://www.earth-surf-dynam.net/2/97/2014/esurf-2-97-2014.pdf Best regards.. Rengifo Ortega Message: 4 Date: Thu, 12 Nov 2015 11:09:48 +0100 From: Jean-Roc Morreale To: grass-user@lists.osgeo.org Subject: [GRASS-user] Automatic extraction of valley features Message-ID: Content-Type: text/plain; charset=US-ASCII; format=flowed Hi, I would like to know how to extract a valley feature from a DEM as a polygon : the wanted result isn't equal to a watershed or a sub-basin, it is the cumulated shape of the two slopes and the bottom where the stream is located. As I do not master the geomorphological vocabulary, here is a image showing the desired outcome : https://drive.google.com/open?id=0B1sJg8zddqSPUk9BcTdncVRNNHc I'm using GRASS7, I've tried r.watershed and several r.stream.* modules but my lack of knowledge in this domain is blocking. The elevation data used is the EU-DEM. Regards, Jean-Roc -- Message: 5 Date: Thu, 12 Nov 2015 07:41:47 -0500 From: Vaclav Petras To: Jean-Roc Morreale Cc: GRASS user list Subject: Re: [GRASS-user] Automatic extraction of valley features Message-ID: Content-Type: text/plain; charset="utf-8" Hi, On Thu, Nov 12, 2015 at 5:09 AM, Jean-Roc Morreale 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 https://grass.osgeo.org/grass70/manuals/addons/r.geomorphon.html -- next part -- An HTML attachment was scrubbed... URL: <http://lists.osgeo.org/pipermail/grass-user/attachments/20151112/cf81f265/attachment-0001.html> -- Message: 6 Date: Thu, 12 Nov 2015 12:59:47 + From: "Blumentrath, Stefan" To: Vaclav Petras , Jean-Roc Morreale Cc: GRASS user list Subject: Re: [GRASS-user] Automatic extraction of valley features Message-ID: Content-Type: text/plain; charset="utf-8" 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 Cc: GRASS user list Subject: Re: [GRASS-user] Automatic extraction of valley features Hi, On Thu, Nov 12, 2015 at 5:09 AM, Jean-Roc Morreale mailto: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.sca
Re: [GRASS-user] Automatic extraction of valley features
Hi, On Thu, Nov 12, 2015 at 5:09 AM, Jean-Roc Morreale 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 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
Re: [GRASS-user] Automatic extraction of valley features
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 Cc: GRASS user list Subject: Re: [GRASS-user] Automatic extraction of valley features Hi, On Thu, Nov 12, 2015 at 5:09 AM, Jean-Roc Morreale mailto: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 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
Re: [GRASS-user] Automatic extraction of valley features
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 CC: GRASS user list SUBJECT: Re: [GRASS-user] Automatic extraction of valley features Hi, On Thu, Nov 12, 2015 at 5:09 AM, Jean-Roc Morreale 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