Campionare i dati di un raster usando punti o poligoni (QGIS3)

Molti dataset di tipo scientifico e relativi all’ambiente si presentano in forma di griglie raster. Per esempio i dati riguardanti l’altezza del suolo (DEM) sono distribuiti in formato raster. In questi file raster, il parametro che viene rappresentato è codificato nel valore di ciascuno dei pixel del raster. Spesso, abbiamo bisogno di estrarre questi valori relativamente a un dato territorio oppure di aggregarli su un’area definita. Queste funzioni sono disponibili con il modulo Sample raster values (campiona i valori raster) e il Zonal Statistics (statistiche zonali). PS esiste anche un plugin chiamato Point Sampling Tool che campiona i punti anche su livelli multipli.

Descrizione del compito

Data una griglia raster contenente le temperature massime negli Stati Uniti, vogliamo ricavarne le temperature di tutte le aree urbane e quindi calcolare la temperatura media per ciascuna divisione amministrativa degli USA.

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

  • Selezionare e rimuovere layer multipli dalla Tabella dei Contenuti di QGIS.

Ottenere i dati necessari.

Il servizio fornito da NOAA Climate Prediction Center fornisce dati GIS riguardanti il clima e le precipitazioni negli Stati Uniti. Scaricate la griglia più recente per le temperature massime. Al file verrà assegnato il nome di us.tmax_nohads_ll_{YYYYMMDD}_float.tif.

Useremo inoltre un file CSV da 2018 US Gazetteer che descrive le aree urbane negli USA. Scarichiamo il file Urban Areas Gazetteer File.

US Census Bureau provides TIGER/Line Shapefiles. Potete visitare il sito FTP site and download census tracts shapefile for California. Download Census Tracts for California file.

Per comodità, potete scaricare direttamente una copia del dataset dal seguente link:

us.tmax_nohads_ll_20190501_float.tif

2018_Gaz_ua_national.zip

tl_2018_us_county.zip

Data Sources: [NOAACPC], [USGAZETTEER] [TIGER]

Procedimento

  1. Estrai i file che trovi nel file complresso 2018_Gaz_ua_national.zip e tl_2018_us_county.zip in una cartella nel tuo PC. Apri QGIS e usa il browser i QGIS per aprire il file us.tmax_nohads_ll_20190501_float.tif e aggiungerlo nella mappa.

../../_images/1141.png
  1. Vedrete un nuovo livello us.tmax_nohads_ll_20190501_float aggiunto al pannello Layers . Questo livello raster contiene le temperature massime registrate in ogni pixel in gradi Celsius. Dopo carichiamo i punti con le aree urbane. Questo file è in formato testo, con colonne separate da TAB (Tab Separated Values - TSV). Clicca il pulsante Open Data Source Manager nella barra degli strumenti Data Source Toolbar.

../../_images/2109.png
  1. Nella finestra di dialogo Crea un vettore da un file di testo delimitato fate click su e specificate il percorso del file di testo che avete scaricato. Nella sezione Formato file selezionate Delimitatori personalizzati e sbarrate la casella Tab. I due campi di coordinate X e Y. Nel nostro caso essi sono INTPTLONG e INTPTLAT. Click su OK.

../../_images/360.png
  1. Un nuovo livello di punti 2018_Gaz_ua_national sarà aggiunto nel pannello Layers. Ora siamo pronti ad estrarre valori delle celle di questo raster. Vai ora alla voce di menù Processing ‣ Strumenti.

../../_images/430.png
  1. Cercare e trovare nel pannello Strumenti di Processing (Processing Toolbox) la voce del menu: Analisi Raster -> Campiona valori Raster.

../../_images/528.png
  1. Selezionare 2018_Gaz_ua_national come Input Point Layer. Selezionare us.tmax_nohads_ll_20190501_float come livello Raster Layer to sample. Espandere Advanced parameters ed inserire tmax come prefisso della colonna Output column prefix. Clicca Run. Quando l’elaborazione è terminata cliccare Close.

../../_images/627.png
  1. Un nuovo livello Sampled Points sarà caricato nel pannello Layers . Seleziona lo strumento Identify nella barra degli strumenti Attributes Toolbar e clicca su un punto. Vedrai gli attributi visualizzati nel pannello Identify Results. Vedrai un attributo tmax_1 aggiunto ad ogni elemento. Questo sarà il valore della cella/pixel del raster che corrisponde al punto selezionato. Il 1 rappresenta il numero di banda del raster. Se il raster ha più bande , ci saranno più colonne.

../../_images/727.png
  1. La prima parte della nostra analisi è fatta. Possiamo rimuovere i layer che non sono più necessari. Tenete premuto il tasto Shift della tastiera e selezionate con il mouse il layer Sampled Points and 2018_Gaz_ua_national. Click con il tasto destro e selezionate Rimuovi per eliminarli entrambi dalla TOC di QGIS.

../../_images/826.png
  1. Ora usiamo il livello con le aree per calcolare la temperatura media per ogni regione. Aprite dal browser QGIS il livello tl_2018_us_county.shp .

../../_images/927.png
  1. Un nuovo livello tl_2018_us_county sarà caricato nel pannello Layers. Andate su Processing ‣ Strumenti.

../../_images/1033.png
  1. Cercare e trovare nel pannello Strumenti di Processing (Processing Toolbox) la voce del menu: Analisi Raster -> Statistiche zonali.

../../_images/1142.png
  1. Seleziona us.tmax_nohads_ll_20190501_float come livello Raster layer e tl_2018_us_county come livello Vector layer containing zones. Inserisci tmax_ come Output column prefix. Clicca the vicino a Statistics to calculate.

../../_images/1236.png
  1. Selezionare come statistiche Mean (Media) e cliccare OK.

../../_images/1334.png
  1. Now, click on the next to Zonal Statistics and select Save to File option to save the output.

    ../../_images/1431.png
  2. Browse to the folder where you want to save the output. Save the output layer as us_county_tmax.shp. Click Run to start the processing. The algorithm may take a few minutes to complete and you will see the output layer added as soon as the processing finishes. Click Close.

../../_images/1529.png
  1. Right-click the us_county_tmax layer, and select Open Attribute Table.

../../_images/1627.png
  1. You will see a new column called tmax_mean added in the attribute table. This contains the average temperature value extracted over the polygon for each feature. There are some null values because those counties (belonging to Alaska, Hawaii and Puerto Rico) are outside of the raster layer’s extent.

../../_images/1728.png

If you want to give feedback or share your experience with this tutorial, please comment below. (requires GitHub account)