Elaboradar  0.1
 Tutto Classi Namespace File Funzioni Variabili Tipi enumerati (enum) Gruppi
steiner.h
Vai alla documentazione di questo file.
1 
5 #ifndef RADAELAB_STEINER_CLASS_H
6 #define RADAELAB_STEINER_CLASS_H
7 
8 #include <radarelab/logging.h>
9 #include <radarelab/volume.h>
10 #include <radarelab/elev_fin.h>
11 
12 namespace radarelab {
13 namespace algo {
14 
15 namespace steiner {
16 
17 struct Point
18 {
19  int azimut;
20  int range;
21  unsigned npoints;
22  // Valore della Z di background in dB
23  double bckgr;
24  // Valore della Z di background in mm^6/m^3
25  double Z_bckgr;
26  double convective_radius;
27 
28  Point() : azimut(-999), range(-999), npoints(0), bckgr(0), Z_bckgr(0), convective_radius(0) {}
29  Point(int azimut, int range) : azimut(azimut), range(range), npoints(0), bckgr(0), Z_bckgr(0), convective_radius(0) {}
30 
31  void add_sample(double sample);
32  void finalize();
33 };
34 
35 }
36 
37 struct CalcoloSteiner
38 {
39  log4c_category_t* logging_category;
40 
41  const Volume<double>& volume;
42  const volume::ElevFin<double>& elev_fin;
43  const unsigned max_bin;
44  const double size_cell;
45 
46  Matrix2D<unsigned char> conv_STEINER;
47 
48  // Pixel precipitanti
49  std::vector<steiner::Point> lista_bckg;
50 
51  CalcoloSteiner(const Volume<double>& volume, const volume::ElevFin<double>& elev_fin, unsigned max_bin);
52 
59  void calcolo_background();
60 
65  void classifico_STEINER();
66 
74  void ingrasso_nuclei(float cr,int ja,int kr);
75 
76  void add_sample(unsigned pos, unsigned azimut, unsigned range);
77 };
78 
79 }
80 }
81 
82 #endif
Definisce le principali strutture che contengono i dati.