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

NAME  - Visibility graph construction.


       vector, path, visibility

SYNOPSIS help   input=name   output=name    [coordinate=x,y[,x,y,...]]     [vis=string]
       [--overwrite]  [--verbose]  [--quiet]

           Allow output files to overwrite existing files

           Verbose module output

           Quiet module output

           Name of input vector map

           Name for output vector map

           One or more coordinates

           Add points after computing the vis graph

DESCRIPTION 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 the points. There is an edge between two nodes if
       they  are 'visible'. Two nodes are visibible if there is no segments in between them, i.e.
       the edge doesn't intersect any line or boundary in the  vector  map.  This  is  useful  to
       compute  the  sortest path in a vector map from any two points. To do this, first you need
       to compute the visibility graph and from it compute the shortest path using  or
       d.path.  IMPORTANT: the algorithm doesn't work well with intersecting lines (that includes

       If you compute a shortest path after computing the visibility graph you will  notice  that
       this  path might go through a vertix of a line. If this is not wanted you might to run the
       map through v.buffer first 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, boudaries (so areas)  and  points.
       For  the  algorithm  to  work lines and boundaries must not be intersecting (that includes
       The result 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
       coordinate parameter.
        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 want. 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 vis 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). input=map vis=vis_map output=new_vis_map \


       A simple example showing how to use the module input=lines output=graph
       d.vect graph
       d.vect lines col=red


       An example on how to use v.buffer with the module
       v.buffer input=lines output=buffered_lines buffer=1 input=buffered_lines output=graph
       d.vect graph
       d.vect lines col=red


       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 input=lines output=graph coordinate=2555678,6686343
       d.vect graph
       d.vect lines col=red


       An example 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
       2555678,6686343 extra input=lines output=graph
       d.vect graph
       d.vect lines col=red input=lines vis=graph output=new_graph \
       d.vect new_graph
       d.vect lines col=red


       An example for connections of points (Spearfish): input=archsites output=graph
       g.region vect=archsites
       d.mon x0
       d.vect graph
       d.vect archsites col=red


       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.




       Maximilian Maldacker
       Mentor: Wolf Bergenheim

       Last changed: $Date: 2013-05-23 13:01:55 -0700 (Thu, 23 May 2013) $

       Full index

       © 2003-2013 GRASS Development Team