Vorresti sapere cos’è un DEM e come si fa a calcolarlo partendo dalle isoipse? oggi te lo spieghiamo noi
1. Cos’è un DEM
Definiamo innanzi tutto che cos’è un DEM. Noi qui semplificheremo molto, in modo da rendere il concetto comprensibile a chiunque. DEM è l’acronimo di Digital Elevation Model, che letteralmente si traduce come Modello Digitale dell’Altitudine.
Quindi, nella pratica, quello che facciamo (o meglio, che facciamo fare a QGIS) quando realizziamo un DEM, è di:
- scegliere una porzione di territorio,
- sovrapporgli un grigliato avente una dimensione di cella scelta da noi ed infine
- inserire in ogni cella la quota media o altitudine media presente nell’areola porzionata dalla cella.
Chiaramente più la cella sarà piccola, più vicino alla realtà sarà il nostro DEM. Tuttavia più la cella è piccola, più il file contenente il DEM sarà grande e pesante da leggere per il nostro computer. Per cui, a seconda delle applicazioni, è importante scegliere la giusta dimensione di cella. Magari di questo parleremo in qualche altro post.
2. Il file di input: le isoipse
Per realizzare un DEM si possono usare diversi dati di input, aventi diversa geometria. Ad esempio potremmo usare dei punti quotati o ancora le linee degli oggetti anche artificiali che si trovano sulla superficie del terreno.
In questo video invece vediamo come estrarre un DEM dalle isoipse.
Ma cosa sono le isoipse o curve di livello? Si tratta di linee lungo le quali la quota si mantiene costante. Quindi possiamo essere sicuri che seguendo il percorso di una curva di livello o isoipsa la quota, ad esempio di 800m, dico un valore a caso, sarà sempre la stessa in tutti i punti della linea.
La distanza tra due curve di livello adiacenti si chiama equidistanza. In realtà non è una vera e propria distanza, ma rappresenta il dislivello presente in termini di quota, a quella scala di rappresentazione tra isoipse adiacenti. Ad esempio in uno shapefile in scala 1:10.000 l’equidistanza tra curve di livello è di 10m. Questo vuol dire che se considero la prima isoipsa a 800m, la seconda immediatamente vicina sarà 790m, quella successiva 780m e così via.
Vediamo come deve essere dal punto di vista informatico il file delle curve di livello per poter calcolare un DEM. Per questo video noi abbiamo scaricato le curve di livello di un Comune della Basilicata dal suo geoportale.
- Tipo di file. Per prima cosa, le estensioni ammesse come file di input sono tutte le estensioni lette da QGIS. Ad esempio i dxf o gli shapefile o i file Geojson. Non è accettato invece, ad esempio, il file dwg perché proprietario, ma del resto non viene neanche aperto in lettura. Basterà convertirlo in dxf e potrà essere usato come file di input.
- Geometria. Per quanto riguarda la parte geometrica del layer di input, si tratta chiaramente di un file lineare. Tuttavia, talvolta QGIS, prima di eseguire il calcolo del DEM, ha bisogno di un passaggio intermedio per semplificare gli elementi presenti nel layer. Nel caso dello shapefile da noi usato in questo video è stato necessario effettuare questo ulteriore passaggio perché altrimenti il software crashava e si chiudeva. Se tu usi un altro layer potrebbe invece non essere uno step necessario. Vai nel menu Vettore (1) e seleziona Strumenti di geometria (2) prima e successivamente Semplifica (3). Nella finestra che si aprirà seleziona come Layer in ingresso le tue curve di livello. Poi scegli il metodo di semplificazione tra quelli presenti (noi abbiamo usato il metodo Douglas-Picker). Definisci la Tolleranza: noi abbiamo la distanza di 1m che nel nostro caso è più che sufficiente. Infine decidi dove e con quale nome salvare il tuo file di output. Se ingrandisci bene il risultato, puoi vedere come le linee siano state semplificate. Certo, un po’ di precisione si perde. Ovviamente il tutto poi dipende dal tipo di applicazione.
- Tabella attributi. Infine, per quanto riguarda la tabella attributi, uno solo è il requisito indispensabile per poter calcolare il DEM: ci deve essere un campo, di tipo numerico (non importa se intero o decimale), contenente le quote delle isoipse. Ovviamente il campo deve essere completamente compilato, quindi non ci devono essere elementi vuoti, non quotati. Quindi ricorda NO campo delle quote NO DEM.
3. Come realizzare un DEM dalle curve di livello
Vediamo finalmente come realizzare un DEM partendo dalle curve di livello.
Apriamo il pannello degli Strumenti di processing, andiamo tra gli strumenti Interpolation (o interpolazione) e facciamo doppio click su Interpolazione TIN. Adesso dobbiamo impostare i parametri della tool:
- settiamo il vettore in ingresso, cioè le isoipse, e selezioniamo l’attributo di interpolazione cioè il campo contenente la quota. Vedrai che nel menu a tendina compaiono solo i campi di tipo numerico. Nel caso in cui il tuo campo abbia un campo contenente la coordinata Z puoi mettere la spunta alla voce Usa la coordinata Z per l’interpolazione.
- Clicchiamo ora sul pulsante con il simbolo + e aggiungiamo il vettore curve_livello, selezionando, sotto la voce Tipo, appunto la tipologia di elementi che stai usando come dato di input. Nel caso di punti quotati puoi usare il tipo Punti. Nel caso di isoipse va usato Linee struttura (perché effettivamente le isoipse definiscono la struttura di un versante). L’ultima possibilità, Linee di interruzione, va usata nel caso di elementi che interrompono la morfologia naturale di un versante, ad esempio una strada, un fiume, la quota di un edificio a terra sul suo perimetro.
- Come Metodo di interpolazione usiamo il più semplice, cioè l’interpolazione Lineare.
- Dobbiamo definire poi l’Estensione che avrà il nostro DEM. A questo scopo abbiamo tre possibilità. La prima, Calculate from layer, restituisce un DEM con la stessa estensione del layer che qui selezioniamo; la seconda, Use Map Canvas Extent, restituisce un DEM avente la stessa estensione della vista, quindi in questo caso quest’area; con la terza, Draw on Canvas, puoi selezionare a schermo l’area che preferisci con un extent rettangolare. Noi usiamo l’extent del layer in ingresso.
- A questo punto dobbiamo definire le caratteristiche geometriche del raster in uscita nella sezione Dimensione raster in uscita. Qui o inserisci il numero di righe e di colonne di cui vuoi che il tuo raster sia fatto, e QGIS ne deriverà la dimensione di cella, o viceversa definisci le dimensioni X ed Y del pixel e QGIS calcolerà in automatico il numero di righe e di colonne. In questo caso usiamo una cella grande per velocizzare il calcolo del DEM. Poniamola pari a 50m.
- Infine imposta il nome e il percorso nel tuo computer in cui vuoi salvare il DEM (Interpolato) e il TIN (Triangolazione) in formato vettoriale. In realtà non è obbligatorio calcolare il TIN e ovviamente allunga i tempi di calcolo. Noi in questo video non lo calcoliamo. Magari anche su questo potremo fare un ulteriore video, per spiegare in cosa consiste la triangolazione e mostrare i risultati.
Clicca su Esegui et voila, il nostro DEM è stato calcolato
Bene, questo post è finito. Se ti è piaciuto condividilo! Se hai dubbi o suggerimenti lascia pure un commento.
Se vuoi, puoi vedere anche il nostro video su YouTube “Come realizzare un DEM dalle curve di livello” e iscriverti al nostro canale.
Tips & tricks
Capita, talvolta di calcolare diversi DEM con diversa dimensione di cella. Per ricordarti a quale file è associata ciascuna dimensione di cella, potresti scriverlo nel nome del tuo file. Nel nostro caso, ad esempio, sarebbe stato meglio chiamare il risultato finale DEM50m.tif, invece che DEM.tif.
Ci GISsiamo al prossimo post!
Ciao
Buongiorno, nella fase di interpolazione TIN per quanto riguarda file linee in formato shapefile mi genera il seguente errore:
Traceback (most recent call last):
File “C:/PROGRA~1/QGIS3~1.16/apps/qgis/./python/plugins\processing\algs\qgis\TinInterpolation.py”, line 188, in processAlgorithm
writer.writeFile(feedback)
Exception: unknown
Posseggo la versione 3.16 Hannover
qualcuno può aiutarmi?
grazie
Salve. La domanda per noi è un po’ vaga perché non sappiamo bene com’è il file che stai usando.
Abbiamo trovato sul web un quesito uguale:
https://stackoverflow.com/questions/65524297/why-i-cannot-do-tin-interpolation-in-qgis
Qui, in una risposta, suggeriscono di pulire il file dagli elementi lineari molto piccoli.
Speriamo possa servire
Saluti