Syntax_Model
back to Help



 
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
 
 

Specify conditions for modeling
Howto Model
Good Practice

Prerequisites
The following arguments must be enabled
and read prior to the -Model... argument:
-M...
-Lm...
-KK...
-Z...
-B...
-Model...
  
  • -M(m)odel/V(v)/R(r)unWV2/D(d)TM/M(m)akeClouds/M(m)ask_2
  • -Model/v/rt0.90/runWV2/sharpen_s/dTM/ZM30/mask_3
  • V(v)....................verbose
  • R(r)T(t)..................Useratio Blue/Green look-up table
    • RT0.90......... to read Blue/Green ratio_textfile CoefRatio=0.9. Textfile must be available
    • Rt1.00...........to use  Blue/Green ratio observed in the Bahamas and coded into 4SM
  • R(r)unWV2...........to collect a dsatabase of 4SM bottom signatures for bands 1, 2 and 3 of a WV2 image
    • then use it in forward modeling
  • D(d)TM...............a DTM is present in the database
  • M(m)akeClouds...to map clouds
    • /makeClouds..........default   does not map clouds
    • /MakeClouds..........shall map clouds while modeling
  • Mask
    • mask_N mask is disabled
    • Mask_N Mask is enabled
    • Extracting with Mask_N enabled
      • causes extraction of calibration shallow pixels only under mSE=N (other shallow pixels are ignored)
      • causes writing of calibration_mN.cal text file (instead of calibration_m0.cal text file)
    • Calibration with Mask_N 
      • causes calibration using calibration_mN.cal textfile (instead of calibration_m0.cal text file)
    • Modeling with Mask_N 
      • causes modeling exclusuvely of pixels under mSE=N,
      • and mere duplication of all other pixels

   

 


How to Model
 

4SM modeling means computing Depth and Spectral Bottom Reflectance
  • First 4SM reads and decodes the command line, then runs through a series of preparations:
    • preparations include reading Glint parameters text file
    • preparations include the normalization of all BOA modeling radiance parameters over the scale 0-200
    • this means that the BOA Soils Line now runs from 0 to 200 in all bands
  • Then 4SM reads one line of input from either U8 or U16 raw data channels, and also from Special Effect Mask mSE
    • Then each pixel on the line is (scaled,) (deglinted,) (smoothed,) normalized to BOA radiances, and finally processed for water column correction
    • Then a line of output is written in specified output channels
  • Iterations on lines
  • Finally an image.his history text file is appended


 Modeling options which need to be specified

  • Deglint or not
    • in -D(d)eglint argument Deglinting may be performed before (F) or after (f) smoothin
  • Smooth or not
    • in -M(m)odel argument Smooth may be Plain-smooth or Smart-smooth
  • Whole_image or Subset window
    • in a optional -E argument : model a subset windowis specified, modeling shall stop after processing 100,000 shallow pixels, unless for a super-user
    • in an optional -d argument : model a subset window is specified instead of -E, then summary results are displayed on screen for each pixel
  • Whole_image or Mask_N
    • if Mask_N is enabled in -Model argument , all shallow pixels with mSE=N are processed while all other pixels are simply duplicated from previous processing output
    • otherwise, all image pixels are modeled anew
  • ?DTM or dTM
    • ?if a DTM is present in S16 channel number U8+2, 
    • 4SM computes the depth bias ZR-ZC, and writes it in S16 channel U8+3.
  • ?Rt1.0 or rt1.0
    • ?if enabled, the ratio LBblue/LBgreen to be applied to the current pixel is read from a look-up table which was observed in the Bahamas and is coded in 4SM.
    • this applies to the Green solution or to the Pan solution.
    • this represents an alteration of the Soils Line assumption.
  • Thresholding : Lm threshold on bottom contrast Ls-Lsw
    • Any particular band is used provided (Ls-Lsw )>=Lm
    • Except if Negative Bottom Contrast is enabled (see below)
4SMmode or RLNmode
In 4SM mode ,
  • Z is increased iteratively in the inverse model LB=Lw+(L-Lw)*exp(K*Z),
    • where L is the observed water-leaving radiance,
    • until the computed BOA spectral water column corrected reflectance LB exhibits a satisfactory fit with the observed Soils Line.
  • 4SM mode is arranged in such a way that some spectral discrimination is achieved even when Blue and Green are the only bands with bottom detection: this shows in image_BSC
 

In RLN mode , Z is computed using Stumpf et al. 2003's algorithm:
  • Stumpf's model is: Z=A*Ln(L blue)/Ln(L green) - B
    • Radiances are atmospherically corrected (a painfull process at best!)
    • The slope A and the bias B must be derived from some existing field data
    • at null depth where Z=0 , note that
      • A*Ln(Lblue)/Ln(Lgreen) - A*Ln(LBblue)/Ln(LBgreen)=0
      • In other words B=A*Ln(LB blue)/Ln(LB green)
  • In 4SM, all TOA radiances Ls
    • are converted to BOA radiances L,
    • then normalized using the concept of the Soils Line
  • In 4SM, LBblue=LBgreen on the normalized Soils Line
  • In 4SM, at null depth where Z=0 (i.e. on -or fairly close to- the Soil Line)
    • if the spectral bottom signature is neutral, Ln(L blue)/Ln(L green)=1 and A = B
    • if the spectral bottom signature is greenish, Ln(L blue)/Ln(L green)<1 and A > B
    • if the spectral bottom signature is blueish, Ln(L blue)/Ln(L green)>1 and A < B
  • In 4SM, we rewrite the model as: Z = Mone * (Ln(L blue)/Ln(L green) - Mzero) where
    • the bias Mzero=B/A, which represents the Soil Line, is conveniently to be set to
      • a value of 1 as the general case
      • slightly less than 1 if it is observed that greenish bottoms prevail
      • slightly more than 1 if it is observed that blueish bottoms prevail
    • the slope Mone=A may be set so as to yield the best match with depths computed with PANmode, or with some sea truth depths
    • Lm threshold parameter is enforced: only pixels with Lr[2]>=Lm[2] are modeled.
    • Tide correction is automatically disabled in RLNmode
    • Only Image_Z and Image_wZ are written (others are left unchanged)
 
  • 4SM mode is to be preferred :
    • may be specified either .../PAN_FirstPAN_LastPAN/... or .../gSL_FirstPAN_LastPAN/...
    • FirstPAN and LastPAN are only used in PANmode, they are ignored GSLmode
  • BjMin: 
    • if the average computed Bottom Reflectance is less than BjMin (over the 0-200 scale),
      • either the One-band-case is enabled in the -M argument : a depth is computed using specified Lbref[1]
      • or the pixel is considered non-shallow
  • CoefLM: LB=CoefLM*LB
    • This correction is applied to spectral computed bottom reflectance just before coding for final output
    • This does not affect the computation of Z
  • Htide: tide correction Z=Z-Htide
    • This correction is applied just before writing final depth outputs
 
  • Negative Bottom Contrast is enabled or not
    • PANmode allows satisfactory processing of negative bottom contrast pixels
      • Radiances in all bands from 1_to_ChNegMin are allowed to show negative bottom contrast: usually the blue visible range in clear waters.
      • This is only allowed if the signal is strong enough, i.e. L>=Lm (see above for thresholds)
  • CoefZ: 
    • CoefZ may be set to 1.000 , then
      • either it remains at 1.000 if no -CP argument is provided with a NIR_value>>Lsw nir
      • or it is updated to a new value if a -CP argument is provided with a NIR_value>>Lsw nir
    • CoefZ may be set to a value different from 1.000 derived from some seatruth evidence
    • in 4SM Z=CoefZ*Z is applied just before writing the output
    • in 4SM K=K/CoefZ is applied at the early stage of estimating Jerlov's water type
in -LL... argument
  • LL : monitoring the processing on screen
    • by default this parameter is set to -LL10: this causes a line print on screen every 10 image line processed
    • Specify -LL/1 to obtain a line print on screen for every image line processed
    • Specify -LL/1/1 to obtain a line print on screen for every pixel processed
 

Good modeling practice
 
  • Monitor the average computed bottom reflectance image_B and spectral bottom reflectance image_LBS
  • Increase Lsw and/or Raise Lm thresholds in order to prevent very odd dark reflectances from invading image_B and image_LBS
  • Increase Lm thresholds where results seem unacceptable
  • Fine-tune deglinting and smart-smoothing conditions according to results obtained
  • Prefer PANmode