[GRASS-dev] Unresolved directions in r.fill.dir

Hi all,

r.fill.dir with the bellow artificial DEM leaves part of the directions unresolved and this area is marked in areas, although the area is filled in the output. Here is the code to reproduce:

g.region n=220750 s=220000 w=638300 e=639000 nsres=1 ewres=1 rows=750 cols=700 -p
r.mapcalc “hills = 500 * sin(row()) + 500 * sin(col())”
r.fill.dir input=hills output=filled direction=directions areas=areas

In r71809, I have committed a fix which transforms these unresolved directions to NULLs because in the previous implementation (current 7.4svn and older) internal representation of angles was leaking outside of the module.

I have 2 questions:

Should I backport r71809 to 7.4?

Should we pursue this issue further to resolve why these edge cases are not resolved, although they are filled? Does anybody has suggestions at this point? (Paper with the method is linked in the doc.)

Thank you,
Vaclav

https://trac.osgeo.org/grass/changeset/71809
https://grass.osgeo.org/grass74/manuals/r.fill.dir.html

Hi Vaclav,

On Sun, Nov 26, 2017 at 1:31 AM, Vaclav Petras <wenzeslaus@gmail.com> wrote:

Hi all,

r.fill.dir with the bellow artificial DEM leaves part of the directions unresolved and this area is marked in areas, although the area is filled in the output. Here is the code to reproduce:

g.region n=220750 s=220000 w=638300 e=639000 nsres=1 ewres=1 rows=750 cols=700 -p
r.mapcalc “hills = 500 * sin(row()) + 500 * sin(col())”
r.fill.dir input=hills output=filled direction=directions areas=areas

In r71809, I have committed a fix which transforms these unresolved directions to NULLs because in the previous implementation (current 7.4svn and older) internal representation of angles was leaking outside of the module.

I have 2 questions:

Should I backport r71809 to 7.4?

For me, the fix makes sense.

Should we pursue this issue further to resolve why these edge cases are not resolved, although they are filled? Does anybody has suggestions at this point? (Paper with the method is linked in the doc.)

I don’t think it is worth the pursue the issue of directions any further. The module is based on rather old, not to say outdated, methods from the 1980’s. These methods were developed for DEMs created from contour lines which in turn were determined by land surveyors. Back then there was nothing like SRTM or LiDAR.

r.hydrodem offers a more advanced method to remove sinks by a combination of filling and carving.

Directions can also be obtained with r.slope.aspect or with the hydrological modules r.watershed, r.stream.extract, r.terraflow. Regarding hydrology, main flow directions may differ between modules and settings and to directions from r.slope.aspect, but all of them are valid according to the logic of the underlying algorithm and settings.

Markus M

Thank you,
Vaclav

https://trac.osgeo.org/grass/changeset/71809
https://grass.osgeo.org/grass74/manuals/r.fill.dir.html


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

On Sun, Nov 26, 2017 at 4:04 PM, Markus Metz
<markus.metz.giswork@gmail.com> wrote:

Hi Vaclav,

On Sun, Nov 26, 2017 at 1:31 AM, Vaclav Petras <wenzeslaus@gmail.com> wrote:

Hi all,

r.fill.dir with the bellow artificial DEM leaves part of the directions
unresolved and this area is marked in areas, although the area is filled in
the output. Here is the code to reproduce:

g.region n=220750 s=220000 w=638300 e=639000 nsres=1 ewres=1 rows=750
cols=700 -p
r.mapcalc "hills = 500 * sin(row()) + 500 * sin(col())"
r.fill.dir input=hills output=filled direction=directions areas=areas

In r71809, I have committed a fix which transforms these unresolved
directions to NULLs because in the previous implementation (current 7.4svn
and older) internal representation of angles was leaking outside of the
module.

I have 2 questions:

Should I backport r71809 to 7.4?

For me, the fix makes sense.

Should we pursue this issue further to resolve why these edge cases are
not resolved, although they are filled? Does anybody has suggestions at this
point? (Paper with the method is linked in the doc.)

I don't think it is worth the pursue the issue of directions any further.
The module is based on rather old, not to say outdated, methods from the
1980's. These methods were developed for DEMs created from contour lines
which in turn were determined by land surveyors. Back then there was nothing
like SRTM or LiDAR.

r.hydrodem offers a more advanced method to remove sinks by a combination of
filling and carving.

Why don't we move r.hydrodem to core? Is there any reason to keep it in addons?

Anna

Directions can also be obtained with r.slope.aspect or with the hydrological
modules r.watershed, r.stream.extract, r.terraflow. Regarding hydrology,
main flow directions may differ between modules and settings and to
directions from r.slope.aspect, but all of them are valid according to the
logic of the underlying algorithm and settings.

Markus M

Thank you,
Vaclav

https://trac.osgeo.org/grass/changeset/71809
https://grass.osgeo.org/grass74/manuals/r.fill.dir.html

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

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

On Sun, Nov 26, 2017 at 10:12 PM, Anna Petrášová <kratochanna@gmail.com> wrote:

On Sun, Nov 26, 2017 at 4:04 PM, Markus Metz
<markus.metz.giswork@gmail.com> wrote:

Hi Vaclav,

On Sun, Nov 26, 2017 at 1:31 AM, Vaclav Petras <wenzeslaus@gmail.com> wrote:

Hi all,

r.fill.dir with the bellow artificial DEM leaves part of the directions
unresolved and this area is marked in areas, although the area is filled in
the output. Here is the code to reproduce:

g.region n=220750 s=220000 w=638300 e=639000 nsres=1 ewres=1 rows=750
cols=700 -p
r.mapcalc “hills = 500 * sin(row()) + 500 * sin(col())”
r.fill.dir input=hills output=filled direction=directions areas=areas

In r71809, I have committed a fix which transforms these unresolved
directions to NULLs because in the previous implementation (current 7.4svn
and older) internal representation of angles was leaking outside of the
module.

I have 2 questions:

Should I backport r71809 to 7.4?

For me, the fix makes sense.

Should we pursue this issue further to resolve why these edge cases are
not resolved, although they are filled? Does anybody has suggestions at this
point? (Paper with the method is linked in the doc.)

I don’t think it is worth the pursue the issue of directions any further.
The module is based on rather old, not to say outdated, methods from the
1980’s. These methods were developed for DEMs created from contour lines
which in turn were determined by land surveyors. Back then there was nothing
like SRTM or LiDAR.

r.hydrodem offers a more advanced method to remove sinks by a combination of
filling and carving.

Why don’t we move r.hydrodem to core? Is there any reason to keep it in addons?

r.hydrodem needs a testsuite to be moved to core.

Markus M

Anna

Directions can also be obtained with r.slope.aspect or with the hydrological
modules r.watershed, r.stream.extract, r.terraflow. Regarding hydrology,
main flow directions may differ between modules and settings and to
directions from r.slope.aspect, but all of them are valid according to the
logic of the underlying algorithm and settings.

Markus M

Thank you,
Vaclav

https://trac.osgeo.org/grass/changeset/71809
https://grass.osgeo.org/grass74/manuals/r.fill.dir.html


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


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