Relazioni uno a molti con i dati ISTAT sul Censimento dell’industria e dei servizi

Ciao a tutti, oggi parliamo di relazioni uno a molti partendo da una domanda che ci è stata fatta tempo fa, su come fare il “join” per avere la mappa dei dati dell’industria e dei servizi censiti dall’ISTAT. SPOILER: in realtà, per come sono strutturati i dati non potremo fare un join, che è una relazione molti-a-uno o uno-a-uno ma dovremo imparare a creare relazioni uno a molti.

1. Importiamo i dati ISTAT sul Censimento dell’industria e dei servizi

Partiamo subito scaricando i dati ISTAT sul Censimento dell’industria e dei servizi e guardandoli e su questa base spiegheremo meglio il tipo di relazione che va impostato.

Andiamo nell’area di download cliccando sul seguente link.

Scendiamo nella pagina ed espandiamo, cliccando sulla freccetta nera, la voce Basi territoriali – basi definitive (1991-2011). Qui scarichiamo il file zippato relativo alla Basilicata, in WGS84, del 2011.

Download delle Basi territoriali – basi definitive (1991-2011)

Scendiamo ancora nella pagina e questa volta espandiamo, sempre cliccando sulla freccia nera, la voce Variabili censuarie (1991-2011). In particolare, scaricheremo il Censimento dell’industria e dei servizi del 2011.

Download del Censimento dell’industria e dei servizi del 2011.
Download del Censimento dell’industria e dei servizi del 2011.

Noi abbiamo già scaricato e decompresso le cartelle contenente i dati, per cui possiamo caricarli in QGIS.

Aprire le basi territoriali è semplice, basta andare nel browser ed effettuare doppio click sul nostro shapefile.

Guardiamo ora i dati sul censimento: nello specifico noi apriremo i dati relativi alle attività economiche, che si trovano nella cartella Sez_AttivitaEconomica. Se guardiamo nella cartella vediamo che c’è un foglio di calcolo, TRACCIATO_AttEcon_SCE_2011, contenente il significato delle intestazioni delle tabelle. Inoltre ci sono una serie di tabelle salvate in formato txt. A noi serve la tabella 17_AttEcon_SCE_2011, che è quella relativa alla Basilicata.

Apriamola in QGIS:

  • Andiamo sul pulsante Apri gestore delle sorgenti dati (1).
  • Nella finestra Gestore delle sorgenti dati  andiamo sulla scheda Testo delimitato (2)
  • In Nome file andiamo a richiamare il file .txt (3).
  • In Nome layer scriviamo come si chiamerà il layer una volta caricato nel pannello dei layer (4).
  • Nel file che vogliamo caricare in QGIS, il carattere che delimita le diverse colonne è il punto e virgola. Quindi nella sezione Formato file dobbiamo mettere la spunta su Delimitatori personalizzati e selezionare la casella Punto e virgola (5).
  • Controlla che nella sezione Opzioni Record e Campi ci sia la spunta su Il primo record ha i nomi dei campi (6).
  • In Definizione della geometria bisogna selezionare Nessuna geometria (7).
  • Infine controlla che sotto Dati Campione, l’anteprima ti restituisca una anteprima corretta (8).
  • Clicchiamo su Aggiungi e chiudiamo la finestra Gestore delle sorgenti dati.
Importiamo la tabella relativa al Censimento dell’industria e dei servizi del 2011 per la Basilicata
Importiamo la tabella relativa al Censimento dell’industria e dei servizi del 2011 per la Basilicata

2. Prepariamo il censimento per la relazione uno a molti

Sappiamo tutti che per creare relazioni tra tabelle, di qualsiasi tipo esse siano, occorre utilizzare delle “chiavi”. Ci spieghiamo meglio: per poter impostare una relazione, ci deve essere una colonna in ciascuna delle due tabelle da mettere in relazione, che dica a QGIS quali sono i record che deve mettere in corrispondenza.

Cerchiamo questi due campi nella tabella degli attributi delle sezioni censuarie e nella tabella delle attività economiche.

Nella tabella delle sezioni censuarie il campo contenente valori univoci che identificano ciascun record è la colonna SEZ2011, composto dalla combinazione del campo PRO_COM, contenente il codice di Provincia e Comune, e del campo SEZ, contenente il codice della singola sezione.

Tabelle degli attributi delle Sezioni Censuarie e delle Attività Economiche
Tabelle degli attributi delle Sezioni Censuarie e delle Attività Economiche

Nella tabella relativa alle attività economiche non c’è il campo SEZ2011, ma lo possiamo creare facilmente dalla combinazione dei campi PROCOM e NSEZ.

Prima di farlo dobbiamo risolvere due questioni:

La prima questione: ai file di tipo .txt si possono aggiungere solo layer virtuali, invece noi preferiamo aggiungere un campo permanente nella tabella. Quindi creiamo una copia della tabella, ma in formato geopackage, cioè come tabella contenuta nel geopackage.

Per creare questa copia clicchiamo con il tasto destro sulla tabella AttEcon, selezioniamo Esporta e Salva Elementi come. Nella finestra che si apre, scegliamo come formato di output il formato GPKJ e diciamo a QGIS dove e con che nome salvare la nuova tabella.

Eseguiamo una copia in csv della tabella delle Attività Economiche.
Eseguiamo una copia in csv della tabella delle Attività Economiche.

La seconda questione è la creazione della nostra chiave!

  • Nella tabella delle Attività Economiche apriamo il Calcolatore di campi.
  • Creiamo un nuovo campo (1) che chiamiamo SEZ2011 (2).
  • Come tipo di dato scegliamo intero a 64 bit (3).
  • Infine, l’espressione da inserire è  “PROCOM” *10000000 +  “NSEZ” (5).
Creazione di una campo chiave per la relazione uno a molti
Creazione di una campo chiave per la relazione uno a molti

Clicchiamo su OK e abbiamo ottenuto la chiave per la relazione uno a molti.

3. Creiamo la relazione uno a molti

Siamo finalmente pronti a creare la relazione uno a molti fra le sezioni censuarie e la tabella delle attività economiche.

Perché dobbiamo usare una relazione uno a molti invece di un join, che magari ci è più familiare?

Perché se guardiamo il campo SEZ2011, vediamo che ci sono codici che si ripetono più volte. Questo perché ogni riga della tabella delle attività economiche corrisponde ad una attività con un certo codice ATECO presente nella sezione censuaria considerata e in ogni sezione censuaria ci possono essere attività diverse con codice ATECO diverso. Di conseguenza per ogni poligono rappresentante una sezione censuaria (che ai fini della relazione chiameremo layer padre) ci possono essere una o più attività (o righe) presenti nella tabella delle attività economiche (che, ai fini della relazione chiameremo tabella figlia).

Esempio di relazione uno a molti
Esempio di relazione uno a molti

Per creare la relazione uno a molti:

  • andiamo nel menu Progetto di QGIS e selezioniamo Proprietà. Nella finestra che si apre dobbiamo andare nella scheda Relazioni (1).
  • Clicchiamo sul pulsante Aggiungi Relazioni (2).
  • Diamo un nome all’indice in comune che verrà creato (ID) e alla relazione stessa (2).
  • Scegliamo il layer padre e la corrispondente chiave dal menu a tendina (3).
  • Allo stesso modo scegliamo la tabella figlia e la corrispondente chiave, sempre da menu a tendina (4).

Clicchiamo sugli OK di entrambe le finestre.

Realizzazione di una relazione uno a molti in QGIS
Realizzazione di una relazione uno a molti in QGIS

La relazione è stata creata con successo.

4. Visualizzare la relazione uno a molti

Andiamo a vedere cosa è cambiato nella tabella degli attributi delle sezioni censuarie e vediamo, quindi, un primo modo per visualizzare il risultato della creazione di una relazione uno a molti.

Apriamola in modalità modulo (1).

Selezioniamo a sinistra un record: nella schermata che ci appare, scorrendo in basso, oltre alle celle che appartengono alla sezione censuaria, potremo vedere che è stato inserito un altro modulo, contenente tutti i record relativi alle attività economiche dell’elemento selezionato. Cliccando sui singoli elementi, si potranno leggere tutti gli attributi specifici per quel tipo di attività.

Visualizzazione degli elementi di una relazione uno a molti nella tabella del layer padre in modalità modulo
Visualizzazione degli elementi di una relazione uno a molti nella tabella del layer padre in modalità modulo

Ovviamente, se questo spazio è vuoto, vuol dire che avete selezionato un poligono in cui non ci sono attività.

Un altro modo per visualizzare il risultato della creazione di una relazione uno a molti è tramite il pannello informazioni.

Selezioniamo il pulsante Informazioni elementi (1) e clicchiamo sul poligono che ci interessa. Nel pannello Informazioni risultati, a seguito dei record appartenenti alla tabella delle sezioni censuarie, appare la voce con il nome che abbiamo dato alla relazione, attivita (2), con un conteggio di quante attività sono state trovate in quel poligono.

Espandendo la voce, è possibile visualizzare gli attributi relativi a ciascuna attività rilevata nell’area (3).

Visualizzazione di una relazione uno a molti nel pannello informazioni
Visualizzazione di una relazione uno a molti nel pannello informazioni

A questo punto, qualcuno potrebbe domandarsi: “Come facciamo a tematizzare il risultato della relazione uno a molti?”.

La risposta è: “Non si può”.

La relazione uno a molti può essere usufruita solo in maniera informativa e non può essere tematizzata.

Si possono tuttavia eseguire dei passaggi per poter tematizzare e realizzare le mappe sulle attività economiche.

Facciamo così: se vi interessa lasciate un like al video. Se raggiungiamo almeno 50 like ne facciamo un altro su come manipolare i dati per ottenere mappe tematiche sulle attività commerciali.

TIPS & TRICKS

L’argomento relazioni uno a molti in QGIS non si esaurisce chiaramente con questo post. Ad esempio c’è la possibilità di saltare completamente la creazione dell’indice che vi abbiamo fatto vedere creando relazioni con combinazioni di campi.

Per imparare di più vi proponiamo la pagina della

Relazioni uno a molti con i dati ISTAT sul Censimento dell’industria e dei servizi” e iscriverti al nostro canale.

Ciaooo