ocssw
V2022
|
Preprocess.c
Go to the documentation of this file.
105 Fix the anomaly before and after the sector rotation due to the timing mismatch between the command performed and the status updated.
111 Added a new function called Get_Electronics_index_special() for PCLW check, and no calibration is performed if both sides of PCLW are on.
114 Excluded the fill value from the valid range check to LAST_VALID_SCAN in the function of Check_If_Sector_Rotated
567 (int8 moon_in_SV_KOB,
707 (int8 moon_in_SV_KOB,
2351 (int32 num_scans_middle,
2726 (int32 start_index,
2959 (int32 sd_id,
5926 L1B_OBC = (int16*) malloc(NUM_250M_BANDS * MAX_250M_TRACK_DIM * MAX_250M_OBC_FRAME_DIM * sizeof(int16));
7041 (int32 num_scans,
7821 (int32 sd_id,
8109 (int32 sd_id,
9123 int16 *u2_frames; /* Temporary pointer to the specified frames loaded with RSB u2 uncertainty */
9454 L1B_Gran->RSB_Cal_Coeff.u2[det][frame][mirr_side] = y1*((float32)(f2-frame))/((float32)(f2-f1))
void Compute_dn_bb_for_PVLW_XT_cor_Per_Scan(int8 moon_in_SV_KOB, int16 *BB, int16 *SV, emiss_tables_t *tables, float32 *xdnbb)
Definition: Preprocess.c:567
Definition: Granule.h:1095
float32 DN_obc_1km_night_avg[MAX_1KM_TRACK_DIM][NUM_1000M_NIGHT_BANDS][NUM_1KM_SUBSAMP]
Definition: Preprocess.h:121
float32 DN_obc_500m_avg[MAX_500M_TRACK_DIM][NUM_500M_BANDS][NUM_500M_SUBSAMP]
Definition: Preprocess.h:119
Engineering_Coefficients_t Engineering_Coefficients_PFM
Definition: PreprocessP.h:245
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
Definition: HISTORY.txt:695
PGSt_SMF_status Calculate_Planck(float32 *RSR, float32 *wl, int16 size, float32 T, float32 *planck)
Definition: Preprocess.c:305
PGSt_SMF_status Copy_EngMemData(int32 in_sd_id, int32 out_sd_id, int32 num_scans)
Definition: Preprocess.c:6006
#define CALC_ONE_TEMP_QA(t, tablevar, output)
PGSt_SMF_status Check_For_Moon_in_SV_KOB(int32 num_scans, common_QA_tables_t *common_QA_tables, QA_Data_t *QA, Moon_arrays_t *moon_arrays)
Definition: Preprocess.c:6796
float32 RVS_500m[NUM_500M_BANDS][DETECTORS_PER_500M_BAND][EV_500m_FRAMES][NUM_MIRROR_SIDES]
Definition: Granule.h:830
PGSt_SMF_status Read_Convert_Temperatures(emiss_tables_t *tables, int32 v_id, int32 start_scan, int32 num_scans, int32 satellite_ID, Temperatures_t *temps)
Definition: Preprocess.c:4610
u5 which has been done in the LOCALGRANULEID metadata should have an extension NRT It is requested to identify the NRT production Changes from v6 which may affect scientific the sector rotation may actually occur during one of the scans earlier than the one where it is first reported As a the b1 values are about the LOCALGRANULEID metadata should have an extension NRT It is requested to identify the NRT to fill pixels affected by dead subframes with a special value Output the metadata of noisy and dead subframe Dead Subframe EV and Detector Quality Flag2 Removed the function call of Fill_Dead_Detector_SI to stop interpolating SI values for dead but also for all downstream products for science test only Changes from v5 which will affect scientific to conform to MODIS requirements Removed the Mixed option from the ScanType in the code because the L1A Scan Type is never Mixed Changed for ANSI C compliance and comments to better document the fact that when the HDF_EOS metadata is stricly the and products are off by and in the track respectively Corrected some misspelling of RCS swir_oob_sending_detector to the Reflective LUTs to enable the SWIR OOB correction detector so that if any of the sending detectors becomes noisy or non near by good detectors from the same sending band can be specified as the substitute in the new look up table Code change for adding an additional dimension of mirror side to the Band_21_b1 LUT to separate the coefficient of the two mirror sides for just like other thermal emissive so that the L1B code can calibrate Band scan to scan with mirror side dependency which leads better calibration result Changes which do not affect scientific when the EV data are not provided in this Crosstalk Correction will not be performed to the Band calibration data Changes which do not affect scientific SV_250m
Definition: HISTORY.txt:333
float32 RVS_1km_Emiss_BB[NUM_EMISSIVE_DETECTORS][NUM_MIRROR_SIDES]
Definition: Granule.h:850
float32 moon_offset_limits[NUM_BANDS][NUM_MOON_OFFSET_LIMITS]
Definition: L1B_Tables.h:900
PGSt_SMF_status write_sds_rank3(int32 file_id, char *sds_name, char *dim_name1, char *dim_name2, char *dim_name3, int32 dim1, int32 dim2, int32 dim3, char *datatype, void *data)
Definition: HDF_Lib.c:1192
PGSt_SMF_status Read_Overlap_OBCEng(L1A_granule_t *L1A_Gran, emiss_tables_t *emiss_tables, PGSt_PC_Logical lun, Overlap_OBCEng_t *Overlap_OBCEng, boolean *scan_gap)
Definition: Preprocess.c:3660
Definition: PreprocessP.h:522
PGSt_SMF_status Cross_Granule_Sliding_Average(int32 num_overlapScans, int32 num_scans_middle, float32 *Xarray, int16 *Xmir, float32 *avg)
Definition: Preprocess.c:2867
Definition: PreprocessP.h:561
float f1(float x)
PGSt_SMF_status Get_Electronics_index_special(int32 num_scans, uint16 *Electronics_pri, uint16 *Electronics_red, uint16 *Electronics_index)
Definition: Preprocess.c:3326
PGSt_SMF_status Calculate_Temp_QA(int32 num_scans, Temperatures_t *temps, QA_tables_t *tables, QA_Data_t *QA)
Definition: Preprocess.c:68
Definition: L1B_Tables.h:941
int16 SV_1km_night[MAX_1KM_TRACK_DIM][NUM_1000M_NIGHT_BANDS][SV_1km_FRAMES]
Definition: PreprocessP.h:554
int16 SV_1km_night[MAX_OVERLAP_TRACK_DIM][NUM_1000M_NIGHT_BANDS][SV_1km_FRAMES]
Definition: PreprocessP.h:569
PGSt_SMF_status Write_L1B_OBCEng(L1A_granule_t *L1A_Gran, lookup_tables_t *tables, Moon_arrays_t *moon_arrays, DN_OBC_Avg_t *DN_OBC_Avg)
Definition: Preprocess.c:5608
float32 DN_obc_500m_var[MAX_500M_TRACK_DIM][NUM_500M_BANDS][NUM_500M_SUBSAMP]
Definition: Preprocess.h:123
float32 RVS_250m[NUM_250M_BANDS][DETECTORS_PER_250M_BAND][EV_250m_FRAMES][NUM_MIRROR_SIDES]
Definition: Granule.h:825
Definition: Granule.h:745
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
#define NUM_SCANMETA_SDS
PGSt_SMF_status Get_Satellite_ID(PGSt_PC_Logical lun, int32 *satellite_ID)
Definition: Granule.c:2924
uint32 DN_obc_1km_night_outlier_mask[MAX_1KM_TRACK_DIM][NUM_1000M_NIGHT_BANDS][NUM_1KM_SUBSAMP][2]
Definition: Preprocess.h:129
PGSt_SMF_status Write_Geo_OBC_SDS(int32 obc_sd_id, int32 num_scans)
Definition: Preprocess.c:5461
Definition: PreprocessP.h:214
int16 BB_1km_night[MAX_1KM_TRACK_DIM][NUM_1000M_NIGHT_BANDS][BB_1km_FRAMES]
Definition: PreprocessP.h:551
PGSt_SMF_status Get_Electronics_index(int32 num_scans, uint16 *Electronics_pri, uint16 *Electronics_red, uint16 *Electronics_index)
Definition: Preprocess.c:3224
int16 BB_1km_night[MAX_OVERLAP_TRACK_DIM][NUM_1000M_NIGHT_BANDS][BB_1km_FRAMES]
Definition: PreprocessP.h:566
float32 u2[NUM_REFLECTIVE_DETECTORS][EV_1km_FRAMES][NUM_MIRROR_SIDES]
Definition: Granule.h:839
PGSt_SMF_status read_sds_rank3(int32 file_id, char *sds_name, int32 dim1, int32 dim2, int32 dim3, void *data)
Definition: HDF_Lib.c:546
PGSt_SMF_status Check_For_Ecal_On(int32 lun, int32 num_scans, int32 v_id, boolean Ecal_On[][NUM_BANDS])
Definition: Preprocess.c:8207
HDF4 data type of the output SDS Default is DFNT_FLOAT32 Common types used DFNT_INT32
Definition: HOWTO_Add_a_product.txt:67
PGSt_SMF_status write_sds_rank2(int32 file_id, char *sds_name, char *dim_name1, char *dim_name2, int32 dim1, int32 dim2, char *datatype, void *data)
Definition: HDF_Lib.c:1062
Definition: PreprocessP.h:546
float32 DN_obc_1km_night_var[MAX_1KM_TRACK_DIM][NUM_1000M_NIGHT_BANDS][NUM_1KM_SUBSAMP]
Definition: Preprocess.h:125
float32 NEdL[NUM_EMISSIVE_DETECTORS][MAX_NUM_SCANS]
Definition: Preprocess.h:149
PGSt_SMF_status Adjust_dn_star_Min(float32 *dn_star_Min, int32 L1A_v_id, int32 num_scans)
Definition: Preprocess.c:8102
PGSt_SMF_status Get_DN_Avg_SDev_Rejects(int32 start_index, int32 N, int32 index_increment, int16 *DN_array, int16 DN_upper_valid_limit, int16 DN_lower_valid_limit, float32 *mean_DN, float32 *sdev_DN, int16 *rejects)
Definition: Preprocess.c:2480
u5 which has been done in the LOCALGRANULEID metadata should have an extension NRT It is requested to identify the NRT production Changes from v6 which may affect scientific the sector rotation may actually occur during one of the scans earlier than the one where it is first reported As a the b1 values are about the LOCALGRANULEID metadata should have an extension NRT It is requested to identify the NRT to fill pixels affected by dead subframes with a special value Output the metadata of noisy and dead subframe Dead Subframe EV and Detector Quality Flag2 Removed the function call of Fill_Dead_Detector_SI to stop interpolating SI values for dead but also for all downstream products for science test only Changes from v5 which will affect scientific to conform to MODIS requirements Removed the Mixed option from the ScanType in the code because the L1A Scan Type is never Mixed Changed for ANSI C compliance and comments to better document the fact that when the HDF_EOS metadata is stricly the and products are off by and in the track respectively Corrected some misspelling of RCS swir_oob_sending_detector to the Reflective LUTs to enable the SWIR OOB correction detector so that if any of the sending detectors becomes noisy or non near by good detectors from the same sending band can be specified as the substitute in the new look up table Code change for adding an additional dimension of mirror side to the Band_21_b1 LUT to separate the coefficient of the two mirror sides for just like other thermal emissive so that the L1B code can calibrate Band scan to scan with mirror side dependency which leads better calibration result Changes which do not affect scientific when the EV data are not provided in this Crosstalk Correction will not be performed to the Band calibration data Changes which do not affect scientific SV_500m
Definition: HISTORY.txt:334
PGSt_SMF_status Fill_500m_DN_OBC_Avg(int32 sd_id, int32 num_scans, int16 *MirrorSide, refl_tables_t *refl_tables, Moon_arrays_t *moon_arrays, boolean Ecal_On[][NUM_BANDS], DN_OBC_Avg_t *DN_OBC_Avg, QA_Refl_t *QA_refl)
Definition: Preprocess.c:7279
PGSt_SMF_status write_sds_rank1(int32 file_id, char *sds_name, char *dim_name, int32 dim, char *datatype, void *data)
Definition: HDF_Lib.c:944
float32 RVS_1km_Emiss_SV[NUM_EMISSIVE_DETECTORS][NUM_MIRROR_SIDES]
Definition: Granule.h:848
const double F
#define WRITE_DN_BG_AT_RES(r, avg, var, omask)
PGSt_SMF_status sort_int16_array(int32 n, int16 *a, int32 *indx)
Definition: Preprocess.c:8569
float32 DN_obc_250m_avg[MAX_250M_TRACK_DIM][NUM_250M_BANDS][NUM_250M_SUBSAMP]
Definition: Preprocess.h:118
float32 sigma_a0[NUM_EMISSIVE_DETECTORS][MAX_NUM_SCANS]
Definition: Preprocess.h:140
PGSt_SMF_status Copy_PixelQualityData(int32 in_sd_id, int32 out_sd_id, int32 num_scans)
Definition: Preprocess.c:6195
PGSt_SMF_status read_sds_rank1(int32 file_id, char *sds_name, int32 dim, void *data)
Definition: HDF_Lib.c:359
float f2(float y)
PGSt_SMF_status Get_Temp_Avg_And_Variance(int32 N, float32 *T, float32 *avg, float32 *var)
Definition: Preprocess.c:3038
PGSt_SMF_status Process_OBCEng_Emiss(L1A_granule_t *L1A_Gran, L1A_granule_OBCEng_t *L1A_OBCEng, Emiss_Cal_Coeff_t *RVS_Coeff, emiss_tables_t *tables, QA_tables_t *QA_tables, Moon_arrays_t *moon_arrays, QA_Data_t *QA, Preprocess_Emiss_t *PP, DN_OBC_Avg_t *DN_OBC_Avg)
Definition: Preprocess.c:1094
PGSt_SMF_status Get_Emiss_Coeff_Per_Scan(int8 moon_in_SV_KOB, int16 *BB, int16 *SV, int16 B, int16 D, int16 D_emiss, int16 MS, Emiss_Cal_Coeff_t *RVS_Coeff, emiss_tables_t *tables, float32 T_bb, float32 T_mir, float32 T_cav, float32 T_ins, float32 T_fp_lwir, float32 *Xdn_bb_31, float32 *Xb1, float32 *xdLbb, float32 *xdnbb, float32 *xLbb, float32 *xLcav, float32 *xdnsv, float32 *xdnsv_var, uint32 *sv_omask, float32 *SNR, int32 satellite_ID)
Definition: Preprocess.c:389
Definition: Preprocess.h:173
uint32 DN_obc_250m_outlier_mask[MAX_250M_TRACK_DIM][NUM_250M_BANDS][NUM_250M_SUBSAMP][2]
Definition: Preprocess.h:126
PGSt_SMF_status Fill_Invalid_Temp_DNs(int32 num_scans, uint16 miss_DN, uint16 sat_DN, uint16 *DN)
Definition: Preprocess.c:3119
Definition: Granule.h:856
float32 sigma_a2[NUM_EMISSIVE_DETECTORS][MAX_NUM_SCANS]
Definition: Preprocess.h:143
#define NUM_PIXEL_QUALITY_SDS
float32 dn_bb[NUM_EMISSIVE_DETECTORS][MAX_NUM_SCANS]
Definition: Preprocess.h:145
Definition: Preprocess.h:132
int16 DN_obc_avg_number_of_frames_to_use
Definition: L1B_Tables.h:650
Definition: L1B_Tables.h:922
Definition: L1B_Tables.h:761
Definition: Preprocess.h:117
PGSt_SMF_status Copy_EngVdata(int32 in_v_id, int32 out_v_id)
Definition: Preprocess.c:6529
PGSt_SMF_status Calculate_PP_Planck_Mir(int32 num_scans, emiss_tables_t *tables, Preprocess_Emiss_t *PP)
Definition: Preprocess.c:1539
char * L1A_FRAME_DIM_NAME[NUM_TARGETS-1][NUM_L1A_RESOLUTIONS]
Definition: Preprocess.c:49
PGSt_SMF_status Check_Valid_Range(char *data_name, int32 data_type, char *a_lb, char *a_ub, char *a_fillvalue, int32 count, void *buffer)
Definition: HDF_Lib.c:1782
float32 DN_obc_1km_day_var[MAX_1KM_TRACK_DIM][NUM_1000M_DAY_BANDS][NUM_1KM_SUBSAMP]
Definition: Preprocess.h:124
uint32 DN_obc_1km_day_outlier_mask[MAX_1KM_TRACK_DIM][NUM_1000M_DAY_BANDS][NUM_1KM_SUBSAMP][2]
Definition: Preprocess.h:128
Definition: Granule.h:1051
float32 DN_obc_250m_var[MAX_250M_TRACK_DIM][NUM_250M_BANDS][NUM_250M_SUBSAMP]
Definition: Preprocess.h:122
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 fields
Definition: HISTORY.txt:400
float32 sigma_RVS_Emiss_EV[NUM_EMISSIVE_DETECTORS][EV_1km_FRAMES][NUM_MIRROR_SIDES]
Definition: Granule.h:853
PGSt_SMF_status Get_Middle_Gran_Emiss_Coeff(L1A_granule_OBCEng_t *L1A_OBCEng, int16 B, int16 D, int16 D_emiss, Emiss_Cal_Coeff_t *RVS_Coeff, emiss_tables_t *tables, emiss_QA_tables_t *QA_tables, Moon_arrays_t *moon_arrays, float32 Xdn_bb_31[][DETECTORS_PER_1KM_BAND], float32 *Xb1, int16 *XMS, QA_Emiss_t *QA, Preprocess_Emiss_t *PP, DN_OBC_Avg_t *DN_OBC_Avg, int32 satellite_ID)
Definition: Preprocess.c:1839
a context in which it is NOT documented to do so subscript which cannot be easily calculated when extracting TONS attitude data from the Terra L0 files Corrected several defects in extraction of entrained ephemeris and and as HDF file for both the L1A and Geolocation enabling retrieval of South Polar DEM data Resolved Bug by changing to opent the geolocation file only after a successful read of the L1A and also by checking for fatal errors from not restoring C5 and to report how many of those high resolution values were water in the new WaterPresent SDS Added valid_range attribute to Land SeaMask Changed to bilinearly interpolate the geoid_height to remove artifacts at one degree lines Made corrections to const qualification of pointers allowed by new version of M API library Removed casts that are no longer for same not the geoid Corrected off by one error in calculation of high resolution offsets Corrected parsing of maneuver list configuration parameter Corrected to set Height SDS to fill values when geolocation when for elevation and land water mask
Definition: HISTORY.txt:114
PGSt_SMF_status read_part_sds_rank3(int32 sd_id, char *sds_name, int32 start0, int32 start1, int32 start2, int32 edge0, int32 edge1, int32 edge2, void *data)
Definition: HDF_Lib.c:249
PGSt_SMF_status Get_Leading_Gran_Emiss_Coeff(Overlap_OBCEng_t *Leading_OBCEng, int16 B, int16 D, int16 D_emiss, Emiss_Cal_Coeff_t *RVS_Coeff, emiss_tables_t *tables, Moon_arrays_t *moon_arrays, float32 Xdn_bb_31[][DETECTORS_PER_1KM_BAND], float32 *Xb1, int16 *XMS, int32 satellite_ID)
Definition: Preprocess.c:1607
float32 DN_sv[NUM_EMISSIVE_DETECTORS][MAX_NUM_SCANS]
Definition: Preprocess.h:144
PGSt_SMF_status Get_DN_Avg_SDev_Rejects_LowN(int32 N_include, int32 start_index, int32 N, int32 index_increment, int16 *DN_array, int16 DN_upper_valid_limit, int16 DN_lower_valid_limit, float32 *mean_DN, float32 *sdev_DN, int16 *rejects)
Definition: Preprocess.c:8631
PGSt_SMF_status Calculate_RVS_Correction(lookup_tables_t *tables, L1B_granule_t *L1B_Gran)
Definition: Preprocess.c:8804
HDF4 data type of the output SDS Default is DFNT_FLOAT32 Common types used DFNT_INT16
Definition: HOWTO_Add_a_product.txt:67
Engineering_Coefficients_t Engineering_Coefficients_FM1
Definition: PreprocessP.h:388
PGSt_SMF_status read_attribute(int32 s_id, char *attr_name, int32 TypeID, void *buffer)
Definition: HDF_Lib.c:33
PGSt_SMF_status Copy_ScanMetadata(int32 in_sd_id, int32 out_sd_id, int32 num_scans)
Definition: Preprocess.c:6345
#define INNER_GRANULE_TIMEDIFF_TOLERANCE
Definition: PreprocessP.h:199
void Prepare_dn_bb_for_PVLW_XT_cor(Overlap_OBCEng_t *Leading_OBCEng, L1A_granule_OBCEng_t *L1A_OBCEng, Overlap_OBCEng_t *Trailing_OBCEng, emiss_tables_t *tables, Moon_arrays_t *moon_arrays, float32 Xdn_bb_pvlw_xt[][NUM_PVLW_XT_BANDS][DETECTORS_PER_1KM_BAND])
Definition: Preprocess.c:398
uint8 num_thermistor_outliers[MAX_NUM_SCANS]
Definition: Granule.h:1043
PGSt_SMF_status Fill_Band_26_DN_OBC_Avg(int32 sd_id, int32 num_scans, int16 *MirrorSide, refl_tables_t *refl_tables, Moon_arrays_t *moon_arrays, boolean Ecal_On[][NUM_BANDS], DN_OBC_Avg_t *DN_OBC_Avg, QA_Refl_t *QA_refl)
Definition: Preprocess.c:7864
PGSt_SMF_status Fill_250m_DN_OBC_Avg(int32 sd_id, int32 num_scans, int16 *MirrorSide, refl_tables_t *refl_tables, Moon_arrays_t *moon_arrays, boolean Ecal_On[][NUM_BANDS], DN_OBC_Avg_t *DN_OBC_Avg, QA_Refl_t *QA_refl)
Definition: Preprocess.c:6993
PGSt_SMF_status Check_If_Sector_Rotated(int32 lun, int32 num_scans, int32 v_id, boolean Sector_Rotated[])
Definition: Preprocess.c:8416
float32 dn_bb_sdev[NUM_EMISSIVE_DETECTORS][MAX_NUM_SCANS]
Definition: Preprocess.h:146
Definition: Granule.h:1030
PGSt_SMF_status write_sds_rankn(int32 file_id, char *sds_name, int32 data_type, int32 rank, int32 *edge, char **dim_name, void *data)
Definition: HDF_Lib.c:1648
float32 L_cav[NUM_EMISSIVE_DETECTORS][MAX_NUM_SCANS]
Definition: Preprocess.h:148
#define NUM_ENG_MEM_SDS
uint8 num_thermistor_outliers[MAX_NUM_SCANS]
Definition: PreprocessP.h:539
PGSt_SMF_status Get_Trailing_Gran_Emiss_Coeff(int32 num_scans_middle, Overlap_OBCEng_t *Trailing_OBCEng, int16 B, int16 D, int16 D_emiss, Emiss_Cal_Coeff_t *RVS_Coeff, emiss_tables_t *tables, Moon_arrays_t *moon_arrays, float32 Xdn_bb_31[][DETECTORS_PER_1KM_BAND], float32 *Xb1, int16 *XMS, int32 satellite_ID)
Definition: Preprocess.c:2098
Definition: PreprocessP.h:517
float32 RVS_1km_Emiss_EV[NUM_EMISSIVE_DETECTORS][EV_1km_FRAMES][NUM_MIRROR_SIDES]
Definition: Granule.h:846
float32 granule_averages[MAX_NUM_GRAN_AVERAGES]
Definition: Granule.h:1092
PGSt_SMF_status Granule_Average_Temperature(int32 num_values, float32 *array, float32 *avg)
Definition: Preprocess.c:2973
float32 ins_temp[NUM_T_INS_THERMISTORS][MAX_NUM_SCANS]
Definition: PreprocessP.h:540
uint32 DN_obc_500m_outlier_mask[MAX_500M_TRACK_DIM][NUM_500M_BANDS][NUM_500M_SUBSAMP][2]
Definition: Preprocess.h:127
PGSt_SMF_status read_sds_rank2(int32 file_id, char *sds_name, int32 dim1, int32 dim2, void *data)
Definition: HDF_Lib.c:449
Definition: L1B_Tables.h:952
boolean Sector_Rotated[MAX_NUM_SCANS]
Definition: PreprocessP.h:557
PGSt_SMF_status Pack_Rejects_In_Outlier_Mask(int32 N, int16 *rejects, uint32 *packed_rejects)
Definition: Preprocess.c:2641
int16 DN_obc_avg_first_frame_to_use
Definition: L1B_Tables.h:648
char * L1A_TARGET_SDS_NAME[NUM_TARGETS][NUM_L1A_RESOLUTIONS]
Definition: Preprocess.c:27
Extra metadata that will be written to the HDF4 file l2prod rank
Definition: HOWTO_Add_a_product.txt:80
Definition: Preprocess.h:136
int8 fp_set_point_state[MAX_NUM_SCANS]
Definition: Preprocess.h:169
int8 moon_in_SV_KOB[MAX_NUM_SCANS][NUM_BANDS]
Definition: PreprocessP.h:519
PGSt_SMF_status Process_OBCEng_Refl(int32 sd_id, int32 num_scans, float32 *T_ins, int16 *MirrorSide, refl_tables_t *refl_tables, Moon_arrays_t *moon_arrays, L1A_granule_OBCEng_t *L1A_OBCEng, DN_OBC_Avg_t *DN_OBC_Avg, QA_Refl_t *QA_refl, Preprocess_Refl_t *PP_Refl)
Definition: Preprocess.c:2713
Definition: Granule.h:843
PGSt_SMF_status Fill_1km_day_DN_OBC_Avg(int32 sd_id, int32 num_scans, int16 *MirrorSide, refl_tables_t *refl_tables, Moon_arrays_t *moon_arrays, boolean Ecal_On[][NUM_BANDS], DN_OBC_Avg_t *DN_OBC_Avg, QA_Refl_t *QA_refl)
Definition: Preprocess.c:7576
int8 fp_set_point_state[MAX_NUM_SCANS]
Definition: PreprocessP.h:533
float32 cav_temp[NUM_T_CAV_THERMISTORS][MAX_NUM_SCANS]
Definition: PreprocessP.h:541
u5 which has been done in the LOCALGRANULEID metadata should have an extension NRT It is requested to identify the NRT production Changes from v6 which may affect scientific the sector rotation may actually occur during one of the scans earlier than the one where it is first reported As a the b1 values are about the LOCALGRANULEID metadata should have an extension NRT It is requested to identify the NRT to fill pixels affected by dead subframes with a special value Output the metadata of noisy and dead subframe Dead Subframe EV and Detector Quality Flag2 Removed the function call of Fill_Dead_Detector_SI to stop interpolating SI values for dead but also for all downstream products for science test only Changes from v5 which will affect scientific to conform to MODIS requirements Removed the Mixed option from the ScanType in the code because the L1A Scan Type is never Mixed Changed for ANSI C compliance and comments to better document the fact that when the HDF_EOS metadata is stricly the and products are off by and in the track respectively Corrected some misspelling of RCS swir_oob_sending_detector to the Reflective LUTs to enable the SWIR OOB correction detector so that if any of the sending detectors becomes noisy or non near by good detectors from the same sending band can be specified as the substitute in the new look up table Code change for adding an additional dimension of mirror side to the Band_21_b1 LUT to separate the coefficient of the two mirror sides for just like other thermal emissive so that the L1B code can calibrate Band scan to scan with mirror side dependency which leads better calibration result Changes which do not affect scientific when the EV data are not provided in this Crosstalk Correction will not be performed to the Band calibration data Changes which do not affect scientific BB_250m
Definition: HISTORY.txt:334
PGSt_SMF_status Get_All_Emiss_Coeff(L1A_granule_OBCEng_t *L1A_OBCEng, int16 B, int16 D_emiss, float32 *Xb1, int16 *Xmir, emiss_tables_t *tables, emiss_QA_tables_t *QA_tables, QA_Emiss_t *QA, Preprocess_Emiss_t *PP)
Definition: Preprocess.c:2305
#define OUTER_GRANULE_TIMEDIFF_TOLERANCE
Definition: PreprocessP.h:200
PGSt_SMF_status Preprocess_L1A_Data(lookup_tables_t *tables, L1A_granule_t *L1A_Gran, L1B_granule_t *L1B_Gran, QA_Data_t *QA, Preprocess_Data_t *PP)
Definition: Preprocess.c:899
void L1BErrorMsg(char *L1B_location, PGSt_SMF_code code, char *input_message, char *assoc_function, int32 lun, char *other_msg, boolean error_out)
Definition: Granule.c:918
int16 PVLW_XT_BANDS_FRAME_REL_POS[NUM_PVLW_XT_BANDS]
Definition: Preprocess.c:29
Definition: L1B_Tables.h:642
float32 Planck_mir[NUM_EMISSIVE_DETECTORS][MAX_NUM_SCANS]
Definition: Preprocess.h:138
PGSt_SMF_status read_vdata(int32 v_id, int32 start_record, int32 records, char *vname, char *fname, void *buffer)
Definition: HDF_Lib.c:748
int read_extract_metadata(int32 sd_id, int32 *extract_pixel_offset, int32 *extract_pixel_count, int32 *extract_line_offset, int32 *extract_line_count)
Definition: granule_extract_metadata.c:3
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
PGSt_SMF_status Compute_BB_Temperature(emiss_tables_t *tables, int32 start_scan, int32 num_scans, uint16 *CP_index, uint16 **raw_BB_temp, int32 satellite_ID, Temperatures_t *temps)
Definition: Preprocess.c:5223
Definition: L1B_Tables.h:878
float32 RVS_1km_RefSB[NUM_1000M_REFL_BANDS][DETECTORS_PER_1KM_BAND][EV_1km_FRAMES][NUM_MIRROR_SIDES]
Definition: Granule.h:835
float32 L_bb[NUM_EMISSIVE_DETECTORS][MAX_NUM_SCANS]
Definition: Preprocess.h:147
PGSt_SMF_status read_sds_rankn(int32 sd_id, char *sds_name, int32 data_type, int32 rank, int32 *start, int32 *edge, void *data)
Definition: HDF_Lib.c:1478
int16 RSB_SV_DN_moon_include_frames
Definition: L1B_Tables.h:727
float64 EVStartTime_TAIsecond[MAX_NUM_SCANS]
Definition: Granule.h:753
PGSt_SMF_status Read_L1A_OBCEng(emiss_tables_t *emiss_tables, L1A_granule_t *L1A_Gran, L1A_granule_OBCEng_t *L1A_OBCEng)
Definition: Preprocess.c:3426
#define CONVERT_TEMP_POLY(tdk, tdn, c, dnsat, toffset)
float32 DN_obc_1km_day_avg[MAX_1KM_TRACK_DIM][NUM_1000M_DAY_BANDS][NUM_1KM_SUBSAMP]
Definition: Preprocess.h:120