Batch Processing using Processing Framework (QGIS2)

Avvertimento

A new version of this tutorial is available at Batch Processing using Processing Framework (QGIS3)

QGIS 2.0 introduce un nuovo concetto chiamato Processing Framework. Precedentemente noto come Sextante, il Processing Framework fornisce un ambiente all’interno di QGIS per elaborare i dati con algoritmi sia nativi che provenienti da terze parti. Esso dispone di gradevoli interfacce che permettono di impostare facilmente processi batch per eseguire lo stesso algoritmo su numerosi layer diversi. Un elaboratore batch è un strumento utile che può risparmiarvi del lavoro manuale e aiutarvi ad automatizzare dei compiti ripetitivi.

Descrizione dell’esercizio

Prenderemo diversi layer vettoriali globali e li ritaglieremo sull’estensione della carta del continente africano attraverso un singolo comando batch.

Altri argomenti che avremo modo di affrontare nel corso dell’esercizio

  • Dissolvere (merge) poligoni che hanno lo stesso attributo.

Ottenere i dati necessari

Natural Earth dispone di molti layer vettoriali di carattere planetario. Scarichiamo i layer seguenti…

Una volta scaricati i file, estraete tutti gli shapefile nella stessa cartella.

Fonte Dati: [NATURALEARTH]

Procedimento

  1. Andate su Layer ‣ Aggiungi Vettore.

../_images/1166.png
  1. Individuate lo shapefile 0 Countries appena scaricato ne_10m_admin_0_countries.shp e fate click su Apri.

../_images/2137.png
  1. Considerando il fatto che il nostro obiettivo è quello di ritagliare i layer globali sui confini dell’Africa, dobbiamo prima di tutto preparare un layer costituito da un solo poligono per l’intero continente. I layer delle diverse nazioni hanno un attributo che si chiama CONTINENT. Possiamo utilizzare un metodo di geoprocessing chiamato Dissolvenza per unire tutti i paesi che hanno il medesimo attributo di continente e trasformarli in un solo poligono.

../_images/378.png
  1. Aprite lo strumento Dissolvenza da Vettore ‣ Strumenti di Geoprocessing ‣ Dissolvenza.

../_images/446.png
  1. Nella finestra di dialogo selezionate il file ne_10m_admin_0_countries come Vettore di input. Il Campo di dissolvenza sarà CONTINENT`. Chiamiamo lo shapefile in output ``continents.shp e spuntiamo la casella Aggiungi il risultato alla mappa.

Nota

Se voi voleste unire TUTTI i poligoni, indipendentemente dai loro attributi, potreste farlo selezionando – Dissolve Tutto – alla voce Campo di dissolvenza. In questa circostanza il geoprocesso unirebbe insieme tutti i poligoni del layer restituendo un singolo poligono aggregato.

../_images/540.png
  1. Il processo di dissolvenza prenderà un certo quantitativo di tempo. Una volta che è finito, vedrete il nuovo layer continents aggiungersi a QGIS. Usate lo strumento Seleziona il singolo elemento dalla barra degli strumenti e fate click sull’Africa per selezionare il poligono che rappresenta il continente.

../_images/639.png
  1. Click con il tasto destro sul layer continents e selezionate Salva la selezione con nome….

../_images/739.png
  1. Diamo al file di output il nome di africa.shp. Tenendo conto del fatto che siamo interessati alla forma del continente e non a specifici attributi, potete spuntare la casella Salta la creazione degli attributi. Assicuratevi anche che la casella Aggiungi il file salvato alla mappa sia spuntata.

../_images/838.png
  1. Ora avrete il layer africa caricato in QGIS, esso è costituito da un unico poligono per l’intero continente. Adesso è arrivato il momento di partire con il nostro geoprocesso di ritaglio e allineamento seriale batch. Aprite Processing ‣ strumenti.

../_images/939.png
  1. Esaminate gli algoritmi a disposizione e trovate lo strumento Clip seguendo il percorso QGIS geoalgorithms ‣ Vector overlay tools ‣ Clip. Per trovare più rapidamente gli algoritmi di geoprocessing potete anche usare la casella Cerca.

../_images/1046.png
  1. Tasto destro del mouse su Clip e selezionate Esegui come processo batch.

../_images/1167.png
  1. Nella finestra di dialogo Batch Processing la prima scheda si chiama Parameters e lì andremo a definire i layer in input. Fate click sul pulsante con i puntini dopo la riga della colonna Input layer .

../_images/1249.png
  1. Individuate la cartella che contiene i layer del trasporto globale che avete scaricato. Tenete premuto il tasto Ctrl della tastiera e selezionate tutti i layer che volete allineare. Potete usare anche Shift o Ctrl-A per fare selezioni multiple. Fate click Open.

../_images/1347.png
  1. Noterete che la colonna Input layer sarà automaticamente riempita con tutti i layer che avete selezionato. Ricordate che il pulsante Add row in basso vi permette di aggiungere nuove righe e quindi nuovi file di input. Come prossimo passo abbiamo bisogno di selezionare il layer contenente i confini intorno i quali ritaglieremo i nostri file di input. Fate click sul pulsante con i puntini e aggiungete alla prima riga della colonna Clip layer. il file africa.shp . Dato che il clip layer sarà lo stesso per tutti i layer di input, potete fare doppio click sull’intestazione di colonna Clip layer e lo stesso layer verrà caricato automaticamente su tutte le righe. A questo punto si tratta di definire i nostri output. Facciamo click su pulsante con i puntini alla prima riga della colonna Clipped .

../_images/1444.png
  1. Individuate la cartella in cui volete creare i vostri layer di output. Digitate il nome del file come clipped_ e fate click su Salva.

../_images/1540.png
  1. Comparirà una nuova finestra di dialogo. Secegliete guilabel:Fill with parameter values come Autofill mode. Selezionate poi Parameter to use con la voce Input layer. Questo settaggio accoderà il nome del file di input a quello del file di output, cioè alla stringa output_ che abbiamo indicato come nome del file di output. Questo ci garantisce che tutti i file di output avranno un nome specifico e riconoscibile e non si sovrascriveranno l’un l’altro.

../_images/1638.png
  1. Ora siamo pronti per avviare il processo batch. Click su Run.

../_images/1736.png
  1. L’algoritmo di clip partirà per ciascuno degli input e creerà dei file di output nel modo che abbiamo definito. Una volta che il processo batch sarà terminato vedrete i vari layer aggiungersi alla finestra principale di QGIS. Come potrete notare, tutti i layer globali sono stati tagliati sui confini del continente nel modo da noi specificato.

../_images/1833.png

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