Go to the documentation of this file.
285 #define TDLUT_INVALID -1
286 #define TDLUT_CONSTANT 0
287 #define TDLUT_STEPFUNCTION 1
288 #define TDLUT_PIECEWISE_LINEAR 2
289 #define TDLUT_ALGORITHM_ATTR_NAME "algorithm"
290 #define TDLUT_STEPFUNCTION_TIMES "times"
291 #define TDLUT_PIECEWISE_LINEAR_TIMES "times"
336 #define PGE02_VERSION "6.2.2_obpg"
347 #define MAX_SERIAL_NUMBER_BUFFER 31
348 #define MAX_PGE_VERSION_BUFFER 11
349 #define MAX_MCST_VERSION_BUFFER 21
350 #define MAX_ASSOCIATEDPLATFORMSHORTNAME_BUFFER 21
351 #define MAX_ALGORITHMPACKAGEACCEPTANCEDATE_BUFFER 11
352 #define MAX_ALGORITHMPACKAGEMATURITYCODE_BUFFER 15
353 #define MAX_MISSION_PHASE_BUFFER 15
354 #define NUM_DN_VALUES 4096
355 #define NUM_PRI_RED_SYSTEMS 2
356 #define NUM_BITS_IN_UINT8 8
358 #define NUM_1ST_ORDER_COEFFS 2
359 #define NUM_2ND_ORDER_COEFFS 3
360 #define NUM_4TH_ORDER_COEFFS 5
366 #define EVAL_4TH_ORDER_POLYNOMIAL(p,a,x) \
367 p = a[0] + x * (a[1] + x * (a[2] + x * (a[3] + x * a[4])));
375 #define EVAL_2ND_ORDER_POLYNOMIAL(p,a,x,y) \
376 p = a[0] + x * a[1] + y * a[2];
382 #define NUM_SWIR_BANDS 4
383 #define MAX_NUM_SWIR_SUBSAMPLES 2
384 #define MAX_DETECTORS_PER_SWIR_BAND 20
385 #define MAX_SWIR_BAND_EV_FRAMES 2708
386 #define MAX_NUM_SWIR_RSR_WL 27
396 #define NUM_PC_XT_BANDS 5
397 #define NUM_PC_XT_PARAMETERS 4
398 #define MAX_NUM_RSR_vs_LAMBDA 49
400 #define NUM_PVLW_XT_BANDS 4
401 #define NUM_PVLW_XT_COEFF 3
403 #define NUM_a0_vs_T_inst_COEFF 3
404 #define NUM_a2_vs_T_inst_COEFF 3
411 #define NUM_T_MIR_THERMISTORS 2
412 #define NUM_T_INS_THERMISTORS 4
413 #define INDEX_TP_AO_SMIR_OBJ 0
414 #define INDEX_TP_AO_LWIR_OBJ 1
415 #define INDEX_TP_AO_SMIR_LENS 2
416 #define INDEX_TP_AO_LWIR_LENS 3
418 #define NUM_T_CAV_THERMISTORS 4
419 #define INDEX_TP_MF_CALBKHD_SR 0
420 #define INDEX_TP_SR_SNOUT 1
421 #define INDEX_TP_MF_Z_BKHD_BB 2
422 #define INDEX_TP_MF_CVR_OP_SR 3
424 #define NUM_U2_FRAME 7
425 #define NUM_RSB_RVS_COEFFS 5
430 #define NUM_MOON_OFFSET_LIMITS 4
431 #define NUM_ATTITUDE_ANGLES 3
452 #define GLOBAL_ATTRIBUTE_LUT 0
460 #define PGE_VERSION_LUT_NAME "PGE_Version"
461 #define MCST_VERSION_LUT_NAME "MCST_Version"
467 #define REFL_SERIAL_NUMBER_LUT_NAME "Serial Number of Reflective LUT"
468 #define M0_LUT_NAME "m0"
469 #define M1_LUT_NAME "m1"
470 #define DN_STAR_MAX_LUT_NAME "dn_star_Max"
471 #define DN_STAR_MIN_LUT_NAME "dn_star_Min"
472 #define K_INST_LUT_NAME "K_inst"
473 #define K_FPA_LUT_NAME "K_FPA"
474 #define T_INST_REF_LUT_NAME "T_inst_ref"
475 #define T_FPA_REF_LUT_NAME "T_FPA_ref"
476 #define RVS_RSB_LUT_NAME "RVS_RefSB"
488 #define DN_OBC_1ST_FRAME_LUT_NAME "DN_obc_avg_first_frame_to_use"
489 #define DN_OBC_NUM_FRAMES_LUT_NAME "DN_obc_avg_number_of_frames_to_use"
490 #define SWIR_CORRECTION_SWITCH_LUT_NAME "SWIR_OOB_correction_switch"
491 #define X_OOB_0_LUT_NAME "X_OOB_0"
492 #define X_OOB_1_LUT_NAME "X_OOB_1"
493 #define X_OOB_2_LUT_NAME "X_OOB_2"
494 #define RSB_SPECIFIED_UNCERTAINTY_LUT_NAME "RSB_specified_uncertainty"
495 #define RSB_UI_SCALING_FACTOR_LUT_NAME "RSB_UI_scaling_factor"
496 #define E_SUN_OVER_PI_LUT_NAME "E_sun_over_pi"
497 #define RSB_SV_DN_MOON_INCLUDE_FRAMES_LUT_NAME "RSB_SV_DN_moon_include_frames"
498 #define DN_SAT_EV_LUT_NAME "dn_sat_ev"
499 #define B26_B5_CORR_LUT_NAME "B26_B5_Corr"
500 #define B26_B5_CORR_SWITCH_LUT_NAME "B26_B5_Corr_Switch"
501 #define B26_B5_FRAME_OFFSET_LUT_NAME "B26_B5_Frame_Offset"
502 #define SWIR_CORR_SENDING_BAND_LUT_NAME "SWIR_OOB_corr_sending_band"
503 #define SWIR_CORR_SENDING_DETECTOR_LUT_NAME "SWIR_OOB_corr_sending_detector"
505 #define U1_LUT_NAME "u1"
506 #define U2_LUT_NAME "u2"
507 #define U3_LUT_NAME "u3"
508 #define U4_LUT_NAME "u4"
509 #define U2_FRAMES_LUT_NAME "u2_frames"
510 #define SWIR_UI_FACTOR_LUT_NAME "swir_ui_factor"
516 #define EMISS_SERIAL_NUMBER_LUT_NAME "Serial Number of Emissive LUT"
517 #define EPSILON_BB_LUT_NAME "epsilon_bb"
518 #define EPSILON_CAV_LUT_NAME "epsilon_cav"
519 #define DELTA_T_BB_BETA_LUT_NAME "delta_T_bb_beta"
520 #define DELTA_T_BB_DELTA_LUT_NAME "delta_T_bb_delta"
521 #define PCX_TALK_LUT_NAME "PC_XT"
522 #define RVS_TEB_LUT_NAME "RVS_TEB"
523 #define RVS_BB_SV_FRAME_NO_LUT_NAME "RVS_BB_SV_Frame_No"
524 #define RSR_LUT_NAME "RSR"
525 #define WAVELENGTH_LUT_NAME "WAVELENGTH"
526 #define NUM_WL_INCREMENT_LUT_NAME "NWL"
527 #define CALIB_A0_LUT_NAME "A0"
528 #define CALIB_A2_LUT_NAME "A2"
537 #define T_INS_FUNCTION_FLAG_LUT_NAME "T_ins_function_flag"
538 #define T_INS_DEFAULT_LUT_NAME "T_ins_default"
539 #define T_INS_OFFSET_LUT_NAME "T_ins_offset"
540 #define T_CAV_FUNCTION_FLAG_LUT_NAME "T_cav_function_flag"
541 #define T_CAV_DEFAULT_LUT_NAME "T_cav_default"
542 #define T_MIR_FUNCTION_FLAG_LUT_NAME "T_mir_function_flag"
543 #define T_MIR_DEFAULT_LUT_NAME "T_mir_default"
544 #define BB_WEIGHT_LUT_NAME "BB_Weight"
545 #define BB_DN_1ST_FRAME_LUT_NAME "BB_DN_first_frame_to_use"
546 #define BB_DN_NUM_FRAMES_LUT_NAME "BB_DN_number_of_frames_to_use"
547 #define SV_DN_1ST_FRAME_LUT_NAME "SV_DN_first_frame_to_use"
548 #define SV_DN_NUM_FRAMES_LUT_NAME "SV_DN_number_of_frames_to_use"
549 #define SV_DN_MOON_INCLUDE_FRAMES_LUT_NAME "SV_DN_moon_include_frames"
550 #define PCX_CORRECTION_SWITCH_LUT_NAME "PCX_correction_switch"
551 #define OVERLAP_SCANS_B1_LUT_NAME "num_overlap_scans_b1"
552 #define BAND_21_B1_LUT_NAME "Band_21_b1"
553 #define L_MIN_LUT_NAME "L_Min"
554 #define L_MAX_LUT_NAME "L_Max"
555 #define TEB_SPECIFIED_UNCERTAINTY_LUT_NAME "TEB_specified_uncertainty"
556 #define TEB_UI_SCALING_FACTOR_LUT_NAME "TEB_UI_scaling_factor"
558 #define SIGMA_A0_LUT_NAME "sigma_a0"
559 #define SIGMA_A2_LUT_NAME "sigma_a2"
560 #define SIGMA_RVS_EV_LUT_NAME "sigma_RVS_EV"
561 #define SIGMA_EPSILON_BB_LUT_NAME "sigma_epsilon_BB"
562 #define SIGMA_EPSILON_CAV_LUT_NAME "sigma_epsilon_CAV"
563 #define SIGMA_L_LAMBDA_LUT_NAME "sigma_L_lambda"
564 #define SIGMA_L_TBB_LUT_NAME "sigma_L_Tbb"
565 #define SIGMA_L_TSM_LUT_NAME "sigma_L_Tsm"
566 #define SIGMA_L_TCAV_LUT_NAME "sigma_L_Tcav"
567 #define SIGMA_B1_BAND21_LUT_NAME "sigma_b1_B21"
568 #define XT_UI_FACTOR_LUT_NAME "xt_ui_factor"
569 #define PVLW_XT_COEFF_LUT_NAME "PVLW_XT_coeff"
575 #define QA_SERIAL_NUMBER_LUT_NAME "QA serial number"
576 #define PLATFORM_SHORT_NAME_LUT_NAME "ASSOCIATEDPLATFORMSHORTNAME"
577 #define PACKAGE_ACCEPT_DATE_LUT_NAME "ALGORITHMPACKAGEACCEPTANCEDATE"
578 #define PACKAGE_MATURITY_CODE_LUT_NAME "ALGORITHMPACKAGEMATURITYCODE"
579 #define DET_QUAL_FLAG_VALS_LUT_NAME "Detector Quality Flag Values"
580 #define DET_QUAL_FLAG2_VALS_LUT_NAME "Detector Quality Flag2 Values"
581 #define MOON_OFFSET_LIMITS_LUT_NAME "Moon Offset Limits"
582 #define MISSION_PHASE_LUT_NAME "mission phase"
583 #define CONTROL_OPTIONS_LUT_NAME "Control options"
584 #define BASE_VARI_VISUAL_FPA_LUT_NAME "visual FPA base variance"
585 #define BASE_VARI_NIR_FPA_LUT_NAME "NIR FPA base variance"
586 #define BB_TEMP_VARIANCE_LUT_NAME "T_BB_Variance"
587 #define BB_AVG_TEMP_VAR_LUT_NAME "BB Average Temperature Variance"
588 #define LWIR_FPA_TEMP_VAR_LUT_NAME "LWIR FPA Temperature Variance"
589 #define MWIR_FPA_TEMP_VAR_LUT_NAME "MWIR FPA Temperature Variance"
590 #define MIR_SIDE_1_TEMP_VAR_LUT_NAME "MirrorSide 1 Temperature Variance"
591 #define MIR_SIDE_2_TEMP_VAR_LUT_NAME "MirrorSide 2 Temperature Variance"
592 #define MIR_AVG_TEMP_VAR_LUT_NAME "Mirror Average Temperature Variance"
593 #define INST_TEMP_VAR_LUT_NAME "Instrument Temperature Variance"
594 #define CAVITY_TEMP_VAR_LUT_NAME "Cavity Temperature Variance"
595 #define EMISS_NEdL_LUT_NAME "NEdL"
596 #define CALIB_A1_LUT_NAME "a1"
597 #define ROLL_THRESHOLD_LUT_NAME "Spacecraft_Roll_Threshold_Angle"
598 #define PITCH_THRESHOLD_LUT_NAME "Spacecraft_Pitch_Threshold_Angle"
599 #define YAW_THRESHOLD_LUT_NAME "Spacecraft_Yaw_Threshold_Angle"
611 int16 SWIR_correction_switch;
612 int16 SWIR_corr_sending_band;
641 int16 DN_obc_avg_first_frame_to_use;
643 int16 DN_obc_avg_number_of_frames_to_use;
720 int16 RSB_SV_DN_moon_include_frames;
728 int16 B26_B5_Corr_Switch;
792 int16 SV_DN_first_frame_to_use;
793 int16 SV_DN_number_of_frames_to_use;
794 int16 SV_DN_moon_include_frames;
795 int16 BB_DN_first_frame_to_use;
796 int16 BB_DN_number_of_frames_to_use;
797 int16 num_overlap_scans_b1;
798 int8 PCX_correction_switch;
800 float32 T_ins_default;
804 float32 T_cav_default;
805 float32 T_mir_default;
812 int16 RVS_BB_SV_Frame_No[2];
872 char AssociatedPlatformShortname
874 char AlgorithmPackageAcceptanceDate
876 char AlgorithmPackageMaturityCode
892 float32 roll_threshold_angle;
893 float32 pitch_threshold_angle;
894 float32 yaw_threshold_angle;
903 float32 var_visual_FPA;
914 float32 var_T_bb_avg;
919 float32 var_T_mir_avg;
975 float64 data_collection_TAI_time,
988 float64 data_collection_TAI_time,
997 float64 data_collection_TAI_time,
an array had not been initialized Several spelling and grammar corrections were which is read from the appropriate MCF the above metadata values were hard coded A problem calculating the average background DN for SWIR bands when the moon is in the space view port was corrected The new algorithm used to calculate the average background DN for all reflective bands when the moon is in the space view port is now the same as the algorithm employed by the thermal bands For non SWIR changes in the averages are typically less than Also for non SWIR the black body DNs remain a backup in case the SV DNs are not available For SWIR the changes in computed averages were larger because the old which used the black body suffered from contamination by the micron leak As a consequence of the if SV DNs are not available for the SWIR the EV pixels will not be the granule time is used to identify the appropriate tables within the set given for one LUT the first two or last two tables respectively will be used for the interpolation If there is only one LUT in the set of tables
#define MAX_SAMPLES_PER_BAND
#define MAX_NUM_SWIR_SUBSAMPLES
#define NUM_T_INS_THERMISTORS
#define NUM_2ND_ORDER_COEFFS
#define MAX_NUM_RSR_vs_LAMBDA
#define MAX_ALGORITHMPACKAGEMATURITYCODE_BUFFER
int32 TDLUT_GetAlgorithm(int32 sd_id, char *name)
PGSt_SMF_status Expand_BDSM_LUT(void *data, void **data_new, int32 data_type, int32 lead_dim, int32 *n_bytes)
LUT_Definition_t refl_luts[]
LUT_Definition_t emiss_luts[]
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 wavelength
const int NUM_MIRROR_SIDES
PGSt_SMF_status Read_QA_Tables(L1A_granule_t *, QA_tables_t *)
PGSt_SMF_status TDLUT_ReadPiecewiseLinearFunction(int32 sd_id, char *name, int32 data_type, int32 rank, int32 *dims, float64 data_collection_TAI_time, void *data)
#define NUM_PVLW_XT_COEFF
#define NUM_EMISSIVE_DETECTORS
#define MAX_MISSION_PHASE_BUFFER
#define DETECTORS_PER_1KM_BAND
#define NUM_PVLW_XT_BANDS
PGSt_SMF_status Read_L1B_SDS_LUT(int32 sd_id, char *name, int32 data_type, int32 rank, int32 *dims, float64 data_collection_TAI_time, void *data)
#define NUM_BITS_IN_UINT8
PGSt_SMF_status Read_Refl_Tables(L1A_granule_t *, refl_tables_t *)
#define NUM_a2_vs_T_inst_COEFF
#define NUM_MOON_OFFSET_LIMITS
#define MAX_SERIAL_NUMBER_BUFFER
#define MAX_DETECTORS_PER_SWIR_BAND
const int NUM_REFLECTIVE_BANDS
#define NUM_1ST_ORDER_COEFFS
#define NUM_T_MIR_THERMISTORS
#define NUM_HIGH_RESOLUTION_SUBFRAMES
#define NUM_HIGH_RESOLUTION_DETECTORS
PGSt_SMF_status TDLUT_ReadStepFunction(int32 sd_id, char *name, int32 data_type, int32 rank, int32 *dims, float64 data_collection_TAI_time, void *data)
no change in intended resolving MODur00064 Corrected handling of bad ephemeris attitude data
@ BAD_SCAN_QUALITY_CONTROL
LUT_Definition_t qa_luts[]
int32 BDSM_index(char *ascii_file)
PGSt_SMF_status Read_Emiss_Tables(L1A_granule_t *, emiss_tables_t *)
Extra metadata that will be written to the HDF4 file l2prod rank
#define NUM_a0_vs_T_inst_COEFF
#define MAX_MCST_VERSION_BUFFER
#define NUM_REFLECTIVE_DETECTORS
#define NUM_T_CAV_THERMISTORS
const int NUM_FOCAL_PLANES
#define NUM_RSB_RVS_COEFFS
#define NUM_PC_XT_PARAMETERS
#define MAX_DETECTORS_PER_BAND
#define MAX_ASSOCIATEDPLATFORMSHORTNAME_BUFFER
const int NUM_EMISSIVE_BANDS
#define MAX_ALGORITHMPACKAGEACCEPTANCEDATE_BUFFER
const int NUM_BB_THERMISTORS
#define MAX_PGE_VERSION_BUFFER
PGSt_SMF_status Read_Lookup_Tables(L1A_granule_t *L1A_Gran, lookup_tables_t *tables, Run_Time_Parameters_t *runtime_params)