Ciao a tutti, in un precedente video abbiamo visto come copiare ed incollare record tra due shapefile diversi. In questo video vediamo invece come copiare ed incollare campi tra shapefile.
1. Copiare ed incollare campi tra shapefile
Siamo abituati, nei documenti di testo o nei fogli di calcolo a copiare ed incollare parti dei nostri file facendo un semplice copia ed incolla. Copiare ed incollare campi tra shapefile facendo un semplice copia ed incolla, invece, non si può! Però non vi preoccupate, perché c’è lo stesso il modo di copiare il contenuto di un campo.
Impareremo in questo video che piuttosto che copiare ed incollare campi, si tratta di trasferire informazioni e di “aggiungere” un campo ad uno shapefile. Ci sono molti modi per fare questo, a seconda del contenuto del vostro shapefile. Noi ve ne proponiamo uno, relativo alla situazione di cui parleremo adesso.
Immaginiamo di aver copiato alcuni edifici da uno shaperfile ad un altro, ma che ci siamo dimenticati di creare, nello shape di destinazione, il campo con lo stesso nome delle informazioni che ci interessava portare con noi, ad esempio, quelli relativi all’uso ed alla tipologia. Per cui adesso lo vorremmo copiare ed incollare.
Ma questo, come vi abbiamo detto, non si può fare.
Possiamo però usare il join spaziale o unione per posizione
2. Il Join spaziale, semplificato
Con il join spaziale, o anche unione per posizione, un software GIS fa quanto segue:
– considera gli elementi spaziali contenuti, ad esempio, in due diversi shapefile (ma anche in file aventi un altro tipo di estensione). Questi elementi vengono confrontati geograficamente due a due, secondo una regola definita dall’utente. Ad esempio, se la regola è INTERSECA, se i due elementi considerati si intersecano, allora il software applica il join spaziale tra quei due elementi o, si può dire anche che
– unisce gli attributi dei due elementi spaziali. Quindi, se il secondo shapefile ha un campo in più, QGIS lo prende, lo crea nel primo shapefile e ne copia il contenuto negli elementi che sono stati associati per posizione, secondo la regola INTERSEZIONE.
Ovviamente ad ogni elemento del primo shapefile possono corrispondere nessuno, uno o più elementi del secondo shapefile da questo dipenderà il tipo di risultato che si otterrà.
Nell’esempio che qui abbiamo scelto ci troviamo nella situazione in cui ad ogni edificio in cui vogliamo inserire le informazioni relative a uso e tipologia corrisponde uno ed un solo edificio da cui copiare le stesse informazioni.
![Schema di funzionamento del join spaziale](https://www.gissiamo.it/wp/wp-content/uploads/2020/11/img1-1.png)
3. Unisci attributi per posizione: la tool
Vediamo adesso come si fa nella pratica l’operazione di join spaziale o di unione di attributi per posizione.
Dobbiamo andare nel menu Vettore, poi su Strumenti di gestione dati ed infine cliccare su Unisci attributi per posizione.
Adesso dobbiamo settare i seguenti parametri:
- il Layer Base (1). Si tratta del layer su cui vogliamo aggiungere il campo (come dicevamo all’inizio “incollare un campo”, cosa che adesso sappiamo non si può fare. Nel nostro esempio il layer si chiama nuovi_edifici.
- il join layer o layer di unione (2). Si tratta dello shapefile dal quale vogliamo “copiare” le informazioni. Nel nostro caso si tratta del file edifici.
- Volendo, se avete una selezione attiva, nel vostro Layer Base, potete effettuare il join spaziale solo su di essa e non su tutto lo shape, mettendo la spunta alla voce Solo elementi selezionati (3).
- il predicato geometrico (4)èla regola che consentirà a QGIS di capire come associare gli edifici e dove andare a prendere le informazioni da aggiungere a ciascun edificio. Nel nostro esempio la regola giusta è uguale, perché vogliamo che vengano copiate le informazioni solo dagli edifici esattamente uguali ai nostri.
- Dobbiamo ora selezionare i Campi da aggiungere (5). Clicchiamo sul quadratino con tre puntini sulla destra e selezioniamo USO e TIPOLOGIA, i due campi che originariamente volevamo copiare ed incollare. Clicchiamo su ok e vedete, nella casella compare la scritta 2 opzioni selezionate. Quindi abbiamo selezionato due campi. Se aveste voluto portarvi dietro e quindi copiare tutta la tabella attributi, potevate anche non selezionare nulla, così come vi suggerisce QGIS: “lasciare vuoto per utilizzare tutti i campi”.
- il Tipo di unione (6) che volete generare. Come vi anticipavamo, a seconda del caso di studio e del predicato impostato, durante la comparazione fra elementi, il software potrebbe trovare una o più corrispondenze. Per il nostro esempio il tipo di unione da selezionare è Prendi gli attributi solo della geometria con maggiore sovrapposizione (uno-a-uno).
- Volendo potremmo aggiungere un prefisso al nome dei campi da copiare aggiungendolo nella casella Prefisso del campo unito (7). Quindi, ad esempio, invece di USO, potremmo voler chiamare il campo ED_USO. In questo caso basta aggiungere il prefisso ED_ qui. Ma attenzione, questo prefisso verrà aggiunto a tutti i campi. Noi preferiamo non aggiungere prefissi
- Infine dovete dire a QGIS dove e come chiamare il nuovo file che verrà creato (8), che sarà la copia dello shapefile nuovi_edifici, a cui saranno stati aggiunti i due campi USO e TIPOLOGIA. Noi lo chiamiamo nuovi_edifici_db, per ricordarci che la tabella attributi è stata aggiunta.
![La tool Unisci attributi per posizione](https://www.gissiamo.it/wp/wp-content/uploads/2020/11/img2-1.png)
Clicchiamo su Esegui e andiamo a guardare la tabella degli attributi. Ecco qua, i campi desiderati sono stati “copiati ed incollati”
Bene, questo post è finito. Se ti è piaciuto condividilo! Se hai dubbi o suggerimenti lascia pure un commento.
Se vuoi, puoi vedere anche il nostro video su YouTube “Copiare ed incollare campi tra shapefile e il join spaziale” e iscriverti al nostro canale.
Ci GISsiamo al prossimo post!
Ciao