Handle negative data moment ranges for level 2 data

This commit is contained in:
Dan Paulat 2024-01-27 16:39:49 -06:00
parent fb7f25e0bd
commit a0f43b5f3f
6 changed files with 81 additions and 75 deletions

View file

@ -31,9 +31,9 @@ public:
std::uint16_t elevation_angle_raw() const;
units::degrees<float> elevation_angle() const;
std::uint16_t elevation_number() const;
std::uint16_t surveillance_range_raw() const;
std::int16_t surveillance_range_raw() const;
units::kilometers<float> surveillance_range() const;
std::uint16_t doppler_range_raw() const;
std::int16_t doppler_range_raw() const;
units::kilometers<float> doppler_range() const;
std::uint16_t surveillance_range_sample_interval_raw() const;
units::kilometers<float> surveillance_range_sample_interval() const;

View file

@ -120,7 +120,7 @@ public:
std::uint16_t number_of_data_moment_gates() const;
units::kilometers<float> data_moment_range() const;
std::uint16_t data_moment_range_raw() const;
std::int16_t data_moment_range_raw() const;
units::kilometers<float> data_moment_range_sample_interval() const;
std::uint16_t data_moment_range_sample_interval_raw() const;
float snr_threshold() const;

View file

@ -79,7 +79,7 @@ public:
virtual std::uint16_t number_of_data_moment_gates() const = 0;
virtual units::kilometers<float> data_moment_range() const = 0;
virtual std::uint16_t data_moment_range_raw() const = 0;
virtual std::int16_t data_moment_range_raw() const = 0;
virtual units::kilometers<float>
data_moment_range_sample_interval() const = 0;
virtual std::uint16_t data_moment_range_sample_interval_raw() const = 0;

View file

@ -33,8 +33,8 @@ public:
std::uint16_t radialStatus_ {};
std::uint16_t elevationAngle_ {};
std::uint16_t elevationNumber_ {};
std::uint16_t surveillanceRange_ {};
std::uint16_t dopplerRange_ {};
std::int16_t surveillanceRange_ {};
std::int16_t dopplerRange_ {};
std::uint16_t surveillanceRangeSampleInterval_ {};
std::uint16_t dopplerRangeSampleInterval_ {};
std::uint16_t numberOfSurveillanceBins_ {};
@ -71,7 +71,7 @@ public:
std::uint16_t number_of_data_moment_gates() const;
units::kilometers<float> data_moment_range() const;
std::uint16_t data_moment_range_raw() const;
std::int16_t data_moment_range_raw() const;
units::kilometers<float> data_moment_range_sample_interval() const;
std::uint16_t data_moment_range_sample_interval_raw() const;
std::int16_t snr_threshold_raw() const;
@ -94,7 +94,7 @@ public:
~Impl() = default;
std::uint16_t numberOfDataMomentGates_ {};
std::uint16_t dataMomentRange_ {};
std::int16_t dataMomentRange_ {};
std::uint16_t dataMomentRangeSampleInterval_ {};
float scale_ {};
float offset_ {};
@ -162,7 +162,7 @@ std::uint16_t DigitalRadarData::elevation_number() const
return p->elevationNumber_;
}
std::uint16_t DigitalRadarData::surveillance_range_raw() const
std::int16_t DigitalRadarData::surveillance_range_raw() const
{
return p->surveillanceRange_;
}
@ -172,7 +172,7 @@ units::kilometers<float> DigitalRadarData::surveillance_range() const
return units::kilometers<float> {p->surveillanceRange_ * kRangeScale};
}
std::uint16_t DigitalRadarData::doppler_range_raw() const
std::int16_t DigitalRadarData::doppler_range_raw() const
{
return p->dopplerRange_;
}
@ -363,7 +363,7 @@ DigitalRadarData::Impl::MomentDataBlock::data_moment_range() const
return units::kilometers<float> {p->dataMomentRange_ * kRangeScale};
}
std::uint16_t
std::int16_t
DigitalRadarData::Impl::MomentDataBlock::data_moment_range_raw() const
{
return p->dataMomentRange_;

View file

@ -54,7 +54,7 @@ public:
explicit Impl() {}
std::uint16_t numberOfDataMomentGates_ {0};
std::uint16_t dataMomentRange_ {0};
std::int16_t dataMomentRange_ {0};
std::uint16_t dataMomentRangeSampleInterval_ {0};
std::uint16_t tover_ {0};
std::int16_t snrThreshold_ {0};
@ -92,7 +92,7 @@ DigitalRadarDataGeneric::MomentDataBlock::data_moment_range() const
return units::kilometers<float> {p->dataMomentRange_ * 0.001f};
}
std::uint16_t
std::int16_t
DigitalRadarDataGeneric::MomentDataBlock::data_moment_range_raw() const
{
return p->dataMomentRange_;