5 #include <radarlib/radar.hpp>
13 using namespace radarelab;
16 using namespace volume;
17 namespace odim = OdimH5v21;
19 int main(
int argc,
char* argv[])
21 std::string pathname = argv[1];
23 printf(
"il nome del mio file è %s\n", pathname.c_str());
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);
39 loader_all.load(argv[1]);
40 if ( !full_volume_wrad.empty() && !full_volume_vrad.empty())
42 if (full_volume_zdr.empty())
44 unsigned last = full_volume_z.size() -1;
45 for (
unsigned i = 0; i < full_volume_z.size(); ++i){
46 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);
47 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);
49 for (
unsigned ii = 0; ii < full_volume_z.at(i).beam_count; ++ii)
50 for (
unsigned ib = 0; ib < full_volume_z.at(i).beam_size; ++ib) {
51 printf(
" %4d %4d %4d %4d %5.2f %5.2f %5.2f %5.2f ---> ", i,ii,ib, full_volume_cleanID.at(i)(ii,ib), full_volume_z.at(i)(ii,ib),
52 full_volume_z.at(last).nodata, full_volume_z.at(last).gain, full_volume_z.at(last).offset);
53 if(full_volume_cleanID.at(i)(ii,ib))
54 full_volume_z.at(i)(ii,ib)=full_volume_z.at(last).nodata;
55 printf(
" %6.2f \n", full_volume_z.at(i)(ii,ib));
59 for (
unsigned i = 0; i < full_volume_z.size(); ++i){
60 algo::Cleaner::clean(full_volume_z.at(i), full_volume_wrad.at(i), full_volume_vrad.at(i),full_volume_zdr.at(i),i,
true);
61 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,
true);
67 std::cout<<
"Finito Cleaner, salvo risultati"<<std::endl;
68 volume::ODIMStorer storer;
71 storer.store(argv[2]);
72 cout<<endl<<
"Fine"<<endl;
Codice per il caricamento di volumi ODIM in radarelab.
Struttura che eredita da Loader e definisce i metodi per accedere ai dati ODIM.
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'oggetto cleaner, lo inizializza, pulisce i dati e modifica il PolarScan di DBZH...
PolarScan< T > & append_scan(unsigned beam_count, unsigned beam_size, double elevation, double cell_size)
Append a scan to this volume.