DSM, DTM e curve di livello con WebODM
In questa pagina
Il modello digitale di elevazione (DEM, Digital Elevation Model) è il secondo prodotto per importanza dopo l'ortofoto ed è quello che serve per volumi, pendenze, sezioni e curve di livello. WebODM ne produce due tipi, DSM e DTM, e la scelta sbagliata è la causa più comune di volumi e quote errati. Questa guida spiega come ottenerli bene. Termini nel glossario.
1. DSM e DTM: due superfici diverse#
Il DSM (Digital Surface Model, modello digitale delle superfici) rappresenta la prima superficie che il drone vede dall'alto: tetti, chiome degli alberi, veicoli, cumuli. È ciò che la fotogrammetria misura direttamente.
Il DTM (Digital Terrain Model, modello digitale del terreno) rappresenta il suolo nudo. La fotogrammetria non lo vede sotto la vegetazione o sotto gli edifici: il DTM è quindi il risultato di un filtro che classifica i punti "terreno" e interpola il resto.
| Voce | DSM | DTM |
|---|---|---|
| Cosa rappresenta | Tutto ciò che è visibile dall'alto | Il terreno, senza oggetti |
| Come nasce | Direttamente dalla nuvola di punti | Dalla nuvola filtrata (SMRF) |
| Affidabile su | Superfici scoperte, tetti, cumuli di inerti | Terreno aperto, scavi, aree con vegetazione bassa |
| Poco affidabile su | — | Boschi fitti, centri storici densi, dove il suolo non è mai visibile |
| Usi tipici | Volumi di cumuli, altezze degli edifici, ortofoto | Curve di livello, sezioni del terreno, movimenti terra |
Un volume di scavo calcolato sul DSM include la vegetazione e i mezzi parcheggiati. Una curva di livello estratta dal DSM disegna il contorno dei tetti. Prima di chiedere un DEM, chiediti quale superficie ti interessa.
2. Attivare DSM e DTM in WebODM#
Nelle opzioni del task attiva --dsm, --dtm o entrambi (predefinito: disattivati). Il preset "DSM + DTM" li accende insieme e imposta valori ragionevoli per il resto; i preset restano modificabili.
Le opzioni che governano il risultato:
| Opzione | Effetto |
|---|---|
--dsm |
Produce odm_dem/dsm.tif |
--dtm |
Produce odm_dem/dtm.tif e attiva la classificazione del terreno |
--dem-resolution |
Risoluzione in cm/px del DEM (predefinito 5 cm/px) |
--dem-gapfill-steps |
Numero di passaggi di riempimento dei buchi (predefinito 3) |
--smrf-scalar, --smrf-slope, --smrf-threshold, --smrf-window |
Parametri del filtro terreno (vedi §3) |
--pc-quality |
Densità della nuvola da cui il DEM è interpolato |
--crop |
Ritaglio del bordo, come per l'ortofoto |
Sulla risoluzione vale lo stesso ragionamento fatto per l'ortofoto: il DEM è interpolato dalla nuvola di punti e non può essere più dettagliato della nuvola stessa. Una --dem-resolution molto fine con --pc-quality medio produce un raster grande ma "liscio", perché tra un punto e l'altro il software interpola. Se ti serve un DEM più fitto, alza prima la qualità della nuvola (guida alla nuvola di punti), poi la risoluzione.
--dem-gapfill-steps controlla quanto il software si sforza di riempire le celle vuote (zone d'acqua, superfici senza punti). Con 0 i buchi restano come "no data"; con valori più alti vengono chiusi interpolando da distanze crescenti. Per un DTM da consegnare conviene un valore basso e dichiarare le zone senza dati, piuttosto che un riempimento che inventa terreno.

3. Il filtro SMRF e i suoi quattro parametri#
Per costruire il DTM, ODM/ODX usa l'algoritmo SMRF (Simple Morphological Filter). L'idea: il terreno è una superficie relativamente continua, mentre oggetti e vegetazione sono "rilievi" che sporgono bruscamente da essa. Il filtro apre una finestra mobile sulla nuvola, stima la superficie del suolo e scarta ciò che sta troppo sopra.
I quattro parametri hanno un significato qualitativo che puoi usare per orientarti:
| Parametro | Cosa controlla | Se lo aumenti |
|---|---|---|
--smrf-window |
Dimensione massima (in metri) della finestra di analisi, cioè degli oggetti che il filtro può rimuovere | Rimuove edifici e alberi più grandi, ma rischia di appiattire dossi e terrazzamenti reali |
--smrf-slope |
Pendenza massima considerata "terreno" | Tollera versanti ripidi, ma lascia passare più vegetazione bassa |
--smrf-threshold |
Distanza verticale (in metri) sopra la superficie stimata entro cui un punto è ancora terreno | Più permissivo: meno buchi nel DTM, più rumore (cespugli, auto) |
--smrf-scalar |
Fattore che lega la soglia alla pendenza locale | Rende la soglia più elastica dove il terreno è inclinato |
I valori predefiniti sono pensati per un caso generico; li trovi nella documentazione delle opzioni (link in fondo). Le regolazioni tipiche:
- Terreno pianeggiante con capannoni grandi: aumenta
--smrf-windowfinché i tetti scompaiono dal DTM. - Collina o cava con fronti ripidi: aumenta
--smrf-slope, altrimenti il filtro "taglia" le scarpate credendole oggetti. - Vegetazione erbacea bassa: abbassa
--smrf-thresholdper non includerla nel terreno.
Non esiste una combinazione che funziona ovunque. Il metodo corretto è cambiare un parametro alla volta, rielaborare dal passo del DEM con --rerun-from e confrontare il DTM con quote note (i tuoi GCP o check point). La guida alle opzioni e quella sui casi particolari approfondiscono.
4. Le quote: ellissoidiche o ortometriche?#
I valori nel DEM sono nell'unità e nel sistema di riferimento del task. Senza GCP, le quote derivano dal GPS del drone e sono ellissoidiche WGS 84; i capitolati e le carte italiane usano quote ortometriche (livello medio del mare), che in Italia stanno circa 37–50 m più in basso, a seconda della zona. Se il DEM ti sembra "troppo alto" di una quarantina di metri rispetto alla CTR, è quasi sempre questo.
La soluzione robusta sono GCP misurati in quote ortometriche; l'alternativa è la correzione in QGIS. Entrambe sono spiegate nella guida ai sistemi di riferimento italiani. L'opzione --gps-z-offset applica solo un offset costante e non sostituisce un modello del geoide.
5. Curve di livello con il plugin Contours#
WebODM include il plugin Contours, che estrae le isoipse direttamente dal DSM o dal DTM del task e le mostra sulla mappa 2D.
- Apri la mappa 2D del task e cerca il pulsante del plugin Contours nella barra degli strumenti.
- Scegli il DEM di partenza (DSM o DTM: per le curve del terreno serve il DTM).
- Imposta l'intervallo tra le curve, in metri. Un intervallo inferiore alla precisione verticale del rilievo produce curve rumorose e non aggiunge informazione: con un volo senza GCP raramente ha senso scendere sotto 1 m.
- Imposta la semplificazione, che smussa le linee eliminando i vertici superflui; più alta, curve più leggere e meno fedeli.
- Genera l'anteprima. Se il risultato ti convince, esporta.
I formati di esportazione previsti dal plugin includono formati vettoriali GIS (per esempio GeoJSON) e formati CAD (DXF); l'elenco esatto e le opzioni disponibili vanno verificati nel pannello del plugin della tua versione e nella documentazione di WebODM. Se ti serve un GeoPackage e il plugin non lo offre, esporta in GeoJSON e converti in QGIS.

Il plugin Elevation Map, sempre in WebODM, colora il DEM sulla mappa 2D con una scala di quote e una legenda: è utile per una lettura rapida, non sostituisce l'analisi in QGIS.
6. Curve di livello in QGIS#
Se preferisci lavorare fuori da WebODM, o vuoi controllare ogni parametro, QGIS fa la stessa cosa con GDAL.
- Carica
dtm.tifin QGIS. - Menu Raster → Estrazione → Curve di livello.
- Imposta la banda (1), l'intervallo tra le curve e il nome dell'attributo quota (per esempio
ELEV). - Salva in GeoPackage, Shapefile o DXF.
Prima dell'estrazione conviene lisciare il DTM (Raster → Analisi → filtri, oppure il plugin SAGA/GRASS) per evitare curve frastagliate; dopo, puoi semplificare le linee con Vettore → Geometria → Semplifica. Un vantaggio di QGIS è che puoi etichettare le curve con la quota e distinguere le curve direttrici (ogni 5 o 10 m) con uno stile diverso. Il dettaglio dello stile è nella guida esportare in QGIS.
Come verificare
Il tuo DEM è pronto se:
- in QGIS il DTM non mostra più tetti e chiome, ma conserva scarpate e terrazzamenti reali;
- le quote in punti noti (GCP, chiusini quotati, capisaldi) sono coerenti con il sistema di quote che il committente aspetta, e non differiscono di ~40 m;
- le zone senza dati sono poche e dichiarate, non riempite da un terreno inventato;
- le curve di livello non si intersecano e seguono le forme che vedi nell'ortofoto.
Problemi frequenti#
Nel DTM restano i tetti dei capannoni. La finestra SMRF è più piccola dell'edificio: aumenta --smrf-window.
Il DTM ha "crateri" al posto degli edifici. Il filtro ha tolto l'edificio ma il riempimento è insufficiente o l'area è troppo grande per interpolare: alza --dem-gapfill-steps oppure accetta il no data e gestiscilo in QGIS.
Le scarpate della cava sono state spianate. Il filtro le ha interpretate come oggetti: aumenta --smrf-slope.
Il DEM ha un effetto "ciotola" (bordi curvati). Non è un problema di filtro ma di calibrazione della camera; vedi risultati scadenti e la guida ai GCP.
Le curve di livello sono a "scalini". L'intervallo è troppo fine rispetto alla risoluzione o al rumore del DEM: aumentalo o liscia il raster.
Prossimi passi#
- Sistemi di riferimento italiani: quote ellissoidiche e ortometriche, EPSG per la consegna.
- Esportare in QGIS: stile ipsometrico, ombreggiatura, layout con curve etichettate.
- Misurare aree e volumi: usare il DEM giusto per cumuli e scavi.
Fonti
- Opzioni di elaborazione (DEM, SMRF, gapfill): https://docs.opendronemap.org/arguments/(link esterno)
- Output di ODM (cartella odm_dem): https://docs.opendronemap.org/outputs/(link esterno)
- Documentazione WebODM e plugin: https://docs.webodm.org/(link esterno)
- QGIS, estrazione curve di livello (gdal_contour): https://docs.qgis.org/(link esterno)
Guide correlate
Esportare e aprire gli output di WebODM in QGIS
Output e utilizzo · Intermedio · Entrambe le linee
Sistemi di riferimento in Italia: EPSG per WebODM e QGIS
Output e utilizzo · Avanzato · Entrambe le linee
Nuvola di punti LAS/LAZ da WebODM: qualità, classi, uso
Output e utilizzo · Intermedio · Entrambe le linee
Misurare lunghezze, aree e volumi in WebODM (plugin Measure)
Output e utilizzo · Intermedio · Entrambe le linee
Punti di controllo a terra (GCP) in WebODM: guida completa
Precisione · Avanzato · Entrambe le linee