v.net.distance - from feature was not reachable

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

v.net.distance - from feature was not reachable

daniel mcinerney-2
Hi List,

We are using v.net.distance to calculate the shortest path between two
points on a river network, but have been experiencing some issues in
both grass 7.4 and 7.9. In some instances, we need to add a new vector
line (stream) to the river network, which we have done using v.patch as
follows:

v.patch input=river_network,stream output=river_network_with_stream

We then clean the output as follows:

v.clean input=river_network_with_stream
output=river_network_with_stream_clean tool=rmdupl,break,snap

We then run the following steps to calculate the shortest path (based on
the documentation [1]), where the vector dataset (start_point) is
located on the above-mentioned stream and the end_point is located on
the river network:

v.net input=river_network_with_stream_clean points=start_point
output=river_net operation=connect thresh=100 arc_layer=1 node_layer=2
--overwrite

v.net input=river_net points=end_point output=river_net2
operation=connect thresh=100 arc_layer=1 node_layer=3 --overwrite

The resulting output of v.category is:

  v.category input=river_net2 option=report
Layer: 1
type       count        min        max
point          0          0          0
line      102092          1     102072
boundary       0          0          0
centroid       0          0          0
area           0          0          0
face           0          0          0
kernel         0          0          0
all       102092          1     102072
Layer: 2
type       count        min        max
point          1          1          1
line           0          0          0
boundary       0          0          0
centroid       0          0          0
area           0          0          0
face           0          0          0
kernel         0          0          0
all            1          1          1
Layer: 3
type       count        min        max
point          1          1          1
line           0          0          0
boundary       0          0          0
centroid       0          0          0
area           0          0          0
face           0          0          0
kernel         0          0          0
all            1          1          1

At this point, I visually confirm that both points are connected to the
network and then run:

v.net.distance in=river_net2 out=river_path from_layer=2 to_layer=3
--overwrite

However, I (keep) get a warning ( WARNING: 1 'from' feature was not
reachable) and the output is empty. I have read a few posts online
reporting the same issue, but none of the proposed solutions have
helped. Is there a step that I am overlooking as I would have assumed
that once the network topology is built and the points are connected to
the network that it would have run correctly. I confirm that I can
calculate the shortest path when I use a start point that is the river
network (excluding the stream), so I am assuming that the issue is
related to the output of the v.patch?


Thanks in advance for any help or suggestions.

best regards,

Daniel.

[1]: https://grass.osgeo.org/grass76/manuals/v.net.distance.html

_______________________________________________
grass-user mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/grass-user
Reply | Threaded
Open this post in threaded view
|

Re: v.net.distance - from feature was not reachable

Markus Metz-3


On Wed, Nov 20, 2019 at 6:37 PM Daniel McInerney <[hidden email]> wrote:

>
> Hi List,
>
> We are using v.net.distance to calculate the shortest path between two
> points on a river network, but have been experiencing some issues in
> both grass 7.4 and 7.9. In some instances, we need to add a new vector
> line (stream) to the river network, which we have done using v.patch as
> follows:
>
> v.patch input=river_network,stream output=river_network_with_stream
>
> We then clean the output as follows:
>
> v.clean input=river_network_with_stream
> output=river_network_with_stream_clean tool=rmdupl,break,snap

I suspect that the two river networks are just not connected (connecting vertices do not match). This could be fixed by using a larger threshold value for the snap tool in v.clean. You can also check with v.net.components if the resultant river networks are correct.

Markus M
>

> We then run the following steps to calculate the shortest path (based on
> the documentation [1]), where the vector dataset (start_point) is
> located on the above-mentioned stream and the end_point is located on
> the river network:
>
> v.net input=river_network_with_stream_clean points=start_point
> output=river_net operation=connect thresh=100 arc_layer=1 node_layer=2
> --overwrite
>
> v.net input=river_net points=end_point output=river_net2
> operation=connect thresh=100 arc_layer=1 node_layer=3 --overwrite
>
> The resulting output of v.category is:
>
>   v.category input=river_net2 option=report
> Layer: 1
> type       count        min        max
> point          0          0          0
> line      102092          1     102072
> boundary       0          0          0
> centroid       0          0          0
> area           0          0          0
> face           0          0          0
> kernel         0          0          0
> all       102092          1     102072
> Layer: 2
> type       count        min        max
> point          1          1          1
> line           0          0          0
> boundary       0          0          0
> centroid       0          0          0
> area           0          0          0
> face           0          0          0
> kernel         0          0          0
> all            1          1          1
> Layer: 3
> type       count        min        max
> point          1          1          1
> line           0          0          0
> boundary       0          0          0
> centroid       0          0          0
> area           0          0          0
> face           0          0          0
> kernel         0          0          0
> all            1          1          1
>
> At this point, I visually confirm that both points are connected to the
> network and then run:
>
> v.net.distance in=river_net2 out=river_path from_layer=2 to_layer=3
> --overwrite
>
> However, I (keep) get a warning ( WARNING: 1 'from' feature was not
> reachable) and the output is empty. I have read a few posts online
> reporting the same issue, but none of the proposed solutions have
> helped. Is there a step that I am overlooking as I would have assumed
> that once the network topology is built and the points are connected to
> the network that it would have run correctly. I confirm that I can
> calculate the shortest path when I use a start point that is the river
> network (excluding the stream), so I am assuming that the issue is
> related to the output of the v.patch?
>
>
> Thanks in advance for any help or suggestions.
>
> best regards,
>
> Daniel.
>
> [1]: https://grass.osgeo.org/grass76/manuals/v.net.distance.html
>
> _______________________________________________
> grass-user mailing list
> [hidden email]
> https://lists.osgeo.org/mailman/listinfo/grass-user
_______________________________________________
grass-user mailing list
[hidden email]
https://lists.osgeo.org/mailman/listinfo/grass-user