GRASS logo

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