[GRASS-user] Re: v.net.salesman unreachable nodes

Joseph Guillaume josephguillaume at gmail.com
Fri Aug 3 12:44:19 EDT 2007

Thanks everybody!

It turns out my road network *was* faulty in the first place - the point
features were well placed, but the roads were interrupted by bad
intersections, as shown by v.digit (which btw, seems to be using much more
memory in the latest cvs snapshot than in debian unstable version 6.2 -
~700MB where previously it didn't even have to swap)

I fixed this using v.clean's snap on just the road network which apparently
hadn't worked previously because I'd forgotten to specify a threshold, and
the default wasn't sufficient. Snapping the lines meant that some of the
previously ok features were now off the line, which is where the connect
came in.

The v.net connect tool in the latest CVS snapshot worked like a charm
(though the provided cvs debian package was too old - you weren't kidding
that it was a new feature :-P), and the worked example was a perfect guide

I then went back and tried to follow the rest of the connecting instructions
in the tutorial (p89), but it didn't quite work as well as the new tool.
Looks like I started using GRASS at just the right time for my problems... I
still managed to get a few shortest paths working where previously I was
getting nothing - the main problem definitely was with the dataset.

Thanks for the links to other datasets. In this particular case though, I
wanted to clean up the one I had, because it's a university-provided dataset
of the local region. They may come in handy later though :-)

Thanks again!


On 8/3/07, Joseph Guillaume <josephguillaume at gmail.com> wrote:
> Hi,
> I'm trying to run a travelling salesman analysis between point features on
> a road map, but it tells me that two nodes are unreachable from one another,
> which is a fatal error.
> I've successfully done this exact analysis using ARC/View, but I'm trying
> to find an OSS alternative that works on Debian - and it seems GRASS is the
> only software currently able to do network analyses.
> I patched together two ESRI shapefile datasets, following the Grass 6.0
> v1.2 tutorial.
> I tried linking the attributes to the original datasets and tried without
> linking.
> I tried putting the new points on both the same layer and a new layer.
> I tried running every single v.clean function on both the original and
> patched datasets.
> I am certain that all the points are actually on the network.
> I've searched all mailing lists, reference materials, and bugtracker, but
> didn't find anything explicitly related to unreachable nodes.
> Assuming the error message does mean that the map I am using has segments
> disconnected from the rest of the network, the questions are:
> * How do I detect them and remove them?
> The node numbers given don't match the cat attribute, so I assumed they
> referred to the id attribute. The two nodes referred to by id are however
> connected to each other (directly) and to the main part of the network. I
> suspect the node numbers therefore don't correspond to any attribute as
> such, but are rather internal. In that case, how do I identify the actual
> nodes/segments responsible?
> * Shouldn't the algorithm be tolerant of such errors anyway?
> I checked, and none of the relevant nodes are actually within segments I
> can see are disconnected, so the analysis results should be the same if the
> algorithm ignored the error... Is this perhaps because of the heuristics
> used to solve this NP-hard problem? Does anyone know what ArcView does
> differently?
> Any ideas?
> Cheers,
> Joseph Guillaume
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/grass-user/attachments/20070804/bf0147eb/attachment.html

More information about the grass-user mailing list