Elaboradar  0.1

◆ evaluateClassID()

void radarelab::algo::Cleaner::evaluateClassID ( PolarScan< double > &  scan_Z,
PolarScan< double > &  scan_W,
PolarScan< double > &  scan_V,
PolarScan< unsigned char > &  scan_cleanID,
double  bin_wind_magic_number,
const string  radar,
const char *  fuzzy_path,
unsigned  iel = 0 
)
static

Funzione che crea l'oggetto cleaner, lo inizializza, pulisce i dati e modifica il PolarScan di DBZH.

Parametri
[in,out]scan_Z- volume di DBZH
[in]scan_W- volume di WRAD
[in]scan_V- volume di V
[in]scan_zdr- volume di ZDR
[in]bin_wind_magic_number- soglia vento per dati in formato SP20
[in]iel- indice elevazione solo per debug

Definizione alla linea 897 del file cleaner.cpp.

898 {
899 
900  if (scan_z.beam_count != scan_w.beam_count)
901  throw std::runtime_error("scan_z beam_count no equal to scan_w beam_count");
902  if (scan_z.beam_size != scan_w.beam_size)
903  throw std::runtime_error("scan_z beam_size no equal to scan_w beam_size");
904 
905  if (scan_z.beam_count != scan_v.beam_count)
906  throw std::runtime_error("scan_z beam_count no equal to scan_v beam_count");
907  if (scan_z.beam_size != scan_v.beam_size)
908  throw std::runtime_error("scan_z beam_size no equal to scan_v beam_size");
909 
910  Cleaner cleaner(scan_z.undetect, scan_w.undetect, scan_v.nodata, bin_wind_magic_number);
911 
912  const unsigned beam_count = scan_z.beam_count;
913  const unsigned beam_size = scan_z.beam_size;
914 
915 // compute texture volumes
916  radarelab::volume::Scans<double> Z_S, SD2D,SD_Ray,SD_Az;
917  Z_S.push_back(scan_z);
918  radarelab::volume::textureSD( Z_S,SD2D, 1000. , 3,false);
919  radarelab::volume::textureSD( Z_S,SD_Ray, scan_z.cell_size*21 , 360./scan_z.beam_count,true);
920  radarelab::volume::textureSD( Z_S,SD_Az, scan_z.cell_size , 5*360./scan_z.beam_count,true);
921 
922 
923  for (unsigned i = 0; i <beam_count ; ++i)
924  {
925  vector<unsigned char> corrected = cleaner.eval_classID_beam(scan_z.row(i), scan_w.row(i), scan_v.row(i), SD2D[0].row(i), SD_Ray[0].row(i), SD_Az[0].row(i), i, radar, scan_v.offset, fuzzy_path);
926  for (unsigned ib = 0; ib < beam_size; ++ib)
927  scan_cleanID(i,ib)=corrected[ib];
928  }
929 }
Cleaner(double Z_missing, double W_threshold, double V_missing, double bin_wind_magic_number)
Constructor.
Definition: cleaner.h:33
const double bin_wind_magic_number
valore magico per dati in formato SP20
Definition: cleaner.h:29

Referenzia radarelab::PolarScanBase::beam_count, radarelab::PolarScanBase::beam_size, radarelab::PolarScanBase::cell_size, radarelab::PolarScan< T >::nodata, radarelab::PolarScan< T >::offset, e radarelab::PolarScan< T >::undetect.