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
Data Sources: [NOAACPC], [USGAZETTEER] [TIGER]
Procedimento¶
Estrai i file che trovi nel file complresso
2018_Gaz_ua_national.zip
etl_2018_us_county.zip
in una cartella nel tuo PC. Apri QGIS e usa il browser i QGIS per aprire il fileus.tmax_nohads_ll_20190501_float.tif
e aggiungerlo nella mappa.
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.
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.
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ù .
Cercare e trovare nel pannello Strumenti di Processing (Processing Toolbox) la voce del menu: Analisi Raster -> Campiona valori Raster.
Selezionare
2018_Gaz_ua_national
come Input Point Layer. Selezionareus.tmax_nohads_ll_20190501_float
come livello Raster Layer to sample. Espandere Advanced parameters ed inseriretmax
come prefisso della colonna Output column prefix. Clicca Run. Quando l’elaborazione è terminata cliccare Close.
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.
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
and2018_Gaz_ua_national
. Click con il tasto destro e selezionate Rimuovi per eliminarli entrambi dalla TOC di QGIS.
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
.
Un nuovo livello
tl_2018_us_county
sarà caricato nel pannello Layers. Andate su .
Cercare e trovare nel pannello Strumenti di Processing (Processing Toolbox) la voce del menu: Analisi Raster -> Statistiche zonali.
Seleziona
us.tmax_nohads_ll_20190501_float
come livello Raster layer etl_2018_us_county
come livello Vector layer containing zones. Inseriscitmax_
come Output column prefix. Clicca the … vicino a Statistics to calculate.
Selezionare come statistiche
Mean
(Media) e cliccare OK.
Now, click on the … next to Zonal Statistics and select Save to File option to save the output.
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.
Right-click the
us_county_tmax
layer, and select Open Attribute Table.
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.
If you want to give feedback or share your experience with this tutorial, please comment below. (requires GitHub account)