Utilizzare le interrogazioni spaziali

Avvertimento

This tutorial is now obsolete. A new and updated version is available at Utilizzare le interrogazioni spaziali (QGIS3)

Le interrogazioni spaziali sono il fondamento di molte varietà di metodi di analisi GIS. In QGIS queste funzioni sono disponibili attraverso il plugin Interrogazione Spaziale.

Descrizione dell’esercizio

Lavoreremo con 2 dataset - un layer lineare che rappresenta i fiumi e un layer puntuale che descrive le città. L’obiettivo è quello di lanciare un’interrogazione spaziale per trovare tutte le città che non distano più di 10 chilometri da un fiume.

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

  • Aprire dei file archivio .zip direttamente in QGIS.

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

  • Creare dei buffer

  • Selezionare geometrie usando espressioni SQL-Like.

  • Convertire uno shapefile in un file KML.

  • Verificare la validità dei nostri risultati mediante Google Earth.

Ottenere i dati necessari

Useremo i file ne_10m_rivers_lake_centerlines e 10m_populated_places_simple . Entrambi dataset tratti da Natural Earth.

Download Rivers and Lake Centerlines

Scaricate Populated Places.

Fonte Dati: [NATURALEARTH]

Procedimento

  1. Dopo che avete scaricato i dati, aprite QGIS. Andate su Layer ‣ Aggiungi Vettore….

../_images/1199.png
  1. Fate Click su Sfoglia e portatevi nella cartella dove avete scaricato i file .zip.

../_images/2162.png
  1. Trovate i file .zip scaricati. Tenete premuto il tasto Shift e fate click su entrambi i file zip per selezionarli. Click su Apri.

../_images/3102.png
  1. Apparirà una finestra di dialogo che vi chiederà di selezionare il layer da aprire tra i file zip. Selezionate ne_10m_rivers_lake_centerlines.shp e fate click su OK.

../_images/465.png
  1. Visto che avete operato una selezione multipla, ripetete l’operazione per il file successivo. Selezionate 10m_populated_places_simple.shp e fate click su OK.

../_images/559.png
  1. Potrete vedere ora entrambi gli shapefile caricati in QGIS.

../_images/657.png
  1. Genereremo dei buffer sia nel layer puntuale che in quello lineare. Lo strumento di geoprecessing per il Buffer in QGIS usa la numerazione metrico decimale ordinaria per calcolare la misura del buffer. Ma i layer con cui stiamo lavorando sono in un Sistema di Riferimento (SR) basato su Coordinate Geografiche che, com’è noto, vengono calcolate in gradi. . Questo non soddisfa le esigenze delle nostre analisi che prevedono invece l’uso di unità di misura come i metri o i chilometri. Per risolvere questo problema dobbiamo allora ri-proiettare i nostri layer su un Sistema di Coordinate Proiettare (SR). Click sul tasto destro del mouse sul layer 10m_populated_places_simple layer e quindi scegliete Salva con Nome.

../_images/756.png
  1. Nella finestra di dialogo Salva i vettori come… scegliete il tasto Sfoglia accanto alla voce Salva con Nome e assegnate al nuovo file il nome di populated_places_reprojected.shp . Ora fate click sul successivo tasto Sfoglia vicino alla voce Sist Rif.

../_images/854.png
  1. Now we must choose an appropriate CRS for our purpose. For creating buffers, a Azimuthal Equidistant projection would be best suited as radial distances around the center of the projection are accurate. In our case, since the dataset is global, we will choose a World projection. In the Coordinate Reference System Selector dialog, start searching for world az.. and you will see the results show up. Select the World_Azimuthal_Equidistant and click OK.

Nota

La Proiezione Mondiale Equdistante Azimutale misura 90 gradi dall’origine. Qui, essendo l’origine a 0 gradi di longitudine, saranno convertiti soltanto i valori compresi tra +/- 90 gradi di longitudine.

../_images/953.png
  1. Tornate nella finestra di dialogo Salva i vettori come … e spuntate la casella Aggiungi il file salvato sulla mappa quindi fate click su OK.

../_images/1061.png
  1. Adesso ripetete l’operazione di ri-proiezione per il file ne_10m_rivers_lake_centerlines e salvate il nuovo layer di laghi e fiumi con il nome di rivers_lake_reprojected.shp.

../_images/11100.png
  1. Adesso avete 4 layer nel vostro:guilabel:Pannello dei Layer. Deselezionate i layer originali per vedere soltanto i layer sui quali sono state effettuate le riproiezioni. I layer riproiettati sono ancora rappresentati nei CRS di tipo Geografico per via delle impostazioni di default. Vediamo di annullarle. Facciamo click sul tasto Stato del SR in basso a destra. Questa finestra può essere raggiunta anche da menu Progetto ‣ Proprietà del Progetto.

../_images/1263.png
  1. Nella scheda Sistema di Riferimento (SR) della finestra di dialogo Proprietà del progetto disattivate la casella Abilita la riproiezione al volo. Click su OK.

../_images/1360.png
  1. Torniamo adesso nella finestra principale di QGIS, click su uno dei layer riproiettati e click su « Zoom all’estensione del Layer.

../_images/1457.png
  1. Adesso vedremo finalmente nostri dati nel Sistema di Riferimento che abbiamo scelto per i nostri layer. Adesso dobbiamo creare dei buffer per entrambi i dataset. Click su Vettore ‣ Strumenti di Geoprocessing ‣ Buffer.

../_images/1552.png
  1. Nello strumento Buffer scegliete come file di input populated_places_reprojected . Inserite una distanza di buffer pari a 10000. Notate che vogliamo un buffer di 10 chilometri e, considerato che le unità del sistema di riferimento sono i metri, dobbiamo inserire 10.000. Inserite come nome del file in uscita populated_places_buffer.shp. E fate click su OK.

../_images/1649.png
  1. Una volta che il processo di buffering è finito, fate click su Yes quando vi verrà chiesto se volete aggiungere il nuovo vettore alla TOC.

../_images/1746.png
  1. Ripetete lo stesso processo di buffer per il file rivers_lake_reprojected e create un file di output che chiameremo rivers_lake_buffer.shp.

../_images/1843.png
  1. Il problema è che il nuovo layer rivers_lake_buffer contiene geometria che riguardano tanto i fiumi quanto i laghi. La nostra ricerca è interessata esclusivamente alle geometrie dei fiumi, Allora facciamo ricorso ad un’interrogazione che ci permetta di selezionare esclusivamente le geometrie dei fiumi. Click con il tasto destro su rivers_lake_buffer e selezioniamo Apri tabella attributi.

../_images/1934.png
  1. Come potete notare gli attributi della colonna «featurecla» contengono informazioni che possiamo usare per separare le geometrie dei fiumi da quelle dei laghi. Fate click sul tasto Seleziona elementi usando un espressione.

../_images/2029.png
  1. Inserite l’espressione «featurecla» = «River» fate click su Seleziona e infine click su Chiudi per tornare alla finestra principale di QGIS.

../_images/2163.png
  1. Ora siamo pronti per realizzare l’interrogazione spaziale. Dovete aver attivato il Plugin Interrogazione spaziale per utilizzare queste funzionalità. Vedetevi Usare i plugin per maggiori dettagli. Quando il plugin è attivo fate click su Vettore ‣ Interrogazione Spaziale ‣ Interrogazione Spaziale.

../_images/2230.png
  1. A noi interessa selezionare con la nostra interrogazione tutte le geometrie bufferizzate delle città che intersecano le linee bufferizzate dei fiumi. Assicuratevi che la casella vicino alla dicitura «geometrie selezionate» sia spuntata e indichi il numero dei fiumi selezionati. Questo ci assicura che la nostra interrogazione interesserà esclusivamente le geometrie dei fiumi che abbiamo precedentemente selezionato. Fate click su Apply.

../_images/2327.png
  1. Una volta che la nostra interrogazione è completa vedrete aggiungersi alla finestra di dialogo una nuova scheda chiamata Oggetti Selezionati. Fate click sul pulsante Crea layer con quello selezionato. Un nuovo layer si aggiungerà al pannello dei layer. Fate click su Chiudi.

../_images/2427.png
  1. Usate lo strumento ingrandisci (zoom in) in alcune aree per verificare i risultati. Noterete che il nuovo layer contiene solo le geometrie delle città che intersecano il buffer dei fiumi.

../_images/2525.png
  1. Dobbiamo sempre verificare che i nostri risultati siano validi. Un modo per verificare il risultato è esportare questo layer come un file KML e caricarlo in Google Earth. Così potrete vedere se le aree che abbiamo identificato sono realmente dentro i dieci chilometri dal fiume. Tasto destro del mouse sul layer e fate click su Salva con nome.

../_images/2623.png
  1. ella finestra Salva i vettori come…,scegliete WGS84 come SR. Questo perché il formato KML vuole che le coordinate siano in questo specifico sistema di riferimento. Chiamate il vostro file KML cities_near_river.kml.

../_images/2722.png
  1. Aprite Google Earth e verificate che le città rappresentate con questi buffer siano effettivamente vicine ai fiumi.

../_images/2821.png

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