Elaboradar  0.1
 Tutto Classi Namespace File Funzioni Variabili Tipi enumerati (enum) Gruppi
vpr.h
1 #ifndef RADARELAB_ALGO_VPR_H
2 #define RADARELAB_ALGO_VPR_H
3 
4 #include <radarelab/volume.h>
5 #include <radarelab/algo/dbz.h>
6 #include <vector>
7 #include <array>
8 
9 namespace radarelab {
10 namespace algo {
11 
12 constexpr unsigned VPR_NMAXLAYER = 70;
13 constexpr float VPR_MISSING = -9999.;
14 
15 struct VPR
16 {
17  std::array<float, VPR_NMAXLAYER> val;
18  std::array<long int, VPR_NMAXLAYER> area;
19 
20  VPR(const VPR&) = default;
21  VPR(VPR&&) = default;
22  VPR& operator=(const VPR&) = default;
23  VPR& operator=(VPR&&) = default;
24  VPR()
25  {
26  for (unsigned i = 0; i < size(); ++i)
27  {
28  val[i] = VPR_MISSING;
29  area[i] = 0;
30  }
31  }
32 
33  size_t size() const { return VPR_NMAXLAYER; }
34 };
35 
36 
37 struct Livmin
38 {
40  unsigned idx = 0;
41 
43  int livmin = 0;
44 
46  bool found = false;
47 
48  Livmin(const VPR& vpr);
49 };
50 
51 
52 struct InstantaneousVPR
53 {
54  const Volume<double>& volume;
55  const Volume<unsigned char>& qual;
56  Volume<unsigned char>& flag_vpr;
58  int az_min;
59  int az_max;
60  DBZ dbz;
61  long int cv = 0;
62  long int ct = 0;
63  VPR vpr;
64  bool success = false;
65 
66 #if 0
67 
79  int func_vpr(long int *cv, long int *ct, std::vector<float>& vpr1, std::vector<long int>& area_vpr);
80 #endif
81 
82  InstantaneousVPR(const Volume<double>& volume, const Volume<unsigned char>& qual, Volume<unsigned char>& flag_vpr, int az_min, int az_max);
83  void compute();
84 };
85 
86 
91 VPR combine_profiles(const VPR& vpr0, const VPR& vpr1, long int cv, long int ct);
92 
93 }
94 }
95 
96 #endif
Definisce le principali strutture che contengono i dati.