[GRASS-user] Elevation above a river

Hi All,

Does anyone know is it possible to calculate the elevation above a river channel (actual river network that was digitised as opposed to being extracted from a DTM) from a DTM and create a polygon from it.

I need to calculate heights of 1m and 3m above a river channel on both sides of the channel and create a polygon from it.

Thanks all.

···

Le gach dea ghui,

Shane Carey
GIS and Data Solutions Consultant

Hi,

Shane Carey <careyshan@gmail.com> schrieb am Fr., 14. Sep. 2018, 23:02:

Hi All,

Does anyone know is it possible to calculate the elevation above a river channel (actual river network that was digitised as opposed to being extracted from a DTM) from a DTM and create a polygon from it.

I need to calculate heights of 1m and 3m above a river channel on both sides of the channel and create a polygon from it.

This isn’t clear to me. Could you elaborate?

Best
Markus

Thanks all.

Le gach dea ghui,

Shane Carey
GIS and Data Solutions Consultant


grass-user mailing list
grass-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/grass-user

To me this looks like a flooding-related question, i.e. to extract the shore lines of a river if it’s water level is raised by 1m or 3m?
Maybe (1) extract the raster cells of the elevation map that represents the river channel, (2) then apply r.grow and (3) then r.mapcalc to subtract the grown river channel from the original elevation map.
/Johannes

On Sun, Sep 16, 2018 at 5:16 PM Markus Neteler <neteler@osgeo.org> wrote:

Hi,

Shane Carey <careyshan@gmail.com> schrieb am Fr., 14. Sep. 2018, 23:02:

Hi All,

Does anyone know is it possible to calculate the elevation above a river channel (actual river network that was digitised as opposed to being extracted from a DTM) from a DTM and create a polygon from it.

I need to calculate heights of 1m and 3m above a river channel on both sides of the channel and create a polygon from it.

This isn’t clear to me. Could you elaborate?

Best
Markus

Thanks all.

Le gach dea ghui,

Shane Carey
GIS and Data Solutions Consultant


grass-user mailing list
grass-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/grass-user


grass-user mailing list
grass-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/grass-user

Hi,

I’m not sure I made myself clear. I have a “real” river vector dataset of an area.
It includes artificial channels also.

This dataset was digitised manually and does not match the extracted river dataset from DTM algorithms in grass (r.stream.extraxt)

I need to use the real river vector dataset - hence maybe alter the DTM so that it picks up these “real” rivers (perhaps by using r.carve?) as opposed to what would be created by r.stream.extract.

And then when that step is complete, obtain elevation height above the river.

Hope this makes sense and I am clear in my explanation.

Many thanks all.

···

Le gach dea ghui,

Shane Carey
GIS and Data Solutions Consultant

Cool thanks. I think this might work.

Cheers for this - really great idea and help!!

···

Le gach dea ghui,

Shane Carey
GIS and Data Solutions Consultant

Hey Johannes,

Thanks for your reply. How does r.grow work if let’s say the height above the river reaches 1m at 3meters away from the river. And in an other area it reaches the 1meter height at 2meters away from the river. Is it able to follow that line?

Thanks

···

Le gach dea ghui,

Shane Carey
GIS and Data Solutions Consultant

That is were the third step should follow, i.e. using r.mapcalc to identify all the cells that are 1m higher than the grown river (irrespective in which distance from the river these cells are located). The rasterized area could then be translated into a vector format using r.to.vect.

Here a small example of how the working flow could be using the North Caroline example dataset:
##############

Set region

g.region raster=elevation@PERMANENT

Extract elevation of the streams

r.mapcalc --o expression=“streams_elevation = if( streams_derived@PERMANENT, elevation@PERMANENT,null())”

Grow stream_elevation map by a some hundred meters

r.grow -m --overwrite input=streams_elevation output=streams_elevation_grow radius=500

Calculate difference between original elevatoin and stream channel elevation

r.mapcalc expression=“stream_elevation_diff = elevation@PERMANENT - streams_elevation_grow” --overwrite

Extract areas that are than x meters higher than stream channel elevation

r.mapcalc expression=“stream_elevation_diff_smaller1 = if( stream_elevation_diff < 1,1,null())” --overwrite

Maybe here it needs some cleaning of spurious cells etc. (using some kind of neighbourhood filtering)

Raster areas to a vector area (with smoothed corners; s-flag)

r.to.vect -s --overwrite input=stream_elevation_diff_smaller1 output=stream_elevation_diff_smaller1_area type=area

##############

HTH
/Johannes

On Sun, Sep 16, 2018 at 8:53 PM Shane Carey <careyshan@gmail.com> wrote:

Hey Johannes,

Thanks for your reply. How does r.grow work if let’s say the height above the river reaches 1m at 3meters away from the river. And in an other area it reaches the 1meter height at 2meters away from the river. Is it able to follow that line?

Thanks

On Domh 16 MFómh 2018 at 17:21, Johannes Radinger <johannesradinger@gmail.com> wrote:

To me this looks like a flooding-related question, i.e. to extract the shore lines of a river if it’s water level is raised by 1m or 3m?
Maybe (1) extract the raster cells of the elevation map that represents the river channel, (2) then apply r.grow and (3) then r.mapcalc to subtract the grown river channel from the original elevation map.

/Johannes

On Sun, Sep 16, 2018 at 5:16 PM Markus Neteler <neteler@osgeo.org> wrote:

Hi,

Shane Carey <careyshan@gmail.com> schrieb am Fr., 14. Sep. 2018, 23:02:

Hi All,

Does anyone know is it possible to calculate the elevation above a river channel (actual river network that was digitised as opposed to being extracted from a DTM) from a DTM and create a polygon from it.

I need to calculate heights of 1m and 3m above a river channel on both sides of the channel and create a polygon from it.

This isn’t clear to me. Could you elaborate?

Best
Markus

Thanks all.

Le gach dea ghui,

Shane Carey
GIS and Data Solutions Consultant


grass-user mailing list
grass-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/grass-user


grass-user mailing list
grass-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/grass-user

Le gach dea ghui,

Shane Carey
GIS and Data Solutions Consultant

Hi Shane,

On Fri, Sep 14, 2018 at 5:03 PM Shane Carey <careyshan@gmail.com> wrote:

Does anyone know is it possible to calculate the elevation above a river channel (actual river network that was digitised as opposed to being extracted from a DTM) from a DTM and create a polygon from it.

I need to calculate heights of 1m and 3m above a river channel on both sides of the channel and create a polygon from it.

Maybe Height Above Nearest Drainage (HAND) is what you are looking for. It is basically done using:

r.stream.distance stream_rast=streams direction=drainage elevation=elevation method=downstream difference=above_stream

See full workflow here:

https://grasswiki.osgeo.org/wiki/From_GRASS_GIS_novice_to_power_user_(workshop_at_FOSS4G_Boston_2017)#Hydrology:_Estimating_inundation_extent_using_HAND_methodology

You will need to do some post processing with r.lake or r.mapcalc and r.to.vect to get the polygons.

Since you already have the streams and you want to use them, you need to convert them to raster and then also get stream direction for r.stream.distance by reclassifying, e.g. with r.mapcalc, output from something like this:

v.to.rast in=streams output=streams_dir use=dir

which you can see in context here (different hydrology tool):

http://ncsu-geoforall-lab.github.io/geospatial-modeling-course/grass/simwe.html

However, I would be careful about how the streams fit with the terrain you are using to be sure results make sense.

Vaclav

Ok great - thanks. I think I will use r.carve to carve the streams into the DTM first and then use this procedure you have described. Do you with the seed raster (for r.lake) if I convert the stream to raster, will ever cell be a seed point (i.e. Water will be placed into every cell at a height of x?)? If so, this is exactly what I need.

Thanks

···

Le gach dea ghui,

Shane Carey
GIS and Data Solutions Consultant

This works a treat - super stuff - thanks Johannes.

Could you point me in the direction of an algorithim with Grass that can do the following:

Clean some of the spurious cells etc. (using some kind of neighbourhood filtering)

Thanks very much

···

On Sun, Sep 16, 2018 at 8:46 PM, Johannes Radinger <johannesradinger@gmail.com> wrote:

That is were the third step should follow, i.e. using r.mapcalc to identify all the cells that are 1m higher than the grown river (irrespective in which distance from the river these cells are located). The rasterized area could then be translated into a vector format using r.to.vect.

Here a small example of how the working flow could be using the North Caroline example dataset:
##############

Set region

g.region raster=elevation@PERMANENT

Extract elevation of the streams

r.mapcalc --o expression=“streams_elevation = if( streams_derived@PERMANENT, elevation@PERMANENT,null())”

Grow stream_elevation map by a some hundred meters

r.grow -m --overwrite input=streams_elevation output=streams_elevation_grow radius=500

Calculate difference between original elevatoin and stream channel elevation

r.mapcalc expression=“stream_elevation_diff = elevation@PERMANENT - streams_elevation_grow” --overwrite

Extract areas that are than x meters higher than stream channel elevation

r.mapcalc expression=“stream_elevation_diff_smaller1 = if( stream_elevation_diff < 1,1,null())” --overwrite

Maybe here it needs some cleaning of spurious cells etc. (using some kind of neighbourhood filtering)

Raster areas to a vector area (with smoothed corners; s-flag)

r.to.vect -s --overwrite input=stream_elevation_diff_smaller1 output=stream_elevation_diff_smaller1_area type=area

##############

HTH

/Johannes

On Sun, Sep 16, 2018 at 8:53 PM Shane Carey <careyshan@gmail.com> wrote:

Hey Johannes,

Thanks for your reply. How does r.grow work if let’s say the height above the river reaches 1m at 3meters away from the river. And in an other area it reaches the 1meter height at 2meters away from the river. Is it able to follow that line?

Thanks

On Domh 16 MFómh 2018 at 17:21, Johannes Radinger <johannesradinger@gmail.com> wrote:

To me this looks like a flooding-related question, i.e. to extract the shore lines of a river if it’s water level is raised by 1m or 3m?
Maybe (1) extract the raster cells of the elevation map that represents the river channel, (2) then apply r.grow and (3) then r.mapcalc to subtract the grown river channel from the original elevation map.

/Johannes

On Sun, Sep 16, 2018 at 5:16 PM Markus Neteler <neteler@osgeo.org> wrote:

Hi,

Shane Carey <careyshan@gmail.com> schrieb am Fr., 14. Sep. 2018, 23:02:

Hi All,

Does anyone know is it possible to calculate the elevation above a river channel (actual river network that was digitised as opposed to being extracted from a DTM) from a DTM and create a polygon from it.

I need to calculate heights of 1m and 3m above a river channel on both sides of the channel and create a polygon from it.

This isn’t clear to me. Could you elaborate?

Best
Markus

Thanks all.

Le gach dea ghui,

Shane Carey
GIS and Data Solutions Consultant


grass-user mailing list
grass-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/grass-user


grass-user mailing list
grass-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/grass-user

Le gach dea ghui,

Shane Carey
GIS and Data Solutions Consultant

Le gach dea ghui,

Shane Carey
GIS and Data Solutions Consultant

Shane Carey <careyshan@gmail.com> schrieb am Sa., 22. Sep. 2018, 15:05:

This works a treat - super stuff - thanks Johannes.

Could you point me in the direction of an algorithim with Grass that can do the following:

Clean some of the spurious cells etc. (using some kind of neighbourhood filtering)

You can do that for example with r.neighbors and ‘mode’ method.

Best
markusN

You could have a look at r.neighbors (https://grass.osgeo.org/grass74/manuals/r.neighbors.html) with method=maximum.

/Johannes

···

On Sun, Sep 16, 2018 at 8:46 PM, Johannes Radinger <johannesradinger@gmail.com> wrote:

That is were the third step should follow, i.e. using r.mapcalc to identify all the cells that are 1m higher than the grown river (irrespective in which distance from the river these cells are located). The rasterized area could then be translated into a vector format using r.to.vect.

Here a small example of how the working flow could be using the North Caroline example dataset:
##############

Set region

g.region raster=elevation@PERMANENT

Extract elevation of the streams

r.mapcalc --o expression=“streams_elevation = if( streams_derived@PERMANENT, elevation@PERMANENT,null())”

Grow stream_elevation map by a some hundred meters

r.grow -m --overwrite input=streams_elevation output=streams_elevation_grow radius=500

Calculate difference between original elevatoin and stream channel elevation

r.mapcalc expression=“stream_elevation_diff = elevation@PERMANENT - streams_elevation_grow” --overwrite

Extract areas that are than x meters higher than stream channel elevation

r.mapcalc expression=“stream_elevation_diff_smaller1 = if( stream_elevation_diff < 1,1,null())” --overwrite

Maybe here it needs some cleaning of spurious cells etc. (using some kind of neighbourhood filtering)

Raster areas to a vector area (with smoothed corners; s-flag)

r.to.vect -s --overwrite input=stream_elevation_diff_smaller1 output=stream_elevation_diff_smaller1_area type=area

##############

HTH

/Johannes

On Sun, Sep 16, 2018 at 8:53 PM Shane Carey <careyshan@gmail.com> wrote:

Hey Johannes,

Thanks for your reply. How does r.grow work if let’s say the height above the river reaches 1m at 3meters away from the river. And in an other area it reaches the 1meter height at 2meters away from the river. Is it able to follow that line?

Thanks

On Domh 16 MFómh 2018 at 17:21, Johannes Radinger <johannesradinger@gmail.com> wrote:

To me this looks like a flooding-related question, i.e. to extract the shore lines of a river if it’s water level is raised by 1m or 3m?
Maybe (1) extract the raster cells of the elevation map that represents the river channel, (2) then apply r.grow and (3) then r.mapcalc to subtract the grown river channel from the original elevation map.

/Johannes

On Sun, Sep 16, 2018 at 5:16 PM Markus Neteler <neteler@osgeo.org> wrote:

Hi,

Shane Carey <careyshan@gmail.com> schrieb am Fr., 14. Sep. 2018, 23:02:

Hi All,

Does anyone know is it possible to calculate the elevation above a river channel (actual river network that was digitised as opposed to being extracted from a DTM) from a DTM and create a polygon from it.

I need to calculate heights of 1m and 3m above a river channel on both sides of the channel and create a polygon from it.

This isn’t clear to me. Could you elaborate?

Best
Markus

Thanks all.

Le gach dea ghui,

Shane Carey
GIS and Data Solutions Consultant


grass-user mailing list
grass-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/grass-user


grass-user mailing list
grass-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/grass-user

Le gach dea ghui,

Shane Carey
GIS and Data Solutions Consultant

Le gach dea ghui,

Shane Carey
GIS and Data Solutions Consultant

Sorry I ment method=mode or median as stated by Markus N.

···

On Sun, Sep 16, 2018 at 8:46 PM, Johannes Radinger <johannesradinger@gmail.com> wrote:

That is were the third step should follow, i.e. using r.mapcalc to identify all the cells that are 1m higher than the grown river (irrespective in which distance from the river these cells are located). The rasterized area could then be translated into a vector format using r.to.vect.

Here a small example of how the working flow could be using the North Caroline example dataset:
##############

Set region

g.region raster=elevation@PERMANENT

Extract elevation of the streams

r.mapcalc --o expression=“streams_elevation = if( streams_derived@PERMANENT, elevation@PERMANENT,null())”

Grow stream_elevation map by a some hundred meters

r.grow -m --overwrite input=streams_elevation output=streams_elevation_grow radius=500

Calculate difference between original elevatoin and stream channel elevation

r.mapcalc expression=“stream_elevation_diff = elevation@PERMANENT - streams_elevation_grow” --overwrite

Extract areas that are than x meters higher than stream channel elevation

r.mapcalc expression=“stream_elevation_diff_smaller1 = if( stream_elevation_diff < 1,1,null())” --overwrite

Maybe here it needs some cleaning of spurious cells etc. (using some kind of neighbourhood filtering)

Raster areas to a vector area (with smoothed corners; s-flag)

r.to.vect -s --overwrite input=stream_elevation_diff_smaller1 output=stream_elevation_diff_smaller1_area type=area

##############

HTH

/Johannes

On Sun, Sep 16, 2018 at 8:53 PM Shane Carey <careyshan@gmail.com> wrote:

Hey Johannes,

Thanks for your reply. How does r.grow work if let’s say the height above the river reaches 1m at 3meters away from the river. And in an other area it reaches the 1meter height at 2meters away from the river. Is it able to follow that line?

Thanks

On Domh 16 MFómh 2018 at 17:21, Johannes Radinger <johannesradinger@gmail.com> wrote:

To me this looks like a flooding-related question, i.e. to extract the shore lines of a river if it’s water level is raised by 1m or 3m?
Maybe (1) extract the raster cells of the elevation map that represents the river channel, (2) then apply r.grow and (3) then r.mapcalc to subtract the grown river channel from the original elevation map.

/Johannes

On Sun, Sep 16, 2018 at 5:16 PM Markus Neteler <neteler@osgeo.org> wrote:

Hi,

Shane Carey <careyshan@gmail.com> schrieb am Fr., 14. Sep. 2018, 23:02:

Hi All,

Does anyone know is it possible to calculate the elevation above a river channel (actual river network that was digitised as opposed to being extracted from a DTM) from a DTM and create a polygon from it.

I need to calculate heights of 1m and 3m above a river channel on both sides of the channel and create a polygon from it.

This isn’t clear to me. Could you elaborate?

Best
Markus

Thanks all.

Le gach dea ghui,

Shane Carey
GIS and Data Solutions Consultant


grass-user mailing list
grass-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/grass-user


grass-user mailing list
grass-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/grass-user

Le gach dea ghui,

Shane Carey
GIS and Data Solutions Consultant

Le gach dea ghui,

Shane Carey
GIS and Data Solutions Consultant

No worries, I’m not seeing any differences in the original and the filtered cells. I’ve tried mode and max methods

Thanks

···

On Sat, Sep 22, 2018 at 2:39 PM, johannesradinger <johannesradinger@gmail.com> wrote:

Sorry I ment method=mode or median as stated by Markus N.

Sent from my Samsung Galaxy smartphone.

-------- Original message --------
From: Shane Carey <careyshan@gmail.com>
Date: 22/09/2018 15:05 (GMT+01:00)
To: Johannes Radinger <johannesradinger@gmail.com>
Cc: Markus Neteler <neteler@osgeo.org>, GRASS user list <grass-user@lists.osgeo.org>
Subject: Re: [GRASS-user] Elevation above a river

This works a treat - super stuff - thanks Johannes.

Could you point me in the direction of an algorithim with Grass that can do the following:

Clean some of the spurious cells etc. (using some kind of neighbourhood filtering)

Thanks very much

Le gach dea ghui,

Shane Carey
GIS and Data Solutions Consultant

Le gach dea ghui,

Shane Carey
GIS and Data Solutions Consultant

On Sun, Sep 16, 2018 at 8:46 PM, Johannes Radinger <johannesradinger@gmail.com> wrote:

That is were the third step should follow, i.e. using r.mapcalc to identify all the cells that are 1m higher than the grown river (irrespective in which distance from the river these cells are located). The rasterized area could then be translated into a vector format using r.to.vect.

Here a small example of how the working flow could be using the North Caroline example dataset:
##############

Set region

g.region raster=elevation@PERMANENT

Extract elevation of the streams

r.mapcalc --o expression=“streams_elevation = if( streams_derived@PERMANENT, elevation@PERMANENT,null())”

Grow stream_elevation map by a some hundred meters

r.grow -m --overwrite input=streams_elevation output=streams_elevation_grow radius=500

Calculate difference between original elevatoin and stream channel elevation

r.mapcalc expression=“stream_elevation_diff = elevation@PERMANENT - streams_elevation_grow” --overwrite

Extract areas that are than x meters higher than stream channel elevation

r.mapcalc expression=“stream_elevation_diff_smaller1 = if( stream_elevation_diff < 1,1,null())” --overwrite

Maybe here it needs some cleaning of spurious cells etc. (using some kind of neighbourhood filtering)

Raster areas to a vector area (with smoothed corners; s-flag)

r.to.vect -s --overwrite input=stream_elevation_diff_smaller1 output=stream_elevation_diff_smaller1_area type=area

##############

HTH

/Johannes

On Sun, Sep 16, 2018 at 8:53 PM Shane Carey <careyshan@gmail.com> wrote:

Hey Johannes,

Thanks for your reply. How does r.grow work if let’s say the height above the river reaches 1m at 3meters away from the river. And in an other area it reaches the 1meter height at 2meters away from the river. Is it able to follow that line?

Thanks

On Domh 16 MFómh 2018 at 17:21, Johannes Radinger <johannesradinger@gmail.com> wrote:

To me this looks like a flooding-related question, i.e. to extract the shore lines of a river if it’s water level is raised by 1m or 3m?
Maybe (1) extract the raster cells of the elevation map that represents the river channel, (2) then apply r.grow and (3) then r.mapcalc to subtract the grown river channel from the original elevation map.

/Johannes

On Sun, Sep 16, 2018 at 5:16 PM Markus Neteler <neteler@osgeo.org> wrote:

Hi,

Shane Carey <careyshan@gmail.com> schrieb am Fr., 14. Sep. 2018, 23:02:

Hi All,

Does anyone know is it possible to calculate the elevation above a river channel (actual river network that was digitised as opposed to being extracted from a DTM) from a DTM and create a polygon from it.

I need to calculate heights of 1m and 3m above a river channel on both sides of the channel and create a polygon from it.

This isn’t clear to me. Could you elaborate?

Best
Markus

Thanks all.

Le gach dea ghui,

Shane Carey
GIS and Data Solutions Consultant


grass-user mailing list
grass-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/grass-user


grass-user mailing list
grass-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/grass-user

Le gach dea ghui,

Shane Carey
GIS and Data Solutions Consultant

You could also try larger size parameters depending on the degree of filtering you want to achieve

···

On Sat, Sep 22, 2018 at 2:39 PM, johannesradinger <johannesradinger@gmail.com> wrote:

Sorry I ment method=mode or median as stated by Markus N.

Sent from my Samsung Galaxy smartphone.

-------- Original message --------
From: Shane Carey <careyshan@gmail.com>
Date: 22/09/2018 15:05 (GMT+01:00)
To: Johannes Radinger <johannesradinger@gmail.com>
Cc: Markus Neteler <neteler@osgeo.org>, GRASS user list <grass-user@lists.osgeo.org>
Subject: Re: [GRASS-user] Elevation above a river

This works a treat - super stuff - thanks Johannes.

Could you point me in the direction of an algorithim with Grass that can do the following:

Clean some of the spurious cells etc. (using some kind of neighbourhood filtering)

Thanks very much

Le gach dea ghui,

Shane Carey
GIS and Data Solutions Consultant

Le gach dea ghui,

Shane Carey
GIS and Data Solutions Consultant

On Sun, Sep 16, 2018 at 8:46 PM, Johannes Radinger <johannesradinger@gmail.com> wrote:

That is were the third step should follow, i.e. using r.mapcalc to identify all the cells that are 1m higher than the grown river (irrespective in which distance from the river these cells are located). The rasterized area could then be translated into a vector format using r.to.vect.

Here a small example of how the working flow could be using the North Caroline example dataset:
##############

Set region

g.region raster=elevation@PERMANENT

Extract elevation of the streams

r.mapcalc --o expression=“streams_elevation = if( streams_derived@PERMANENT, elevation@PERMANENT,null())”

Grow stream_elevation map by a some hundred meters

r.grow -m --overwrite input=streams_elevation output=streams_elevation_grow radius=500

Calculate difference between original elevatoin and stream channel elevation

r.mapcalc expression=“stream_elevation_diff = elevation@PERMANENT - streams_elevation_grow” --overwrite

Extract areas that are than x meters higher than stream channel elevation

r.mapcalc expression=“stream_elevation_diff_smaller1 = if( stream_elevation_diff < 1,1,null())” --overwrite

Maybe here it needs some cleaning of spurious cells etc. (using some kind of neighbourhood filtering)

Raster areas to a vector area (with smoothed corners; s-flag)

r.to.vect -s --overwrite input=stream_elevation_diff_smaller1 output=stream_elevation_diff_smaller1_area type=area

##############

HTH

/Johannes

On Sun, Sep 16, 2018 at 8:53 PM Shane Carey <careyshan@gmail.com> wrote:

Hey Johannes,

Thanks for your reply. How does r.grow work if let’s say the height above the river reaches 1m at 3meters away from the river. And in an other area it reaches the 1meter height at 2meters away from the river. Is it able to follow that line?

Thanks

On Domh 16 MFómh 2018 at 17:21, Johannes Radinger <johannesradinger@gmail.com> wrote:

To me this looks like a flooding-related question, i.e. to extract the shore lines of a river if it’s water level is raised by 1m or 3m?
Maybe (1) extract the raster cells of the elevation map that represents the river channel, (2) then apply r.grow and (3) then r.mapcalc to subtract the grown river channel from the original elevation map.

/Johannes

On Sun, Sep 16, 2018 at 5:16 PM Markus Neteler <neteler@osgeo.org> wrote:

Hi,

Shane Carey <careyshan@gmail.com> schrieb am Fr., 14. Sep. 2018, 23:02:

Hi All,

Does anyone know is it possible to calculate the elevation above a river channel (actual river network that was digitised as opposed to being extracted from a DTM) from a DTM and create a polygon from it.

I need to calculate heights of 1m and 3m above a river channel on both sides of the channel and create a polygon from it.

This isn’t clear to me. Could you elaborate?

Best
Markus

Thanks all.

Le gach dea ghui,

Shane Carey
GIS and Data Solutions Consultant


grass-user mailing list
grass-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/grass-user


grass-user mailing list
grass-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/grass-user

Le gach dea ghui,

Shane Carey
GIS and Data Solutions Consultant

Would you be able to give me an example of this please?

This software is really really good. I absolutely love it.
Keep up the great work!!

···

On Sat, Sep 22, 2018 at 3:25 PM, johannesradinger <johannesradinger@gmail.com> wrote:

You could also try larger size parameters depending on the degree of filtering you want to achieve

Sent from my Samsung Galaxy smartphone.

-------- Original message --------
From: Shane Carey <careyshan@gmail.com>

Date: 22/09/2018 15:47 (GMT+01:00)
To: johannesradinger <johannesradinger@gmail.com>
Cc: Markus Neteler <neteler@osgeo.org>, GRASS user list <grass-user@lists.osgeo.org>
Subject: Re: [GRASS-user] Elevation above a river

No worries, I’m not seeing any differences in the original and the filtered cells. I’ve tried mode and max methods

Thanks

Le gach dea ghui,

Shane Carey
GIS and Data Solutions Consultant

Le gach dea ghui,

Shane Carey
GIS and Data Solutions Consultant

On Sat, Sep 22, 2018 at 2:39 PM, johannesradinger <johannesradinger@gmail.com> wrote:

Sorry I ment method=mode or median as stated by Markus N.

Sent from my Samsung Galaxy smartphone.

-------- Original message --------
From: Shane Carey <careyshan@gmail.com>
Date: 22/09/2018 15:05 (GMT+01:00)
To: Johannes Radinger <johannesradinger@gmail.com>
Cc: Markus Neteler <neteler@osgeo.org>, GRASS user list <grass-user@lists.osgeo.org>
Subject: Re: [GRASS-user] Elevation above a river

This works a treat - super stuff - thanks Johannes.

Could you point me in the direction of an algorithim with Grass that can do the following:

Clean some of the spurious cells etc. (using some kind of neighbourhood filtering)

Thanks very much

Le gach dea ghui,

Shane Carey
GIS and Data Solutions Consultant

On Sun, Sep 16, 2018 at 8:46 PM, Johannes Radinger <johannesradinger@gmail.com> wrote:

That is were the third step should follow, i.e. using r.mapcalc to identify all the cells that are 1m higher than the grown river (irrespective in which distance from the river these cells are located). The rasterized area could then be translated into a vector format using r.to.vect.

Here a small example of how the working flow could be using the North Caroline example dataset:
##############

Set region

g.region raster=elevation@PERMANENT

Extract elevation of the streams

r.mapcalc --o expression=“streams_elevation = if( streams_derived@PERMANENT, elevation@PERMANENT,null())”

Grow stream_elevation map by a some hundred meters

r.grow -m --overwrite input=streams_elevation output=streams_elevation_grow radius=500

Calculate difference between original elevatoin and stream channel elevation

r.mapcalc expression=“stream_elevation_diff = elevation@PERMANENT - streams_elevation_grow” --overwrite

Extract areas that are than x meters higher than stream channel elevation

r.mapcalc expression=“stream_elevation_diff_smaller1 = if( stream_elevation_diff < 1,1,null())” --overwrite

Maybe here it needs some cleaning of spurious cells etc. (using some kind of neighbourhood filtering)

Raster areas to a vector area (with smoothed corners; s-flag)

r.to.vect -s --overwrite input=stream_elevation_diff_smaller1 output=stream_elevation_diff_smaller1_area type=area

##############

HTH

/Johannes

On Sun, Sep 16, 2018 at 8:53 PM Shane Carey <careyshan@gmail.com> wrote:

Hey Johannes,

Thanks for your reply. How does r.grow work if let’s say the height above the river reaches 1m at 3meters away from the river. And in an other area it reaches the 1meter height at 2meters away from the river. Is it able to follow that line?

Thanks

On Domh 16 MFómh 2018 at 17:21, Johannes Radinger <johannesradinger@gmail.com> wrote:

To me this looks like a flooding-related question, i.e. to extract the shore lines of a river if it’s water level is raised by 1m or 3m?
Maybe (1) extract the raster cells of the elevation map that represents the river channel, (2) then apply r.grow and (3) then r.mapcalc to subtract the grown river channel from the original elevation map.

/Johannes

On Sun, Sep 16, 2018 at 5:16 PM Markus Neteler <neteler@osgeo.org> wrote:

Hi,

Shane Carey <careyshan@gmail.com> schrieb am Fr., 14. Sep. 2018, 23:02:

Hi All,

Does anyone know is it possible to calculate the elevation above a river channel (actual river network that was digitised as opposed to being extracted from a DTM) from a DTM and create a polygon from it.

I need to calculate heights of 1m and 3m above a river channel on both sides of the channel and create a polygon from it.

This isn’t clear to me. Could you elaborate?

Best
Markus

Thanks all.

Le gach dea ghui,

Shane Carey
GIS and Data Solutions Consultant


grass-user mailing list
grass-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/grass-user


grass-user mailing list
grass-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/grass-user

Le gach dea ghui,

Shane Carey
GIS and Data Solutions Consultant