5 #ifndef RADARELAB_ALGO_CLEANER_H
6 #define RADARELAB_ALGO_CLEANER_H
14 using namespace Eigen;
23 const unsigned min_segment_length = 2;
24 const unsigned max_segment_length = 40;
30 const double sd_threshold = 2;
33 Cleaner(
double Z_missing,
double W_threshold,
double V_missing,
double bin_wind_magic_number)
34 : Z_missing(Z_missing), W_threshold(W_threshold), V_missing(V_missing), bin_wind_magic_number(bin_wind_magic_number) {}
42 std::vector<bool> clean_beam(
const Eigen::VectorXd& beam_z,
const Eigen::VectorXd& beam_w,
const Eigen::VectorXd& beam_v,
int i)
const;
52 std::vector<unsigned char> eval_clean_beam(
const Eigen::VectorXd& beam_z,
const Eigen::VectorXd& beam_w,
const Eigen::VectorXd& beam_v,
int i)
const;
84 std::vector<unsigned char> eval_clean_beam(
const Eigen::VectorXd& beam_z,
const Eigen::VectorXd& beam_w,
const Eigen::VectorXd& beam_v,
const Eigen::VectorXd& beam_sd,
const Eigen::VectorXd& beam_sdray,
const Eigen::VectorXd& beam_sdaz,
int iray)
const;
85 tuple<std::vector<unsigned char>,std::vector<double>> eval_classID_beam(
const Eigen::VectorXd& beam_z,
const Eigen::VectorXd& beam_w,
const Eigen::VectorXd& beam_v,
const Eigen::VectorXd& beam_sd,
const Eigen::VectorXd& beam_zdr,
const Eigen::VectorXd& beam_rohv,
const Eigen::VectorXd& beam_sqi,
const Eigen::VectorXd& beam_snr,
const Eigen::VectorXd& beam_zvd,
const Eigen::VectorXd& beam_sdray,
const Eigen::VectorXd& beam_sdaz,
const Eigen::VectorXd& beam_zdr_sd,
int iray,
const string radar,
double v_ny,
const char* fuzzy_path,
bool stamp=
false,
bool force_meteo=
false)
const;
94 std::vector<unsigned char> eval_classID_beam(
const Eigen::VectorXd& beam_z,
const Eigen::VectorXd& beam_w,
const Eigen::VectorXd& beam_v,
const Eigen::VectorXd& beam_sd,
const Eigen::VectorXd& beam_sdray,
const Eigen::VectorXd& beam_sdaz,
int iray,
const string radar,
double v_ny,
const char* fuzzy_path)
const;
119 static void evaluateClassID(
PolarScan<double>& scan_Z,
PolarScan<double>& scan_W,
PolarScan<double>& scan_V,
PolarScan<double>& scan_zdr,
PolarScan<double>& scan_rohv,
PolarScan<double>& scan_sqi,
PolarScan<double>& scan_snr,
PolarScan<double>& scan_zvd,
PolarScan<unsigned char>& scan_cleanID,
PolarScan<double>&scan_DiffProb,
double bin_wind_magic_number,
const string radar,
const char* fuzzy_path,
unsigned iel,
bool force_meteo=
false);
138 static void clean(
radarelab::volume::Loader load_structure,
double bin_wind_magic_number,
unsigned iel=0,
bool set_undetect=
false);
143 double trap(
double x1,
double x2,
double x3,
double x4,
double val,
double x5=-9999.)
const;
146 vector<string> read_matrix_from_txt(
string fin)
const;
PolarScan - structure to describe a polarScan containing a matrix of data and conversion factors.
Codice per il caricamento di volumi in radarelab.
Cleaner(double Z_missing, double W_threshold, double V_missing, double bin_wind_magic_number)
Constructor.
const double Z_missing
Valore dato mancante DBZH.
const double bin_wind_magic_number
valore magico per dati in formato SP20
const double W_threshold
Soglia per WRAD.
const double V_missing
Dato mancante per VRAD.
Struttura per cleaner dati grezzi sulla base dei valori di V, W e la deviazione standard di Z.
Struttura che contiene mappa per caricamento dati.
Definisce le principali strutture che contengono i dati.