Elaboradar 0.1
Caricamento in corso...
Ricerca in corso...
Nessun risultato
cleaner.h
Vai alla documentazione di questo file.
1
5#ifndef RADARELAB_ALGO_CLEANER_H
6#define RADARELAB_ALGO_CLEANER_H
7
8#include <radarelab/volume.h>
9#include <radarelab/loader.h>
10
11#include <fstream>
12#include <string>
13
14using namespace Eigen;
15using namespace std;
16namespace radarelab {
17namespace algo {
21struct Cleaner
22{
23 const unsigned min_segment_length = 2;
24 const unsigned max_segment_length = 40;
25
26 const double Z_missing;
27 const double W_threshold;
28 const double V_missing;
29 const double bin_wind_magic_number;
30 const double sd_threshold = 2;
31
35
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;
53
68 std::vector<bool> 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_sdzdr, PolarScan<double>& scan_z, PolarScan<double>& scan_w, PolarScan<double>& scan_v, PolarScan<double>& SD,int iray) const;
69
83 std::vector<bool> clean_beam(const Eigen::VectorXd& beam_z, const Eigen::VectorXd& beam_w, const Eigen::VectorXd& beam_v, const Eigen::VectorXd& beam_sd, PolarScan<double>& scan_z, PolarScan<double>& scan_w, PolarScan<double>& scan_v, PolarScan<double>& SD,int iray) 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;
86
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;
95 static void clean(PolarScan<double>& scan_Z, PolarScan<double>& scan_W, PolarScan<double>& scan_V,unsigned iel=0, bool set_undetect=false);
96 static void evaluateCleanID(PolarScan<double>& scan_Z, PolarScan<double>& scan_W, PolarScan<double>& scan_V,PolarScan<unsigned char>& scan_cleanID, unsigned iel=0);
105 static void clean(PolarScan<double>& scan_Z, PolarScan<double>& scan_W, PolarScan<double>& scan_V, double bin_wind_magic_number,unsigned iel=0, bool set_undetect=false);
106
115 static void clean(PolarScan<double>& scan_Z, PolarScan<double>& scan_W, PolarScan<double>& scan_V, PolarScan<double>& scan_ZDR,unsigned iel=0, bool set_undetect=false);
116
117 static void evaluateCleanID(PolarScan<double>& scan_Z, PolarScan<double>& scan_W, PolarScan<double>& scan_V,PolarScan<unsigned char>& scan_cleanID, double bin_wind_magic_number, unsigned iel=0);
118
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);
129 static void evaluateClassID(PolarScan<double>& scan_Z, PolarScan<double>& scan_W, PolarScan<double>& scan_V, PolarScan<unsigned char>& scan_cleanID, double bin_wind_magic_number, const string radar, const char* fuzzy_path, unsigned iel=0);
130 static void clean(PolarScan<double>& scan_Z, PolarScan<double>& scan_W, PolarScan<double>& scan_V, PolarScan<double>& scan_ZDR, double bin_wind_magic_number,unsigned iel=0, bool set_undetect=false);
131
138 static void clean( radarelab::volume::Loader load_structure, double bin_wind_magic_number,unsigned iel=0, bool set_undetect=false);
139
143 double trap(double x1, double x2, double x3, double x4, double val, double x5=-9999.) const;
144
145 /*function reading matrix from txt file*/
146 vector<string> read_matrix_from_txt(string fin) const;
147
148};
149
150}
151}
152
153#endif
PolarScan - structure to describe a polarScan containing a matrix of data and conversion factors.
Definition volume.h:113
Codice per il caricamento di volumi in radarelab.
String functions.
Definition cart.cpp:4
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
Funzione per ripulire raggio.Utilizza (sigmaV, V) Analoga a clean_beam(const Eigen::VectorXd& beam_z,...
Definition cleaner.cpp:105
double trap(double x1, double x2, double x3, double x4, double val, double x5=-9999.) const
Definition cleaner.cpp:1123
Cleaner(double Z_missing, double W_threshold, double V_missing, double bin_wind_magic_number)
Constructor.
Definition cleaner.h:33
std::vector< bool > clean_beam(const Eigen::VectorXd &beam_z, const Eigen::VectorXd &beam_w, const Eigen::VectorXd &beam_v, int i) const
Funzione per ripulire raggio.Utilizza (sigmaV, V)
Definition cleaner.cpp:38
const double sd_threshold
Soglia per devizione standard DBZH.
Definition cleaner.h:30
const double Z_missing
Valore dato mancante DBZH.
Definition cleaner.h:26
const double bin_wind_magic_number
valore magico per dati in formato SP20
Definition cleaner.h:29
const unsigned max_segment_length
lunghezza massima segmento in celle se più lungo pulisce in ogni caso
Definition cleaner.h:24
const double W_threshold
Soglia per WRAD.
Definition cleaner.h:27
const unsigned min_segment_length
lunghezza minima segmento in celle
Definition cleaner.h:23
const double V_missing
Dato mancante per VRAD.
Definition cleaner.h:28
Struttura che contiene mappa per caricamento dati.
Definition loader.h:25
Definisce le principali strutture che contengono i dati.