Elaboradar  0.1
 Tutto Classi Namespace File Funzioni Variabili Tipi enumerati (enum) Gruppi
vecchioripulisco.cpp
1 
2 #include <iostream>
3 #include <radarelab/volume.h>
4 #include <radarelab/odim.h>
5 #include <radarlib/radar.hpp>
6 #include <sstream>
7 #include <radarelab/image.h>
10 
12 
13 using namespace radarelab;
14 using namespace std;
15 
16 using namespace volume;
17 namespace odim = OdimH5v21;
18 
19 int main(int argc,char* argv[])
20 {
21  std::string pathname = argv[1];
22 
23  printf("il nome del mio file è %s\n", pathname.c_str());
24 
25  volume::ODIMLoader loader_all;
26 
27  volume::Scans<double> full_volume_z;
28  volume::Scans<double> full_volume_zdr;
29  volume::Scans<double> full_volume_vrad;
30  volume::Scans<double> full_volume_wrad;
31  volume::Scans<unsigned char> full_volume_cleanID;
32  std::string task;
33 
34  loader_all.request_quantity(odim::PRODUCT_QUANTITY_DBZH,&full_volume_z);
35  loader_all.request_quantity(odim::PRODUCT_QUANTITY_ZDR,&full_volume_zdr);
36  loader_all.request_quantity(odim::PRODUCT_QUANTITY_VRAD,&full_volume_vrad);
37  loader_all.request_quantity(odim::PRODUCT_QUANTITY_WRAD,&full_volume_wrad);
38 
39  loader_all.load(argv[1]);
40 
41  if ( !full_volume_wrad.empty() && !full_volume_vrad.empty())
42  {
43  if (full_volume_zdr.empty())
44  {
45 printf("Chiamo cleaner senza zdr\n");
46  //for (unsigned i = 0; i < 1; ++i){
47  for (unsigned i = 0; i < full_volume_z.size(); ++i){
48 printf("Creo scan per output cleaner\n");
49  full_volume_cleanID.append_scan(full_volume_z.at(i).beam_count,full_volume_z.at(i).beam_size,full_volume_z.at(i).elevation, full_volume_z.at(i).cell_size);
50 printf("Ora chiamo evaluateCleanID\n");
51  radarelab::algo::Cleaner::evaluateCleanID(full_volume_z.at(i), full_volume_wrad.at(i), full_volume_vrad.at(i),full_volume_cleanID.at(i),i);
52  task="Cleaner base";
53  }
54  } else {
55 printf("Chiamo cleaner con zdr\n");
56  for (unsigned i = 0; i < full_volume_z.size(); ++i){
57  algo::Cleaner::clean(full_volume_z.at(i), full_volume_wrad.at(i), full_volume_vrad.at(i),full_volume_zdr.at(i),i);
58  algo::Cleaner::clean(full_volume_z.at(i), full_volume_wrad.at(i), full_volume_vrad.at(i),full_volume_zdr.at(i),i+100);
59  }
60  }
61  }
62 
63 
64  volume::ODIMStorer storer;
65  storer.store_quality_uchar((Volume<unsigned char>*)(&full_volume_cleanID));
66  storer.storeQuality(argv[2],task );
67  cout<<endl<<"Fine"<<endl;
68 }
Codice per il caricamento di volumi ODIM in radarelab.
Struttura che eredita da Loader e definisce i metodi per accedere ai dati ODIM.
Definition: odim.h:22
Definisce le principali strutture che contengono i dati.
static void clean(PolarScan< double > &scan_Z, PolarScan< double > &scan_W, PolarScan< double > &scan_V, unsigned iel=0, bool set_undetect=false)
Funzione che crea l&#39;oggetto cleaner, lo inizializza, pulisce i dati e modifica il PolarScan di DBZH...
Definition: cleaner.cpp:641
PolarScan< T > & append_scan(unsigned beam_count, unsigned beam_size, double elevation, double cell_size)
Append a scan to this volume.
Definition: volume.h:330