GRASS logo

NOME

v.distance - Trova l'elemento più vicino nel vettoriale 'to' per gli elementi nel vettoriale 'from'.

PAROLE CHIAVE

vettoriale, database, tabella degli attributi

SINOSSI

v.distance
v.distance help
v.distance [-pa] from=nome to=nome [from_type=string[,string,...]] [to_type=string[,string,...]] [from_layer=integer] [to_layer=integer] [output=nome] [dmax=float] [dmin=float] upload=string[,string,...] column=nome[,name,...] [to_column=nome] [table=nome] [--overwrite] [--verbose] [--quiet]

Flag:

-p
Stampa l'output sullo stdout, non aggiorna la tabella degli attributi
La prima colonna è sempre la categoria dell'elemento 'from' chiamato da from_cat
-a
Calcola le distanze da tutti gli elementi entro la soglia
L'output viene scritto sullo stdout, ma può essere caricato in una nuova tabella creata da questo modulo; si possono usare opzioni 'upload' multiple.
--overwrite
Sovrascrive i file esistenti
--verbose
Output verboso del modulo
--quiet
Output quieto del modulo

Parametri:

from=nome
Nome di una mappa vettoriale esistente (from)
to=nome
Nome di una mappa vettoriale esistente (to)
from_type=string[,string,...]
Tipo di elemento (from)
Tipo di elemento
Opzioni: point,centroid
Predefinito: punto
to_type=string[,string,...]
Tipo di elemento (to)
Tipo di elemento
Opzioni: point,line,boundary,centroid,area
Predefinito: point,line,area
from_layer=integer
Numero del layer (from)
Una singola mappa vettoriale può essere connessa a più tabelle di un database. Questo numero determina quale tabella viene utilizzata.
Predefinito: 1
to_layer=integer
Numero del layer (to)
Una singola mappa vettoriale può essere connessa a più tabelle di un database. Questo numero determina quale tabella viene utilizzata.
Predefinito: 1
output=nome
Nome di una mappa vettoriale di output contenente le linee che collegano gli elementi più vicini
dmax=float
Distanza massima o -1 per nessun limite
Predefinito: -1
dmin=float
Distanza minima o -1 per nessun limite
Predefinito: -1
upload=string[,string,...]
Valori che descrivono la relazione fra due elementi più vicini
Opzioni: cat,dist,to_x,to_y,to_along,to_angle,to_attr
cat: categoria dell'elemento più vicino
dist: distanza minima dall'elemento più vicino
to_x: coordinata x del punto più vicino sull'elemento 'to'
to_y: coordinata y del punto più vicino sull'elemento 'to'
to_along: istanza dal punto più vicino sull'elemento 'to' lungo lo stesso elemento lineare
to_angle: angolo lungo l'elemento lineare più vicino nella mappa 'to', misurato in senso antiorario dall'asse +x, in radianti, fra -Pi e Pi inclusi;
to_attr: attributo dell'elemento più vicino dato dall'opzione to_column
column=name[,name,...]
Nome della colonna/e in cui verranno aggiornati i valori specificati dall'opzione 'upload'
to_column=nome
Nome della colonna dell'elemento più vicino (usato con upload=to_attr)
table=nome
Nome della tabella creata per l'output quando è utilizzato il flag della distanza da tutti (-a)

DESCRIZIONE

v.distance trova, per ciascun elemento nella mappa vettoriale (from), l'elemento più prossimo nella mappa vettoriale (to). Informazioni varie sulle relazioni tra i vettori (distanza, categoria, etc.) possono essere caricate nella tabella degli attributi associata alla prima mappa vettoriale, o visualizzate sullo "stdout". È possibile creare una nuova mappa su cui memorizzare le linee che connettono i punti agli elementi. I parametri dmin o dmax possono essere usate per limitare la ricerca entro un determinato raggio.

NOTE

Se l'elemento più prossimo non ha una categoria, la colonna della tavola degli attributi viene aggiornata al valore null. Lo stesso dicasi per le aree, cioè, per esempio, se un punto è in un'isola (area SENZA categoria), v.distance ricerca l'area più prossima CON una categoria; l'isola viene identificata come la più prossima, e la categoria viene aggiornata al valore null.

La colonna (o le colonne) (column) su cui caricare i dati deve esistere; in caso contrario la si deve creare con v.db.addcol.

Nelle location di tipo lat-long v.distance calcola le distanze (dist e to_along) in metri, non in gradi, calcolate come distanze geodetiche su una sfera.

ESEMPI

Trovare linee vicine

Trovare nella mappa vettoriale ln le linee più prossime ai punti che si trovano nella mappa vettoriale pnt entro una data soglia, e scrivere nella colonna linecat di una tabella degli attributi associata alla mappa vettoriale pnt le categorie delle linee corrispondenti:
v.distance from=pnt to=ln upload=cat column=linecat

Trovare aree vicine

Per ciascun punto nella mappa vettoriale pnt, trovare l'area più prossima nella mappa ar entro una determinata soglia, e scrivere nella colonna areacat di una tabella degli attributi associata alla mappa vettoriale pnt le categorie delle aree corrispondenti (nel caso in cui un punto ricada nell'area di un poligono, la distanza è uguale a zero):
v.distance from=pnt to=ar upload=cat column=areacat

Creare una nuova mappa vettoriale

Creare una nuova mappa vettoriale che contiene le linee che collegano gli elementi più prossimi delle mappe pnt e ln. Il vettore risultante può essere utilizzato, per esempio, per connettere i punti ad una rete, come richiesto per l'analisi delle reti (network analysis):
v.distance -p from=pnt to=ln out=connections upload=dist column=dist

Interrogazioni

Richiesta di informazioni da punti selezionati. v.distance prende come input i punti in una mappa vettoriale invece che prenderli dallo stdin. Prima di poter essere analizzata, bisogna creare una nuova mappa vettoriale con punti interrogabili.

Creare una mappa interrogabile (se non disponibile):

echo "123456|654321|1" | v.in.ascii output=pnt
Trovare elementi vicini:
v.distance from=pnt to=mappa_da_interrogare upload=cat col=somecol -p

Punti in poligoni

L'opzione dmax=0 qui è importante perché altrimenti per i punti che non ricadono dentro nessun'area viene registrata la categoria dell'area più vicina.
Per ciascun punto nella mappa vettoriale pnt, trovare l'area nella mappa vettoriale ar nella quale ricade il singolo punto, e scrivere nella colonna areacat della tabella degli attributi collegata alla mappa vettoriale pnt le categorie delle aree corrispondenti:
v.distance from=pnt to=ar dmax=0 upload=cat column=areacat

Statistica univariata sui risultati

Creare una mappa vettoriale contenente linee di connessione e analizzare la distanza media. Una soluzione alternativa è quella di usare l'opzione v.distance upload=dist per caricare le distanze direttamente nel vettoriale bugs, quindi eseguire v.univar su questo. Si tenga inoltre presente che si possono caricare due colonne contemporaneamente, p.es. v.distance upload=cat,dist column=nearest_id,dist_to_nr.
# creare una copia di lavoro
g.copy vect=bugsites,bugs

# aggiungere una nuova colonna attributo per i numeri
#  di categoria del più prossimo archsite
v.db.addcol map=bugs column="nrst_arch INTEGER"

v.distance from=bugs to=archsites to_type=point upload=to_attr \
  to_column=cat column=nrst_arch out=vdistance_vectors_raw

# bisogna assegnare i numeri di categoria, creare una tabella e in questa
#  tabella creare una colonna per i dati sulle distanze.
v.category vdistance_vectors_raw out=vdistance_vectors type=line op=add
g.remove v=vdistance_vectors_raw

v.db.addtable map=vdistance_vectors column="length DOUBLE"
v.to.db map=vdistance_vectors option=length column=length

# eseguire analisi statistiche. Usare v.univar.sh per analisi
#  statistiche avanzate.
v.univar vdistance_vectors column=length

Visualizzare una matrice delle distanze

v.distance -pa from=archsites to=archsites upload=dist col=dist
Note: L'emissione dei dati sotto forma di matrice viene abilitata solo se è attivo il flag -a, e se è impostata una qualche opzione upload.

VEDI ANCHE

r.distance, v.db.addcol, v.what.vect

AUTORE

Janne Soimasuo 1994, University of Joensuu, Faculty of Forestry, Finland
Cmd line coordinates support: Markus Neteler, ITC-irst, Trento, Italy
Updated for 5.1: Radim Blazek, ITC-irst, Trento, Italy
Martix-like output by Martin Landa, FBK-irst, Trento, Italy

Last changed: $Date: 2011-11-08 12:29:50 +0100(mar, 08 nov 2011) $


Main index - vector index - Full index

© 2003-2011 GRASS Development Team