QGIS: LINEA DI COSTA

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 .

Immagine 36
Isola d’Elba – Google Satellite
dem_isola
DEM – dimensione pixel 100,-100

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

2016-01-12
riclassificazione DEM

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:

Immagine 37
Poligonoizzazione
Immagine 38
finestra di dialogo

 

Immagine 39
Poligono di costa in rosso

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…‘:

2016-01-12 (1)
Linea di costa Isola d’Elba.
output_UuFcRH
Isola d’Elba – Google Satellite
Immagine 41
Immagine 3D

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.


Advertisements

Un pensiero su “QGIS: LINEA DI COSTA

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...