Provided by: grass-doc_6.4.3-3_all
NAME
v.net.iso - Splits net by cost isolines. Splits net to bands between cost isolines (direction from centre). Centre node must be opened (costs >= 0). Costs of centre node are used in calculation.
KEYWORDS
vector, network, isolines
SYNOPSIS
v.net.iso v.net.iso help v.net.iso [-g] input=name output=name [type=string[,string,...]] [alayer=integer] [nlayer=integer] [afcolumn=name] [abcolumn=name] [ncolumn=name] ccats=range costs=integer[,integer,...] [--overwrite] [--verbose] [--quiet] Flags: -g Use geodesic calculation for longitude-latitude locations --overwrite Allow output files to overwrite existing files --verbose Verbose module output --quiet Quiet module output Parameters: input=name Name of input vector map output=name Name for output vector map type=string[,string,...] Arc type Options: line,boundary Default: line,boundary alayer=integer Arc layer A single vector map can be connected to multiple database tables. This number determines which table to use. Default: 1 nlayer=integer Node layer A single vector map can be connected to multiple database tables. This number determines which table to use. Default: 2 afcolumn=name Arc forward/both direction(s) cost column (number) abcolumn=name Arc backward direction cost column (number) ncolumn=name Node cost column (number) ccats=range Category values Categories of centres (points on nodes) to which net will be allocated. Layer for this categories is given by nlayer option. costs=integer[,integer,...] Costs for isolines
DESCRIPTION
v.net.iso splits a network into bands between cost isolines (distance from center). Center nodes must be opened (costs >= 0). The costs of center nodes are used in the calculation. Costs may be either line lengths, or attributes saved in a database table. These attribute values are taken as costs of whole segments, not as costs to traverse a length unit (e.g. meter) of the segment. For example, if the speed limit is 100 km / h, the cost to traverse a 10 km long road segment must be calculated as length / speed = 10 km / (100 km/h) = 0.1 h. Supported are cost assignments for both arcs and nodes, and also different costs for both directions of a vector line. For areas, costs will be calculated along boundary lines. The input vector needs to be prepared with v.net operation=connect in order to connect points representing center nodes to the network.
NOTES
Nodes and arcs can be closed using cost = -1. Nodes must be on the isolines.
EXAMPLES
The map must contain at least one center (point) on the vector network which can be patched into with v.net. Isonetwork using distance: Isonetwork using time: Subdivision of a network using distance: # Spearfish # start node: echo "591280.5|4926396.0|1" | v.in.ascii in=- out=startnode g.copy vect=roads,myroads # connect point to network v.net myroads points=startnode out=myroads_net op=connect thresh=200 # define iso networks using distance: v.net.iso input=myroads_net output=myroads_net_iso ccats=1-100000 costs=1000,2000,5000 The network is divided into 4 categories: v.category myroads_net_iso option=report # ... reports 4 categories: #cat | distance from point in meters #1 0 - < 1000 #2 1000 - < 2000 #3 2000 - < 5000 #4 >= 5000 To display the result, run for example: g.region n=4928200 s=4922300 w=589200 e=596500 d.mon x0 d.vect myroads_net_iso col=blue cats=1 d.vect myroads_net_iso col=green cats=2 d.vect myroads_net_iso col=orange cats=3 d.vect myroads_net_iso col=magenta cats=4 d.vect myroads_net col=red icon=basic/triangle fcol=green size=12 layer=2 Subdivision of a network using traveling time: Prepare the network as above: # Spearfish # start node: echo "591280.5|4926396.0|1" | v.in.ascii in=- out=startnode g.copy vect=roads,myroads # connect point to network v.net myroads points=startnode out=myroads_net op=connect thresh=200 Define costs as traveling time dependent on speed limits: # set up costs # create unique categories for each road in layer 3 v.category in=myroads_net out=myroads_net_time opt=add cat=1 layer=3 type=line # add new table for layer 3 v.db.addtable myroads_net_time layer=3 col="cat integer,label varchar(43),length double precision,speed double precision,cost double precision,bcost double precision" # copy road type to layer 3 v.to.db myroads_net_time layer=3 qlayer=1 opt=query qcolumn=label columns=label # upload road length in miles v.to.db myroads_net_time layer=3 type=line option=length col=length unit=miles # set speed limits in miles / hour v.db.update myroads_net_time layer=3 col=speed val="5.0" v.db.update myroads_net_time layer=3 col=speed val="75.0" where="label='interstate'" v.db.update myroads_net_time layer=3 col=speed val="75.0" where="label='primary highway, hard surface'" v.db.update myroads_net_time layer=3 col=speed val="50.0" where="label='secondary highway, hard surface'" v.db.update myroads_net_time layer=3 col=speed val="25.0" where="label='light-duty road, improved surface'" v.db.update myroads_net_time layer=3 col=speed val="5.0" where="label='unimproved road'" # define traveling costs as traveling time in minutes: # set forward costs v.db.update myroads_net_time layer=3 col=cost val="length / speed * 60" # set backward costs v.db.update myroads_net_time layer=3 col=bcost val="length / speed * 60" # define iso networks using traveling time: v.net.iso input=myroads_net_time output=myroads_net_iso_time alayer=3 nlayer=2 afcol=cost abcol=bcost ccats=1-100000 costs=1,2,5 To display the result, run for example: # add table with labels and coloring v.db.addtable myroads_net_iso_time columns="cat integer,trav_time varchar(20),GRASSRGB varchar(11)" # labels v.db.update map=myroads_net_iso_time layer=1 column=trav_time value="0 - 1" where="cat = 1" v.db.update map=myroads_net_iso_time layer=1 column=trav_time value="1 - 2" where="cat = 2" v.db.update map=myroads_net_iso_time layer=1 column=trav_time value="2 - 5" where="cat = 3" v.db.update map=myroads_net_iso_time layer=1 column=trav_time value="> 5" where="cat = 4" # colors # cats=1: blue v.db.update map=myroads_net_iso_time layer=1 column=GRASSRGB value="000:000:255" where="cat = 1" # cats=2: green v.db.update map=myroads_net_iso_time layer=1 column=GRASSRGB value="000:255:000" where="cat = 2" # cats=3: orange v.db.update map=myroads_net_iso_time layer=1 column=GRASSRGB value="255:128:000" where="cat = 3" # cats=4: magenta v.db.update map=myroads_net_iso_time layer=1 column=GRASSRGB value="255:000:255" where="cat = 4" # show results g.region n=4928200 s=4922300 w=589200 e=596500 d.mon x0 d.vect myroads_net_iso_time layer=1 -a rgb_col=GRASSRGB d.vect myroads_net col=red icon=basic/triangle fcol=green size=12 layer=2
SEE ALSO
d.path, v.net, v.net.alloc, v.net.path, v.net.salesman, v.net.steiner, v.patch
AUTHOR
Radim Blazek, ITC-Irst, Trento, Italy Documentation: Markus Neteler, Markus Metz Last changed: $Date: 2013-05-23 13:01:55 -0700 (Thu, 23 May 2013) $ Full index © 2003-2013 GRASS Development Team