Aggiornamento : forse ho trovato il motivo per il quale non riuscivo a trovare correlazione tra batimetria e dato di controllo. Il grafico sottostante e' stato ricavato da dati Landsat ma con la stessa metodologia che ho provato. Come si vede la correlazione si sviluppa a partire da 4 m di profondita, per profondita' inferiore l'indice non e' utilizzabile. La laguna di Orbetello ha profondita' praticamente ovunque inferiore ai 3 m
BathymetryMapping Using Landsat 8 Satellite Imagery Jagalingam P1, Akshaya B J1and Arkal Vittal Hegde doi: 10.1016/j.proeng.2015.08.326
Ho provato a seguire il tutorial https://www.youtube.com/watch?v=xD1VQbnfasw&t=1923s per vedere se riuscito a trovare una correlazione tra il dato telerilevato ed i dati Lidar di batimetria della Laguna di Orbetello
Sono partito dall'immagine S2A_MSIL2A_20220806T100611_N0400_R022_T32TPN_20220806T162658, ho effettuato un subset solo sull'area di interesse ed effettuato un resampling per avere le bande 2,3,4 ed 8 tutte a 10 m (Raster/Geometric/Resampling)
A questo punto si maschera il terreno mediante Raster/Band Math e creando una formula con
if B8 > 0.05 then NaN else 1
una volta ottenuta questa maschera si moltiplicano le bande B2,B3,B4,B8 (sempre tramite band math) per il valore della maschera
A questo punto si deve passare alla Sun Glint Correction (questa e' la procedura manuale..nel Plugin Sen2Coral di SNAP in Optical/Thematic Water Processing/Sen2Coral/Processing Modules/Deglint Processor)
Si creano dei poligoni (o si importa uno shapefile poligonale)
Si crea quindi uno scatterplot (mediante il tool di Snap) indicando come ROI Mask il file poligonale, come X la banda 8 e come Y le altre bande (2,3,4) e si clicca Refresh
si osserva una correlazione (molto blanda nel mio caso, nel tutorial e' molto migliore). Si clicca sul grafico e si seleziona Copy Data to Clipboard)
Ho provato con una immagine della Laguna di Venezia ma per assurdo i risultati sono stati ancora peggiori
Si copiano i dati in Libreoffice od in R e si calcola retta di correlazione tra le bande
si ripete la correlazione tra B8 e B2,B3, B4 estraendo le rette di calibrazioneSi riapre il Raster Calculator e si rimuove il Sun Glint tramite
B2_Land_Mask - m*( B8_Land_Mask-c)
m = coefficiente angolare della retta di correlazione
c = valore minimo della banda B2_Land_Mask che si puo' ricavare dall'istogramma
Le nuove bande saranno B2_Deglint, B3_Deglint e B4_Deglint. Il composit sara' l'immagine sottostante
Ultimo passo. Dal Deglint si passa alla DOS sottraendo al Deglint il valore minimo sempre mediante l'istogramma
B3DOS = B3_Deglint - 0.003
Alla fine si puo' applicare la correlazione di Stumph Linear Ratio Model (Stumpf, R. P., Holderied, K., & Sinclair, M. (2003). Determination of water depth with high-resolution satellite imagery over variable bottom
types. Limnology and Oceanography, 48(1), 547–556.)
log(1000 *B3DOS)/log(1000 *B2DOS)
si esporta la mappa in Geotiff e la si importa in QGis insieme allo shape della batimetria misurata tramite Lidar per verificare una eventuale correlazione tra dato telerilevato ottico e dato reale
Tramite il plugin Point Sampling Tool si crea una tabella in cui sono riportate alla stessa posizione geografica il valore dell'indice telerilevato ed il dato di batimetria Lidar (i due layers devono essere nello stesso sistema di riferimento). Effettuando uno scatterplot (sono circa 230.000 punti e sono stati elaborati in R per difficolta' di Calc)
rm()
dati <- read.csv("C:\\Users\\l.innocenti\\Desktop\\orbetello_L2A\\confronto\\confronto.csv")
y <- dati$field_3
x <- dati$step1_resampled_extractor
plot(x,y, main="Batimetria vs Sentinel", xlab="Indice SDB", ylab="Batimetria (m)",pch=20, xlim=c(0.85,1.0))
model <- lm(y ~ x, data = dati)
summary(model)
il grafico del risultato finale ... sostanzialmente un insuccesso
Nessun commento:
Posta un commento