Con questo articolo vedremo come generare delle curve di livello a partire da una nuvola di punti oppure da un DEM raster e successivamente come gestire in maniera completa la definizione degli stili e delle quote.

Con l’occasione, metteremo in campo diverse funzionalità di QGIS, tra cui la gestione combinata di file raster e vettoriali, l’importazione di una griglia di punti in formato .dxf e la relativa conversione in formato .shp

Si tratta dunque di un esercizio ricco di spunti per mettere in campo numerose funzionalità di QGIS.

Per questo esempio recuperiamo dei dati disponibili sui portali cartografici pubblici.

Il DEM in formato raster
DEM 10 metri formato raster

Il DEM (Digital Elevation Model) in formato raster è un modello digitale generato a partire da una griglia di punti quotati a cui, per ogni punto, è associato un pixel. Più stretto è l’intervallo della griglia, maggiore sarà la risoluzione del DEM.

A partire dal DEM è possibile estrapolare delle curve di livello. Per il nostro esempio recuperiamo i dati messi a disposizione qui dall’Istituto Nazionale di Geofisica e Vulcanologia (INGV).

In particolare, scarichiamo il foglio W45580 relativo all’Agro Pontino. Ricordo che questo DEM è realizzato con un passo di 10mt.

scarica
Il DTM in formato dxf
DTM a 5 metri in formato dxf

Attraverso il Geoportale della Regione Lazio procediamo invece con il download del DTM (Digital Terrain Model) disponibile in formato .dxf costituito da una griglia di punti con passo 5mt; ad ogni punto è attribuita una coordinata lungo l’asse “z” corrispondente proprio alla relativa quota del terreno.

Anche in questo caso selezioniamo i file relativi all’area del’Agro Pontino, in particolare in corrispondenza del Monte Circeo. I file sono:

  • 414131_dtm.dxf
  • 414132_dtm.dxf
  • 414134_dtm.dxf
  • 414144_dtm.dxf
scarica

Creazione del progetto ed estrazione delle curve di livello dal DEM raster

DEM in scala di grigi

Una volta acquisiti gli strati informativi del progetto, possiamo procedere con la creazione di un nuovo progetto QGIS e con il caricamento dei dati.

Per prima cosa partiamo dal DEM raster. In prima battuta la visualizzazione non è particolarmente comunicativa, perché di default lo stile di visualizzazione è impostato su scala di grigi (in nero la quota minima, in bianco quella massima).

A mala pena si riesce a riconoscere la sagoma del Monte Circeo. Fortunatamente si può intervenire molto semplicemente sui parametri di visualizzazione del pannello di stile layer per ottenere una resa grafica decisamente più efficace.

Maschera di gestione degli stili

Sono disponibili numerose opzioni configurabili in maniera piuttosto semplice e con diversi parametri. Invito a fare delle prove per provare le varie configurazioni. In particolare prendiamo in esame le opzioni:

  • Banda singola falso colore
  • Ombreggiatura
  • Curve di livello

Di cui riporto degli esempi di visualizzazione:

Naturalmente, i differenti stili possono essere combinati. L’immagine seguente è stata composta dalla sovrapposizione della modalità “Ombreggiatura” e “Curve di livello”.

DEM, sovrapposizione visualizzazione ombreggiata e in curve di livello

Abbiamo ottenuto con pochissimi passaggi una discreta rappresentazione dell’andamento del terreno e delle relative curve di livello, ma abbiamo anche degli evidenti limiti di resa. In particolare le curve di livello appaiano piuttosto seghettate. Si tratta in effetti di una previsualizzazione veloce. Per avere maggior controllo occorre estrapolare le curve di livello come strato indipendente. Per fare questo è sufficiente, attraverso la barra dei menu, richiamare il comando di estrazione delle Curve di Livello.

Il percorso della Barra dei Menu:

Raster > Estrazione > Curve di Livello

Di seguito la schermata di controllo:

QGIS maschera di estrazione curve di livello
Come si può vedere, è stato impostato un intervallo tra le curve di livello pari a 10mt inoltre sarà aggiunto in tabella un attributo ELEV con le quote associate ad ogni curva.

Confrontiamo il risultato ottenuto con la visualizzazione da stile che abbiamo mostrato nel precedente passaggio. La differenza è subito evidente:

Abbiamo un disegno della linea più uniforme, senza la resa approssimativa e seghettata delle curve da stile. Soprattutto abbiamo un layer indipendente, vettoriale con dati tabellari associati con tutti i vantaggi operativi che ne conseguono.

Estrazione delle curve di livello dalla griglia di punti

Prendiamo ora in esame il caso della griglia di punti in formato .dxf e vediamo come procedere alla estrazione delle curve di livello.

Come primo passaggio, importiamo nel progetto i dxf scaricati dal Geoportale.

Per procedere con la generazione delle curve di livello, dobbiamo avvalerci di un plugin. Possiamo recuperarlo direttamente dal repository di QGIS. Il plugin si chiama Contour.

QGIS Contour Plugin

Una volta avviato lo strumento Contour, osserviamo i parametri disponibili e notiamo che sono piuttosto semplici ed intuitivi.

Il plugin permette di generare sia linee che poligoni e di impostare un intervallo tra le curve di livello.

Nel caso in esempio, ci interessa generare delle linee con intervallo di 5mt.

QGIS maschera di controllo del plugin Contour

Prima di procedere occorre però un ulteriore passaggio. Il plugin (campo “Data value”) richiede che la quota Z sia recuperata dalla tabella. Nel caso del dxf non abbiamo questo tipo di informazione, perché si tratta solo di punti disposti nello spazio. Abbiamo bisogno di estrapolare i valori delle coordinate di ogni singolo punto e riportarli come dati tabellari. Per fare questo c’è uno strumento specifico raggiungibile dalla dalla barra dei menu:

Vettore > Strumenti di Geometria > Aggiungi attributi della Geometria

Grazie allo strumento sarà generato un nuovo layer temporaneo con i valori delle coordinate x,y,z riportati in tabella.

QGIS griglia di punti con coordinate riportate in tabella

Finalmente, possiamo procedere con la generazione delle curve recuperando le informazioni sull’elevazione dall’attributo zcoord.

Eseguiamo lo strumento Contour sui 4 layer di punti. La generazione delle curve ha funzionato correttamente, ma è immediatamente visibile un problema ai bordi di ciascun layer dove è presente una brusca interruzione delle curve.

Per risolvere il problema dovremo effettuare un merge dei 4 layer di punti, per poi procedere nuovamente alla generazione delle e curve.

Per affinare ulteriormente la resa e possibile ammorbidire le curve. Anche in questo caso possiamo utilizzare un plugin recuperato dal repository di QGIS: Generalizer3.

Come algoritmo di trasformazione è stato usato il “Boyle’s Forward-Looking” con valore 5.

Vestizione grafica

CTR Regione Lazio in scala 1:500

Come ultimo passaggio procediamo alla vestizione e all’aggiunta delle etichette di quota. Alla maniera della CTR in scala 1:5.000, l’idea è quella di rappresentare più spesse le curve ogni 25 metri di dislivello e più sottili quelle intermedie.

La tentazione sarebbe quella di procedere manualmente alla selezione delle curve da evidenziare. Visto il numero di elementi, l’approccio corretto è quello filtrare con una query.

La query di cui abbiamo bisogno dovrebbe filtrare tutti gli elementi la cui quota divisa per 25 dia come resto 0. Vediamo come fare.

Impostiamo lo Stile Tramite Regole e come prima regola relative alle curve con intervallo 25mt diamo la seguente istruzione:

 "zcoord"  % 25 = 0

Per le curve ogni 5mt invece:

 "zcoord"  % 5 = 0

In questo modo possiamo vestire le due categorie di curve in maniera indipendente, lavorando sugli spessori

Infine aggiungiamo le etichette con le quote. Come per gli stili sfruttiamo l’etichettatura tramite regole per agire selettivamente sulle quote multiple di 25.

L’esercizio è terminato. Ancora una volta QGIS si dimostra essere uno strumento potente e completo per supportare le più svariate esigenze di rappresentazione cartografica.

Tags:

4 risposte a “QGIS e curve di livello”

  1. Leonardo ha detto:

    Buongiorno, essendo neofita di QGIS non riesco a capire alcuni passaggi scontati nella descrizione. Ho importato il file .dxf, ho scaricato il plugin Contour, ma non riesco a fare tutta la parte di “aggiungi attributi della geometria”. Non mi esce la stessa tabella della foto presente nel tutorial e non capisco come usare le coordinate Z. C’è possibilità di avere aiuto?
    Grazie mille!

    • Matteo Prati ha detto:

      Buonasera Leoanrdo, per poter visualizzare in tabella i dati di elevazione devi usare lo strumento come da immagine allegata:

      Successivamente, nella maschera come layer in ingresso metti il dxf da cui vuoi estrarre l’informazione. Una volta applicato il processo, sarà generato un nuovo layer con le informazioni in tabella. Su questo nuovo layer potrai utilizzare il plugin Contour per la generazione delle curve di livello.
      Se ci sono altri passaggi che non sono chiari, chiedi pure!
      Un saluto, Matteo

  2. Roberta ha detto:

    Buonasera. Ho seguito la procedura per estrapolare le curve di livello a partire da una griglia di punti in .dxf. Volendo però ammorbidire le curve come indicato, usando l’algoritmo di trasformazione mi dà un errore durante l’esecuzione del codice Python: “Null geometry cannot be converted to a polyline”.
    A cosa può essere dovuto?
    Grazie mille

    • Matteo Prati ha detto:

      Buonasera Roberta, probabilmente ci deve essere qualche errore nella geometria delle linee. Dovrei vedere il progetto per poter rispondere in maniera più precisa.
      Come consiglio preliminare, direi di verificare nella tabella degli attributi che non siano presenti elementi vuoti, in caso andrebbero eliminati.
      Va tenuto anche presente che il plugin comincia ad essere datato e non sono da escludersi problemi di compatibilità con le versioni più recenti di QGis. Come alternativa al plugin, si può utilizzare lo strumento “Lisciatura” presente negli strumenti di processing di QGiS.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.