[GRASS-dev] v.breach and v.line.center GRASS addons

Hi

I have submitted 2 new scripts for GRASS 6.x to GRASS WIKI
http://grass.gdf-hannover.de/wiki/GRASS_AddOns:

v.line.center creates a points vector map with each point located in
the middle of the length of one input vector line.

v.breach creates vector maps of lines and points of continously
lowering elevation down the input watercourses, based on the input
raster DEM.

v.line.center is a simple self-explanatory tool.

v.breach is more complex. It is similar to r.carve -n, with the
following differences:

1. It takes the direction of input vector lines into account; which
means it is less prone to artifacts in the input DEM but more demanding
to input watercourses. As a result you can breach DEM even against the
slope, if that's needed ;).

2. It does not breach the DEM itself, but outputs vector points which
have the breached elevation attribute stored in the table. These points
can be used as additional data for interpolating more hydrologicaly
sound DEM from scratch, or rasterized and burned into the input DEM
manually (v.to.rast, r.mapcalc).

3. It also outputs vector lines, which are the input vector
watercourses segmented one segment per each DEM cell through which a
given input watercourse flows. Those segments have the breached
elevation attribute same as the output vector points. I needed such
output for my work. Maybe it will be of some use for others.

4. It is way slower than r.carve. Shell (I have got rid of bashisms I
hope) + Awk + standard UNIX tools.

See the v.breach manual for more details.

Maciek

Great work Maciej!

On Tuesday 13 March 2007 13:06, Maciej Sieczka wrote:

Hi

I have submitted 2 new scripts for GRASS 6.x to GRASS WIKI
http://grass.gdf-hannover.de/wiki/GRASS_AddOns:

v.line.center creates a points vector map with each point located in
the middle of the length of one input vector line.

So this script locates a line's midpoint, and puts a new point there? Does
this point have the same attributes as the line which was used as the input?

v.breach creates vector maps of lines and points of continously
lowering elevation down the input watercourses, based on the input
raster DEM.

v.line.center is a simple self-explanatory tool.

v.breach is more complex. It is similar to r.carve -n, with the
following differences:

1. It takes the direction of input vector lines into account; which
means it is less prone to artifacts in the input DEM but more demanding
to input watercourses. As a result you can breach DEM even against the
slope, if that's needed ;).

cool. any examples yet?

2. It does not breach the DEM itself, but outputs vector points which
have the breached elevation attribute stored in the table. These points
can be used as additional data for interpolating more hydrologicaly
sound DEM from scratch, or rasterized and burned into the input DEM
manually (v.to.rast, r.mapcalc).

3. It also outputs vector lines, which are the input vector
watercourses segmented one segment per each DEM cell through which a
given input watercourse flows. Those segments have the breached
elevation attribute same as the output vector points. I needed such
output for my work. Maybe it will be of some use for others.

4. It is way slower than r.carve. Shell (I have got rid of bashisms I
hope) + Awk + standard UNIX tools.

See the v.breach manual for more details.

Maciek

Did this approach allow you to use RST in complex terrain with drainage
enforcement- to create a better DEM than was previously possible? I recall
severall discussions pertaining to the creation of DEM from difficult input
points, specifically with the RST interpolator.

Looking forward to trying these new modules soon,

--
Dylan Beaudette
Soils and Biogeochemistry Graduate Group
University of California at Davis
530.754.7341

Dylan Beaudette wrote:

Great work Maciej!

On Tuesday 13 March 2007 13:06, Maciej Sieczka wrote:

Hi

I have submitted 2 new scripts for GRASS 6.x to GRASS WIKI
http://grass.gdf-hannover.de/wiki/GRASS_AddOns:

v.line.center creates a points vector map with each point located in
the middle of the length of one input vector line.

So this script locates a line's midpoint, and puts a new point there?

Yes.

Does this point have the same attributes as the line which was used as the input?

It does not copy the attributes (I didn't need that and had no time for
that), but it preserves the category numbers. And since there is one
output point per one input line, you can use the db.copy and
v.db.connect to attach a table of the input vector to it.

Any layer can be used for input. But due to v.segment, the output will
always be in layer 1. I guess v.category option=chlayer could help
here, if needed.

There is a brief manpage provided with the script.

v.breach creates vector maps of lines and points of continously
lowering elevation down the input watercourses, based on the input
raster DEM.

v.line.center is a simple self-explanatory tool.

v.breach is more complex. It is similar to r.carve -n, with the
following differences:

1. It takes the direction of input vector lines into account; which
means it is less prone to artifacts in the input DEM but more demanding
to input watercourses. As a result you can breach DEM even against the
slope, if that's needed ;).

cool. any examples yet?

Nope. I have tested it and it worked. Let me know in case of any problems.

2. It does not breach the DEM itself, but outputs vector points which
have the breached elevation attribute stored in the table. These points
can be used as additional data for interpolating more hydrologicaly
sound DEM from scratch, or rasterized and burned into the input DEM
manually (v.to.rast, r.mapcalc).

3. It also outputs vector lines, which are the input vector
watercourses segmented one segment per each DEM cell through which a
given input watercourse flows. Those segments have the breached
elevation attribute same as the output vector points. I needed such
output for my work. Maybe it will be of some use for others.

4. It is way slower than r.carve. Shell (I have got rid of bashisms I
hope) + Awk + standard UNIX tools.

See the v.breach manual for more details.

Did this approach allow you to use RST in complex terrain with drainage
enforcement- to create a better DEM than was previously possible? I recall
severall discussions pertaining to the creation of DEM from difficult input
points, specifically with the RST interpolator.

I haven't tried it with RST interpolator.

Looking forward to trying these new modules soon,

Cheers! Please drop me line how it went.

A note which I forgot to add previously:

v.breach is EXTREMELY verbose. I did not have time for testing how the
silent flag and GRASS variables for verbosity control would affect the
module performance in GRASS 6.2.1. I seem to remember that not all the
verbosity control measures are available inb 6.2.1 which are 6.3 (I use
6.3 in my daily work). I will be grateful for suggestions which of the
verbosity control stuff I could use in v.breach not to break it for
6.2.1, or if there is actaully nothing to be affraid of.

Maciek