Realizzare unioni tabellari (QGIS3)

Non tutti i dataset che utilizziamo nel nostro lavoro si presentano come degli shapefile o, comunque, in formato spaziale. I dati possono presentarsi in forma di tabella o all’interno di un foglio di calcolo (e.g. MS Excel) e potrebbe essere necessario unirli con i nostri dati spaziali per utilizzarli nelle nostre analisi. Questa operazione è conosciuta come Join/Unione Tabellare e questo esercizio mostrerà come realizzarla in QGIS.

Descrizione del compito

We will use a shapefile of census tracts for California and population data table from US Census Bureau to create a population density map for california.

Altri aspetti che avremo modo di apprendere nel corso dell’esercizio

  • Caricare file CSV che non contengono alcuna geometria in QGIS.

Ottenere i dati necessari.

US Census Bureau provides TIGER/Line Shapefiles. Potete visitare il sito FTP site e scaricare i confini amministrativi. Scarica Census Tracts for California .

Americal FactFinder è un archivio contenente tutti i dati relativi ai censimenti che si sono svolti negli Stati Uniti. Potete utilizzare la Advanced Search (ricerca avanzata) e interrogare per Topic - Total Population e Geographies - All Census Tracts in California per creare un CSV personalizzato e scaricarlo. In questo esercizio usiamo i dati TOTAL POPULATION | 2017 ACS 5-year estimates .

../../_images/data15.png

Per comodità, potete scaricare direttamente una copia di entrambi i dataset dal seguente link:

tl_2018_06_tract.zip

ACS_17_5YR_B01003.zip

Fonte Dati [TIGER] [USCENSUS]

Procedimento

  1. Individuate il file appena scaricato tl_2018_06_tract.zip usando il browser di QGIS e fate doppio click sul file tl_2018_06_tract.shp .

../../_images/1106.png
  1. Si vedrà un nuovo layer tl_2018_06_tract caricato nel pannello: Layers. Rappresenta i limiti catastali in California. Tasto destro su tl_2018_06_tract e selezionare Open Attribute Table (Apri tabella attributi).

../../_images/288.png
  1. Guardate la tabella attributi. Per unire una tabella a questa tabella degli attributi del livello, dobbiamo trovare una colonna con valori univoci in comune con la tabella da unire. In questo caso la colonna GEOID è unica e contiene gli ID delle aree, e può essere usata come collegamento ad un altra tabella con una colonna contenente gli stessi ID.

../../_images/339.png
  1. Estraete dal file ACS_17_5YR_B01003.zip il file ACS_17_5YR_B01003_with_ann.csv ed apritelo con un editor di testo (blocco note, o meglio ancora un editor più avanzato come Notepad++). Noterete che questa tabella contiene informazioni aggiuntive che si possono unire usando una colonna con gli ID. Questa colonna si chiama GEO.id2 nel file CSV. Noterete anche che la colonna HD01_VD01 contiene il numero di abitanti all’interno dell’area.

../../_images/421.png
  1. Prima di importare questo file CSV dobbiamo fare una piccola modifica. QGIS si aspetta che la prima colonna contenta l’intestazione (nome) delle colonne, ed il resto delle righe i dati. Questo file contiene, nella riga 2, ulteriori etichette delle colonne. Questa riga va cancellata.

../../_images/522.png
  1. Adesso siamo pronti a importare il file CSV in QGIS. Andate su Layer ‣ Aggiungi layer testo delimitato.

../../_images/622.png
  1. Nella finestra Data Source Manager (Gestore delle sorgenti dati) cliccate il pulsante e selezionate il file CSV. Assicuratevi di scegliere nella sezione File format (Formato file) il CSV (valori separati da virgole), oppure delimitatori personalizzati con il corretto carattere delimitatore (la virgola). Dal momento che abbiamo importato questo file come una tabella, dobbiamo specificare che il nostro file non contiene dati geometrici (coordinate). Selezionate l’opzione No geometry (solo tabella degli attributi). Fare quindi click su OK.

../../_images/721.png
  1. Il livello importato dal file CSV appare con il nome ACS_17_5YR_B01003_with_ann nel pannello Layers. Ora siamo pronti per eseguire l’unione tra tabelle. Andate su Processing ‣ Toolbox (Strumenti di processing).

../../_images/821.png
  1. Prima modifichiamo un’opzione del Processing Toolbox (Gestore processi). Cliccate il pulsante Options (opzioni).

../../_images/921.png
  1. Nella sezione Processing Options (Opzioni Processi) selezionate l’opzione Use filename as layer name (usa il nome del file come nome del layer). Quando usate degli strumenti dal Gestore dei Processi (Processing Toolbox), questa opzione farà si che i nomi dati ai risultati e aggiunti al pannella Layer sia più intuitivo. Cliccate OK.

../../_images/1023.png
  1. Tornando nel Processing Toolbox (Gestore dei processi), cerca il modulo Vector General ‣ Join attributes by field value (unisci attributi secondo il valore del campo) e fai doppio click per aprirlo.

../../_images/1126.png
  1. Nella finesetra Join Attributes by Field Values seleziona tl_2018_06_tract come Input layer (Layer di ingresso) e GEOID come Table field (Campo tabella). Selezionare ACS_17_5YR_B01003_with_ann come Input layer 2 (Vettore in ingresso 2) e GEO.id2 come Table field 2 (Campo tabella 2). Lascia altre opzioni ai loro valori predefiniti e clicca il pulsante per selezionare il file che sarà creato. Seleziona Save to GeoPackage... (Salva come GeoPackage).

../../_images/1224.png
  1. Nominare il file GeoPackage come joined.gpkg ed il layer joined. Clicca Run (esegui).

../../_images/1323.png
  1. Verifica che il processo sia terminato senza problemi e clicca Close.

../../_images/1421.png
  1. Vedrete il nuovo livello joined caricato nel pannello Layers . A questo punto la tabella attributi contiene le colonne delle due tabelle. Potete chiudere Processing Toolbox (Gestore dei Processi). Fate tasto detro sul livello joined e selezionate Open Attribute Table (Apri tabella attributi).

../../_images/1520.png
  1. Vedrete una nuova serie di colonne, ad esempio la colonna HD01_VD01 con il numero di residenti nell’area.

../../_images/1619.png
  1. Now that we have the population data in the census tracts layer, we can style it to create a visualization of population density distribution. Select the joined layer and click the Open the Layer Styling Panel button.

../../_images/1720.png
  1. In the Layer Styling panel, select Graduated from the drop-down menu. As we are looking to create a population density map, we want to assign different color to each census tract feature based on the population density. We have the population in the HD01_VD01 field, but we don’t have population density in any fields to select as the Value. Fortunately, QGIS allows us to input an expression here. Click Expression button.

../../_images/1818.png

Nota

When creating a thematic (choropleth) map such as this, it is important to normalize the values you are mapping. Mapping total counts per polygon is not correct. It is important to normalize the values dividing by the area. If you are displaying totals such as crime, you can normalize them by dividing by total population, thus mapping crime rate and not crime. Learn more

  1. Enter the following expression to calculate the population density. $area calculates the area of the feature in square meters. We then convert it to square miles and calculate the population density with the formula Population/Area. Click OK.

"HD01_VD01"/ (0.386*$area/1e6)
../../_images/1916.png
  1. Back in the Layer Styling Panel, choose a color ramp of your choice and click Classify. You can adjust the class ranges to be more appropriate to the region.

../../_images/2012.png
  1. The visualization feels a bit cluttered because of the polygon borders. Click on the dropdown next to Symbol. Select Simple fill and check Transparent stroke.

../../_images/2116.png
  1. Now we have a nice looking information visualization of population density in California.

../../_images/2215.png
comments powered by Disqus