GRASS logo

NOME

v.to.db - Popola i valori del database da elementi vettoriali

PAROLE CHIAVE

vettoriale, database, tabella degli attributi

SINOSSI

v.to.db
v.to.db help
v.to.db [-psc] map=nome [type=string[,string,...]] [layer=integer] [qlayer=integer] option=string [units=string] [columns=nome[,name,...]] [qcolumn=nome] [--verbose] [--quiet]

Flag:

-p
Stampa solo
-s
Stampa solo le istruzioni SQL
-c
In modalità di stampa, stampa i totali per le opzioni: length,area,count
--verbose
Output verboso del modulo
--quiet
Output quieto del modulo

Parametri:

map=nome
Nome della mappa vettoriale di input
type=string[,string,...]
Tipo di elemento
Per coor sono validi point/centroid, per length sono validi line/boundary
Opzioni: point,line,boundary,centroid
Predefinito: point,line,boundary,centroid
layer=integer
Numero del layer (su cui scrivere)
Una singola mappa vettoriale può essere connessa a più tabelle di un database. Questo numero determina quale tabella viene utilizzata.
Predefinito: 1
qlayer=integer
Numero del layer da interrogare (da cui leggere)
Una singola mappa vettoriale può essere connessa a più tabelle di un database. Questo numero determina quale tabella viene utilizzata.
Predefinito: 1
option=string
Valore da aggiornare
Opzioni: cat,area,compact,fd,perimeter,length,count,coor,start,end,sides,query,slope,sinuous,azimuth
cat: inserisce una nuova riga per ciascuna categoria se ancora non esiste
area: dimensione dell'area
compact: compatezza di un'area, calcolata come compactness = perimeter / (2 * sqrt(PI * area))
fd: dimensione frattale di un contorno che definisce un poligono, calcolata come fd = 2 * (log(perimeter) / log(area))
perimeter: lunghezza del perimetro di un'area
length: lunghezza della linea
count: numero di elementi per ogni categoria
coor: coordinate di un punto, X,Y o X,Y,Z
start: coordinate del punto d'inizio di una linea/contorno, X,Y or X,Y,Z
end: coordinate del punto finale di una linea/contorno, X,Y o X,Y,Z
sides: categorie delle aree a destra e a sinistra del contorno, per la categoria dell'area viene usato 'qlayer'
query: risultato di un'interrogazione di database per tutti i record della geometria (o geometrie) dalla tabella specificata dall'opzione 'qlayer' option
slope: ripidità dell'inclinazione di una linea vettoriale o contorno
sinuous: sinuosità di una linea, calcolata come lunghezza della linea / distanza tra i punti finali
azimuth: azimut della linea, calcolato come angolo tra la direzione del nord e la direzione del nodo finale al nodo iniziale
units=string
Unità
mi(les),f(eet),me(ters),k(ilometers),a(cres),h(ectares),r(adians),d(egrees)
(miglia, piedi, metri, chilometri, acri, ettari, radianti, gradi)
Opzioni: mi,miles,f,feet,me,meters,k,kilometers,a,acres,h,hectares,r,radians,d,degrees
columns=name[,name,...]
Nome della colonna degli attributi)
qcolumn=nome
Nome della colonna dell'attributo da usare per l'opzione 'query'
E.g. 'cat', 'count(*)', 'sum(val)'

DESCRIZIONE

v.to.db carica elementi o misure di mappe vettoriali in una tabella di database, o li visualizza (o visualizza le query SQL usate per ottenerli) in un rapporto in formato leggibile. Per i valori di categoria caricati o visualizzati, viene usato '-1' per 'nessuna categoria' e 'null'/'-' se la categoria non viene trovata o vengono trovate categorie multiple. Per gli azimut della linea viene usato '-1' per linee chiuse (punto iniziale uguale al punto finale).

NOTE

Per il parametro option=area le unità miles (miglia), feet (piedi), meters (metri) e kilometers (chilometri) si intendono quadrate.

Le unità piedi (feet) e acri (acre) sono sempre riferite alle versioni comunemente usate (i.e. l'International Foot, esattamente 5280 piedi per miglio), anche quando l'unità di mappa standard della location è l'US Survey foot.

Nel calcolo dei perimetri nelle location in Latitudine-Longitudine viene usata la distanza geodetica tra i vertici.

Usando option=coor su una mappa vettoriale contenente aree, saranno riportate solo le coordinate dei centroidi con categoria unica.

L'azimuth della linea è calcolato come angolo fra la direzione del Nord e la direzione del nodo finale della linea al nodo iniziale della linea (0-360, CW) ma può essere anche riportata in radianti con unit=radians. Il valore dell'azimuth -1 viene usato per riportare una linea chiusa con i nodi iniziale e finale nello stesso punto. I valori di azimut hanno senso solo se ogni linea vettoriale ha una sola registrazione nel database (un unico valore di categoria).

Se il modulo appare lento e gli attributi della mappa sono memorizzati in un DBMS esterno come PostgreSQL, si raccomanda la creazione di un indice sulla colonna chiave (categoria).

Per caricare gli attributi di una mappa vettoriale su un database è richiesta una tabella collegata a un determinato layer della mappa vettoriale di input. La modalità sola stampa (-p) non richiede una tabella. Se necessario, usare db.execute o v.db.addtable per creare una tabella.

L'aggiornamento di una tabella deve essere fatto con riferimento a una colonna. La colonna (column) dev'essere presente nella tabella, tranne che per la modalità sola stampa (-p). Se necessario, usare db.execute o v.db.addcol per aggiungere nuove colonne.

ESEMPI

Aggiornare la tabella degli attributi

Caricare i numeri di categoria sulla tabella degli attributi (nel caso di una nuova mappa):
v.to.db map=soils type=centroid option=cat

Caricare le aree dei poligoni sui record della tabella degli attributi corrispondenti ai centroidi:

v.to.db map=soils type=centroid option=area col=area_size unit=h

Caricare la lunghezza delle linee (in metri) di ogni vettore sulla tabella degli attributi (usare v.category nel caso di categorie mancanti):

v.to.db map=roads option=length type=line col=linelength units=me

Caricare coordinate x e y da una geometria vettoriale in una tabella degli attributi:

v.to.db map=pointsmap option=coor col=x,y

Caricare le coordinate x, y e z da una geometria vettoriale in una tabella degli attributi:

v.to.db map=pointsmap option=coor col=x,y,z

Trasferire gli attributi da una colonna di caratteri (con contenuti numerici) in una nuova colonna di numeri interi:

v.db.addcol usa_income_employment2002 col="FIPS_NUM integer"
v.to.db usa_income_employment2002 option=query col=FIPS_NUM qcol=STATE_FIPS

Caricare i numeri di categoria dell'area a destra e a sinistra, in una tabella degli attributi dei confini comuni alle due aree:

# aggiungere le categorie per i confini della mappa vettoriale di input,nel layer 2:
v.category soils out=mysoils layer=2 type=boundary option=add
# aggiungere una tabella con colonne denominate "left" e "right" sul
# layer 2 della mappa vettoriale di input:
v.db.addtable mysoils layer=2 col="left integer,right integer"
# caricare le categorie delle aree a destra e a sinistra:
v.to.db mysoils option=sides col=left,right layer=2
# vedere il risultato:
v.db.select mysoils layer=2

Calcolare la dimensione frattale (Mandelbrot, 1982) DL dei contorni di un poligono, basata sulla formula:
D = 2 * (log perimetro) / (log area):

g.copy vect=soils,mysoils
v.db.addcol mysoils col="d double precision"
v.to.db mysoils option=fd column="d"

g.region vect=mysoils res=50
v.to.rast in=mysoils out=soils_fd type=area use=attr column=d
r.colors map=soils_fd color=gyr

d.mon x0
d.rast.leg soils_fd
d.vect mysoils type=boundary

Visualizzare rapporti

Dà informazioni sulle coordinate x,y,z dei punti della mappa vettoriale di input:
v.to.db -p bugsites option=coor type=point
Mostra le dimensioni di tutte le aree della mappa vettoriale di input:
v.to.db -p soils option=area type=boundary units=h

Mostra le dimensioni di tutte le aree contenute nella mappa vettoriale di input, in ettari, ordinate per numero di categoria (è necessario avere il programma di utilità GNU sort installato):

v.to.db -p soils option=area type=boundary units=h | sort -n

Mostra la lunghezza di tutte le linee contenute nella mappa vettoriale di input, in chilometri:

v.to.db -p roads option=length type=line units=k

Mostra il numero di elementi per ciascuna categoria contenuti nella mappa vettoriale di input:

v.to.db -p roads option=count type=line

VEDI ANCHE

d.what.vect, db.execute, v.category, v.db.addtable, v.db.addcol, v.db.connect, v.distance, v.report, v.univar, v.what

RIFERIMENTI

  • Mandelbrot, B. B. (1982). The fractal geometry of nature. New York: W. H. Freeman.
  • Xu, Y. F. & Sun, D. A. (2005). Geotechnique 55, No. 9, 691-695
  • AUTORE

    Radim Blazek, ITC-irst, Trento, Italy
    Line sinuousity implemented by Wolf Bergenheim

    Last changed: $Date: 2009-01-05 22:46:18 +0100 (Mon, 05 Jan 2009) $


    Main index - vector index - Full index

    © 2003-2011 GRASS Development Team