ocssw
V2022
|
epr_bitmask.c
Go to the documentation of this file.
281 for (flag_def_index = 0; flag_def_index < flag_band_id->flag_coding->length; flag_def_index++) {
887 char* s0 = epr_create_string(strlen(term->op.ref.band_name) + strlen(term->op.ref.flag_name) + 16);
EPR_SBmTerm * epr_create_bm_NOT_term(EPR_SBmTerm *arg)
Definition: epr_bitmask.c:711
const struct FlagDescriptorTable dddb_flag_coding_tables[6]
Definition: epr_dddb.c:4277
EPR_SBmTerm * epr_parse_bm_expr(EPR_SParseInfo *parse_info, epr_boolean term_required)
Definition: epr_bitmask.c:445
EPR_SBmTerm * epr_create_bm_term(EPR_EBmOpCode op_code)
Definition: epr_bitmask.c:694
void epr_free_bm_eval_context(EPR_SBmEvalContext *context)
Definition: epr_bitmask.c:62
EPR_SRaster * epr_create_compatible_raster(EPR_SBandId *band_id, epr_uint source_width, epr_uint source_height, epr_uint source_step_x, epr_uint source_step_y)
Definition: epr_band.c:549
epr_uint epr_get_pixel_as_uint(const EPR_SRaster *raster, int x, int y)
Definition: epr_bitmask.c:736
EPR_SBmTerm * epr_parse_bm_OR_expr(EPR_SParseInfo *parse_info, epr_boolean term_required)
Definition: epr_bitmask.c:451
epr_boolean epr_is_bm_AND_operator(EPR_SParseInfo *parse_info)
Definition: epr_bitmask.c:556
void epr_free_flag_coding(EPR_SPtrArray *flag_coding)
Definition: epr_bitmask.c:395
EPR_SBmEvalContext * epr_create_bm_eval_context(EPR_SProductId *product_id, int offset_x, int offset_y, EPR_SRaster *bitmask_raster)
Definition: epr_bitmask.c:39
void epr_set_bm_expr_error(EPR_SParseInfo *parse_info, const char *message)
Definition: epr_bitmask.c:612
epr_boolean epr_is_bm_NOT_keyword(EPR_SParseInfo *parse_info)
Definition: epr_bitmask.c:552
char * epr_assign_string(char **str_clone, const char *str)
Definition: epr_string.c:29
float epr_get_pixel_as_float(const EPR_SRaster *raster, int x, int y)
Definition: epr_bitmask.c:789
void epr_write_bm_term(EPR_SBmTerm *term, FILE *ostream)
Definition: epr_bitmask.c:933
double epr_get_pixel_as_double(const EPR_SRaster *raster, int x, int y)
Definition: epr_bitmask.c:815
EPR_SBmTerm * epr_parse_bm_primary_expr(EPR_SParseInfo *parse_info, epr_boolean term_required)
Definition: epr_bitmask.c:508
epr_boolean epr_equal_names(const char *name1, const char *name2)
Definition: epr_string.c:91
EPR_SPtrArray * epr_create_flag_coding(EPR_SProductId *product_id, const char *flag_coding_name)
Definition: epr_bitmask.c:333
EPR_SBmTerm * epr_parse_bm_expr_str(const char *bm_expr)
Definition: epr_bitmask.c:307
EPR_SBmTerm * epr_parse_bm_unary_expr(EPR_SParseInfo *parse_info, epr_boolean term_required)
Definition: epr_bitmask.c:492
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 already in place for MODIS TERRA was implemented for MODIS AQUA A time dependent LUT was added which gives coefficients for a detector specific crosstalk correction based on the aggregated Band radiances The Band scaled integers are adjusted by the Band correction term
Definition: HISTORY.txt:439
What value is used by your function when the data value is bad Default is BAD_FLT l2prod product_id[0]
Definition: HOWTO_Add_a_product.txt:102
instead the metadata field ProcessingEnvinronment is filled in from the output of a call to the POSIX compliant function uname from within the L1B code A small bug in L1B_Tables an incorrect comparison of RVS coefficients for TEBs to RVS coefficients for RSBs was being made This was replaced with a comparison between TEB coefficients This error never resulted in an incorrect RVS correction but did lead to recalculating the coefficients for each detector in a thermal band even if the coefficients were the same for all detectors To reduce to overall size of the reflective LUT HDF fill values were eliminated from all LUTs previously dimensioned where and where NUM_TIMES is the number of time dependent table pieces In Preprocess a small error where the trailing dropped scan counter was incremented when the leading dropped scan counter should have been was fixed This counter is internal only and is not yet used for any chiefly to casting of were added to make it LINUX compatible Output of code run on LINUX machines displays differences of at most scaled sector incalculable values of the Emissive calibration factor and incalculable values of SV or BB averages was moved outside the loop over frames in Emissive_Cal c since none of these quantities are frame dependent Initialization of b1 and XMS values in Preprocess c routine Process_OBCENG_Emiss was moved inside the detector loops The code was altered so that if up to five scans are dropped between the leading middle or middle trailing the leading or trailing granule will still be used in emissive calibration to form a cross granule average QA bits and are set for a gap between the leading middle and middle trailing granules respectively This may in rare instances lead to a change in emissive calibration coefficients for scans at the beginning or end of a granule A small bug in the Band correction algorithm was corrected an uncertainty value was being checked against an upper bound whereas the proper quantity to be checked was the corresponding which is the product of the Band radiance times the ratio of the Band to Band scaling factors times the LUT correction value for that detector In addition a new LUT which allows for a frame offset with regard to the Band radiance was added A LUT which switches the correction off or on was also added Changes which do not affect scientific output of the the pixel is flagged with the newly created flag and the number of pixels for which this occurs is counted in the QA_common table The array of b1s in Preprocess c was being initialized to outside the loop over which meant that if b1 could not be the value of b1 from the previous band for that scan detector combination was used The initialization was moved inside the band loop Minor code changes were made to eliminate compiler warnings when the code is compiled in bit mode Temperature equations were upgraded to be MODIS AQUA or MODIS TERRA specific and temperature conversion coefficients for AQUA were MOD_PR02 will not cease execution if the value of this parameter is not but will print a message
Definition: HISTORY.txt:644
EPR_SBmTerm * epr_parse_bm_AND_expr(EPR_SParseInfo *parse_info, epr_boolean term_required)
Definition: epr_bitmask.c:471
epr_boolean epr_is_bm_OR_operator(EPR_SParseInfo *parse_info)
Definition: epr_bitmask.c:560
int epr_add_ptr_array_elem(EPR_SPtrArray *ptr_array, void *elem)
Definition: epr_ptrarray.c:75
epr_boolean epr_is_bm_NOT_operator(EPR_SParseInfo *parse_info)
Definition: epr_bitmask.c:564
EPR_SBmTerm * epr_create_bm_REF_term(char *band_name, char *flag_name)
Definition: epr_bitmask.c:701
void epr_set_err(EPR_EErrCode err_code, const char *err_message)
Definition: epr_core.c:221
epr_boolean epr_eval_bm_term(EPR_SBmEvalContext *context, EPR_SBmTerm *term, int x, int y)
Definition: epr_bitmask.c:174
EPR_SBmTerm * epr_create_bm_OR_term(EPR_SBmTerm *arg1, EPR_SBmTerm *arg2)
Definition: epr_bitmask.c:718
int epr_get_pixel_as_int(const EPR_SRaster *raster, int x, int y)
Definition: epr_bitmask.c:762
epr_boolean epr_is_bm_expr_error(EPR_SParseInfo *parse_info)
Definition: epr_bitmask.c:576
void epr_resolve_bm_ref(EPR_SBmEvalContext *context, EPR_SBmTerm *term)
Definition: epr_bitmask.c:228
int epr_tokenize_bm_expr(const char *bm_expr, int *bm_expr_pos, char **token)
Definition: epr_bitmask.c:635
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 and prod_ix set to PARAM_TYPE_INT name_prefix is compared with the beginning of the product name If name_suffix is not empty the it must match the end of the product name The characters right after the prefix are read as an integer and prod_ix is set to that number strncpy(l2prod->name_prefix, "myprod", UNITLEN)
void epr_push_back_bm_expr_token(EPR_SParseInfo *parse_info)
Definition: epr_bitmask.c:608
EPR_SBandId * epr_get_band_id(EPR_SProductId *product_id, const char *band_name)
Definition: epr_band.c:237
epr_boolean epr_is_bm_name_token(EPR_SParseInfo *parse_info)
Definition: epr_bitmask.c:568
epr_boolean epr_is_bm_OR_keyword(EPR_SParseInfo *parse_info)
Definition: epr_bitmask.c:544
Definition: epr_dddb.h:62
int epr_read_band_raster(EPR_SBandId *band_id, int offset_x, int offset_y, EPR_SRaster *raster)
Definition: epr_band.c:593
int epr_read_bitmask_raster(EPR_SProductId *product_id, const char *bm_expr, int offset_x, int offset_y, EPR_SRaster *bm_raster)
Definition: epr_bitmask.c:99
epr_boolean epr_is_bm_AND_keyword(EPR_SParseInfo *parse_info)
Definition: epr_bitmask.c:548
EPR_SPtrArray * epr_create_ptr_array(unsigned int capacity)
Definition: epr_ptrarray.c:29
void epr_next_bm_expr_token(EPR_SParseInfo *parse_info)
Definition: epr_bitmask.c:597
epr_boolean epr_is_bm_EOS_token(EPR_SParseInfo *parse_info)
Definition: epr_bitmask.c:572
EPR_SBmTerm * epr_create_bm_AND_term(EPR_SBmTerm *arg1, EPR_SBmTerm *arg2)
Definition: epr_bitmask.c:726