[GRASS-SVN] r46794 - in grass/trunk/vector: v.net.alloc v.net.components v.net.iso v.net.path v.net.salesman v.net.steiner

svn_grass at osgeo.org svn_grass at osgeo.org
Mon Jun 27 03:49:20 EDT 2011


Author: mmetz
Date: 2011-06-27 00:49:20 -0700 (Mon, 27 Jun 2011)
New Revision: 46794

Added:
   grass/trunk/vector/v.net.alloc/v_net_alloc_time.png
   grass/trunk/vector/v.net.iso/vnetisotime.png
   grass/trunk/vector/v.net.salesman/vnetsalesmantime.png
   grass/trunk/vector/v.net.steiner/vnetsteinertime.png
Modified:
   grass/trunk/vector/v.net.alloc/v.net.alloc.html
   grass/trunk/vector/v.net.components/v.net.components.html
   grass/trunk/vector/v.net.iso/v.net.iso.html
   grass/trunk/vector/v.net.iso/vnetiso.png
   grass/trunk/vector/v.net.path/v.net.path.html
   grass/trunk/vector/v.net.path/vnetpath.png
   grass/trunk/vector/v.net.salesman/v.net.salesman.html
   grass/trunk/vector/v.net.salesman/vnetsalesman.png
   grass/trunk/vector/v.net.steiner/v.net.steiner.html
   grass/trunk/vector/v.net.steiner/vnetsteiner.png
Log:
update documentation

Modified: grass/trunk/vector/v.net.alloc/v.net.alloc.html
===================================================================
--- grass/trunk/vector/v.net.alloc/v.net.alloc.html	2011-06-26 18:30:12 UTC (rev 46793)
+++ grass/trunk/vector/v.net.alloc/v.net.alloc.html	2011-06-27 07:49:20 UTC (rev 46794)
@@ -26,91 +26,122 @@
 
 <h2>EXAMPLES</h2>
 
+<p>
+1. Subnetwork allocation using distance:
+<p>
+<img src="v_net_alloc.png" alt="v.net.alloc example using distance" border="1">
+<br>
+<p>
+2. Subnetwork allocation using traveling time:
+<p>
+<img src="v_net_alloc_time.png" alt="v.net.alloc example using time" border="1">
+<br>
+
+<p>
 Example 1: <em>Calculating subnets for 3 center nodes using distances</em>
 <div class="code"><pre>
-#Spearfish
+# Spearfish
 
 # center nodes:
 echo "591235.5|4926306.62|1
 596591.8|4917042.5|2
-602722.9|4923544.2|3" | v.in.ascii out=centernodes
+602722.9|4923544.2|3" | v.in.ascii in=- out=centernodes
 
 g.copy vect=roads,myroads
 
-#connect points to network
+# connect points to network
 v.net myroads points=centernodes out=myroads_net op=connect thresh=200
 
-# view map
-g.region vect=myroads_net
-d.mon x0
-d.vect myroads_net
-d.vect myroads_net col=red icon=basic/triangle fcol=green size=12 layer=2
-
 # allocate, specifying range of center cats (easier to catch all):
 v.net.alloc myroads_net out=myroads_net_alloc ccats=1-100000 nlayer=2
 
 # report categories
 v.category myroads_net_alloc option=report
+</pre></div>
 
+To display the result, run for example:
+
+<div class="code"><pre>
+# show result
+g.region vect=myroads_net
+d.mon x0
+d.vect myroads_net layer=1
+
 # the result has to be selected by category number of the relevant node:
-d.vect myroads_net_alloc cat=1 col=red
-d.vect myroads_net_alloc cat=2 col=green
-d.vect myroads_net_alloc cat=3 col=yellow
+d.vect myroads_net_alloc cat=1 col=red layer=1
+d.vect myroads_net_alloc cat=2 col=green layer=1
+d.vect myroads_net_alloc cat=3 col=yellow layer=1
+
+# center nodes
 d.vect myroads_net col=red icon=basic/triangle fcol=green size=12 layer=2
 </pre></div>
-<p>
 
-<img src="v_net_alloc.png" alt="v.net.alloc example" border="1">
-
 <p>
+Example 2: <em>Calculating subnets for 3 center nodes using traveling time</em><br>
 
-Example 2: <em>Calculating subnets for 3 center nodes using cost assignments in both 
-directions</em><br>
-
 <div class="code"><pre>
-#Spearfish
+# Spearfish
 
 # center nodes:
 echo "591235.5|4926306.62|1
 596591.8|4917042.5|2
-602722.9|4923544.2|3" | v.in.ascii out=centernodes
+602722.9|4923544.2|3" | v.in.ascii in=- out=centernodes
 
-# create unique categories for each road in layer 2
-v.category in=roads out=myroads opt=add cat=1 layer=2
+g.copy vect=roads,myroads
 
-# add new table for layer 2
-v.db.addtable myroads layer=2 col="cat integer,label varchar(43),length double precision,speed double precision,cost double precision,bcost double precision"
+# create lines map connecting points to network
+v.net myroads points=centernodes out=myroads_net op=connect thresh=500 alayer=1 nlayer=2
 
-# copy road type to layer 2
-v.to.db myroads layer=2 qlayer=1 opt=query qcolumn=label columns=label
+# set up costs
 
-# create lines map connecting points to network (take care of layers)
-v.net myroads points=centernodes out=myroads_net op=connect thresh=500 alayer=2 nlayer=1
+# 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
 
-# set up costs
+# 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 map=myroads_net layer=2 type=line option=length col=length unit=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 layer=2 col=speed val="5.0"
-v.db.update myroads_net layer=2 col=speed val="75.0" where="label='interstate'"
-v.db.update myroads_net layer=2 col=speed val="75.0" where="label='primary highway, hard surface'"
-v.db.update myroads_net layer=2 col=speed val="50.0" where="label='secondary highway, hard surface'"
-v.db.update myroads_net layer=2 col=speed val="25.0" where="label='light-duty road, improved surface'"
-v.db.update myroads_net layer=2 col=speed val="5.0" where="label='unimproved road'"
+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 hours:
+# define traveling costs as traveling time in minutes:
 
 # set forward costs
-v.db.update myroads_net layer=2 col=cost val="length / speed"
+v.db.update myroads_net_time layer=3 col=cost val="length / speed * 60"
 # set backward costs
-v.db.update myroads_net layer=2 col=bcost val="length / speed"
+v.db.update myroads_net_time layer=3 col=bcost val="length / speed * 60"
 
-# subnetowrk allocation with fastest paths
-v.net.alloc in=myroads_net afcol=cost abcol=bcost out=myroads_net_alloc ccats=1-3
+# subnetwork allocation with fastest paths
+v.net.alloc in=myroads_net_time alayer=3 nlayer=2 afcol=cost abcol=bcost out=myroads_net_alloc_time ccats=1-3
 </pre></div>
 
+To display the result, run for example:
+
+<div class="code"><pre>
+# show result
+g.region vect=myroads_net
+d.mon x0
+d.vect myroads_net type=line layer=1
+
+# the result has to be selected by category number of the relevant node:
+d.vect myroads_net_alloc_time cat=1 col=red layer=1
+d.vect myroads_net_alloc_time cat=2 col=green layer=1
+d.vect myroads_net_alloc_time cat=3 col=yellow layer=1
+
+# center nodes
+d.vect myroads_net_time col=red icon=basic/triangle fcol=green size=12 type=point layer=2
+</pre></div>
+
 <h2>SEE ALSO</h2>
 
 <em><a HREF="d.path.html">d.path</a></em>,
@@ -122,7 +153,8 @@
 
 <h2>AUTHOR</h2>
 
-Radim Blazek, ITC-Irst, Trento, Italy
+Radim Blazek, ITC-Irst, Trento, Italy<br>
+Documentation: Markus Neteler, Markus Metz
 
 
 <p><i>Last changed: $Date$</i>

Added: grass/trunk/vector/v.net.alloc/v_net_alloc_time.png
===================================================================
(Binary files differ)


Property changes on: grass/trunk/vector/v.net.alloc/v_net_alloc_time.png
___________________________________________________________________
Added: svn:mime-type
   + image/png

Modified: grass/trunk/vector/v.net.components/v.net.components.html
===================================================================
--- grass/trunk/vector/v.net.components/v.net.components.html	2011-06-26 18:30:12 UTC (rev 46793)
+++ grass/trunk/vector/v.net.components/v.net.components.html	2011-06-27 07:49:20 UTC (rev 46794)
@@ -21,7 +21,7 @@
 
 <h2>EXAMPLES</h2>
 
-Any road network should form a single strongly connected components. 
+Any road network should form a single strongly connected component. 
 Otherwise, it is impossible to travel between some places.
 <div class="code"><pre>
 v.net.components input=roads output=roads_components method=strong

Modified: grass/trunk/vector/v.net.iso/v.net.iso.html
===================================================================
--- grass/trunk/vector/v.net.iso/v.net.iso.html	2011-06-26 18:30:12 UTC (rev 46793)
+++ grass/trunk/vector/v.net.iso/v.net.iso.html	2011-06-27 07:49:20 UTC (rev 46794)
@@ -24,51 +24,55 @@
 Nodes must be on the isolines.
 
 
-<h2>EXAMPLE</h2>
+<h2>EXAMPLES</h2>
 
-Subdivision of a network into areas:<br>
-
 The map must contain at least one center (point) on the vector network 
 which can be patched into with <a HREF="v.net.html">v.net</a>.
 
+<p>
+Isonetwork using distance:
+<p>
+<img src="vnetiso.png" alt="v.net.iso example with distance" border="1">
+
+<p>
+Isonetwork using time:
+<p>
+<img src="vnetisotime.png" alt="v.net.iso example with traveling time" border="1">
+
+<p>
+<h4>Subdivision of a network using distance:</h4>
+
 <div class="code"><pre>
 # Spearfish
 
 # start node:
-echo "591280.5|4926396.0|1" | v.in.ascii out=startnode
+echo "591280.5|4926396.0|1" | v.in.ascii in=- out=startnode
 g.copy vect=roads,myroads
 
-#connect point to network
+# connect point to network
 v.net myroads points=startnode out=myroads_net op=connect thresh=200
 
-g.region vect=myroads_net
-d.mon x0
-d.vect myroads_net
-d.vect myroads_net col=red icon=basic/triangle fcol=green size=12 layer=2
-v.category myroads_net layer=2 op=print
-
-# specify range of center cats (easier to catch all):
+# define iso networks using distance:
 v.net.iso input=myroads_net output=myroads_net_iso ccats=1-100000 costs=1000,2000,5000
-v.category myroads_net_iso option=report
-# ... reports 4 categories:
 </pre></div>
 
-The network is 4 categories:
+The network is divided into 4 categories:
 
 <div class="code"><pre>
-cat | distance from point
-1          0 - 1000
-2       1000 - 2000
-3       2000 - 5000
-4            > 5000
+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
 </pre></div>
 
-To see the result, run for example:
+To display the result, run for example:
 
 <div class="code"><pre>
 g.region n=4928200 s=4922300 w=589200 e=596500
-d.erase
-d.vect myroads_net_iso
+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
@@ -76,8 +80,82 @@
 d.vect myroads_net col=red icon=basic/triangle fcol=green size=12 layer=2
 </pre></div>
 
-<img src="vnetiso.png" alt="v.net.iso example" border="1">
+<h4>Subdivision of a network using traveling time:</h4>
 
+Prepare the network as above:
+<div class="code"><pre>
+# 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
+</pre></div>
+
+Define costs as traveling time dependent on speed limits:
+<div class="code"><pre>
+# 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
+</pre></div>
+
+To display the result, run for example:
+
+<div class="code"><pre>
+# 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
+</pre></div>
+
 <h2>SEE ALSO</h2>
 
 <em><a HREF="d.path.html">d.path</a></em>,
@@ -91,6 +169,6 @@
 <h2>AUTHOR</h2>
 
 Radim Blazek, ITC-Irst, Trento, Italy<br>
-Documentation: Markus Neteler
+Documentation: Markus Neteler, Markus Metz
 
 <p><i>Last changed: $Date$</i>

Modified: grass/trunk/vector/v.net.iso/vnetiso.png
===================================================================
(Binary files differ)

Added: grass/trunk/vector/v.net.iso/vnetisotime.png
===================================================================
(Binary files differ)


Property changes on: grass/trunk/vector/v.net.iso/vnetisotime.png
___________________________________________________________________
Added: svn:mime-type
   + image/png

Modified: grass/trunk/vector/v.net.path/v.net.path.html
===================================================================
--- grass/trunk/vector/v.net.path/v.net.path.html	2011-06-26 18:30:12 UTC (rev 46793)
+++ grass/trunk/vector/v.net.path/v.net.path.html	2011-06-27 07:49:20 UTC (rev 46794)
@@ -78,63 +78,82 @@
 
 <h2>EXAMPLE</h2>
 
-Fastest path between two digitized nodes (Spearfish):
+Shortest (red) and fastest (blue) path between two digitized nodes (Spearfish):
 
+<p>
+<img src="vnetpath.png" alt="v.net.path example" border="1">
+
+<p>
 <div class="code"><pre>
-echo "1|601653.5|4922869.2|start
-2|593330.8|4924096.6|end" | v.in.ascii cat=1 x=2 y=3 out=startend col="cat integer, \
-                         east double precision, north double precision, label varchar(43)"
+# Spearfish
 
+echo "1|601955.1|4916944.9|start
+2|594385.6|4921565.2|end" | v.in.ascii in=- cat=1 x=2 y=3 out=startend col="cat integer, \
+                         east double precision, north double precision, label varchar(6)"
+
 v.db.select startend
 
-# create unique categories for each road in layer 2
-v.category in=roads out=myroads opt=add cat=1 layer=2
+g.copy vect=roads,myroads
 
-# add new table for layer 2
-v.db.addtable myroads layer=2 col="cat integer,label varchar(43),length double precision,speed double precision,forward double precision,backward double precision"
+# create lines map connecting points to network
+v.net myroads points=startend out=myroads_net op=connect thresh=500 alayer=1 nlayer=2
 
-# copy road type to layer 2
-v.to.db myroads layer=2 qlayer=1 opt=query qcolumn=label columns=label
+# set up costs
 
-# connect points to road network (take care of layers)
-v.net myroads points=startend out=myroads_net op=connect thresh=200 alayer=2 nlayer=1
+# 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 map=myroads_net layer=2 type=line option=length col=length unit=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 layer=2 col=speed val="5.0"
-v.db.update myroads_net layer=2 col=speed val="75.0" where="label='interstate'"
-v.db.update myroads_net layer=2 col=speed val="75.0" where="label='primary highway, hard surface'"
-v.db.update myroads_net layer=2 col=speed val="50.0" where="label='secondary highway, hard surface'"
-v.db.update myroads_net layer=2 col=speed val="25.0" where="label='light-duty road, improved surface'"
-v.db.update myroads_net layer=2 col=speed val="5.0" where="label='unimproved road'"
+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 hours:
+# define traveling costs as traveling time in minutes:
 
 # set forward costs
-v.db.update myroads_net layer=2 col=forward val="length / speed"
+v.db.update myroads_net_time layer=3 col=cost val="length / speed * 60"
 # set backward costs
-v.db.update myroads_net layer=2 col=backward val="length / speed"
+v.db.update myroads_net_time layer=3 col=bcost val="length / speed * 60"
 
+# ... the 'start' and 'end' nodes have category number 1 and 2
+
+# Shortest path: ID as first number, then cat1 and cat2
+echo "1 1 2" | v.net.path myroads_net_time alayer=3 nlayer=2 out=mypath
+
+# Fastest path: ID as first number, then cat1 and cat2
+echo "1 1 2" | v.net.path myroads_net_time alayer=3 nlayer=2 afcol=cost abcol=bcost out=mypath_time
+</pre></div>
+
+To display the result, run for example:
+
+<div class="code"><pre>
 g.region vect=myroads_net
 d.mon x0
 d.vect myroads_net
-d.vect startend col=red
+# show shortest path
+d.vect mypath col=red width=2
+# show fastest path
+d.vect mypath_time col=blue width=2
 
+# start and end point
 d.vect myroads_net icon=basic/triangle fcol=green size=12 layer=2
-d.vect myroads_net disp=cat type=point lsize=14 layer=2
-# ... the 'start' and 'end' nodes have category number 1 and 2
-
-# Fastest path: ID as first number, then cat1 and cat2
-echo "1 1 2" | v.net.path myroads_net afcol=forward abcol=backward out=mypath
-
-d.vect mypath col=red width=2
+d.font font=Vera
+d.vect startend disp=cat type=point lsize=14 layer=2
 </pre></div>
 
-<img src="vnetpath.png" alt="v.net.path example" border="1">
 
-
 <h2>SEE ALSO</h2>
 
 <em><a HREF="d.path.html">d.path</a></em>,
@@ -148,6 +167,6 @@
 <h2>AUTHOR</h2>
 
 Radim Blazek, ITC-Irst, Trento, Italy<br>
-Documentation: Markus Neteler
+Documentation: Markus Neteler, Markus Metz
 
 <p><i>Last changed: $Date$</i>

Modified: grass/trunk/vector/v.net.path/vnetpath.png
===================================================================
(Binary files differ)

Modified: grass/trunk/vector/v.net.salesman/v.net.salesman.html
===================================================================
--- grass/trunk/vector/v.net.salesman/v.net.salesman.html	2011-06-26 18:30:12 UTC (rev 46793)
+++ grass/trunk/vector/v.net.salesman/v.net.salesman.html	2011-06-27 07:49:20 UTC (rev 46794)
@@ -27,10 +27,24 @@
 <h2>EXAMPLE</h2>
 
 Traveling salesman for 6 digitized nodes (Spearfish):
+
 <p>
-Searching for the shortest path:
+Shortest path, along unimproved roads:
+<p>
+<img src="vnetsalesman.png" alt="v.net.salesman example using distance" border="1">
 
+<p>
+Fastest path, along highways:
+<p>
+<img src="vnetsalesmantime.png" alt="v.net.salesman example using time" border="1">
+
+<p>
+Searching for the shortest path using distance and the fastest path using 
+traveling time according to the speed limits of different road types:
+
 <div class="code"><pre>
+# Spearfish
+
 g.copy vect=roads,myroads
 
 # we have 6 locations to visit on our trip
@@ -39,7 +53,7 @@
 3|601845|4914981.9|c
 4|596270|4917456.3|d
 5|593330.8|4924096.6|e
-6|598005.5|4921439.2|f" | v.in.ascii cat=1 x=2 y=3 out=centers col="cat integer, \
+6|598005.5|4921439.2|f" | v.in.ascii in=- cat=1 x=2 y=3 out=centers col="cat integer, \
                          east double precision, north double precision, label varchar(43)"
 
 # verify data preparation
@@ -60,103 +74,66 @@
 # type       count        min        max
 # point          6          1          5
 
-# The network is now prepared. Visualize it
-g.region vect=myroads_net
-d.mon x0
-d.vect myroads_net
-d.vect -c centers icon=basic/triangle
-d.font verdana
-d.vect centers col=red disp=attr attrcol=label lsize=12
+# find the shortest path
+v.net.salesman myroads_net ccats=1-6 out=mysalesman_distance
 
-# run without traveling costs using line length
-v.net.salesman myroads_net ccats=1-6 out=mysalesman_shortest
-d.vect mysalesman_length col=green width=2
-d.vect centers col=red disp=attr attrcol=label lsize=12
-</pre></div>
+# set up costs as traveling time
 
-<p>
-Searching for the fastest path, using speed limits according to road type:
+# 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
 
-<div class="code"><pre>
-# we have 6 locations to visit on our trip
-echo "1|601653.5|4922869.2|a
-2|608284|4923776.6|b
-3|601845|4914981.9|c
-4|596270|4917456.3|d
-5|593330.8|4924096.6|e
-6|598005.5|4921439.2|f" | v.in.ascii in=- cat=1 x=2 y=3 out=centers col="cat integer, \
-                         east double precision, north double precision, label varchar(43)"
+# 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"
 
-# verify data preparation
-v.db.select centers
-v.category centers op=report
-# type       count        min        max
-# point          6          1          6
+# copy road type to layer 3
+v.to.db myroads_net_time layer=3 qlayer=1 opt=query qcolumn=label columns=label
 
-# create unique categories for each road in layer 2
-v.category in=roads out=myroads opt=add cat=1 layer=2
-
-# add new table for layer 2
-v.db.addtable myroads layer=2 col="cat integer,label varchar(43),length double precision,speed double precision,cost double precision,bcost double precision"
-
-# copy road type to layer 2
-v.to.db myroads layer=2 qlayer=1 opt=query qcolumn=label columns=label
-
-# create lines map connecting points to network (take care of layers)
-v.net myroads points=centers out=myroads_net op=connect thresh=500 alayer=2 nlayer=1
-v.category myroads_net op=report
-# Layer/table: 2/myroads_net_myroads_l_2
-# type       count        min        max
-# point          6          1          6
-# line         837          1          5
-#
-# Layer/table: 1/myroads_net_roads
-# type       count        min        max
-# point          0          0          0
-# line         837          1        825
-
-# The network is now prepared. Visualize it
-g.region vect=myroads_net
-d.mon x0
-d.vect myroads_net
-d.vect -c centers icon=basic/triangle
-d.font verdana
-d.vect centers col=red disp=attr attrcol=label lsize=12
-
-# set up costs
-
 # upload road length in miles
-v.to.db map=myroads_net layer=2 type=line option=length col=length unit=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 layer=2 col=speed val="5.0"
-v.db.update myroads_net layer=2 col=speed val="75.0" where="label='interstate'"
-v.db.update myroads_net layer=2 col=speed val="75.0" where="label='primary highway, hard surface'"
-v.db.update myroads_net layer=2 col=speed val="50.0" where="label='secondary highway, hard surface'"
-v.db.update myroads_net layer=2 col=speed val="25.0" where="label='light-duty road, improved surface'"
-v.db.update myroads_net layer=2 col=speed val="5.0" where="label='unimproved road'"
+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 hours:
+# define traveling costs as traveling time in minutes:
 
 # set forward costs
-v.db.update myroads_net layer=2 col=cost val="length / speed"
+v.db.update myroads_net_time layer=3 col=cost val="length / speed * 60"
 # set backward costs
-v.db.update myroads_net layer=2 col=bcost val="length / speed"
+v.db.update myroads_net_time layer=3 col=bcost val="length / speed * 60"
 
-# fastest path: traveling costs = length / speed = hours
-v.net.salesman myroads_net alayer=2 nlayer=1 afcol=cost ccats=1-6 out=mysalesman_fastest
+# find the fastest path
+v.net.salesman myroads_net_time alayer=3 nlayer=2 afcol=cost abcol=bcost ccats=1-6 out=mysalesman_time
+</pre></div>
 
-# with different columns for forward and backward costs:
-# result is identical to fastest path
-v.net.salesman myroads_net alayer=2 nlayer=1 afcol=cost abcol=bcost ccats=1-6 out=mysalesman_back
+To display the result, run for example:
 
-d.vect mysalesman_fastest col=green width=2
+<div class="code"><pre>
+# Display the results
+g.region vect=myroads_net
+
+# shortest path
+d.mon x0
+d.vect myroads_net
+d.vect centers -c icon=basic/triangle
+d.vect mysalesman_distance col=green width=2
+d.font Vera
 d.vect centers col=red disp=attr attrcol=label lsize=12
+
+# fastest path
+d.mon x1
+d.vect myroads_net
+d.vect centers -c icon=basic/triangle
+d.vect mysalesman_time col=green width=2
+d.font Vera
+d.vect centers col=red disp=attr attrcol=label lsize=12
 </pre></div>
 
-<img src="vnetsalesman.png" alt="v.net.salesman example" border="1">
 
-
 <h2>SEE ALSO</h2>
 
 <em><a HREF="d.path.html">d.path</a></em>,
@@ -170,7 +147,7 @@
 
 Radim Blazek, ITC-Irst, Trento, Italy<br>
 Markus Metz<br>
-Documentation: Markus Neteler
+Documentation: Markus Neteler, Markus Metz
 
 
 <p><i>Last changed: $Date$</i>

Modified: grass/trunk/vector/v.net.salesman/vnetsalesman.png
===================================================================
(Binary files differ)

Added: grass/trunk/vector/v.net.salesman/vnetsalesmantime.png
===================================================================
(Binary files differ)


Property changes on: grass/trunk/vector/v.net.salesman/vnetsalesmantime.png
___________________________________________________________________
Added: svn:mime-type
   + image/png

Modified: grass/trunk/vector/v.net.steiner/v.net.steiner.html
===================================================================
--- grass/trunk/vector/v.net.steiner/v.net.steiner.html	2011-06-26 18:30:12 UTC (rev 46793)
+++ grass/trunk/vector/v.net.steiner/v.net.steiner.html	2011-06-27 07:49:20 UTC (rev 46794)
@@ -27,17 +27,30 @@
 
 <h2>EXAMPLE</h2>
 
-Steiner tree for 6 digitized nodes (Spearfish), using traveling time as 
-costs:
+Steiner tree for 6 digitized nodes (Spearfish):
+<p>
+Shortest path, along unimproved roads:
+<p>
+<img src="vnetsteiner.png" alt="v.net.steiner example using distance" border="1">
 
+<p>
+Fastest path, along highways:
+<p>
+<img src="vnetsteinertime.png" alt="v.net.steiner example using time" border="1">
+
+
 <div class="code"><pre>
+# Spearfish
+
+g.copy vect=roads,myroads
+
 # we have 6 locations to allocate
 echo "1|601653.5|4922869.2|a
 2|608284|4923776.6|b
 3|601845|4914981.9|c
 4|596270|4917456.3|d
 5|593330.8|4924096.6|e
-6|598005.5|4921439.2|f" | v.in.ascii cat=1 x=2 y=3 out=centers col="cat integer, \
+6|598005.5|4921439.2|f" | v.in.ascii in=- cat=1 x=2 y=3 out=centers col="cat integer, \
                          east double precision, north double precision, label varchar(43)"
 
 v.db.select centers
@@ -45,62 +58,65 @@
 # type       count        min        max
 # point          6          1          6
 
-# create unique categories for each road in layer 2
-v.category in=roads out=myroads opt=add cat=1 layer=2
+# create lines map connecting points to network (on layer 2)
+v.net myroads points=centers out=myroads_net op=connect thresh=500
 
-# add new table for layer 2
-v.db.addtable myroads layer=2 col="cat integer,label varchar(43),length double precision,speed double precision,cost double precision"
+# set up costs as traveling time
 
-# copy road type to layer 2
-v.to.db myroads layer=2 qlayer=1 opt=query qcolumn=label columns=label
+# 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"
 
-# create lines map connecting points to network (take care of layers)
-v.net myroads points=centers out=myroads_net op=connect thresh=500 alayer=2 nlayer=1
-v.category myroads_net op=report
-# Layer/table: 2/myroads_net_myroads_l_2
-# type       count        min        max
-# point          6          1          6
-# line         837          1          5
-#
-# Layer/table: 1/myroads_net_roads
-# type       count        min        max
-# point          0          0          0
-# line         837          1        825
+# copy road type to layer 3
+v.to.db myroads_net_time layer=3 qlayer=1 opt=query qcolumn=label columns=label
 
-# set up costs
-
 # upload road length in miles
-v.to.db map=myroads_net layer=2 type=line option=length col=length unit=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 layer=2 col=speed val="5.0"
-v.db.update myroads_net layer=2 col=speed val="75.0" where="label='interstate'"
-v.db.update myroads_net layer=2 col=speed val="75.0" where="label='primary highway, hard surface'"
-v.db.update myroads_net layer=2 col=speed val="50.0" where="label='secondary highway, hard surface'"
-v.db.update myroads_net layer=2 col=speed val="25.0" where="label='light-duty road, improved surface'"
-v.db.update myroads_net layer=2 col=speed val="5.0" where="label='unimproved road'"
+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 hours:
+# define traveling costs as traveling time in minutes:
+v.db.update myroads_net_time layer=3 col=cost val="length / speed * 60"
 
-# set costs as traveling time
-v.db.update myroads_net layer=2 col=cost val="length / speed"
+# shortest path
+v.net.steiner myroads_net_time alayer=3 nlayer=2 tcats=1-6 out=mysteiner_distance
 
-# The network is now prepared.
+# fastest path
+v.net.steiner myroads_net_time alayer=3 nlayer=2 acol=cost tcats=1-6 out=mysteiner_time
+</pre></div>
+
+To display the result, run for example:
+
+<div class="code"><pre>
+# display the results
 g.region vect=myroads_net
+
+# shortest path
 d.mon x0
 d.vect myroads_net
 d.vect -c centers icon=basic/triangle
-d.font verdana
+d.font Vera
 d.vect centers col=red disp=attr attrcol=label lsize=12
+d.vect mysteiner_distance col=blue width=2
 
-v.net.steiner myroads_net alayer=2 nlayer=1 acol=cost tcats=1-6 out=mysteiner
-d.vect mysteiner col=blue width=2
+# fastest path
+d.mon x1
+d.vect myroads_net
+d.vect -c centers icon=basic/triangle
+d.font Vera
+d.vect centers col=red disp=attr attrcol=label lsize=12
+d.vect mysteiner_time col=blue width=2
 </pre></div>
 
-<img src="vnetsteiner.png" alt="v.net.steiner example" border="1">
 
-
 <h2>SEE ALSO</h2>
 
 <em><a HREF="d.path.html">d.path</a></em>,
@@ -113,7 +129,7 @@
 <h2>AUTHOR</h2>
 
 Radim Blazek, ITC-Irst, Trento, Italy<br>
-Documentation: Markus Neteler
+Documentation: Markus Neteler, Markus Metz
 
 
 <p><i>Last changed: $Date$</i>

Modified: grass/trunk/vector/v.net.steiner/vnetsteiner.png
===================================================================
(Binary files differ)

Added: grass/trunk/vector/v.net.steiner/vnetsteinertime.png
===================================================================
(Binary files differ)


Property changes on: grass/trunk/vector/v.net.steiner/vnetsteinertime.png
___________________________________________________________________
Added: svn:mime-type
   + image/png



More information about the grass-commit mailing list