tmnov tutorial : Calibration 6
Quite an achievement!!!

return to Calibration 5      next to Model 2
 
Seatruthing


 
1 - NO NEED for field data, nor for atmospheric correction
2 - this is demonstrated in this website, using a variety of hyper/multi spectral data
 
Requirements are
1 - homogeneous water body and atmosphere
2 - some coverage of optically deep water
3 - some coverage of dry land
 
Problems are
1 - the precision on estimated depth is found wanting, because the noise-equivalent change in radiance  of accessible data is too high for shallow water column correction work 
2 - radiance data should be preprocessed by the provider at level 1 in order to improve S/N ratio
3 - exponential decay: the deeper/darker the bottom, the poorer the performances
 
So
I keep digging
until suitable data
become available
 
 
Calibration 6: first seatruth
Seatruth

seatruth dataset
Syntax_RegressZZ
-RegressZZv/p/seatruth*depth_points_reproject_pruned/ZM/2_3/0_201/0_30_2.0/*   

 
nice -20  ./4SM.4.08 -Process/14_Aug_2011/05_AUG_2011  -OriginFUGRO-NPA                    @@  
-DB/tmnov/31_1_0_0/4_1/1265_1559/208.365_2398.755/1_1               
                   @@
-Mis/Bahamas/Caicos/Landsat/TM/FUGRO-NPA/UTM_19_008/0.030_0.030/22_NOV_1990                          @@
-LS/0255.0/255.0/255.0/255.0                              @@
-cWL/0.500/0.602/0.500/0.500_AutoCAL                          @@
-M/@000001/00002/00003/00004                              @@
@CP/0000.0/000.0/000.0/000.0_1.52m                          @@
-LsM/199.8/104.0/121.2/099.1_AutoCAL                          @@
-LsM/199.8/108.0/121.2/099.1                              @@
-LsM/219.2/120.0/135.6/111.1_cLM=1.130                      @@
-Lsw/061.0/017.7/011.2/006.9_AutoCAL                        @@
-Lsw/60.42/17.41/10.79/06.50                                  @@
-dLsw000.0/000.0/000.0/000.0                                 @@
-Lw/0009.8/001.5/000.0/000.0_AutoCAL                          @@
-Lw/0010.6/001.5/000.0/000.0                              @@
-Lm/0001.0/001.0/001.0/255.0                              @@
-KK1_2_0.5195/Knir4.500/mask_3_AutoCAL                          @@
-Z/MSL0.00/n_1/RLBgb1.220/mask_3                          @@
@Z/MSL0.00/n_1/RLBgb1.090/mask_3                          @@
-B/tclNe/Bmin0/cLM1 .13                              @@
-deglint/vRbaD/GlintM25.0_AutoCAL                      @@
-deglint/vRbaD/GlintM10.0                          @@
@deglint/vRbaD/GlintM00.0                          @@
-extract/v/fullBDH/NIRmax200.0/mBPL4/mask_4                              @@
-calibrate/v/BDSNpZg/BDh_12_13_34                          @@
-Model/mask_3                                  @@
-Smooth/5/D/Smart+                              @@
-RegressZZv/p/seatruth*depth_points_reproject_pruned/ZM/2_3/0_201/0_30_2.0/*                      @@

 
<<=====   Seatruth 0-10 m

 

Quite good!
We can call it absolute calibration,
without the need for any field data

Seatruth 0-30 m
Still something wrong
We want to increase Lswgreen a bit

==>   -dLsw000.0/000.8/000.0/000.0

Seatruth 0-30 m
That we like better!

-dLsw000.0/000.8/000.0/000.0
 


           Now we reach to quite an achievement in 4SM
Green solution vs Red solution: Z2 vs Z3
 
ProfileAB with regression
Regression of Green solution depths against Red solution depths

Syntax_ProfileAB
 

nice -20  ./4SM.4.08  -Process/14_JUL_2011  -Origin/BILKO                    @@
-DB/tmnov/31_1_0_0/4_1/1265_1560/208.365_2398.755/1_1                
                    @@
-Mis/Bahamas/Caicos/Landsat/TM/FUGRO-NPA/UTM_19_008/0.030_0.030/22_NOV_1990      @@
-LS/0255.0/255.0/255.0/255.0                                @@
-cWL/0.500/0.600/0.500/0.500                                @@
-cWL/0.500/0.600/0.500/0.500                                @@
-M/@000001/00002/00003/00004                                @@
@CP/0000.0/000.0/000.0/000.0_2.98m                            @@
-LsM/183.5/092.9/115.6/095.3_AutoCAL                            @@
-LsM/203.3/104.4/131.3/108.6_cLM=1.150                            @@
-LsM/209.3/119.4/131.3/108.6                                @@
-LsM/209.3/116.4/131.3/108.6                                @@
-Lsw/061.0/017.7/011.2/006.9_AutoCAL                            @@
-dLsw000.0/000.0/00-.5/000.0                                @@
-Lw/0009.8/001.5/000.0/000.0_AutoCAL                            @@
-Lm/0001.0/001.0/005.0/255.0                                @@
-Lm/0001.0/001.0/001.0/255.0                                @@
-KK1_2_0.4785/Knir4.500/mask_3                            @@
-Z/MSL0.00/N_1/RLBgb1.15_0.60/mask_3                        @@
-B/tclNe/Bmin0/cLM1.00                                @@
-deglint/vRbaD/GlintM25.0                            @@
-extract/v/mBPL2/mask_3                                @@
-calibrate/v/BdSNpZG/BDh_12_13_34                            @@
-Model/mask_3                                    @@
-Smooth/5/D/Smart+                                @@
@ProfileAB/L/profile_1/chAB_1_2_3_4                                        @@
@ProfileAB/Z/profile_1/chAB_1_2_3_4                                        @@
-ProfileAB/R/profile_3/chAB_2_3/2_3/0_201/0_30_2.0/*                                @@

 
Profile 3
runs over areas with bottom detection 
in all three visible bands
  • When running a profile,
  • for all pixels modeled with the 3-bands case
  • 4SM computes Z3
    • then Lmred is set to 255
    • and Z2 is computed
  • In other words, we can consider Z3 to be closer to true depth, and use it as if it were a seatruth depth!
  • Of course we should like Z2 to be as close as possible to Z3!!!!
  • For this you can test the resilience of the model calibration parameters, one at a time:
  • -cWL/0.500/0.500/0.500/0.500
  • -LsM/209.3/119.4/131.3/108.6
  • -dLsw000.0/000.0/000.0/000.0
  • -dLsw000.0/000.0/001.0/000.0
  • -Lm/0001.0/001.0/005.0/255.0
  • -Z/MSL0/N_1/RLBgb1.00_1.00
  • -deglint/vRbaD/GlintM00.0
  • -Smooth/5/D/smart+
  • -Smooth/1/D/Smart+
  • you name it : 4SM reads from raw data, then computes depth and watercolumn correction "on the fly", then runs the seatruth exercise


Not bad, Eh!
 


Not bad, Eh!
 

  • red.........for WZ=3   three bands case
  • green.....for WZ=2   two    bands case

  • Note that the transition from three-bands case to two-bands case has become virtually "invisible"
  • This means that the average spectral properties where WZ=2 are similar to where WZ=3
No need for field data?

This claim rests
on our ability to estimate
spectral attenuation coefficients,
using Jerlov's data.
  • The most critical point to reach there is the choice of an effective wavelength for the green band.
  • For hyperspectral images, and SPOT images, using wavelength at mid-waveband works to satisfaction.
  • For IKONOS and WV2 images, I have too few studies
  • For Landsat images, there appears to be no rule, although the following must be investigated.
    • It might be a question of geometry of the light field
    • For this Caicos image in november in the tropical northern hemisphere, CoefWLgreen=0.60 : sun ~at its lowest in the sky
    • For the Geraldton image in june in the tropical southern hemisphere, CoefWLgreen=0.50 : sun ~at its highest in the sky
  • Analytical or semi-analytical models like Sambucca or EOMAP or HydroLight, should be able to answer this question of the effective wavelength of wide wavebands.
     

  • We can be confident that the intensity of the "greeneness" of the bottom signature represented in this image is "realistic" for a majority of pixels
  • Therefore, the "water column correction" of this TM image has been achieved to satisfaction

Ready for seatruthing, at last!
Now we are ready at last  for a real seatruth control
 

  
Calibration 6: last seatruth
 
RegressZZ
Regression of computed depths against seatruth depths

Syntax_RegressZZ
Now we are ready at last for a real seatruth control
 


nice -20 ./ 4SM.4.08  -Process/08_NOV_2011  -Origin/BILKO                    @@
-DB/tmnov/31_1_0_0/4_1/1265_1560/208.365_2398.755/1_1   
                    @@
-Mis/Bahamas/Caicos/Landsat/TM/FUGRO-NPA/UTM_19_008/0.030_0.030/22_NOV_1990      @@
-LS/0255.0/255.0/255.0/255.0                      @@
-cWL/0.500/0.600/0.500/0.500                      @@
-M/@000001/00002/00003/00004                      @@
@CP/0000.0/000.0/000.0/000.0_2.98m                     @@
-LsM/209.3/116.4/131.3/108.6                      @@
-Lsw/061.0/017.7/011.2/006.9_AutoCAL                     @@
-dLsw000.0/000.0/00-.5/000.0                      @@
-Lw/0009.8/001.5/000.0/000.0_AutoCAL                     @@
-Lm/0001.0/001.0/001.0/255.0                      @@
-KK1_2_0.4785/Knir4.500/mask_3                     @@
-Z/MSL0.00/N_1/RLBgb1.15_0.60/mask_3                    @@
-B/tclNe/Bmin0/cLM1.00                      @@
-deglint/vRbaD/GlintM25.0                     @@
-extract/v/mBPL2/mask_3                      @@
-calibrate/v/BdSNpZG/BDh_12_13_34                     @@
-Model/mask_3                       @@
-Smooth/5/D/Smart+                      @@
@ProfileAB/L/profile_1/chAB_1_2_3_4                        @@
@ProfileAB/Z/profile_1/chAB_1_2_3_4                        @@
@ProfileAB/R/profile_3/chAB_2_3/2_3/0_201/0_30_2.0/*                      @@
-RegressZZ/v/P/seatruth*depth_points_reproject_pruned/ZM/2_4/0_201/0_30_2.0/ALL   
 
  • The seatruth dataset contains scattered depth points are scattered
  • It is sorted by decreasing depth
  • This allows us to plot a simili-profile which gieves a useful view at the performances of the calibration
  • 4SM shall compute
    • the usual seatruth regression
    • AND
    • the simili-profile
  • This is a powerful tool for the practioner to further assess/consolidate various aspects of the model calibration
  • You can test the resilience of the model calibration parameters, one at a time:
    • -cWL/0.500/0.500/0.500/0.500
    • -LsM/209.3/119.4/131.3/108.6
    • -dLsw000.0/000.0/000.0/000.0
    • -dLsw000.0/000.0/001.0/000.0
    • -Lm/0001.0/001.0/005.0/255.0
    • -Z/MSL0/N_1/RLBgb1.00_1.00
    • -deglint/vRbaD/GlintM00.0
    • -Smooth/5/D/smart+
    • -Smooth/1/D/Smart+
    • you name it : 4SM reads from raw data, then computes depth and watercolumn correction "on the fly", then runs the seatruth exercise


We should not be too concerned if the slope of the regression line is not exactly 1
 


This view allows us to decide whether or not we are satisfied with the result
next to Model 2