OB.DAAC Logo
NASA Logo
Ocean Color Science Software

ocssw V2022

#include <DtAlgorithm.h>

Inheritance diagram for DtAlgLand:
[legend]
Collaboration diagram for DtAlgLand:
[legend]

Public Member Functions

 DtAlgLand ()
 
 ~DtAlgLand ()
 
int initialize (map< string, ddata * > imap)
 
vector< stringget_products ()
 
map< string, ddata * > process (vector< size_t > start, vector< size_t > count, map< string, ddata * > imap)
 
- Public Member Functions inherited from DtAlgorithm
 DtAlgorithm ()
 
virtual ~DtAlgorithm ()
 
int compute_gas_correction ()
 
int fit_line (float x[], float y[], float sig[], int ndata, float &A, float &B)
 
- Public Member Functions inherited from DDAlgorithm
 DDAlgorithm ()
 
virtual ~DDAlgorithm ()
 

Public Attributes

dtLandAerosolLUT lut_
 
DtCloudMaskLandcm_
 
int season_
 
float scatter_angle_
 
int mtable_ [NLSIZE]
 
float refl_ray_nl_ [NLWAV]
 
float opth_nl_ [NLSIZE][NLWAV][NLTAU]
 
float int_nl_ [NLSIZE][NLWAV][NLTAU]
 
float fd_nl_ [NLSIZE][NLWAV][NLTAU]
 
float t_nl_ [NLSIZE][NLWAV][NLTAU]
 
float fdt_nl_ [NLSIZE][NLWAV][NLTAU]
 
float sbar_nl_ [NLSIZE][NLWAV][NLTAU]
 
float refl_inter_ [NLWAV][GRIDX *GRIDY]
 
float refl_ [NLWAV]
 
float sdev_ [NLWAV]
 
short error_
 
float rho_star_ [NLSIZE][NLWAV][NLTAU]
 
float rho_star_tot_ [NLWAV][NLTAU]
 
float rho_S212_ [NLSIZE][NLTAU]
 
float rho_S212_tot_ [NLTAU]
 
float errwave_ [NLWAV]
 
float rho_S466_
 
float yint_466_
 
float slope_466_
 
float rho_S644_
 
float yint_644_
 
float slope_644_
 
short eta_flag_
 
float aot_d_ [NLWAV]
 
float aot_f_ [NLWAV]
 
float aot_c_ [NLWAV]
 
float rho_sfc_ [NLWAV]
 
float eta_
 
float err644_
 
float masscon_
 
float angstrom_
 
float ndvi_
 
short iaer_
 
int good_pixels_ [NLWAV]
 
int num_pixels_used_
 
short iproc_
 
short ifinish_
 
float thresh_min_
 
float thresh_max_
 
short return_quality_cirrus_
 
short success_ret_
 
short fail_ret_
 
short quality_flag_for_joint_ [2]
 
short quality_flag_for_retr_
 
short qcontrol_special_
 
short sds_qcontrol_ [QA_LAND]
 
short sds_aerosol_type_
 
float sds_scat_angle_
 
float sds_fitting_error_
 
float sds_mass_conc_
 
float sds_cloud_fraction_
 
float sds_angs_coeff_
 
float sds_dust_weighting_
 
float sds_ndvi_
 
float sds_numpixels_ [NLWAV]
 
float sds_tau_corrected_ [NLWAV]
 
float sds_refl_ [NLWAV]
 
float sds_refl_std_ [NLWAV]
 
float sds_tau_small_ [NLWAV]
 
float sds_tau_big_ [NLWAV]
 
float sds_surface_reflectance_ [NLWAV]
 
- Public Attributes inherited from DtAlgorithm
dtGasCorrectionLUT gc_lut_
 
unsigned char cmask_
 
float rfld_ [NUM_RFL_BANDS]
 
float cloud_fraction_
 
float scatter_angle_
 
float glint_angle_
 
float glint_refl_
 
float ndvi_
 

Static Public Attributes

static constexpr int NLTHET0 = 11
 
static constexpr int NLTHE = 15
 
static constexpr int NLPHI = 16
 
static constexpr int NLWAV = 4
 
static constexpr int NLTAU = 7
 
static constexpr int NLTABLE = 5
 
static constexpr int NLETA = 13
 
static constexpr int NLSIZE = 2
 
static constexpr int DTABLE = 5
 
static constexpr float THR213MIN_1 = 0.01
 
static constexpr float THR213MAX_1 = 0.25
 
static constexpr float THR213MIN_2 = 0.25
 
static constexpr float THR213MAX_2 = 0.25
 
static constexpr float PRESSURE_P0 = 1013.0
 
static constexpr float DLAT = 0.5
 
static constexpr float DLON = 0.5
 
static constexpr int QA_LAND = 5
 
- Static Public Attributes inherited from DtAlgorithm
static constexpr int LINE = 1
 
static constexpr int GRIDX = LINE
 
static constexpr int GRIDY = LINE
 
static constexpr int NUM_CASES_SMALL = 4
 
static constexpr int NUM_CASES_BIG = 5
 
static constexpr int NUM_LUTS = 4
 
static constexpr int NUM_LATS = 180
 
static constexpr int NUM_LONS = 360
 
static constexpr float MINMTHET0 =0.0
 
static constexpr float MAXMTHET0 =80.0
 
static constexpr float MINMTHET =0.0
 
static constexpr float MAXMTHET =72.0
 
static constexpr float MINMPHI =0.0
 
static constexpr float MAXMPHI =180.0
 
static constexpr float MAXTAU =5.0
 
static constexpr float MINTAU =-0.01
 
static constexpr int NUM_RFL_BANDS = 10
 
static constexpr int DT_OWAVES = 7
 
static constexpr int DT_LWAVES = 3
 
static constexpr int MODIS_WAVES = 7
 
static constexpr int VIIRS_WAVES = 3
 
static const float wind_ [WIND_LUT_ENTRIES]
 
static const float pressure_ [P_LEVELS]
 

Protected Member Functions

int index_geometry (float sza, float azim, float phi)
 
int interpolate_rayleigh ()
 
int interpolate_angle ()
 
int interpolate_elevation ()
 
int compute_average (size_t iy, size_t ix)
 
int compute_cloudmask_ndvi (size_t iy, size_t ix, int &iCldRed, int &iCldBlue)
 
int simulate_toa ()
 
int retrieve_first ()
 
int retrieve_second ()
 
int assign_quality ()
 
int store_output ()
 
int fill_values ()
 
- Protected Member Functions inherited from DtAlgorithm
int interp_extrap (int num, float xin, float x[], float y[], float &yout)
 
int mean_std (int n, float *data, float &mean, float &sdev)
 
int mean_std_weighted (int n, float *data, float &mean, float &sdev, float *weight)
 
int sort_index (int numPts, float array[], int index[])
 
int sort_inplace (int numPts, float array1[], float array2[])
 
int set_byte (short val, short bitPos, short &target)
 
int compute_glint_angle ()
 
int compute_scatter_angle (float &scat_angle)
 
- Protected Member Functions inherited from DDAlgorithm
int get_inputs (vector< size_t > start, vector< size_t > count, map< string, ddata * > imap)
 
map< string, ddata * > set_outputs ()
 
map< string, ddata * > set_fills ()
 

Additional Inherited Members

- Public Types inherited from DtAlgorithm
enum  SIZES { ISMALL, IBIG }
 
enum  STATS { IBEST, IAVG }
 
- Protected Attributes inherited from DtAlgorithm
int SZA_0_
 
int SZA_1_
 
int THE_0_
 
int THE_1_
 
int PHI_0_
 
int PHI_1_
 
- Protected Attributes inherited from DDAlgorithm
size_t lines_
 
size_t pixels_
 
float rfl_ [NTWL]
 
float rfla_ [NTWL][3][3]
 
float gasc_ [NTWL]
 
float lat_
 
float lon_
 
float solz_
 
float senz_
 
float raa_
 
float height_
 
float scatt_
 
float ws_
 
float pwv_
 
float oz_
 
float ps_
 
int month_
 
bool bgascorrect_
 
bool bglintmask_
 
bool bcloudmask_
 
bool btest_
 
unsigned char cloud_mask_
 
short qual_flag_
 
short aerosol_type_
 
short error_flag_
 
unsigned int l2_flags_
 
float scatter_ang_
 
float glint_ang_
 
float sse_
 
float fmf_
 
float aot_550_
 
float ae1_
 
float ae2_
 
float ndv_
 
float chlor_
 
float ssa_ [NLWL+1]
 
float sr_ [NLWL+1]
 
float aot_ [NOWL+1]
 

Detailed Description

Definition at line 454 of file DtAlgorithm.h.

Constructor & Destructor Documentation

◆ DtAlgLand()

DtAlgLand ( )

Class constructor

Definition at line 218 of file DtAlgLand.cpp.

◆ ~DtAlgLand()

~DtAlgLand ( )

Class destructor

Definition at line 295 of file DtAlgLand.cpp.

Member Function Documentation

◆ assign_quality()

int assign_quality ( )
protected

This subroutine assigns all quality variables to be written to output file.

Definition at line 1159 of file DtAlgLand.cpp.

◆ compute_average()

int compute_average ( size_t  iy,
size_t  ix 
)
protected

This subroutine processes 10*10 pixel box for cloud detection and finds the average reflectance for red and blue channels. Surface Reflectance from wavelength 2.13 . This surface Reflectance and average Reflectance for red and blue channel are send to lookup table and optical thickness is derived

Definition at line 512 of file DtAlgLand.cpp.

◆ compute_cloudmask_ndvi()

int compute_cloudmask_ndvi ( size_t  iy,
size_t  ix,
int &  iCldRed,
int &  iCldBlue 
)
protected

This subroutine finds the dark targets using a threshold in the 2.13 micron channel.it averages the cloud free pixels in red channel to the 0.5 km resolution. If too cloudy or too bright at 2.13 it leaves the value as zero.

Definition at line 606 of file DtAlgLand.cpp.

◆ fill_values()

int fill_values ( )
protected

This subroutine stores fill values where required.

NAME: fill_values()

This subroutine assigns fill values to output data where appropriate.

Definition at line 1468 of file DtAlgLand.cpp.

◆ get_products()

vector<string> get_products ( )
inlinevirtual

Return a list of product names generated by the algorithm

Reimplemented from DtAlgorithm.

Definition at line 575 of file DtAlgorithm.h.

◆ index_geometry()

int index_geometry ( float  sza,
float  azim,
float  phi 
)
protected

Reset LUT indices based on measured geometry

Definition at line 475 of file DtAlgLand.cpp.

◆ initialize()

int initialize ( map< string, ddata * >  imap)
virtual

Initialize Input data

Reimplemented from DtAlgorithm.

Definition at line 310 of file DtAlgLand.cpp.

◆ interpolate_angle()

int interpolate_angle ( )
protected

Subroutine interpolates the lookup reflectances to the measured geometry.

Definition at line 696 of file DtAlgLand.cpp.

◆ interpolate_elevation()

int interpolate_elevation ( )
protected

The subroutine interpolates the lookup reflectances to the target elevation. Basically it is fudge: Interpolate between wavelengths to simulate elevation by a longer wavelength

Definition at line 758 of file DtAlgLand.cpp.

◆ interpolate_rayleigh()

int interpolate_rayleigh ( )
protected

This subroutine selects look-up table (using ITABLE) used to select both the "fine" and the "coarse/dust" land model Subroutine Interpolates the lookup Rayleigh reflectances to the measured geometry.

Definition at line 649 of file DtAlgLand.cpp.

◆ process()

map< string, ddata * > process ( vector< size_t >  start,
vector< size_t >  count,
map< string, ddata * >  imap 
)
virtual

The subroutine derives non-cloudy aerosol optical thickness from MODIS measured radiances over land, using the 0.47 (blue), 0.66 (red) and 2.13 (IR) micron channels. Input data are cloud screened and averaged reflectance at at 10 x 10 km. Inversion: A) Select fine mode model based on geography (dynamic aerosol models) B) Mix fine mode and dust mode with selected discrete mixing ratios best matches the observed spectral reflectance. The program assumes that the input data are in reflectance units of PI*L/(F0*cos(theta0)) for all channels. It also assumes that the surface reflectance in the two visible channels are functions of the surface reflectance in the IR. Nominally, red is one half of IR, and blue is one-half of red, respectively.

Reimplemented from DtAlgorithm.

Definition at line 332 of file DtAlgLand.cpp.

◆ retrieve_first()

int retrieve_first ( )
protected

This subroutine retrieves optical thickness, surface reflectance and error parameters by comparing observations and LUT data

Definition at line 887 of file DtAlgLand.cpp.

◆ retrieve_second()

int retrieve_second ( )
protected

This subroutine retrieves optical thickness, surface reflectance and error parameters by comparing observations and LUT data. The "continental" aerosol model is assumed.

Definition at line 1027 of file DtAlgLand.cpp.

◆ simulate_toa()

int simulate_toa ( )
protected

The subroutine simulates TOA reflectance

Definition at line 1100 of file DtAlgLand.cpp.

◆ store_output()

int store_output ( )
protected

This subroutine stores all the output variables to be written to output file.

Definition at line 1325 of file DtAlgLand.cpp.

Member Data Documentation

◆ angstrom_

float angstrom_

Definition at line 521 of file DtAlgorithm.h.

◆ aot_c_

float aot_c_[NLWAV]

Definition at line 516 of file DtAlgorithm.h.

◆ aot_d_

float aot_d_[NLWAV]

Definition at line 514 of file DtAlgorithm.h.

◆ aot_f_

float aot_f_[NLWAV]

Definition at line 515 of file DtAlgorithm.h.

◆ cm_

Definition at line 481 of file DtAlgorithm.h.

◆ DLAT

constexpr float DLAT = 0.5
staticconstexpr

Definition at line 474 of file DtAlgorithm.h.

◆ DLON

constexpr float DLON = 0.5
staticconstexpr

Definition at line 475 of file DtAlgorithm.h.

◆ DTABLE

constexpr int DTABLE = 5
staticconstexpr

Definition at line 467 of file DtAlgorithm.h.

◆ err644_

float err644_

Definition at line 519 of file DtAlgorithm.h.

◆ error_

short error_

Definition at line 499 of file DtAlgorithm.h.

◆ errwave_

float errwave_[NLWAV]

Definition at line 505 of file DtAlgorithm.h.

◆ eta_

float eta_

Definition at line 518 of file DtAlgorithm.h.

◆ eta_flag_

short eta_flag_

Definition at line 512 of file DtAlgorithm.h.

◆ fail_ret_

short fail_ret_

Definition at line 534 of file DtAlgorithm.h.

◆ fd_nl_

float fd_nl_[NLSIZE][NLWAV][NLTAU]

Definition at line 491 of file DtAlgorithm.h.

◆ fdt_nl_

float fdt_nl_[NLSIZE][NLWAV][NLTAU]

Definition at line 493 of file DtAlgorithm.h.

◆ good_pixels_

int good_pixels_[NLWAV]

Definition at line 524 of file DtAlgorithm.h.

◆ iaer_

short iaer_

Definition at line 523 of file DtAlgorithm.h.

◆ ifinish_

short ifinish_

Definition at line 529 of file DtAlgorithm.h.

◆ int_nl_

float int_nl_[NLSIZE][NLWAV][NLTAU]

Definition at line 490 of file DtAlgorithm.h.

◆ iproc_

short iproc_

Definition at line 528 of file DtAlgorithm.h.

◆ lut_

Definition at line 480 of file DtAlgorithm.h.

◆ masscon_

float masscon_

Definition at line 520 of file DtAlgorithm.h.

◆ mtable_

int mtable_[NLSIZE]

Definition at line 485 of file DtAlgorithm.h.

◆ ndvi_

float ndvi_

Definition at line 522 of file DtAlgorithm.h.

◆ NLETA

constexpr int NLETA = 13
staticconstexpr

Definition at line 465 of file DtAlgorithm.h.

◆ NLPHI

constexpr int NLPHI = 16
staticconstexpr

Definition at line 461 of file DtAlgorithm.h.

◆ NLSIZE

constexpr int NLSIZE = 2
staticconstexpr

Definition at line 466 of file DtAlgorithm.h.

◆ NLTABLE

constexpr int NLTABLE = 5
staticconstexpr

Definition at line 464 of file DtAlgorithm.h.

◆ NLTAU

constexpr int NLTAU = 7
staticconstexpr

Definition at line 463 of file DtAlgorithm.h.

◆ NLTHE

constexpr int NLTHE = 15
staticconstexpr

Definition at line 460 of file DtAlgorithm.h.

◆ NLTHET0

constexpr int NLTHET0 = 11
staticconstexpr

Definition at line 459 of file DtAlgorithm.h.

◆ NLWAV

constexpr int NLWAV = 4
staticconstexpr

Definition at line 462 of file DtAlgorithm.h.

◆ num_pixels_used_

int num_pixels_used_

Definition at line 525 of file DtAlgorithm.h.

◆ opth_nl_

float opth_nl_[NLSIZE][NLWAV][NLTAU]

Definition at line 489 of file DtAlgorithm.h.

◆ PRESSURE_P0

constexpr float PRESSURE_P0 = 1013.0
staticconstexpr

Definition at line 473 of file DtAlgorithm.h.

◆ QA_LAND

constexpr int QA_LAND = 5
staticconstexpr

Definition at line 477 of file DtAlgorithm.h.

◆ qcontrol_special_

short qcontrol_special_

Definition at line 537 of file DtAlgorithm.h.

◆ quality_flag_for_joint_

short quality_flag_for_joint_[2]

Definition at line 535 of file DtAlgorithm.h.

◆ quality_flag_for_retr_

short quality_flag_for_retr_

Definition at line 536 of file DtAlgorithm.h.

◆ refl_

float refl_[NLWAV]

Definition at line 497 of file DtAlgorithm.h.

◆ refl_inter_

float refl_inter_[NLWAV][GRIDX *GRIDY]

Definition at line 496 of file DtAlgorithm.h.

◆ refl_ray_nl_

float refl_ray_nl_[NLWAV]

Definition at line 488 of file DtAlgorithm.h.

◆ return_quality_cirrus_

short return_quality_cirrus_

Definition at line 532 of file DtAlgorithm.h.

◆ rho_S212_

float rho_S212_[NLSIZE][NLTAU]

Definition at line 503 of file DtAlgorithm.h.

◆ rho_S212_tot_

float rho_S212_tot_[NLTAU]

Definition at line 504 of file DtAlgorithm.h.

◆ rho_S466_

float rho_S466_

Definition at line 506 of file DtAlgorithm.h.

◆ rho_S644_

float rho_S644_

Definition at line 509 of file DtAlgorithm.h.

◆ rho_sfc_

float rho_sfc_[NLWAV]

Definition at line 517 of file DtAlgorithm.h.

◆ rho_star_

float rho_star_[NLSIZE][NLWAV][NLTAU]

Definition at line 501 of file DtAlgorithm.h.

◆ rho_star_tot_

float rho_star_tot_[NLWAV][NLTAU]

Definition at line 502 of file DtAlgorithm.h.

◆ sbar_nl_

float sbar_nl_[NLSIZE][NLWAV][NLTAU]

Definition at line 494 of file DtAlgorithm.h.

◆ scatter_angle_

float scatter_angle_

Definition at line 484 of file DtAlgorithm.h.

◆ sdev_

float sdev_[NLWAV]

Definition at line 498 of file DtAlgorithm.h.

◆ sds_aerosol_type_

short sds_aerosol_type_

Definition at line 541 of file DtAlgorithm.h.

◆ sds_angs_coeff_

float sds_angs_coeff_

Definition at line 546 of file DtAlgorithm.h.

◆ sds_cloud_fraction_

float sds_cloud_fraction_

Definition at line 545 of file DtAlgorithm.h.

◆ sds_dust_weighting_

float sds_dust_weighting_

Definition at line 547 of file DtAlgorithm.h.

◆ sds_fitting_error_

float sds_fitting_error_

Definition at line 543 of file DtAlgorithm.h.

◆ sds_mass_conc_

float sds_mass_conc_

Definition at line 544 of file DtAlgorithm.h.

◆ sds_ndvi_

float sds_ndvi_

Definition at line 548 of file DtAlgorithm.h.

◆ sds_numpixels_

float sds_numpixels_[NLWAV]

Definition at line 549 of file DtAlgorithm.h.

◆ sds_qcontrol_

short sds_qcontrol_[QA_LAND]

Definition at line 540 of file DtAlgorithm.h.

◆ sds_refl_

float sds_refl_[NLWAV]

Definition at line 551 of file DtAlgorithm.h.

◆ sds_refl_std_

float sds_refl_std_[NLWAV]

Definition at line 552 of file DtAlgorithm.h.

◆ sds_scat_angle_

float sds_scat_angle_

Definition at line 542 of file DtAlgorithm.h.

◆ sds_surface_reflectance_

float sds_surface_reflectance_[NLWAV]

Definition at line 555 of file DtAlgorithm.h.

◆ sds_tau_big_

float sds_tau_big_[NLWAV]

Definition at line 554 of file DtAlgorithm.h.

◆ sds_tau_corrected_

float sds_tau_corrected_[NLWAV]

Definition at line 550 of file DtAlgorithm.h.

◆ sds_tau_small_

float sds_tau_small_[NLWAV]

Definition at line 553 of file DtAlgorithm.h.

◆ season_

int season_

Definition at line 483 of file DtAlgorithm.h.

◆ slope_466_

float slope_466_

Definition at line 508 of file DtAlgorithm.h.

◆ slope_644_

float slope_644_

Definition at line 511 of file DtAlgorithm.h.

◆ success_ret_

short success_ret_

Definition at line 533 of file DtAlgorithm.h.

◆ t_nl_

float t_nl_[NLSIZE][NLWAV][NLTAU]

Definition at line 492 of file DtAlgorithm.h.

◆ THR213MAX_1

constexpr float THR213MAX_1 = 0.25
staticconstexpr

Definition at line 470 of file DtAlgorithm.h.

◆ THR213MAX_2

constexpr float THR213MAX_2 = 0.25
staticconstexpr

Definition at line 472 of file DtAlgorithm.h.

◆ THR213MIN_1

constexpr float THR213MIN_1 = 0.01
staticconstexpr

Definition at line 469 of file DtAlgorithm.h.

◆ THR213MIN_2

constexpr float THR213MIN_2 = 0.25
staticconstexpr

Definition at line 471 of file DtAlgorithm.h.

◆ thresh_max_

float thresh_max_

Definition at line 531 of file DtAlgorithm.h.

◆ thresh_min_

float thresh_min_

Definition at line 530 of file DtAlgorithm.h.

◆ yint_466_

float yint_466_

Definition at line 507 of file DtAlgorithm.h.

◆ yint_644_

float yint_644_

Definition at line 510 of file DtAlgorithm.h.


The documentation for this class was generated from the following files:
  • /gfs-oceanweb/web/ocssw/ocssw_src/src/dtdb/darktarget/DtAlgorithm.h
  • /gfs-oceanweb/web/ocssw/ocssw_src/src/dtdb/darktarget/DtAlgLand.cpp