[GRASS-user] v.net.iso - service area

Johannes Sommer johann.online at gmx.de
Wed May 12 15:19:59 EDT 2010


Hi all,

I cannot follow the explanation of David regarding the endpoints but the
following was my approach.

I didin't find a GRASS-only-way extracting the endpoints of a network
graph (or part of it), but with PostGIS it worked.

I thought of a geometry of a network graph, that is only made of edges
and nodes. When you intersect all of these points with each other and take
only those whose intersection count is 1 you have the endpoints of a
network graph.

The GRASS part:
1. check for double *line* geometries resulting from v.net.iso and clean
them ("v.clean tool=rmdupl")
2. extract the nodes of the network graph with "v.to.points -n" (do not
clean double geometries here!)
3. export nodes with v.out.ogr to PostGIS

PostGIS:
---- SQL
CREATE TABLE endpoints_of_network_graph AS
(SELECT count(*), st_collect(a.wkb_geometry)
  FROM nodes a, nodes b
WHERE st_intersects(a.wkb_geometry, b.wkb_geometry)
GROUP BY a.wkb_geometry
HAVING count(*) = 1);
--- end of SQL

Is it possible to translate the PostGIS-part into "GRASSish"? I haven't
found any function that counts intersections in GRASS.

regards,
Johannes

David Mahoney schrieb:
> On Sat, 2010-04-10 at 08:16 +1000, Richard Chirgwin wrote:
>   
>> David,
>>
>> I'd just like to confirm the process ...
>>
>> 1. Obtain points you wish to use as the service area edge nodes (I will 
>> call this vector "Limit").
>> 2. Run v.delaunay to create a vector that includes the outline 
>> (map=Delaunay).
>> 3. Run v.net to connect Limit to Delaunay (map=Network)
>> 4. Run v.net.salesman on Network to create the final service area map.
>>
>> This seemed to work fine for me in Spearfish.
>>
>> One question - I created the "point set" manually. But if have a network 
>> of lines, what's the best way to create a point vector from the line ends?
>>
>>     
>
> As I recall, I parsed the output of v.build using the dump option, and
> passed that into v.extract.
>
> There are probably a bunch of edge cases where this approach fails
> though. The one that comes to mind is the case where there is a section
> of a service area that is strongly convex that protrudes into another
> service area.
>
> David
>
>   



More information about the grass-user mailing list