Utilizzare le interrogazioni spaziali (QGIS3)

Le interrogazioni spaziali (Spatial Queries) sono importanti per molte analisi. Queste consentono di selezionare, in un livello vettoriale, degli elementi usando relazioni spatiali (interseca, contiene, tocca etc.) con elementi in un secondo livello. In QGIS, questa funzione è disponibile usando gli strumenti Select by Location (seleziona per posizione) e Extract by Location (estrai per posizione) che trovate nel pannello Strumenti di Processing.

Descrizione del compito

Useremo 2 livelli, da dati dalla città di Melbourne, Australia. I livelli sono i pub nella città e le posizioni della stazioni della metro - vogliamo vedere tutti i pub che sono al massimo distanti 500 metri dalla stazione della metro.

Altre abilità che imparerai

  • Scegliere un appropriato sistema di proiezione e riproiettare un dato vettoriale.

  • Creare dei buffer

  • Lavorare con un formato geopackage (.gpkg)

Ottenere i dati necessari.

La piattaforma della città di Melbourne Open Data Platform .

Scarica Metro Train Stations with Accessibility Information . Esporta il dato nel formato Originale.

../../_images/data110.png

Scarica il dato Bars and pubs, with patron capacity . Esporta i dati come CSV.

../../_images/data24.png

Potete scaricare i dati direttamente dal link sotto:

metro_stations_accessbility.zip

Bars_and_pubs__with_patron_capacity

Fonte Dati: [CITYOFMELBOURNE]

Procedimento

  1. Individuate il file appena scaricato metro_stations_accessbility.zip usando il browser di QGIS e trascinatelo nel progetto. Verrà aggiunto un livello metro_stations_accessbility al pannello Layers .

../../_images/1107.png
  1. Aggiungi il livello con la posizione dei pub di Melbourne andando su Layer ‣ Aggiungi Layer ‣ Aggiungi layer testo delimitato…. ( vedi doc:importing_spreadsheets_csv per ulteriori dettagli su come importare file di testo)

../../_images/2102.png
  1. Nella finestra Data Source Manager | Delimited Text seleziona il file Bars_and_pubs__with_patron_capacity.csv come File name. I parametri X field e Y field dovrebbero automaticamente selezionare i campi x coordinate e y coordinate rispettivamente. Clicca:guilabel:Add.

../../_images/348.png
  1. You will see a new Bars_and_pubs__with_patron_capacity layer added to the Layers panel. Both of the input layers are in the Geograhpic Coordinate Reference System (CRS) EPSG:4326 WGS84. For performing spatial analysis, it is recommended to use a Projected Coordinate Reference System (CRS). So we will now re-project both the layers to an appropriate regional CRS that minimizes distortions and allows us to work in units of distance such as meters instead of degrees. Go to Processing ‣ Toolbox.

../../_images/423.png
  1. Trovate e selezionate con doppio click il modulo Vector general ‣ Reproject layer (Riproietta vettore).

../../_images/521.png
  1. Selezionate Bars_and_pubs__with_patron_capacity come Input layer. Clicca il pulsante Select CRS vicino a Target CRS.

../../_images/621.png
  1. Per selezionare un SR/CRS appropriato, dobbiamo verificare se c’è un SR/CRS regionale per l’area. Per l’Australia, il Map Grid of Australia (MGA) 2020 è un sistema basato su UTM impostato su base regionale. Melbourne ricate nella zona UTM 55, quindi possiamo selezionare il SR/CRS GDA 2020 / MGA zone 55 EPSG:7855` CRS.

../../_images/720.png

Nota

Se non si è sicuri quale SR/CRS utilizzare, scegliere il sistema UTM basato sul datum WGS84. Potete definire quale zona sia la migliore per l’area di studio usando il sito UTM Grid Zones of the World.

  1. Cliccate il pulsante vicino a Reprojected e selezionate Save to GeoPackage. Geopackage il formato raccomandato, ed è il formato predefinito per scambiare dati QGIS3. NOTA IMPORTANTE: Un singolo file GeoPackage .gpkg può contenere più livelli vettoriali e raster

../../_images/820.png
  1. Nominate il file GeoPackage spatialquery e salvate cliccando Save.

../../_images/920.png
  1. Alla richiesta del nome del livello, inserite bars_and_pubs e cliccate OK. Cliccare Run (Esegui) per eseguire la trasformazione di SR/CRS

../../_images/1027.png
  1. La finestra aprirà il pannello Log e vedrete il procedimento creare il nuovo livello bars_and_pubs.

../../_images/1130.png
  1. Eseguiamo la stessa procedura per il livello metro_stations_accessbility. Nella sezione Parameters della finesetra Reproject layer (Riproietta vettore). Seleziona metro_stations_accessbility come Input layer (livello di ingresso). Lasciare lo stesso Target CRS. Clccare il pulsante vicino a Reprojected e seleziona Save to GeoPackage (salva come Geopackage). Seleziona lo stesso nome del file di output precedente, i.e. spatialquery (ricorda che un singolo file GeoPackage può contenere più livelli, quindi salviamo questo livello nello stesso file geopackage). Inserisci metro_stations come Layer name (nome vettore). Clicca Run (Esegui).

../../_images/1228.png
  1. Nella finestra di progetto di QGIS troverete 2 nuovi livelli caricati nel pannello Layers : bars_and_pubs e metro_stations. Si possono nascondere i livelli originali, non servono più. Ora siamo pronti per eseguire l’interrogazione spaziale. Siamo interessati a selezionare i pub entro 500m dalle stazioni delle metro, il primo passo è quello di creare un buffer intorno alle stazioni metro, il buffer è un’area che rappresenta la mia area di ricerca. Cerca e trova il modulo Vector geometry ‣ Buffer (geometria vettore –> Buffer) nel pannello Processing Toolbox (Strumenti di processing).

../../_images/1326.png
  1. In the Buffer dialog, select metro_stations as the Input layer. Set 500 meters as the Distance. Save the output to the same spatialquery geopackage and enter metro_stations_buffers as the Layer name. Click Run.

../../_images/1424.png
  1. vedrete un nuovo livello metro_stations_buffers caricato sul pannello Layers . Ora possiamo stabilire quali punti del livello bars_and_pubs ricadonon all’interno del poligono del livello metro_stations_buffers. Trovate il modulo menuselection:Vector selection –> Extract by Location (estrai per posizione) dal pannello Processing Toolbox (Strumenti di processing) e fate doppio click per lanciarlo.

../../_images/1521.png

Nota

Extract by location (estrai per posizione) andrà a creare un nuovo livello con i punti che soddisfano i criteri dell’interrogazione spaziale. Se invece si vuole solo selezionare i punti che soddisfano i criteri, utilizzare lo strumento Select by location (seleziona per posizione).

  1. Nella finestra Extract by location (estrai per posizione), selezionare bars_and_pubs nello spazio Extract features from (estrai elementi da). Seleziona Intersect (interseca) come condizione geometry predicate (criterio geometrico). Imposta metro_stations_buffers come By comparing to the features from (rispetto agli elementi che). Salva il risultato nel file in formato GeoPackage``spatialquery`` come livello con nome selected. Clicca Run.

../../_images/1620.png
  1. Finita l’elaborazione, vedrete il livello selected aggiunto al pannello Layers. Nota che questo livelli contiene solamenti i punti del livello bars_and_pubs che sono inclusi nelle aree dei poligoni buffer.

../../_images/1721.png
  1. La nostra analisi è completa. Noterete che i buffer non sono circolari ma ovali. Questo perchè il sistema di riferimento SR/CRS del progetto QGIS è nel SR/CRS EPSG:4326 WGS84. Per visualizzare i dati del progetto in un SR/CRS proiettato , andare nel menu Project ‣ Properties ‣ CRS (Progetto ‣ Proprietà ‣ SR) e selezionare GDA 2020 / MGA zone 55 EPSG:7855 ovvero quello utilizzato nella nostra analisi. Ora le aree buffer avranno la forma corretta (circolare).

../../_images/1819.png

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