ocssw
V2022
|
#include <string.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>
#include "L1B_Setup.h"
#include "L1B_Tables.h"
#include "Metadata.h"
#include "HDF_Lib.h"
#include "PGS_PC.h"
#include "PGS_TD.h"
#include "PGS_Error_Codes.h"
#include "FNames.h"
#include "L1B_SetupP.h"
Go to the source code of this file.
Macros | |
#define | L1B_EV_SDS_RANK 3 |
#define | MAX_ATTR_NAME_SIZE2 72 |
#define | SW_DEF_EV_SDS(SI_name, UI_name, str) |
#define | SW_DEF_EV_Aggr_SDS(SI_name, UI_name, SU_name, str) |
#define | CREATE_EV_SDS(sd_id, SI_name, UI_name, SI_longName, UI_longName, SI_id, UI_id) |
#define | CREATE_EV_Aggr_SDS(sd_id, SI_name, UI_name, SU_name, SI_LName, UI_LName, SU_LName, SI_id, UI_id, SU_id) |
#define | MAX_ATTR_NAME_SIZE 26 |
#define | MAX_ATTR_BUFFER_SIZE 72 |
#define | COPY_ATTR(attr_name) |
#define | NADIR_FRAME_GEO_VALS(geoname, var, scalefactor, buf) |
#define | PACK_MEMBER(member, buffer_ptr) |
#define | SCAN_INTERVAL 1.4771 |
#define | REFL_250M_START_INDEX 0 |
#define | REFL_500M_START_INDEX 2 |
#define | REFL_1000M_START_INDEX 7 |
#define | REFL_BAND26_START_INDEX 21 |
#define | SET_UI_SDS_CONV_ATTRS(sds_id, spec_uncert, scale_factor, indx, numval, lun) |
Functions | |
PGSt_SMF_status | L1B_Setup (lookup_tables_t *tables, L1A_granule_t *L1A_Gran, L1B_granule_t *L1B_Gran, L1A_Scan_t *L1A_Scan, L1B_Scan_t *L1B_Scan, QA_Data_t *QA, L1B_Scan_Metadata_t *L1B_Scan_Meta, boolean skip_night_hi_res) |
PGSt_SMF_status | Open_L1A_EV_SDS (L1A_granule_t *L1A_Gran, L1A_Scan_t *L1A_Scan) |
PGSt_SMF_status | Calculate_Earth_Sun_Distance (L1A_granule_t *L1A_Gran, float32 *Earth_Sun_Dist) |
PGSt_SMF_status | Calculate_RSB_Cal_Coeff (lookup_tables_t *tables, float32 E_S_Dist, RSB_Cal_Coeff_t *RSB_Cal_Coeff) |
PGSt_SMF_status | Init_L1B_ScaleOffset (L1B_ScaleOffset_t *SO, RSB_Cal_Coeff_t *RSB_Cal_Coeff, float E_S_Dist, lookup_tables_t *tables) |
PGSt_SMF_status | Open_W_L1B_Granule (lookup_tables_t *tables, L1B_granule_t *L1B_Gran, L1B_Scan_t *L1B_Scan, boolean skip_night_hi_res) |
PGSt_SMF_status | Create_L1B_Swath (L1B_granule_t *L1B_Gran, boolean skip_night_hi_res) |
PGSt_SMF_status | Write_Swath_Band_Number (int32 file_index, L1B_granule_t *L1B_Gran) |
PGSt_SMF_status | Open_L1B_EV_SDS (L1B_granule_t *L1B_Gran, L1B_Scan_t *L1B_Scan, boolean skip_night_hi_res) |
PGSt_SMF_status | Set_L1B_EV_SDS_Attrs (lookup_tables_t *tables, L1B_granule_t *L1B_Gran, L1B_Scan_t *L1B_Scan, boolean skip_night_hi_res) |
PGSt_SMF_status | Set_Unit_Range_Fillvalue (L1B_Scan_t *L1B_Scan, boolean skip_night_hi_res) |
PGSt_SMF_status | Get_SDS_id (int32 f, L1B_Scan_t *L1B_Scan, int16 *num_sds, int32 *sds_id) |
PGSt_SMF_status | Set_SDS_Attributes (int32 *sds_id, char **BandNames, float32 **scale, float32 **offset, char *rad_units, char *refl_units, char *counts_units, int32 num_sds) |
PGSt_SMF_status | Create_Band_Subsetting_SDS (L1B_granule_t *L1B_Gran, boolean skip_night_hi_res) |
PGSt_SMF_status | Copy_Geo_SDS (L1B_granule_t *L1B_Gran, boolean skip_night_hi_res) |
PGSt_SMF_status | Scan_Meta_Cal (lookup_tables_t *tables, L1A_granule_t *L1A_Gran, L1B_granule_t *L1B_Gran, L1B_Scan_Metadata_t *L1B_Scan_Meta, QA_Data_t *QA) |
PGSt_SMF_status | Calculate_DCR_Change (L1A_granule_t *L1A_Gran, QA_Data_t *QA, L1B_Scan_Metadata_t *L1B_Scan_Meta) |
PGSt_SMF_status | Init_QA_Parameters (L1A_granule_t *L1A_Gran, L1B_granule_t *L1B_Gran, QA_Data_t *QA) |
PGSt_SMF_status | Write_L1B_ScanMeta (L1B_Scan_Metadata_t *L1B_Scan_Meta, L1A_granule_t *L1A_Gran, QA_Data_t *QA, boolean skip_night_hi_res) |
PGSt_SMF_status | Determine_Other_Missing_Scans (lookup_tables_t *tables, L1A_granule_t *L1A_Gran) |
PGSt_SMF_status | Determine_Split_Scans (L1A_granule_t *L1A_Gran, boolean *split_scan) |
PGSt_SMF_status | Get_Split_Scan_Indexes (int32 S1, int32 num_scans, int16 mirror_side[], int32 scan_quality[][SCAN_QUALITY_ARRAY_NUM_ELEMENTS], int32 *S_split_1, int32 *S_split_2) |
PGSt_SMF_status | Set_UI_ConvertToPercent_Attrs (lookup_tables_t *tables, L1B_Scan_t *L1B_Scan, boolean skip_night_hi_res) |
PGSt_SMF_status | Calculate_B26_B5_Correction (float32 *original_correction, float32 *scaled_correction, L1B_ScaleOffset_t *ScaleOffset) |
Variables | |
char * | L1A_EV_SDS_NAME [NUM_L1A_RESOLUTIONS] |
char * | L1B_EV_SDS_NAME [NUM_L1B_EV_SDS] |
char * | L1B_EV_SDS_LONG_NAME [NUM_L1B_EV_SDS] |
char * | Band_subsetting_names [NUM_L1A_RESOLUTIONS] |
char * | L1B_EV_DIM_NAME [NUM_L1A_RESOLUTIONS][L1B_EV_SDS_RANK] |
int32 | L1B_EV_DIM_OFFSET [NUM_L1A_RESOLUTIONS][L1B_EV_SDS_RANK-1] |
float32 | L1B_EV_DIM_FRAC_OFFSET [NUM_L1A_RESOLUTIONS][L1B_EV_SDS_RANK-1] |
geolocation_sds_t | GEO_SDS [NUM_GEO_SDS] |
int16 | RFLAG |
int16 | RSCL_FLAG |
Macro Definition Documentation
◆ COPY_ATTR
#define COPY_ATTR | ( | attr_name | ) |
◆ CREATE_EV_Aggr_SDS
#define CREATE_EV_Aggr_SDS | ( | sd_id, | |
SI_name, | |||
UI_name, | |||
SU_name, | |||
SI_LName, | |||
UI_LName, | |||
SU_LName, | |||
SI_id, | |||
UI_id, | |||
SU_id | |||
) |
◆ CREATE_EV_SDS
#define CREATE_EV_SDS | ( | sd_id, | |
SI_name, | |||
UI_name, | |||
SI_longName, | |||
UI_longName, | |||
SI_id, | |||
UI_id | |||
) |
◆ L1B_EV_SDS_RANK
#define L1B_EV_SDS_RANK 3 |
Definition at line 162 of file L1B_Setup.c.
◆ MAX_ATTR_BUFFER_SIZE
#define MAX_ATTR_BUFFER_SIZE 72 |
◆ MAX_ATTR_NAME_SIZE
#define MAX_ATTR_NAME_SIZE 26 |
◆ MAX_ATTR_NAME_SIZE2
#define MAX_ATTR_NAME_SIZE2 72 |
◆ NADIR_FRAME_GEO_VALS
#define NADIR_FRAME_GEO_VALS | ( | geoname, | |
var, | |||
scalefactor, | |||
buf | |||
) |
◆ PACK_MEMBER
#define PACK_MEMBER | ( | member, | |
buffer_ptr | |||
) |
◆ REFL_1000M_START_INDEX
#define REFL_1000M_START_INDEX 7 |
◆ REFL_250M_START_INDEX
#define REFL_250M_START_INDEX 0 |
◆ REFL_500M_START_INDEX
#define REFL_500M_START_INDEX 2 |
◆ REFL_BAND26_START_INDEX
#define REFL_BAND26_START_INDEX 21 |
◆ SCAN_INTERVAL
#define SCAN_INTERVAL 1.4771 |
◆ SET_UI_SDS_CONV_ATTRS
#define SET_UI_SDS_CONV_ATTRS | ( | sds_id, | |
spec_uncert, | |||
scale_factor, | |||
indx, | |||
numval, | |||
lun | |||
) |
◆ SW_DEF_EV_Aggr_SDS
#define SW_DEF_EV_Aggr_SDS | ( | SI_name, | |
UI_name, | |||
SU_name, | |||
str | |||
) |
◆ SW_DEF_EV_SDS
#define SW_DEF_EV_SDS | ( | SI_name, | |
UI_name, | |||
str | |||
) |
Enumeration Type Documentation
◆ L1B_EV_SDS_index_t
enum L1B_EV_SDS_index_t |
Definition at line 94 of file L1B_Setup.c.
Function Documentation
◆ Calculate_B26_B5_Correction()
PGSt_SMF_status Calculate_B26_B5_Correction | ( | float32 * | original_correction, |
float32 * | scaled_correction, | ||
L1B_ScaleOffset_t * | ScaleOffset | ||
) |
Definition at line 5829 of file L1B_Setup.c.
◆ Calculate_DCR_Change()
PGSt_SMF_status Calculate_DCR_Change | ( | L1A_granule_t * | L1A_Gran, |
QA_Data_t * | QA, | ||
L1B_Scan_Metadata_t * | L1B_Scan_Meta | ||
) |
Definition at line 4339 of file L1B_Setup.c.
◆ Calculate_Earth_Sun_Distance()
PGSt_SMF_status Calculate_Earth_Sun_Distance | ( | L1A_granule_t * | L1A_Gran, |
float32 * | Earth_Sun_Dist | ||
) |
Definition at line 504 of file L1B_Setup.c.
◆ Calculate_RSB_Cal_Coeff()
PGSt_SMF_status Calculate_RSB_Cal_Coeff | ( | lookup_tables_t * | tables, |
float32 | E_S_Dist, | ||
RSB_Cal_Coeff_t * | RSB_Cal_Coeff | ||
) |
Definition at line 615 of file L1B_Setup.c.
◆ Copy_Geo_SDS()
PGSt_SMF_status Copy_Geo_SDS | ( | L1B_granule_t * | L1B_Gran, |
boolean | skip_night_hi_res | ||
) |
Definition at line 3243 of file L1B_Setup.c.
◆ Create_Band_Subsetting_SDS()
PGSt_SMF_status Create_Band_Subsetting_SDS | ( | L1B_granule_t * | L1B_Gran, |
boolean | skip_night_hi_res | ||
) |
Definition at line 3055 of file L1B_Setup.c.
◆ Create_L1B_Swath()
PGSt_SMF_status Create_L1B_Swath | ( | L1B_granule_t * | L1B_Gran, |
boolean | skip_night_hi_res | ||
) |
Definition at line 1059 of file L1B_Setup.c.
◆ Determine_Other_Missing_Scans()
PGSt_SMF_status Determine_Other_Missing_Scans | ( | lookup_tables_t * | tables, |
L1A_granule_t * | L1A_Gran | ||
) |
Definition at line 5242 of file L1B_Setup.c.
◆ Determine_Split_Scans()
PGSt_SMF_status Determine_Split_Scans | ( | L1A_granule_t * | L1A_Gran, |
boolean * | split_scan | ||
) |
Definition at line 5361 of file L1B_Setup.c.
◆ Get_SDS_id()
PGSt_SMF_status Get_SDS_id | ( | int32 | f, |
L1B_Scan_t * | L1B_Scan, | ||
int16 * | num_sds, | ||
int32 * | sds_id | ||
) |
Definition at line 2787 of file L1B_Setup.c.
◆ Get_Split_Scan_Indexes()
PGSt_SMF_status Get_Split_Scan_Indexes | ( | int32 | S1, |
int32 | num_scans, | ||
int16 | mirror_side[], | ||
int32 | scan_quality[][SCAN_QUALITY_ARRAY_NUM_ELEMENTS], | ||
int32 * | S_split_1, | ||
int32 * | S_split_2 | ||
) |
Definition at line 5515 of file L1B_Setup.c.
◆ Init_L1B_ScaleOffset()
PGSt_SMF_status Init_L1B_ScaleOffset | ( | L1B_ScaleOffset_t * | SO, |
RSB_Cal_Coeff_t * | RSB_Cal_Coeff, | ||
float | E_S_Dist, | ||
lookup_tables_t * | tables | ||
) |
Definition at line 736 of file L1B_Setup.c.
◆ Init_QA_Parameters()
PGSt_SMF_status Init_QA_Parameters | ( | L1A_granule_t * | L1A_Gran, |
L1B_granule_t * | L1B_Gran, | ||
QA_Data_t * | QA | ||
) |
Definition at line 4617 of file L1B_Setup.c.
◆ L1B_Setup()
PGSt_SMF_status L1B_Setup | ( | lookup_tables_t * | tables, |
L1A_granule_t * | L1A_Gran, | ||
L1B_granule_t * | L1B_Gran, | ||
L1A_Scan_t * | L1A_Scan, | ||
L1B_Scan_t * | L1B_Scan, | ||
QA_Data_t * | QA, | ||
L1B_Scan_Metadata_t * | L1B_Scan_Meta, | ||
boolean | skip_night_hi_res | ||
) |
Definition at line 218 of file L1B_Setup.c.
◆ Open_L1A_EV_SDS()
PGSt_SMF_status Open_L1A_EV_SDS | ( | L1A_granule_t * | L1A_Gran, |
L1A_Scan_t * | L1A_Scan | ||
) |
Definition at line 419 of file L1B_Setup.c.
◆ Open_L1B_EV_SDS()
PGSt_SMF_status Open_L1B_EV_SDS | ( | L1B_granule_t * | L1B_Gran, |
L1B_Scan_t * | L1B_Scan, | ||
boolean | skip_night_hi_res | ||
) |
Definition at line 1726 of file L1B_Setup.c.
◆ Open_W_L1B_Granule()
PGSt_SMF_status Open_W_L1B_Granule | ( | lookup_tables_t * | tables, |
L1B_granule_t * | L1B_Gran, | ||
L1B_Scan_t * | L1B_Scan, | ||
boolean | skip_night_hi_res | ||
) |
Definition at line 894 of file L1B_Setup.c.
◆ Scan_Meta_Cal()
PGSt_SMF_status Scan_Meta_Cal | ( | lookup_tables_t * | tables, |
L1A_granule_t * | L1A_Gran, | ||
L1B_granule_t * | L1B_Gran, | ||
L1B_Scan_Metadata_t * | L1B_Scan_Meta, | ||
QA_Data_t * | QA | ||
) |
Definition at line 3766 of file L1B_Setup.c.
◆ Set_L1B_EV_SDS_Attrs()
PGSt_SMF_status Set_L1B_EV_SDS_Attrs | ( | lookup_tables_t * | tables, |
L1B_granule_t * | L1B_Gran, | ||
L1B_Scan_t * | L1B_Scan, | ||
boolean | skip_night_hi_res | ||
) |
Definition at line 2055 of file L1B_Setup.c.
◆ Set_SDS_Attributes()
PGSt_SMF_status Set_SDS_Attributes | ( | int32 * | sds_id, |
char ** | BandNames, | ||
float32 ** | scale, | ||
float32 ** | offset, | ||
char * | rad_units, | ||
char * | refl_units, | ||
char * | counts_units, | ||
int32 | num_sds | ||
) |
Definition at line 2871 of file L1B_Setup.c.
◆ Set_UI_ConvertToPercent_Attrs()
PGSt_SMF_status Set_UI_ConvertToPercent_Attrs | ( | lookup_tables_t * | tables, |
L1B_Scan_t * | L1B_Scan, | ||
boolean | skip_night_hi_res | ||
) |
Definition at line 5666 of file L1B_Setup.c.
◆ Set_Unit_Range_Fillvalue()
PGSt_SMF_status Set_Unit_Range_Fillvalue | ( | L1B_Scan_t * | L1B_Scan, |
boolean | skip_night_hi_res | ||
) |
Definition at line 2439 of file L1B_Setup.c.
◆ Write_L1B_ScanMeta()
PGSt_SMF_status Write_L1B_ScanMeta | ( | L1B_Scan_Metadata_t * | L1B_Scan_Meta, |
L1A_granule_t * | L1A_Gran, | ||
QA_Data_t * | QA, | ||
boolean | skip_night_hi_res | ||
) |
Definition at line 4810 of file L1B_Setup.c.
◆ Write_Swath_Band_Number()
PGSt_SMF_status Write_Swath_Band_Number | ( | int32 | file_index, |
L1B_granule_t * | L1B_Gran | ||
) |
Definition at line 1581 of file L1B_Setup.c.
Variable Documentation
◆ Band_subsetting_names
char* Band_subsetting_names[NUM_L1A_RESOLUTIONS] |
Definition at line 155 of file L1B_Setup.c.
◆ GEO_SDS
Definition at line 190 of file L1B_Setup.c.
◆ L1A_EV_SDS_NAME
char* L1A_EV_SDS_NAME[NUM_L1A_RESOLUTIONS] |
Definition at line 81 of file L1B_Setup.c.
◆ L1B_EV_DIM_FRAC_OFFSET
float32 L1B_EV_DIM_FRAC_OFFSET[NUM_L1A_RESOLUTIONS][L1B_EV_SDS_RANK-1] |
Definition at line 179 of file L1B_Setup.c.
◆ L1B_EV_DIM_NAME
char* L1B_EV_DIM_NAME[NUM_L1A_RESOLUTIONS][L1B_EV_SDS_RANK] |
Definition at line 164 of file L1B_Setup.c.
◆ L1B_EV_DIM_OFFSET
int32 L1B_EV_DIM_OFFSET[NUM_L1A_RESOLUTIONS][L1B_EV_SDS_RANK-1] |
Definition at line 173 of file L1B_Setup.c.
◆ L1B_EV_SDS_LONG_NAME
char* L1B_EV_SDS_LONG_NAME[NUM_L1B_EV_SDS] |
Definition at line 120 of file L1B_Setup.c.
◆ L1B_EV_SDS_NAME
char* L1B_EV_SDS_NAME[NUM_L1B_EV_SDS] |
Definition at line 106 of file L1B_Setup.c.