GNU.WIKI: The GNU/Linux Knowledge Base

  [HOME] [PHP Manual] [HowTo] [ABS] [MAN1] [MAN2] [MAN3] [MAN4] [MAN5] [MAN6] [MAN7] [MAN8] [MAN9]

  [0-9] [Aa] [Bb] [Cc] [Dd] [Ee] [Ff] [Gg] [Hh] [Ii] [Jj] [Kk] [Ll] [Mm] [Nn] [Oo] [Pp] [Qq] [Rr] [Ss] [Tt] [Uu] [Vv] [Ww] [Xx] [Yy] [Zz]


NAME

       v.net.visibility  - Visibility graph construction.

KEYWORDS

       vector, path, visibility

SYNOPSIS

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

   Flags:
       --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

       coordinate=x,y[,x,y,...]
           One or more coordinates

       vis=string
           Add points after computing the vis 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  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 v.net.path
       or   d.path.    IMPORTANT:   the   algorithm  doesn't  work  well  with
       intersecting lines (that includes overlapping)

       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 overlapping).
       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.
       coordinate=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  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).
       v.net.visibility input=map vis=vis_map output=new_vis_map \
             coordinate=25556200,6686400,25556400,6686600

EXAMPLE 1

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

EXAMPLE 2

       An example on how to use v.buffer 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 coordinate=2555678,6686343
       d.vect graph
       d.vect lines col=red

EXAMPLE 4

       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
       v.net.visibility input=lines output=graph
       d.vect graph
       d.vect lines col=red
       v.net.visibility input=lines vis=graph output=new_graph \
             coordinate=2555678,6686343
       d.erase
       d.vect new_graph
       d.vect lines col=red

EXAMPLE 5

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

KNOWN BUGS

       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: 2013-05-23 13:01:55 -0700 (Thu, 23 May 2013) $

       Full index

       © 2003-2013 GRASS Development Team



  All copyrights belong to their respective owners. Other content (c) 2014-2018, GNU.WIKI. Please report site errors to webmaster@gnu.wiki.
Page load time: 0.083 seconds. Last modified: November 04 2018 12:49:43.