Leggo spesso il gruppo pubblico di Facebook ‘GIS ITALIA‘ in cui si parla di software GIS, si pongono domande o si chiedono consigli e procedimenti per risolvere quesiti di vario genere attinenti al mondo GIS, tra i tanti post mi colpi il seguente:
Da anni mi chiedo se sia possibile scontornare il raster di un’isola, al cui interno ci sono i valori Dem ossia Z>0, mentre all’esterno ci sono valori “no data” rappresentati dal mare: una cena x due a chi risolve!
Prendiamo come esempio l’Isola d’Elba ed in particolare il suo DEM .


I metadati sono:
Driver
GDAL provider
GTiff
GeoTIFF
Descrizione dell’insieme di dati
C:/Users/Salvatore/prova_butta/cucucu/isola.tif
Banda 1
STATISTICS_MAXIMUM=981.17138671875
STATISTICS_MEAN=189.02524662918
STATISTICS_MINIMUM=-0.81298303604126
STATISTICS_STDDEV=175.84461126386
Dimensioni
X: 317 Y:.200 Bande: 1
Origine
1.58795e+06,4.74822e+06
Dimensione pixel
100,-100
Nessun valore
-3.40282e+38
Tipo di dato
Float32 – numero in virgola mobile di 32 bit
Situazione piramide
Sistema di riferimento spaziale del layer
+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=1500000 +y_0=0 +ellps=intl +towgs84=-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68 +units=m +no_defs
Estensione del layer (proiezione originale del layer)
1587947.2310344942379743,4728220.7699999995529652 : 1619647.2310344942379743,4748220.7699999995529652
Banda
Banda 1
Numero bande
1
Abbiamo tutti gli ingredienti per ottenere la linea di costa dell’Isola.
Il ragionamento da me seguito è molto semplice ed intuitivo: guardando il DEM vi è una parte colorata (l’isola) e una parte bianca che rappresenta il mare e che in termini di DEM è rappresentato con il ‘no-data’ cioè assenza di dati. Quindi mi sono chiesto: come trattare i dati ‘no-data’ di un DEM in QGIS ed in particolare nel calcolatore raster? Ecco la risposta:
( “DEM@1” = -3.40282e+38 ) * “DEM@1”
questa stringa, scritta all’interno del calcolatore, significa: quando i valori del DEM sono uguali al valore ‘no-data’ allora imposta il valore del DEM uguale a ‘no-data’ altrimenti 0; quindi tutta la parte bianca rimarrà ‘no-data’ mentre la parte colorata avrà valore costante 0 ovunque, i metadati saranno:
Banda 1
STATISTICS_MAXIMUM=0
STATISTICS_MEAN=0
STATISTICS_MINIMUM=0
STATISTICS_STDDEV=0
Nessun valore
-3.40282e+38
lo stesso risultato si ottiene molto più semplicemente con : “DEM@1” = 0

a questo punto siamo a metà dell’opera, per ottenere la linea di costa basti semplicemente utilizzare il comando ‘Poligonizzazione‘ del menù raster di QGIS:



per ottenere la linea di costa basti utilizzare gli ‘strumenti di geometria‘ di QGIS che si trovano nel menù ‘Vettore’ e selezionare ‘da poligono a linea…‘:



Note finali: questo è un procedimento che in linea teorica va bene per lo scopo del quesito, ma occorrerebbe un DEM molto più accurato di quello che ho usato (dimensioni pixel 100) infatti si nota fin troppo che il risultato della poligonizzazione sono i contorni dei pixel. Ho voluto realizzare questo articolo per divulgare l’uso di QGIS e la facilità con cui è possibile risolvere quesiti apparentemente complicati con i normali strumenti di QGIS senza scomodare il ben più potente e complicato GRASS GIS.
Ottimo articolo, spiegazione molto chiara. Complimenti 🙂
"Mi piace"Piace a 1 persona