Elaboradar 0.1
Caricamento in corso...
Ricerca in corso...
Nessun risultato

◆ 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}
Sequence of PolarScans which can have a different beam count for each elevation.
Definition volume.h:264
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, bin_wind_magic_number, radarelab::PolarScanBase::cell_size, radarelab::PolarScan< T >::nodata, radarelab::PolarScan< T >::offset, e radarelab::PolarScan< T >::undetect.