Combinazione di aree con punti

Questa esercitazione riguarda la combinazione di primitive vettoriali di tipo area e punti. Le operazioni effettuate sono:

Si vogliono prima selezionare i punti di interesse archeologico nella Black Hills Natl. Forest, poi i punti di interesse archeologico al di fuori della Black Hills Natl. Forest. Infine si calcolerà la distanza dell'unico punto di interesse archeologico in un terreno ma al di fuori della Black Hills Natl. Forest dalla foresta stessa e si realizzerà una mappa vettoriale contenente il segmento di minima distanza fra questo punto e la foresta.

Si imposta la regione su quella di default con

> g.region -d

e si visualizzano i terreni

> d.erase

tutti i terreni in nero

> d.vect map=fields type=area,face display=shape icon=basic/x size=8 layer=1 color=black fcolor=gray

la Black Hills Natl. Forest con contorno rosso

> d.vect map=fields@PERMANENT color=255:0:0 lcolor=0:0:0 fcolor=none display=shape type=point,line,boundary,centroid,area where="label='Black Hills Natl. Forest'" icon=basic/x size=5 layer=1 lsize=8 xref=left yref=center llayer=1

i siti archeologici in verde

> d.vect archsites color=green


Siti archeologici di Spearfish

Estrazione di un'area

Si crea una mappa vettoriale fields_natfor che contiene solo l'area della Black Hills Natl. Forest, con una query sulla colonna label della tabella associata alla mappa fields:

> v.extract input=fields@PERMANENT output=fields_natfor type=point,line,boundary,centroid,area,face layer=1 new=-1 where="label='Black Hills Natl. Forest'" --overwrite

e si rivisualizza, senza cancellare il display: in questo modo rimangono visualizzati gli altri terreni in grigio

> d.vect map=fields_natfor color=blue fcolor=yellow

> d.vect archsites color=red


Parco Forestale Nazionale e siti archeologici

Selezione di punti sovrapposti ad un'area

Questa prima applicazione crea una nuova mappa vettoriale archsites_natfor che che contiene i soli siti archeologici contenuti nella Black Hills Natl. Forest, usando la mappa fields_natfor appena creata:

> v.select ainput=archsites@PERMANENT atype=point,line,boundary,centroid,area alayer=1 binput=fields_natfor btype=point,line,boundary,centroid,area blayer=1 output=archsites_natfor operator=overlap --overwrite

e si rivisualizza, cancellando prima il display:

> d.erase

> d.vect map=fields_natfor color=blue

> d.vect map=archsites_natfor color=red


Parco Forestale Nazionale e siti archeologici in esso contenuti
NB: la croce blu indica il centroide dell'area della Black Hills Natl. Forest, dalla la mappa fields_natfor, le croci rosse indicano i siti archeologici all'interno della Black Hills Natl. Forest, nella mappa archsites_natfor.

Selezione di punti all'esterno di un'area

Questa procedura ha scopo opposto alla precedente: crea una nuova mappa vettoriale archsites_not_natfor che che contiene i soli siti archeologici esterni alla Black Hills Natl. Forest. Si deve creare un insieme di aree che coprono la regione tranne che la Black Hills Natl. Forest, creando prima un'area pari alla regione nella mappa fields_region e sottraendo poi la Black Hills Natl. Forest per ottenere la mappa fields_not_natfor. La necessità di ricavare prima la mappa "differenza" tra la regione e la Black Hills Natl. Forest deriva dal fatto che il modulo v.select riconosce il solo operatore overlap.

> v.in.region output=fields_region type=area --overwrite

> v.overlay ainput=fields_region atype=area alayer=1 binput=fields_natfor btype=area blayer=1 output=fields_region_not_natfor operator=not olayer=1,0,0 --overwrite

e si visualizzano le nuove aree, cancellando prima il display:

> d.erase

> d.vect map=fields_region_not_natfor color=blue


Elaborzione per l'esclusione del suolo occupato dal Parco della Foresta Nazionale
Si selezionano quindi i siti archeologici nella nuova area creata, cioè fuori dalla Black Hills Natl. Forest:

> v.select ainput=archsites@PERMANENT atype=point,line,boundary,centroid,area alayer=1 binput=fields_region_not_natfor btype=point,line,boundary,centroid,area blayer=1 output=archsites_not_natfor operator=overlap --overwrite

e si visualizza il risultato:

> d.erase

> d.vect map=fields_natfor display=shape,attr color=blue att=label lcolor=blue

> d.vect map=archsites_not_natfor color=red


Parco Forestale Nazionale e siti archeologici all'esterno di esso
Sono stati quindi selezionati tutti i siti archeologici fuori la Black Hills Natl. Forest (visualizzati in rosso dalla mappa archsites_not_natfor), la croce blu indica il centroide della mappa della Black Hills Natl. Forest, dalla mappa fields_natfor, visualizzata per controllare che i punti selezionati siano effettivamente esterni.
Si possono anche estrarre tutti i siti archeologici al di fuori della Black Hills Natl. Forest ma all'interno degli altri terreni della mappa fields, la procedura è simile alla selezione dei punti all'interno di un'area, ma vengono selezionate tutte le aree tranne la Black Hills Natl. Forest.
Si crea prima una mappa fields_not_natfor che contiene tutti i terreni della mappa fields tranne la Black Hills Natl. Forest:

> v.extract input=fields@PERMANENT output=fields_not_natfor type=point,line,boundary,centroid,area,face layer=1 new=-1 where="label<>'Black Hills Natl. Forest'" --overwrite

e si visualizza la nuova mappa

> d.erase

> d.vect map=fields_not_natfor display=shape color=blue fcolor=yellow

> d.vect archsites color=red


Siti archeologici e fondi
In blu i centroidi ed in rosso i siti archeologici.
Si selezionano quindi tutti i siti archeologici dalla mappa archsites nella mappa appena creata, cioè in tutti i terreni di fields tranne che nella Black Hills Natl. Forest, creando la mappa archsites_not_natfor_fields:

> v.select ainput=archsites@PERMANENT atype=point,line,boundary,centroid,area alayer=1 binput=fields_not_natfor btype=point,line,boundary,centroid,area blayer=1 output=archsites_not_natfor_fields operator=overlap --overwrite

e si visualizza

> d.erase

> d.vect map=fields_natfor color=green fcolor=none

> d.vect map=fields_not_natfor color=blue fcolor=none

> d.vect map=archsites_not_natfor_fields color=red


Sito archeologico contenuto in un fondo
Rimane un unico punto, visualizzato in rosso al centro a nord (i punti in blue e verde sono i centroidi delle aree rispettivamente diverse e uguali alla foresta nazionale).

Calcolo della distanza fra un punto ed un'area

Si vuole dapprima calcolare la distanza fra il punto selezionato nella procedura precedente, cioè l'unico sito archeologico in uno dei terreni di fields tranne che nella Black Hills Natl. Forest, visualizzandola a video, e poi creare una nuova mappa vettoriale che contiene il segmento di minima distanza fra questo punto e la Black Hills Natl. Forest.
Per la prima procedura si usa il modulo v.distance con l'opzione -p, che fa visualizzare sul terminale la distanza tra l'archsite fuori dalla foresta nazionale ma negli altri campi e la foresta nazionale:

> v.distance from=archsites_not_natfor_fields to=archsites_natfor from_type=point to_type=point,line,area from_layer=1 to_layer=1 dmax=-1 upload=dist column=dist -p

che visualizza sul terminale:

from_cat|dist
9|7968.853431
Statistics:
0 categories with more than 1 feature in 'from'
0 categories - no nearest feature found

Creazione di un vettoriale contenente il segmento di minima distanza fra un punto ed un'area

Lo stesso modulo della procedura precedente, ma con l'opzione output crea la mappa archsites_not_natfor_dist che contiene il vettore distanza tra l'archsite fuori dalla foresta nazionale ma negli altri campi e la foresta nazionale:

> v.distance from=archsites_not_natfor_fields to=archsites_natfor from_type=point to_type=point,line,area from_layer=1 to_layer=1 output=archsites_not_natfor_dist dmax=-1 upload=dist column=dist -p --overwrite

lasciando l'opzione -p la distanza è ancora visualizzata sul terminale. Si visualizza il risultato con:

> d.erase

> d.vect map=fields_natfor color=blue

> d.vect map=archsites_not_natfor_fields color=red

> d.vect map=archsites_not_natfor_dist color=yellow


Distanza tra il sito archeologico ed il Parco della Foresta Nazionale

Lo script che realizza queste operazioni è geoprocessing_spearfish_aree_punti.sh.