#### 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
| |