
NOME
v.net.visibility - Costruzione del grafico di visibilità.
PAROLE CHIAVE
vettoriale, percorso, visibilità
SINOSSI
v.net.visibility
v.net.visibility help
v.net.visibility input=nome output=nome [coordinate=x,y[,x,y,...]] [vis=string] [--overwrite] [--verbose] [--quiet]
Flag:
- --overwrite
- Sovrascrive i file esistenti
- --verbose
- Output verboso del modulo
- --quiet
- Output quieto del modulo
Parametri:
- input=nome
- Nome della mappa vettoriale di input
- output=nome
- Nome della mappa vettoriale di output
- coordinate=x,y[,x,y,...]
- Una o più coordinate
- vis=string
- Aggiunge punti dopo che è stato calcolato il grafo di visibilità
DESCRIZIONE
v.net.visibility calcola il grafo di visibilità di una
mappa vettoriale contenente linee, aree (confini) e punti. Il grafo di
visibilità è il grafo dove i nodi sono i punti finali delle
linee o dei confini, o anche solo punti. Se due nodi sono "visibili" tra
di essi c'è uno spigolo. Due nodi sono visibili se tra di essi non ci
sono segmenti, cioè lo spigolo non interseca linee o confini nella
mappa vettoriale. Ciò è utile per calcolare in una mappa
vettoriale il percorso più breve tra due punti qualsiasi. Per far
ciò è necessario calcolare prima il grafo di
visibilità, e da questo calcolare il percorso più breve con
v.net.path o d.path.
IMPORTANTE: l'algoritmo non funziona bene con linee intersecanti
(incluse le linee che si sovrappongono)
Se si calcola un percorso minimo dopo aver calcolato il grafo di
visibilità si nota che questo percorso potrebbe passare per un
vertice di una linea. Se questo non è voluto si potrebbe prima
elaborare la mappa con v.buffer adottando un valore di buffer
molto piccolo. Esempio:
v.buffer input=map output=bufferedmap buffer=1 type=point,line,area,boundary
Il primo argomento è la mappa di input. Supporta linee, confini (quindi
aree) e punti. Affinché l'algoritmo funzioni linee e confini non devono
intersecarsi (comprese le linee che si sovrappongono). La mappa risultante
contenente il grafo di visibilità è la mappa di output.
Se si ha necessità di ulteriori punti per poi calcolare il minimo
percorso fra di essi, si può usare il parametro coordinate.
coordinate=25556200,6686400,25556400,6686600
dove 25556200,6686400 sono le coordinate del primo punto e 25556400,6686600
sono le coordinate del secondo punto. Naturalmente si possono inserire quanti
punti si vogliono. Verranno aggiunti al grafo di visibilità e da
questi punti verranno calcolati gli spigoli. Si possono sempre
aggiungere questi punti dopo il calcolo del grafo di visibilità; è
sufficiente usare il parametro vis. L'imput sarà la mappa
vettoriale originale, vis sarà il grafo di visibilità calcolato,
e l'output il nuovo grafo di visibilità, cioè vis + i nuovi
punti dati con coordinate (verranno calcolati anche gli spigoli).
v.net.visibility input=map vis=vis_map output=new_vis_map coordinate=25556200,6686400,25556400,6686600
ESEMPIO 1
Un semplice esempio che mostra come usare il modulo
v.net.visibility input=lines output=graph
d.vect graph
d.vect lines col=red
ESEMPIO 2
Un esempio su come usare v.buffer col modulo
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
ESEMPIO 3
Un esempio su come usare il parametro coordinate. Calcola il grafo di
visibilità della mappa vettoriale lines col punto 2555678,6686343
v.net.visibility input=lines output=graph coordinate=2555678,6686343
d.vect graph
d.vect lines col=red
ESEMPIO 4
Un esempio su come usare il parametro coordinate col parametro vis.
Viene calcolato prima il grafo di visibilità, e da questo viene poi
calcolato un nuovo grafo di visibilità col punto 2555678,6686343 aggiunto
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
ESEMPIO 5
Un esempio per la connessione di punti (Spearfish):
v.net.visibility input=archsites output=graph
g.region vect=archsites
d.mon x0
d.vect graph
d.vect archsites col=red
BACHI NOTI
In alcuni casi quando 3 punti o nodi sono allineati, vengono aggiunti alcuni
spigoli errati. Questo accade solo di rado e non dovrebbere essere un grosso
problema. Quando due punti hanno le stesse identiche coordinate x e sono
visibili, vengono aggiunti alcuni spigoli errati.
VEDI ANCHE
d.path,
v.net,
v.net.alloc,
v.net.iso,
v.net.salesman,
v.net.steiner,
v.to.db
AUTORE
Maximilian Maldacker
Mentor: Wolf Bergenheim
Last changed: $Date: 2011-11-08 10:42:51 +0100(mar, 08 nov 2011) $
Main index - vector index - Full index
© 2003-2011 GRASS Development Team