Provided by: grass-doc_7.0.3-1build1_all bug

NAME

       v.net.visibility  - Performs visibility graph construction.

KEYWORDS

       vector, network, shortest path, visibility

SYNOPSIS

       v.net.visibility
       v.net.visibility --help
       v.net.visibility   input=name  output=name   [coordinates=east,north]    [visibility=name]
       [--overwrite]  [--help]  [--verbose]  [--quiet]  [--ui]

   Flags:
       --overwrite
           Allow output files to overwrite existing files

       --help
           Print usage summary

       --verbose
           Verbose module output

       --quiet
           Quiet module output

       --ui
           Force launching GUI dialog

   Parameters:
       input=name [required]
           Name of input vector map
           Or data source for direct OGR access

       output=name [required]
           Name for output vector map

       coordinates=east,north
           Coordinates

       visibility=name
           Name of input vector map containing visable points
           Add points after computing the visibility graph

DESCRIPTION

       v.net.visibility computes the visibility graph of a vector  map  containing  lines,  areas
       (boundaries)  and  points.  The  visibility graph is the graph where the nodes are the end
       point of the lines, boundaries or simply points. There is an edge  between  two  nodes  if
       they  are  ’visible’  to  each  other. Two nodes are visibible if there are no segments in
       between of them, i.e. the edge does not intersect any line or boundary in the vector  map.
       This  is  useful  to  compute the shortest path in a vector map from any two points. To do
       this, first you need to compute the visibility graph and from that to compute the shortest
       path using v.net.path or d.path.

       IMPORTANT:  the  algorithm  doesn’t  work  well  with  intersecting  lines  (that includes
       overlapping)

NOTES

       If you compute a shortest path after computing the visibility graph you will  notice  that
       this  path  might  go through a vertex of a line. If this is not what you wanted you might
       need to process the map in v.buffer, initially whith a small value. Example:
       v.buffer input=map output=bufferedmap buffer=1 type=point,line,area,boundary

       The first argument is the input map. It supports lines, boundaries (so, areas) and points.
       For  the  algorithm   was  written to work with lines and boundaries not intersecting each
       other (that includes overlapping).
       The resulting map containing the visibility graph is given in the output map.

       If you need to add additional points to compute a shortest path  between  them  afterwards
       you can use the coordinates parameter, e.g.:
       coordinates=25556200,6686400,25556400,6686600
       where  25556200,6686400 are the coordinate of the first point and 25556400,6686600 are the
       coordinates of the second point. Of course you can give as many points as you  need.  They
       will be added to the visibility graph and edges from them will be computed. You can always
       add those  points  after  computing  the  visibility  graph.  Simply  use  the  visibility
       parameter.  The  input  will  be  the  original  vector  map, the vis will be the computed
       visibility graph and the output the new visibility graph which will be the vis +  the  new
       points given with coordinate (edges will be computed as well).
       v.net.visibility input=map visibility=vis_map output=new_vis_map \
             coordinates=25556200,6686400,25556400,6686600

EXAMPLES

   Example 1
       A simple example (North Carolina sample data) showing how to use the module:
       v.extract input=zipcodes_wake output=areas_7_11_25 cats=7,11,25
       g.region vector=zipcodes_wake
       d.mon wx0
       d.vect areas_7_11_25
       v.net.visibility input=areas_7_11_25 output=graph
       d.vect graph
       d.vect areas_7_11_25 color=red type=boundary

   Example 2
       An example on how to use v.buffer along with the module:
       v.buffer input=lines output=buffered_lines buffer=1
       v.net.visibility input=buffered_lines output=graph
       d.vect graph
       d.vect lines col=red

   Example 3
       An  example on how to use the coordinate parameter. This will compute the visibility graph
       of the vector map lines with the point 2555678,6686343:
       v.net.visibility input=lines output=graph coordinates=2555678,6686343
       d.vect graph
       d.vect lines col=red

   Example 4
       An example (North Carolina sample data) on how to use the coordinate  parameter  with  the
       vis  parameter.   Here  the  vector  map  graph is computed then a new visibility graph is
       computed from it with the point 669547.97,208348.20 extra:
       v.extract input=zipcodes_wake output=areas_7_11_25 cats=7,11,25
       g.region vector=zipcodes_wake
       d.mon wx0
       d.vect areas_7_11_25
       v.net.visibility input=zipcodes_wake output=graph
       v.net.visibility input=zipcodes_wake visibility=graph output=new_graph \
             coordinates=669547.97,208348.20
       d.erase
       d.vect areas_7_11_25
       echo "symbol basic/star 20 669547.97 208348.20 black red" | d.graph -m
       d.vect new_graph
       d.vect areas_7_11_25 color=red type=boundary

   Example 5
       An example for connections of points (Spearfish):
       v.net.visibility input=archsites output=graph
       g.region vector=archsites
       d.mon wx0
       d.vect graph
       d.vect archsites col=red

KNOWN ISSUES

       In some cases when 3 points or nodes are collinear,  some  wrong  edges  are  added.  This
       happens  only  really rarly and shouldn’t be a big problem. When two points have the exact
       same x coordinate and are visible, some wrong edges are added.

SEE ALSO

        d.path, v.net, v.net.alloc, v.net.iso, v.net.salesman, v.net.steiner, v.to.db

AUTHOR

       Maximilian Maldacker
       Mentor: Wolf Bergenheim

       Last changed: $Date: 2015-05-11 02:16:13 +0200 (Mon, 11 May 2015) $

       Main index | Vector index | Topics index | Keywords index | Full index

       © 2003-2016 GRASS Development Team, GRASS GIS 7.0.3 Reference Manual