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.
- R(r)t1.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 hard-coded in 4SM.
- this applies to the Green and Pan solutions: RatioLB=RatioLB/CoefRatio
- this represents an alteration of the Soils Line assumption.
- to increase computed depths, increase CoefRatio:
- this amounts to rotating the Soil Line
- this yields more blues and less reds in image ZR-ZC
- CoefRatio>1: bottom is assumed to be greener than observed in the Bahamas
- and vice versa
- 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
| |