[GRASS-dev] vector network questions

Moritz Lennert mlennert at club.worldonline.be
Sat Oct 6 14:00:34 PDT 2012


On 06/10/12 03:35, Michael Barton wrote:
> 2. The lack of ability to query a network vector is a bug I think.
> I'm guessing it's in v.what, but am not sure. Can you test to see if
> you cannot query it either?

I'll test when I get back to the office on Monday, but as a network 
vector is not different in essence from any other vector, either you can 
reproduce this querying issue with all vectors, or I would need much 
more precise info about what you are doing and what exactly is not working.

> 3. v.net.path works fine with your example, but I still don't know
> what the format should be when using cat values. Why 2 integers
> before the cat value?

As the man page indicates, you have the choice of two formats to feed 
the module the info about the path you want.

1) When you want to use nodes with cat values as start and end point, 
just indicate the cat of each.

id start_cat end_cat

2) When you want to use coordinates as start and end point, you indicate 
x,y of start then x,y of end

id start_x start_y end_x end_y

The 'id' is an arbitrary cat value that you attribute to the resulting path.

Each line represents one path going from its start to its end through 
the network.

> 4. I'm still not sure of the proper workflow to create a network from
> an existing vector of lines--like a road or stream network--assuming
> that I'm happy to use nodes at intersections in the original vector
> map as network nodes.

If you just want to use the intersections of the network, then v.net 
operation=nodes is what you need.
If you want to connect points to a network (example: points representing 
schools to the network of streets) then you have to use operation=connect.

The reasoning behind the second is that network analysis needs a 
topologically clean network, meaning that if you want to find the path 
form one node to another, these nodes have to be connected to the 
network for this to work. operation=connect does exactly that. If 
display your network after connection with nodes, displaying both the 
network on layer 1 and the nodes on layer 2, and you zoom very close to 
one of the nodes you connected, you will see that there is now a short 
line segment connecting the node to the nearest line of the network.


Moritz


More information about the grass-dev mailing list