ocssw
V2022
|
l12_proto.h
Go to the documentation of this file.
62 void update_flag_cnts(int32_t *flag_cnt, int32_t* flags, int32_t nflags, int32_t npix, uint32_t init_mask);
63 void update_flag_cnts16(int32_t *flag_cnt, int16_t* flags, int32_t nflags, int32_t npix, uint32_t init_mask);
65 int write_flag_pcnts(idDS ds_id, FILE *fpmeta, int32_t *flag_cnt, int32_t nflags, const char * const flag_lname[], int32_t numScans, int32_t numPixels);
66 int write_qual_flag_pcnts(idDS ds_id, FILE *fpmeta, int32_t *flag_cnt, int32_t nflags, const char * const flag_lname[]);
85 l2prodstr *get_l2prod_index(const char *name, int32_t sensorID, int32_t numBands, int32_t numPixels,
89 int32_t prodlist(int32_t sensorID, int32_t evalmask, const char *inprod, const char *defprod, char outprod[L1_MAXPROD][32]);
126 void whitecaps(int32_t sensorID, int32_t evalmask, int32_t nwave, float ws, float ws_max, float rhof[]);
148 float mu0, float F0[], float taur[], float taua[], float La[], float TLg[], uncertainty_t *errstr);
152 void fresnel_sol(float wave[], int32_t nwave, float solz, float ws, float brdf[], int return_tf);
160 void nlw_outband(int32_t evalmask, int32_t sensorID, float wave[], int32_t nwave, float Lw[], float nLw[], float outband_correction[]);
339 void fLTmean(l1qstr *l1que, int32_t nx, int32_t ny, int ib, int32_t minfill, char kernel[], l1str *l1rec);
340 void fLTRmean(l1qstr *l1que, int32_t nx, int32_t ny, int ib, int32_t minfill, char kernel[], l1str *l1rec);
341 void fLTmed(l1qstr *l1que, int32_t nx, int32_t ny, int ib, int32_t minfill, char kernel[], l1str *l1rec);
342 void fLTRmed(l1qstr *l1que, int32_t nx, int32_t ny, int ib, int32_t minfill, char kernel[], l1str *l1rec);
343 void fEPSmean(l1qstr *l1que, int32_t nx, int32_t ny, int ib, int32_t minfill, char kernel[], l1str *l1rec);
344 void fEPSiqmean(l1qstr *l1que, int32_t nx, int32_t ny, int ib, int32_t minfill, char kernel[], l1str *l1rec);
345 void fLTRiqmean(l1qstr *l1que, int32_t nx, int32_t ny, int ib, int32_t minfill, char kernel[], l1str *l1rec);
void get_fsat2(l2str *l2rec, float flh[])
int32 l1file(int32 sdfid, int32 *nsamp, int32 *nscans, int16 *dtynum)
Definition: l1stat_chk.c:586
int convl21(l2str *l2rec, tgstr *tgrec, int32_t spix, int32_t epix, float *Lt, vcstr *vrec)
Definition: convl21.c:15
void fLTRmean(l1qstr *l1que, int32_t nx, int32_t ny, int ib, int32_t minfill, char kernel[], l1str *l1rec)
Definition: filter.c:673
void get_dust_index(l2str *l2rec, float dust[])
void fLTRmed(l1qstr *l1que, int32_t nx, int32_t ny, int ib, int32_t minfill, char kernel[], l1str *l1rec)
Definition: filter.c:1093
void get_rho_mumm(l2str *l2rec, int32_t ip, int32_t iw, float *rhom)
Definition: mumm.c:25
void filter(fctlstr *fctl, l1qstr *l1que, l1str *l1rec, int32_t dscan)
Definition: filter.c:1398
void get_rhown_nir(char *fqfile, float Rrs[], float wave[], int32_t nir_s, int32_t nir_l, float aw[], float bbw[], float chl, float rhown[], float dRrs[], float dchl, float drhown[])
int get_height(l1str *l1rec, int32_t ip, int terrain_corrected)
Definition: get_height.c:20
void lowercase(char *s)
int msl12_input(int argc, char *argv[], const char *progName, filehandle *l1file)
Definition: msl12_input.c:4359
void get_fqy2(l2str *l2rec, float fqy[])
void fLTRiqmean(l1qstr *l1que, int32_t nx, int32_t ny, int ib, int32_t minfill, char kernel[], l1str *l1rec)
Definition: filter.c:1166
void get_Rrs_brightness(l2str *l2rec, float Rrs_brightness[])
Definition: get_avw.c:172
float get_sstref(short reftyp, char *file, l1str *l1rec, int32_t ip)
Definition: sstref.c:1601
void nlw_outband(int32_t evalmask, int32_t sensorID, float wave[], int32_t nwave, float Lw[], float nLw[], float outband_correction[])
Definition: nlw_outband.c:3
int l2gen_init_options(clo_optionList_t *list, const char *prog)
Definition: msl12_input.c:680
void get_evi(l1str *l1rec, float evi[])
Calculate Enhanced Vegetation Index CAT_ix 38.
Definition: get_ndvi.c:91
int noise_index_oci(float wave)
derive the index of OCI wavelength in MODIS wavelength domain
Definition: get_uncertainty.c:124
void get_ndii(l1str *l1rec, float ndii[])
Main entry point for getting ndii.
Definition: get_ndii.c:81
void get_ipar_below_surface(l2str *l2rec, float ipar[])
Definition: get_par.c:490
void glint_rad(int32_t num_iter, int32_t nband, int32_t nir_s, int32_t nir_l, float glint_coef, float air_mass, float mu0, float F0[], float taur[], float taua[], float La[], float TLg[], uncertainty_t *errstr)
Definition: glint.c:40
int read_target(filehandle *file, int32_t recnum, tgstr *tgrec)
Definition: target_io.c:105
void fresnel_sol(float wave[], int32_t nwave, float solz, float ws, float brdf[], int return_tf)
Definition: brdf.c:160
void get_tauc(l2str *l2rec, float tauc[])
int32_t alloc_target(int32_t npix, int32_t nbands, tgstr *tgrec)
Definition: alloc_target.c:12
void foqint_morel(char *file, float wave[], int32_t nwave, float solz, float senzp, float phi, float chl, float brdf[])
Definition: brdf.c:314
void get_photic_depth(l2str *l2rec, l2prodstr *p, float Z[])
Definition: photic_depth.c:303
int getglint_(float *, float *, float *, float *, float *, float *)
Definition: getglint.c:130
PARAM_TYPE_NONE Default value No parameter is buried in the product name name_prefix is case insensitive string compared to the product name PARAM_TYPE_VIS_WAVE The visible wavelength bands from the sensor are buried in the product name The product name is compared by appending and name_suffix ie aph_412_giop where prod_ix will be set to PARAM_TYPE_IR_WAVE same search method as PARAM_TYPE_VIS_WAVE except only wavelength above are looped through but prod_ix is still based ie aph_2_giop for the second band
Definition: HOWTO_Add_a_product.txt:42
int msl12_option_input(int argc, char *argv[], clo_optionList_t *list, char *progName, filehandle *l1file)
void close_aer(filehandle *file)
int ice_mask_init(char *file, int year, int day, float threshold)
Definition: ice_mask.c:900
int get_hyper_vi(l1str *l1rec, int product_number, float product[])
Definition: get_hyper_vi.cpp:211
void get_fdiff(l2str *l2rec, float fdiff[])
void gaseous_transmittance(l1str *l1rec, int32_t ip)
Definition: gas_trans.c:633
float * get_sst_dust_correction(l2str *l2rec)
Retrive the dust SST correction for MODIS and product SST *.
Definition: sst.c:9
void get_ndvi(l1str *l1rec, float ndvi[])
Calculate Normalized Difference Vegetation Index CAT_ix 32.
Definition: get_ndvi.c:46
int aerosol(l2str *l2rec, int32_t aer_opt_in, aestr *aerec, int32_t ip, float wave[], int32_t nwave, int32_t nir_s_in, int32_t nir_l_in, float F0_in[], float La1_in[], float La2_out[], float t_sol_out[], float t_sen_out[], float *eps, float taua_out[], int32_t *modmin, int32_t *modmax, float *modrat, int32_t *modmin2, int32_t *modmax2, float *modrat2, float *mbac_w)
Definition: aerosol.c:5651
void fLTrat(l1qstr *l1que, int32_t nx, int32_t ny, l1str *l1rec)
int ocbrdf(l2str *l2rec, int32_t ip, int32_t brdf_opt, float wave[], int32_t nwave, float solz, float senz, float phi, float ws, float chl, float nLw[], float Fo[], float brdf[])
Definition: brdf.c:40
void optical_class(l2str *l2rec, l2prodstr *p, float prod[])
no change in intended resolving MODur00064 Corrected handling of bad ephemeris attitude resolving resolving GSFcd00179 Corrected handling of fill values for[Sensor|Solar][Zenith|Azimuth] resolving MODxl01751 Changed to validate LUT version against a value retrieved from the resolving MODxl02056 Changed to calculate Solar Diffuser angles without adjustment for estimated post launch changes in the MODIS orientation relative to incidentally resolving defects MODxl01766 Also resolves MODxl01947 Changed to ignore fill values in SCI_ABNORM and SCI_STATE rather than treating them as resolving MODxl01780 Changed to use spacecraft ancillary data to recognise when the mirror encoder data is being set by side A or side B and to change calculations accordingly This removes the need for seperate LUTs for Side A and Side B data it makes the new LUTs incompatible with older versions of the and vice versa Also resolves MODxl01685 A more robust GRing algorithm is being which will create a non default GRing anytime there s even a single geolocated pixel in a granule Removed obsolete messages from seed file
Definition: HISTORY.txt:413
void get_um_prod_(int32_t *idProd, int32_t *pix, float *val)
int32_t prodlist(int32_t sensorID, int32_t evalmask, const char *inprod, const char *defprod, char outprod[L1_MAXPROD][32])
void get_Cpicophyt(l2str *l2rec, l2prodstr *p, float *cell_abundance)
Definition: get_Cpicophyt.c:38
Definition: clo.h:126
void get_evi3(l1str *l1rec, float evi3[])
Calculate Enhanced Vegetation Index - EVI3 CAT_ix 64.
Definition: get_ndvi.c:212
int writel2(filehandle *l2file, int32_t recnum, l2str *l2rec, int outfile_number)
Definition: l2_generic.c:939
void update_flag_cnts16(int32_t *flag_cnt, int16_t *flags, int32_t nflags, int32_t npix, uint32_t init_mask)
Definition: l2_generic.c:1502
void fEPSmean(l1qstr *l1que, int32_t nx, int32_t ny, int ib, int32_t minfill, char kernel[], l1str *l1rec)
Definition: filter.c:853
void get_npp(l2str *l2rec, int32_t, float prod[])
void update_flag_cnts(int32_t *flag_cnt, int32_t *flags, int32_t nflags, int32_t npix, uint32_t init_mask)
Definition: l2_generic.c:1487
float seawater_nsw(float wave, float sst, float sss, float *dnswds)
Definition: seawater.c:8
void get_bsi(l2str *l2rec, float BSi[])
void fLTmean(l1qstr *l1que, int32_t nx, int32_t ny, int ib, int32_t minfill, char kernel[], l1str *l1rec)
Definition: filter.c:616
list(APPEND LIBS ${NETCDF_LIBRARIES}) find_package(GSL REQUIRED) include_directories($
Definition: CMakeLists.txt:8
void fdilate(l1qstr *l1que, int32_t nx, int32_t ny, int flag, char kernel[], l1str *l1rec)
Definition: filter.c:361
int read_target_l3(filehandle *file, l1str *l1rec, int32_t nbands, tgstr *tgrec)
Definition: target_io.c:209
void gothic_R(float wave[], int32_t nwave, float solz, float senz, float ws, float R[])
Definition: brdf.c:266
void update_qual_cnts(int32_t *flag_cnt, int8_t *flags, int32_t nflags, int32_t npix)
Definition: l2_generic.c:1517
int fctl_set(fctlstr *fctl, int32_t npix, char *fname, int32_t band, int32_t nx, int32_t ny, int32_t minfill, int32_t nbands)
Definition: filter.c:92
void get_tsm(l2str *l2rec, int prodnum, float prod[])
void get_ndwi(l1str *l1rec, float ndwi[])
Main entry point for getting NDWI.
Definition: get_ndwi.c:79
void get_rhown_mumm(l2str *l2rec, int32_t ip, int32_t nir_s, int32_t nir_l, float rhown[])
Definition: mumm.c:74
void clear_um_prod_()
void noise_model_hmodist(l1str *l1rec, float *noise)
void optical_water_type(l2str *l2rec, l2prodstr *p, void *vptr)
Definition: owt.c:325
int32_t l3file(int32_t sdfid, int32_t c_sdfid, int32_t *nbins, int32_t *c_nbins, char *ptype)
Definition: l3stat_chk.c:347
void get_aw_bbw(l2str *l2rec, float wave[], int nwave, float *aw, float *bbw)
Definition: water_spectra.c:179
int write_qual_flag_pcnts(idDS ds_id, FILE *fpmeta, int32_t *flag_cnt, int32_t nflags, const char *const flag_lname[])
Definition: l2_generic.c:1556
void whitecaps(int32_t sensorID, int32_t evalmask, int32_t nwave, float ws, float ws_max, float rhof[])
Definition: whitecaps.c:51
float * get_bias_sst(l2str *l2rec)
Retrive the bias SSES for SST (both VIIRS and MODIS)
Definition: sst.c:22
void get_evi2(l1str *l1rec, float evi2[])
Calculate Enhanced Vegetation Index - EVI2 CAT_ix 63.
Definition: get_ndvi.c:164
void get_pft_uitz(l2str *l2rec, l2prodstr *p, float prod[])
Definition: get_pft_uitz.c:387
void cdom_morel(l2str *l2rec, l2prodstr *p, float prod[])
Utility functions for allocating and freeing two-dimensional arrays of various types.
void get_pft_hirata(l2str *l2rec, l2prodstr *p, float prod[])
Definition: get_pft_hirata.c:145
void get_rhown_eval(char *fqfile, float Rrs[], float wave[], int32_t nir_s, int32_t nir_l, int32_t nwave, float aw[], float bbw[], float chl, float solz, float senz, float phi, float rhown[], l2str *l2rec, int32_t ip)
Definition: get_rhown_nir.c:286
void sunangs_(int *iyr, int *iday, float *gmt, float *xlon, float *ylat, float *sunz, float *suna)
Definition: sunangs.c:25
int32_t l2_seawifs(filehandle *l1file, filehandle *l2file)
int read_albedo(int32_t d_np, int32_t d_nl, int32_t st_lin, int32_t ix_clim, int ncid, int *d_id, unsigned char ***alb_dat)
Definition: acq_sfc_albedo.c:69
float * get_bias_mean_sst_triple(l2str *l2rec)
Get the means SSES bias for SST3.
Definition: sst.c:285
void get_ssn(l2str *l2rec, float ssn[])
int write_flag_pcnts(idDS ds_id, FILE *fpmeta, int32_t *flag_cnt, int32_t nflags, const char *const flag_lname[], int32_t numScans, int32_t numPixels)
Definition: l2_generic.c:1532
void set_iop_flag(float wave[], int32_t nwave, float a[], float aph[], float adg[], float bb[], float bbp[], int16_t *flag)
int getglint_iqu_(float *, float *, float *, float *, float *, float *, float *, float *)
Definition: getglint.c:135
void fEPSiqmean(l1qstr *l1que, int32_t nx, int32_t ny, int ib, int32_t minfill, char kernel[], l1str *l1rec)
Definition: filter.c:1249
void bioOptBandShift(l2str *l2rec, l2prodstr *p, float prod[])
Definition: bioOptBandShift.c:52
float get_aphstar_pderiv(float wave, int dwave, int ftype, float proxy)
Definition: aph.c:408
int get_bbp_qaa(l2str *l2rec, int ip, float tab_wave[], float tab_bbp[], int tab_nwave)
Definition: get_qaa.c:353
unsigned char * get_cmp_byt(l2str *l2rec, int32_t)
void get_habs_mph(l2str *l2rec, l2prodstr *p, float mph_chl[])
Definition: get_habs.c:275
int get_bbp_las(l2str *l2rec, int ip, float tab_wave[], float tab_bbp[], int tab_nwave)
Definition: las_iop.c:605
Definition: dfutils.h:28
void fclean(l1qstr *l1que, int32_t nx, int32_t ny, int flag, char kernel[], l1str *l1rec)
Definition: filter.c:536
int32_t get_modis_calfile(int32_t sd_id, char *file)
void get_cdom_morel(l2str *l2rec, l2prodstr *p, float prod[])
Definition: cdom_morel.c:319
float bin_climatology(char *l3file, int32_t day, float lon, float lat, char *prodname)
Definition: bin_climatology.c:287
l2prodstr * get_l2prod_index(const char *name, int32_t sensorID, int32_t numBands, int32_t numPixels, int32_t numScans, int32_t *wave)
void virtual_constellation(l2str *l2rec, l2prodstr *p, float prod[])
Definition: virtual_constellation.c:297
float conv_rrs_to_555(float Rrs, float wave, float dRrs_in, float *dRrs_out)
Definition: convert_band.c:17
void noise_model_hmodisa(l1str *l1rec, float *noise)
void fLTmed(l1qstr *l1que, int32_t nx, int32_t ny, int ib, int32_t minfill, char kernel[], l1str *l1rec)
Definition: filter.c:1022
int32 l2file(int32 sdfid, int32 *nsamp, int32 *nscans, char *dtype)
Definition: l2stat_chk.c:313
void qint_morel(float wave[], int32_t nwave, float solz, float chl, float Qn[])
Definition: brdf.c:672
void get_depth_classification(l2str *l2rec, float depth[])
Definition: get_depth_classification.c:20
PGE01 indicating that PGE02 PGE01 V6 for and PGE01 V2 for MOD03 were used to produce the granule By convention adopted in all MODIS Terra PGE02 code versions are The fourth digit of the PGE02 version denotes the LUT version used to produce the granule The source of the metadata environment variable ProcessingCenter was changed from a QA LUT value to the Process Configuration A sign used in error in the second order term was changed to a
Definition: HISTORY.txt:424
HISTORY txt for MOD_PR01(step one of PGE01) History follows the following convention needed due to new Aqua ReprocessingActual and the expected LUT revision number from PCF Changed to use PGE version for ProductionHistory Added Archive including ProcessingEnvironment Corrected handling of bad to resovle GSFcd02514 Changed to check staged LUT revision number versus the expected LUT revision number from thereby resolving defect report MODxl02056 This change also avoids the memory access violation reported in MODur00039 Changed the way output arrays were initialized with fill to be more but placed into the L1A output product and thought of as valid packets These packets had an invalid frame count in them and since only the last valid packet of any specific type gets it frame count data written to the output product
Definition: HISTORY.txt:176
int convl12(l1str *l1rec, l2str *l2rec, int32_t spix, int32_t epix, aestr *aerec)
Definition: convl12.c:16
float seawater_bb(float wave, float sst, float sss, double delta)
Definition: seawater.c:176
int32_t l1b_seawifs(filehandle *l1file, filehandle *ofile, int32_t sscan, int32_t escan, int32_t dscan, int32_t spixl, int32_t epixl, int32_t dpixl)
float poc_stramski_hybrid(float *Rrs, int32_t sensorID)
Definition: get_poc_hybrid.c:22