Elaboradar  0.1
classificatore.cpp
Vai alla documentazione di questo file.
1 
11 #include <iostream>
12 #include <radarelab/volume.h>
13 #include <radarelab/odim.h>
14 #include <stdlib.h>
15 #include "classifier.h"
17 
18 using namespace radarelab;
19 using namespace std;
20 
21 int main(int argc,char* argv[])
22 {
23 //const elaboradar::Site& sito(elaboradar::Site::get("SPC"));
24 
25  //Volume<double> volume;
26  //volume::ODIMLoader loader(sito, false, 1024);
27 
28  float Ht=atof(argv[2]);
29  float Hb=atof(argv[3]);
30 
31  //inizializzo Ht e Hb che verranno poi ricalcolati in classifier
32  // float Ht=3.;
33  // float Hb=2.;
34  volume::classifier classificatore(argv[1]);
35 
36  cout<<"riempito classificatore"<<endl;
37  classificatore.compute_derived_volumes();
38  cout<<"calcolati i volumi derivati"<<endl;
39  classificatore.HCA_Park_2009 (Ht, Hb );
40 // classificatore.print_ppi_class();
41 
42  volume::ODIMStorer storer;
43  storer.store_quantity_int((Volume<int>*)(&classificatore.vol_hca));
44  storer.store(argv[1]);
45 /*
46 
47  cout<<"parte interessante"<<endl;
48  Volume<double> dummy;
49 
50  Volume<double> fil_rho;
51  Volume<double> fil_zdr;
52  Volume<double> fil_z;
53  Volume<double> fil_phi;
54  cout<<"filtro"<<endl;
55  bool undet=false;
56  filter(classificatore.vol_rhohv,fil_rho,2000.,0.,undet);
57  filter(classificatore.vol_zdr,fil_zdr,2000.,0.,undet);
58  filter(classificatore.vol_z,fil_z,1000.,0.,undet);
59  filter(classificatore.vol_phidp_6km,fil_phi,0.,0.,undet);
60  volume::ODIMStorer store2(sito, false, 1024);
61  cout<<"salvo"<<endl;
62  store2.store_quantity_fp(&fil_rho);
63  store2.store_quantity_fp(&fil_zdr);
64  store2.store_quantity_fp(&fil_z);
65  store2.store_quantity_fp(&fil_phi);
66  cout<<"scrivo"<<endl;
67  store2.store("vol_rad.h5");
68  filter(classificatore.vol_rhohv,fil_rho,0.,3.,undet);
69  filter(classificatore.vol_zdr,fil_zdr,0.,3.,undet);
70  filter(classificatore.vol_z,fil_z,0.,3.,undet);
71  volume::ODIMStorer store3(sito, false, 1024);
72  cout<<"salvo"<<endl;
73  store3.store_quantity_fp(&fil_rho);
74  store3.store_quantity_fp(&fil_zdr);
75  store3.store_quantity_fp(&fil_z);
76  cout<<"scrivo"<<endl;
77  store3.store("vol_az.h5");
78  filter(classificatore.vol_rhohv,fil_rho,2000.,3.,undet);
79  filter(classificatore.vol_zdr,fil_zdr,2000.,3.,undet);
80  filter(classificatore.vol_z,fil_z,1000.,3.,undet);
81  volume::ODIMStorer store4(sito, false, 1024);
82  cout<<"salvo"<<endl;
83  store4.store_quantity_fp(&fil_rho);
84  store4.store_quantity_fp(&fil_zdr);
85  store4.store_quantity_fp(&fil_z);
86  cout<<"scrivo"<<endl;
87  store4.store("vol_azrad.h5");
88 
89 
90 
91  filter(classificatore.vol_rhohv,dummy,2000.,0.,undet);
92  filter(dummy,fil_rho,2000.,0.,undet);
93  filter(classificatore.vol_zdr,dummy,2000.,0.,undet);
94  filter(dummy,fil_zdr,2000.,0.,undet);
95  filter(classificatore.vol_z,fil_z,1000.,0.,undet);
96  volume::ODIMStorer store22(sito, false, 1024);
97  cout<<"salvo"<<endl;
98  store22.store_quantity_fp(&fil_rho);
99  store22.store_quantity_fp(&fil_zdr);
100  store22.store_quantity_fp(&fil_z);
101  cout<<"scrivo"<<endl;
102  store22.store("vol_rd_2.h5");
103 
104  filter(classificatore.vol_rhohv,dummy,0.,3.,undet);
105  filter(dummy,fil_rho,0.,5.,undet);
106  filter(classificatore.vol_zdr,dummy,0.,3.,undet);
107  filter(dummy,fil_zdr,0.,5.,undet);
108  filter(classificatore.vol_z,fil_z,0.,3.,undet);
109  volume::ODIMStorer store33(sito, false, 1024);
110  cout<<"salvo"<<endl;
111  store33.store_quantity_fp(&fil_rho);
112  store33.store_quantity_fp(&fil_zdr);
113  store33.store_quantity_fp(&fil_z);
114  cout<<"scrivo"<<endl;
115  store33.store("vol_az_2.h5");
116 
117  filter(classificatore.vol_rhohv,dummy,2000.,3.,undet);
118  filter(dummy,fil_rho,2000.,5.,undet);
119  filter(classificatore.vol_zdr,dummy,2000.,3.,undet);
120  filter(dummy,fil_zdr,2000.,5.,undet);
121  filter(classificatore.vol_z,fil_z,1000.,3.,undet);
122  volume::ODIMStorer store44(sito, false, 1024);
123  cout<<"salvo"<<endl;
124  store44.store_quantity_fp(&fil_rho);
125  store44.store_quantity_fp(&fil_zdr);
126  store44.store_quantity_fp(&fil_z);
127  cout<<"scrivo"<<endl;
128  store44.store("vol_azrd_2.h5");
129 
130  Volume<double> vol_sdphidp;
131  Volume<double> vol_sdz;
132  textureSD(classificatore.vol_phidp,vol_sdphidp,2000.,0.,true);
133  textureSD(classificatore.vol_z,vol_sdz,1000.,0.,true);
134  volume::ODIMStorer storeSD(sito,false,1024);
135  storeSD.store_quantity_fp(&vol_sdphidp);
136  storeSD.store_quantity_fp(&vol_sdz);
137  storeSD.store("vol_sd.h5");
138 */
139 
140  cout<<endl<<"Fine"<<endl;
141 
142 }
Classes to compute hydrometeor classification.
Homogeneous volume with a common beam count for all PolarScans.
Definition: volume.h:431
compute hydrometeor classification
Definition: classifier.h:350
String functions.
Definition: cart.cpp:4
Codice per il caricamento di volumi ODIM in radarelab.
Definisce le principali strutture che contengono i dati.