Provided by: grass-doc_6.4.3-3_all bug

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