5#ifndef RADARELAB_ALGO_AZIMUTHRESAMPLE_H
6#define RADARELAB_ALGO_AZIMUTHRESAMPLE_H
15namespace azimuthresample {
39 std::pair<double, unsigned>
closest(
double azimuth)
const;
48 std::vector<std::pair<double, unsigned>>
intersecting(
double dst_azimuth,
double dst_amplitude,
double src_amplitude)
const;
80 for (
unsigned iel = 0; iel < src.size(); ++iel)
103 for (
unsigned iel = 0; iel < src.size(); ++iel)
117struct Closest :
public LevelwiseResampler<T>
123struct MaxOfClosest :
public LevelwiseResampler<T>
double nodata
Value used as 'no data' value.
double undetect
Minimum amount that can be measured.
double offset
Conversion factor.
double gain
Conversion factor.
PolarScan - structure to describe a polarScan containing a matrix of data and conversion factors.
PolarScan< T > & append_scan(unsigned beam_size, double elevation, double cell_size)
Append a scan to this volume.
Homogeneous volume with a common beam count for all PolarScans.
std::pair< double, unsigned > closest(double azimuth) const
Get the closest position to an azimuth angle.
std::vector< std::pair< double, unsigned > > intersecting(double dst_azimuth, double dst_amplitude, double src_amplitude) const
Get all the positions intersecting an angle centered on azimuth and with the given amplitude.
std::map< double, unsigned > by_angle
map azimuth angles to beam indices
AzimuthIndex(const Eigen::VectorXd &azimuths)
Build an index with the azimuths of a PolarScan.
RadarSite radarSite
RadarSite.
std::string units
Data units according to ODIM documentation.
std::string quantity
Odim quantity name.
std::shared_ptr< LoadInfo > load_info
Polar volume information.
PolarScan< T > & scan(unsigned idx)
Access a polar scan.
Sequence of PolarScans which can have a different beam count for each elevation.
unsigned beam_size
Number of samples in each beam.
double elevation
Nominal elevation of this PolarScan, which may be different from the effective elevation of each sing...
double cell_size
Size of a beam cell in meters.
void resample_volume(const Volume< T > &src, Volume< T > &dst, double src_beam_width) const
Merge.
void resample_volume(const volume::Scans< T > &src, Volume< T > &dst, double src_beam_width) const
Fill dst with data from src, coping with the two volumes having a different number of beams per scan.
virtual void resample_polarscan(const PolarScan< T > &src, PolarScan< T > &dst, double src_beam_width) const =0
Fill dst with data from src, using the given merger function.
Resample a volume one level at a time.
Definisce le principali strutture che contengono i dati.