ocssw
V2022
|
sst_cloud_mask.cpp
Go to the documentation of this file.
1935 void call_sst(l1str *l1rec, l1qstr *l1qrec, instr *input, const char *product_type, float **sst_out_2) {
1956 *sses_bias_mean_out = cld_mask_sst::sst_obj.get_sst_mean_bias(l1rec, l1qrec, input, product_type);
1958 void call_dust_correction(l1str *l1rec, l1qstr *l1qrec, instr *input, const char *product_type,
1960 *dust_correction = cld_mask_sst::sst_obj.get_sst_mean_bias(l1rec, l1qrec, input, product_type);
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 it will be treated as a constant LUT The manner in which Earth View data is checked for saturation was changed Previously the raw Earth View DNs and Space View DNs were checked against the lookup table values contained in the table dn_sat The change made is to check the raw Earth and Space View DNs to be sure they are less than the maximum saturation value and to check the Space View subtracted Earth View dns against a set of values contained in the new lookup table dn_sat_ev The metadata configuration and ASSOCIATEDINSTRUMENTSHORTNAME from the MOD02HKM product The same metatdata with extensions and were removed from the MOD021KM and MOD02OBC products ASSOCIATEDSENSORSHORTNAME was set to MODIS in all products These changes are reflected in new File Specification which users may consult for exact the pow functions were eliminated in Emissive_Cal and Emissive bands replaced by more efficient code Other calculations throughout the code were also made more efficient Aside from a few round off there was no difference to the product The CPU time decreased by about for a day case and for a night case A minor bug in calculating the uncertainty index for emissive bands was corrected The frame index(0-based) was previously being used the frame number(1-based) should have been used. There were only a few minor changes to the uncertainty index(maximum of 1 digit). 3. Some inefficient arrays(Sigma_RVS_norm_sq) were eliminated and some code lines in Preprocess_L1A_Data were moved into Process_OBCEng_Emiss. There were no changes to the product. Required RAM was reduced by 20 MB. Now
float * get_bias(l1str *l1rec, l1qstr *l1qrec, instr *input, const std::string &product_type)
Definition: sst_cloud_mask.cpp:1678
float * get_sst(l1str *l1rec, l1qstr *l1qrec, instr *input, const std::string &product_type)
Definition: sst_cloud_mask.cpp:1612
void call_dust_correction(l1str *l1rec, l1qstr *l1qrec, instr *input, const char *product_type, float **dust_correction)
Definition: sst_cloud_mask.cpp:1958
std::ostream & operator<<(std::ostream &out, focs::DataProvider &in)
These are used to scale the SD before writing it to the HDF4 file The default is and which means the product is not scaled at all Since the product is usually stored as a float inside of this is a way to write the float out as a integer l2prod min
Definition: HOWTO_Add_a_product.txt:76
@ LAND
const std::unordered_map< int, std::string > platforms
Definition: sst_cloud_mask_utils.hpp:156
void set_ext_products(std::unique_ptr< SeaSurfaceTemperatureCalcuations > &ext_product, const std::string &ext_product_name)
Definition: sst_cloud_mask.cpp:1781
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 as required for compatibility with version of the SDP toolkit Corrected test output file names to end in out
Definition: HISTORY.txt:422
float * get_bias_mean(l1str *l1rec, l1qstr *l1qrec, instr *input, const std::string &product_type)
Definition: sst_cloud_mask.cpp:1701
void unix2ymds(double usec, int16_t *year, int16_t *mon, int16_t *day, double *secs)
Definition: unix2ymds.c:8
const std::unordered_set< int > viirs_sensors
Definition: sst_cloud_mask_utils.hpp:153
void read_sst_bands(const std::string &sat, std::unordered_map< std::string, int > &bands)
Definition: sst_cloud_mask_utils.cpp:166
void ini_product(l1str *l1rec, l1qstr *l1qrec, instr *input, const char *product_type)
Definition: sst_cloud_mask.cpp:1838
float * get_dust_correction(l1str *l1rec, l1qstr *l1qrec, instr *input, const char *product_type)
Definition: sst_cloud_mask.cpp:1901
this program makes no use of any feature of the SDP Toolkit that could generate such a then geolocation is calculated at that and then aggregated up to Resolved feature request Bug by adding three new int8 SDSs for each high resolution offsets between the high resolution geolocation and a bi linear interpolation extrapolation of the positions This can be used to reconstruct the high resolution geolocation Resolved Bug by delaying cumulation of gflags until after validation of derived products Resolved Bug by setting Latitude and Longitude to the correct fill resolving to support Near Real Time because they may be unnecessary if use of entrained ephemeris and attitude data is turned resolving bug report Corrected to filter out Aqua attitude records with missing status helping resolve bug MOD_PR03 will still correctly write scan and pixel data that does not depend upon the start thereby resolving MODur00108 Changed header guard macro names to avoid reserved name resolving MODur00104 Maneuver list file for Terra satellite was updated to include data from Jecue DuChateu Maneuver list files for both Terra and Aqua were updated to include two maneuvers from recent IOT weekly reports The limits for Z component of angular momentum was and to set the fourth GEO scan quality flag for a scan depending upon whether or not it occurred during one of them Added _FillValue attributes to many and changed the fill value for the sector start times from resolving MODur00072 Writes boundingcoordinate metadata to L1A archived metadata For PERCENT *ECS change to treat rather resolving GSFcd01518 Added a LogReport Changed to create the Average Temperatures vdata even if the number of scans is
Definition: HISTORY.txt:301
@ NAVFAIL
void tree_traversal(float *inp_treesum, int16_t *inp_flags_sst, const VarsAtPixel &vars, Treenode *node)
Definition: sst_adt.cpp:81
const std::unordered_map< std::string, std::string(*)(const instr *)> get_sses_coeffs_path
returns the SSES LUTs paths to netCDF files depending on requested product
Definition: sst_cloud_mask_utils.hpp:60
void call_sst(l1str *l1rec, l1qstr *l1qrec, instr *input, const char *product_type, float **sst_out_2)
Definition: sst_cloud_mask.cpp:1935
void print_error_message_for_adt(const std::string &file_path, const std::string &key_word, const std::string &message)
Prints error message for unrecognized keywords in the ADT config file.
Definition: sst_adt.cpp:249
A derived class to compute stats for an SST.
Definition: sst_cloud_mask_utils.hpp:795
Definition: sst_cloud_mask.cpp:1931
~SeaSurfaceTemperatureCalcuations()
Definition: sst_cloud_mask.cpp:1817
const double scan_time_modis_t_day2
Definition: sst_cloud_mask_utils.hpp:162
const std::unordered_map< std::string, float > cldthresh_list
Definition: sst_cloud_mask_utils.hpp:83
void call_sses_bias_mean(l1str *l1rec, l1qstr *l1qrec, instr *input, const char *product_type, float **sses_bias_mean_out)
Definition: sst_cloud_mask.cpp:1954
SeaSurfaceTemperatureCalcuations(l1str *l1rec, l1qstr *l1qrec, instr *input, const char *product_type)
Definition: sst_cloud_mask.cpp:1377
void build_tree(const std::string &config_path, Treenode *decision_tree, std::set< std::string > &tests_name)
Building the from a json file *.
Definition: sst_adt.cpp:198
void call_qual_flags(l1str *l1rec, l1qstr *l1qrec, instr *input, const char *product_type, int8_t **qual_flags)
Definition: sst_cloud_mask.cpp:1950
A derived class to compute stats for a BT.
Definition: sst_cloud_mask_utils.hpp:836
size_t get_number_of_external_products()
Definition: sst_cloud_mask.cpp:1791
void call_sst_flags(l1str *l1rec, l1qstr *l1qrec, instr *input, const char *product_type, int16_t **sst_flags)
Definition: sst_cloud_mask.cpp:1946
int16_t * get_counts(l1str *l1rec, l1qstr *l1qrec, instr *input, const char *product_type)
Definition: sst_cloud_mask.cpp:1924
float * get_dust_correction(l1str *l1rec, l1qstr *l1qrec, instr *input, const std::string &product_type)
Definition: sst_cloud_mask.cpp:1807
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
const std::unordered_map< std::string, size_t > bt_box_sizes
Definition: sst_cloud_mask_utils.hpp:107
int16_t * get_flags_sst(l1str *l1rec, l1qstr *l1qrec, instr *input, const char *product_type)
Definition: sst_cloud_mask.cpp:1909
subroutine diff(x, conec, n, dconecno, dn, dconecmk, units, u, inno, i, outno, o, input, deriv)
Definition: ffnet.f:205
float * get_sst_bias(l1str *l1rec, l1qstr *l1qrec, instr *input, const char *product_type)
Definition: sst_cloud_mask.cpp:1887
no change in intended resolving MODur00064 Corrected handling of bad ephemeris attitude data
Definition: HISTORY.txt:356
float * get_sst_mean_bias(l1str *l1rec, l1qstr *l1qrec, instr *input, const char *product_type)
Definition: sst_cloud_mask.cpp:1894
int8_t * get_quality_flags(l1str *l1rec, l1qstr *l1qrec, instr *input, const std::string &product_type)
Definition: sst_cloud_mask.cpp:1795
std::vector< float > & month_data()
month variable for the desicion tree traversal
Definition: sst_cloud_mask_utils.cpp:18
float dust_correction(float dustExtinction, float csenz, float BT39, float BT85, float BT11, float BT12, int32_t sensorID)
Definition: sst_dsdi.c:9
int8_t * get_qual_flags(l1str *l1rec, l1qstr *l1qrec, instr *input, const char *product_type)
Definition: sst_cloud_mask.cpp:1916
std::unordered_map< std::string, std::unique_ptr< SeaSurfaceTemperatureCalcuations > > sst
Definition: sst_cloud_mask.cpp:1830
float * get_sst(l1str *l1rec, l1qstr *l1qrec, instr *input, const char *product_type)
Definition: sst_cloud_mask.cpp:1873
float * get_std(l1str *l1rec, l1qstr *l1qrec, instr *input, const std::string &product_type)
Definition: sst_cloud_mask.cpp:1672
const std::unordered_map< std::string, std::string(*)(const instr *)> get_sst_coeffs_path
returns the sst coefs paths to netCDF files depending on requested product
Definition: sst_cloud_mask_utils.hpp:41
void call_sses_counts(l1str *l1rec, l1qstr *l1qrec, instr *input, const char *product_type, int16_t **sses_counts)
Definition: sst_cloud_mask.cpp:1962
int16_t * get_counts(l1str *l1rec, l1qstr *l1qrec, instr *input, const std::string &product_type)
Definition: sst_cloud_mask.cpp:1801
int16_t * get_flags_sst(l1str *l1rec, l1qstr *l1qrec, instr *input, const std::string &product_type)
Definition: sst_cloud_mask.cpp:1707
void copy(double **aout, double **ain, int n)
float btrefdiffv6(int32_t ip, float BT39, float BT40, const l1str *l1rec, int fullscanpix)
Legacy BT diff test with interpolation adjutment.
Definition: sst_cloud_mask_utils.cpp:31
const std::unordered_map< std::string, float *(*)(const l1str &)> get_non_BT_vars
Definition: sst_cloud_mask_utils.hpp:260
float * get_sst_stdev(l1str *l1rec, l1qstr *l1qrec, instr *input, const char *product_type)
Definition: sst_cloud_mask.cpp:1880
std::set< std::string > initilized_products
Definition: sst_cloud_mask.cpp:1831
Definition: sst_adt.hpp:43
const double scan_time_modis_t_day1
Definition: sst_cloud_mask_utils.hpp:161
std::unordered_map< std::string, std::unordered_map< std::string, std::vector< std::string > > > products_needed
Definition: sst_cloud_mask.cpp:1834
const std::unordered_set< int > modis_sensors
Definition: sst_cloud_mask_utils.hpp:151
void call_sses_bias(l1str *l1rec, l1qstr *l1qrec, instr *input, const char *product_type, float **sses_bias_out)
Definition: sst_cloud_mask.cpp:1938
Class to compute the SST products (the sst, cloud mask etc)
Definition: sst_cloud_mask.cpp:129
void call_sses_std(l1str *l1rec, l1qstr *l1qrec, instr *input, const char *product_type, float **sses_std_out)
Definition: sst_cloud_mask.cpp:1942