NASA Logo
Ocean Color Science Software

ocssw V2022
sst_cloud_mask_utils.hpp File Reference
#include "l2_struc.h"
#include "l1q_struc.h"
#include <vector>
#include <iostream>
#include <boost/variant.hpp>
#include <string>
#include <utility>
#include "flags_sst.h"
#include <assert.h>
#include <algorithm>
#include <fstream>
#include <cstdlib>
#include <rapidjson/document.h>
#include <rapidjson/istreamwrapper.h>
#include <rapidjson/writer.h>
#include <rapidjson/stringbuffer.h>
#include <rapidjson/ostreamwrapper.h>
#include <unordered_set>
#include <chrono>
#include <unordered_map>
#include <memory>
#include <netcdf>
#include "sst_dsdi.h"
#include <boost/algorithm/string.hpp>
#include <boost/unordered_map.hpp>
Include dependency graph for sst_cloud_mask_utils.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  SSESData
 
struct  PairOfVars
 
struct  PairOfVarsBT
 
struct  PairOfSST
 
struct  Stats
 
struct  StatsSST
 
struct  StatsVarBand
 

Namespaces

 envset
 
 cldmsk
 
 bstats
 

Typedefs

typedef bool(* get_valid) (const l1str &, int, int, int)
 
typedef float(* get_value) (const l1str &, int, int, int)
 

Enumerations

enum  product_types { SST, SST3, SST4 }
 

Functions

std::string get_ocdata_root ()
 
std::vector< float > & month_data ()
 
std::string get_sensor (int key)
 
template<class T >
std::ostream & operator<< (std::ostream &stream, const std::vector< T > &data)
 
float btrefdiffv6 (int32_t ip, float BT39, float BT40, const l1str *l1rec, int fullscanpix)
 
void get_var_mask (int *mask, const l1str &l1str, size_t npix, int nbands, int ib, get_valid get_mask)
 
void get_var_vals (float *BT, const l1str &l1str, size_t npix, int nbands, int ib, get_value get_val)
 
void get_window_1D_max (float *maxs_1d, const float *inp1d, const int *mask1d, size_t npix, size_t radius)
 
void get_total_2d_max (float *max_global, const float *inp2d, size_t npix, size_t nscan, size_t center, size_t radius)
 
void get_window_1D_min (float *mins_1d, const float *inp1d, const int *mask1d, size_t npix, size_t radius)
 
void get_total_2d_min (float *min_global, const float *inp2d, size_t npix, size_t nscan, size_t center, size_t radius)
 
void get_std_box (const float *inp2d, const int *mask2d, size_t npix, size_t nscan, size_t radius_x, size_t radius_y, float *out, size_t center, l1qstr *l1qrec)
 
void read_sst_bands (const std::string &sat, std::unordered_map< std::string, int > &bands)
 

Variables

const std::unordered_map< std::string, std::string(*)(const instr *)> get_sst_coeffs_path
 
const std::unordered_map< std::string, std::string(*)(const instr *)> get_sses_coeffs_path
 
const float cldthresh = -1.0
 
const std::unordered_map< std::string, float > cldthresh_list
 
const std::unordered_map< std::string, const std::unordered_map< std::string, int > > bands_set
 
const std::unordered_map< std::string, size_t > bt_box_sizes
 
const float hisenz = 55.0
 
const float vhisenz = 75.0
 
const float vhisenzv2 = 65.0
 
const float solznight = 85.0
 
const float Btmin = -4.0
 
const float Btmax = 37.0
 
const float Btmax40 = 35.0
 
const float SSTmin = -1.8
 
const float SSTmax = 40.0
 
const float SSTmaxn = 37.0
 
const float glintmax = 0.005
 
const float dBtmin = 0.0
 
const float dBtmax = 3.6
 
const float dBt4min = 0.0
 
const float dBt4max = 8.0
 
const float SSTdiff = 3.0
 
const float SSTvdiff = 5.0
 
const float SST4diff1 = -0.8
 
const float SST4diff2 = -1.0
 
const float SST3diff1 = 0.8
 
const float SST3diff2 = 1.0
 
const float Bt11unif1 = 0.7
 
const float Bt12unif1 = 0.7
 
const float Bt11unif2 = 1.9
 
const float Bt12unif2 = 1.9
 
const float Bt37unif1 = 0.7
 
const float Bt37unif2 = 1.9
 
const float Bt39unif1 = 0.7
 
const float Bt40unif1 = 0.7
 
const float Bt39unif2 = 1.9
 
const float Bt40unif2 = 1.9
 
const float dBtrefmin = -1.1
 
const float dBtrefmax = 10.0
 
const float equatorialNorth = 30.0
 
const float equatorialSouth = -10.0
 
const float equatorialWest = -105.0
 
const float equatorialEast = 105.0
 
const float invalid_val = (BAD_FLT + 0.1)
 
const float max_bt = BT_HI - 0.1
 
const float min_bt = BT_LO + 0.1
 
const float min_lt = BAD_FLT + 1.0
 
const float max_lt = BT_HI - 1.0
 
const std::unordered_set< int > modis_sensors
 
const std::unordered_set< int > viirs_sensors = {VIIRSJ1, VIIRSJ2, VIIRSN}
 
const std::unordered_map< std::string, std::unordered_set< int > > all_sensors
 
const std::unordered_map< int, std::stringplatforms
 
const double scan_time_modis_t_day1 = 972777600
 
const double scan_time_modis_t_day2 = 993945600
 
const float el_corr_modis_t_1 = 0.4452
 
const float el_corr_modis_t_2 = 0.2593
 
const get_valid cirrus_mask
 
const get_value cirrus_value
 
const get_valid bt_mask
 
const get_value bt_value
 
const get_valid rho_mask
 
const get_value rho_value
 
const get_value cldrh_value
 
const get_valid cldrh_mask
 
const std::unordered_map< std::string, float *(*)(const l1str &)> get_non_BT_vars