[GRASS-user] Multiple v.net.path parameters

Daniel Bundala bundala at gmail.com
Mon Aug 17 11:38:42 EDT 2009


Hello Achim,

If I understand your description and image correctly, then the line
from 1 to 4 is one single line and nodes 2 and 3 lie on it. If this is
the case then the module does not find a path from, say, 1 to 5. The
reason is, as you mentioned in your email, that "the module runs
successfully, but only with a network, where every line ends with the
next node" and the module "ignores" intermediate nodes. I did not test
it, but I think you get the same behaviour with v.net.path as well. In
general, this is not a bug. The thing is that the line lengths/costs
are read from a table and may represent anything and so if you know
that the cost of traversing from 1 to 4 is X then this does not tell
you what the cost of traversing from 1 to 2 or 2-3 should be. So to
fix it, you need to break the lines that is, to break line 1-4 to
lines 1-2, 2-3, 3-4.

Hope this helps,
Daniel

On Mon, Aug 17, 2009 at 3:07 PM, achim<ak7 at jupiter.uni-freiburg.de> wrote:
> Hello Daniel (and others),
>
> I ran the module successfully, but only with a network, where every line
> ends with the next node.
>
> In attached example it is possible to calc path from 1 to 4 and from 5
> to 6, but not from 1 to 2,3,5,6 or from 5 to anywhere expect 6 and so on.
>
> Do you have an idea how to handle this?
>
> Especially: do you know if "breaking the lines" (eg. dark green one at
> point 5) is possible with networking techniques?
>
> Sorry for asking you directly, but I hopefully thought you are deep
> inside the topic at the moment.
>
> Thanks anyway for your work!
> Achim
>
>
>
> Daniel Bundala schrieb
>
>> Hello all,
>>
>> I have finished v.net.distance module as a part of my Google Summer of
>> Code project. The (source code of) module can be downloaded from grass
>> add-ons repository (vector/net.analyze). I recommend to download the
>> entire directory to avoid any compilation issues. Additionally, you
>> get an access to some latest network analysis modules! Anyway, simple
>> make command in the net.analyze directory should compile the modules
>> (and library). There is no documentation (yet), however, the interface
>> should be similar to the one used in v.net.path and/or v.distance.
>> Finally, here is a couple of nice pictures:
>>
>> http://people.ksp.sk/~dano/grass/nd.png
>> http://people.ksp.sk/~dano/grass/ndt.png
>> http://people.ksp.sk/~dano/grass/ndtd.png
>>
>> Blue and orange lines show the shortest length and time paths respectively.
>>
>> Best,
>> Daniel
>>
>> On Wed, Jul 1, 2009 at 5:56 PM, Moritz
>> Lennert<mlennert at club.worldonline.be> wrote:
>>> On 01/07/09 04:44, J. Holden wrote:
>>>> Hello,
>>>>
>>>> I am looking to use v.net.path to determine the distance of many
>>>> different points to many different other points on a network.
>>>>
>>>> Is it possible to send multiple parameters to v.net.path? For
>>>> instance, I have (in theory) 4 points connected to a network. I want
>>>> to find the distance of the line segments between points 1 and 4, 2
>>>> and 4, & 3 and 4.
>>>>
>>>> I want to: run v.net.path once by passing multiple parameters; get
>>>> vector line output of each of these three paths found by v.net.path
>>>> in one output file; calculate the distance of each line from the file
>>>> using v.to.db.
>>>>
>>>> Since this is not a module of GRASS which I have worked with in the
>>>> past, I am wondering if this is possible.
>>> Sure, as mentioned on the man page:
>>>
>>> "Nodes can be piped into the program from file or from stdin. The syntax is
>>> as follows:
>>>
>>> id start_point_category end_point_category
>>>
>>> or
>>>
>>> id start_point_x start_point_y end_point_x end_point_y"
>>>
>>>
>>> So to take your example, and assuming that 1,2,3,4 are category values of
>>> existing points:
>>>
>>> Create a file containing:
>>>
>>> 1 1 4
>>> 2 2 4
>>> 3 3 4
>>>
>>> and feed it to v.net.path with the file= parameter.
>>>
>>> You will then get one vector map with severals lines which have the category
>>> values used in the first column of your file.
>>>
>>> Moritz
>>> _______________________________________________
>>> grass-user mailing list
>>> grass-user at lists.osgeo.org
>>> http://lists.osgeo.org/mailman/listinfo/grass-user
>>>
>> _______________________________________________
>> grass-user mailing list
>> grass-user at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/grass-user
>


More information about the grass-user mailing list