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

◆ read_sp20_volume()

void elaboradar::CUM_BAC::read_sp20_volume ( radarelab::Volume< double > & volume,
const Site & site,
const char * nome_file,
bool do_clean = false,
bool do_medium = false )
static

Read from SP20 data file.

Parametri
[out]volume- Container for radar data
[out]site- Radar site object descriptor
[in]nome_file- file to be read
[in]do_clean- flag to abilitate cleaning procedure
[in]do_medium- flag to force processing as medium range data

Definizione alla linea 152 del file cum_bac.cpp.

153{
154 using namespace radarelab::volume;
155 LOG_CATEGORY("radar.io");
156 LOG_INFO("Reading %s for site %s", nome_file, site.name.c_str());
157
158 SP20Loader loader;
159
160 Scans<double> z_volume;
161 Scans<double> w_volume;
162 Scans<double> v_volume;
163 loader.vol_z = &z_volume;
164 loader.vol_w = &w_volume;
165 loader.vol_v = &v_volume;
166 loader.load(nome_file);
167
168 // Normalise the scan elevations to match the elevations requested in Site
169 auto elev_array = site.get_elev_array(do_medium);
170 z_volume.normalize_elevations(elev_array);
171 w_volume.normalize_elevations(elev_array);
172 v_volume.normalize_elevations(elev_array);
173
174 if (do_clean)
175 {
176 for (unsigned i = 0; i < z_volume.size(); ++i) {
177 double bin_wind_magic_number = site.get_bin_wind_magic_number(v_volume.load_info->acq_date)
178 * v_volume.at(i).gain + v_volume.at(i).offset;
179 algo::Cleaner::clean(z_volume.at(i), w_volume.at(i), v_volume.at(i), bin_wind_magic_number);
180 }
181 }
182
183 algo::azimuthresample::MaxOfClosest<double> resampler;
184 resampler.resample_volume(z_volume, volume, 1.0);
185// Copy all radar site information to volume data
187
188}
radarelab::Volume< double > & volume
Set to Z undetect value the Zpixels classified as non-meteo echoes.
Definition cum_bac.h:106
const Site & site
site information object
Definition cum_bac.h:87
bool do_medium
medium processing flag
Definition cum_bac.h:90
RadarSite radarSite
RadarSite.
Definition volume.h:274
T offset
Data Offset.
Definition volume.h:276
void normalize_elevations(const std::vector< double > &elevations)
Change the elevations in the PolarScans to match the given elevation vector.
Definition volume.h:397
std::shared_ptr< LoadInfo > load_info
Polar volume information.
Definition volume.h:272
Sequence of PolarScans which can have a different beam count for each elevation.
Definition volume.h:264
Namespace per volume dati.
Definition elev_fin.h:12
std::string name
Nome sito radar.
Definition site.h:29
virtual unsigned char get_bin_wind_magic_number(time_t when) const =0
Return the magic number for wind to be used in clean procedure.
RadarSite radarSite
Description of radar site.
Definition site.h:41
virtual std::vector< double > get_elev_array(bool medium=false) const =0
return the elev array used
void resample_volume(const Volume< T > &src, Volume< T > &dst, double src_beam_width) const
Merge.

Referenzia do_medium, elaboradar::Site::get_bin_wind_magic_number(), elaboradar::Site::get_elev_array(), radarelab::volume::Scans< T >::load_info, elaboradar::Site::name, radarelab::volume::Scans< T >::normalize_elevations(), radarelab::volume::Scans< T >::offset, elaboradar::Site::radarSite, radarelab::volume::Scans< T >::radarSite, radarelab::algo::azimuthresample::LevelwiseResampler< T >::resample_volume(), site, e volume.