Elaboradar  0.1

◆ 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:272
T offset
Data Offset.
Definition: volume.h:274
void normalize_elevations(const std::vector< double > &elevations)
Change the elevations in the PolarScans to match the given elevation vector.
Definition: volume.h:395
std::shared_ptr< LoadInfo > load_info
Polar volume information.
Definition: volume.h:270
Namespace per volume dati.
Definition: elev_fin.h:12
std::string name
Nome sito radar.
Definition: site.h:29
virtual std::vector< double > get_elev_array(bool medium=false) const =0
return the elev array used
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

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, site, e volume.