diff --git a/wxdata/include/scwx/wsr88d/ar2v_file.hpp b/wxdata/include/scwx/wsr88d/ar2v_file.hpp index 7dc61bab..5f1afbf0 100644 --- a/wxdata/include/scwx/wsr88d/ar2v_file.hpp +++ b/wxdata/include/scwx/wsr88d/ar2v_file.hpp @@ -1,7 +1,11 @@ #pragma once +#include +#include + #include #include +#include namespace scwx { @@ -27,6 +31,12 @@ public: Ar2vFile(Ar2vFile&&) noexcept; Ar2vFile& operator=(Ar2vFile&&) noexcept; + std::unordered_map< + uint16_t, + std::unordered_map>> + radar_data() const; + std::shared_ptr vcp_data() const; + bool LoadFile(const std::string& filename); private: diff --git a/wxdata/include/scwx/wsr88d/rda/digital_radar_data.hpp b/wxdata/include/scwx/wsr88d/rda/digital_radar_data.hpp index 31bb1813..922d6925 100644 --- a/wxdata/include/scwx/wsr88d/rda/digital_radar_data.hpp +++ b/wxdata/include/scwx/wsr88d/rda/digital_radar_data.hpp @@ -88,8 +88,11 @@ public: uint16_t number_of_data_moment_gates() const; float data_moment_range() const; + uint16_t data_moment_range_raw() const; float data_moment_range_sample_interval() const; + uint16_t data_moment_range_sample_interval_raw() const; float snr_threshold() const; + int16_t snr_threshold_raw() const; uint8_t data_word_size() const; float scale() const; float offset() const; diff --git a/wxdata/source/scwx/wsr88d/ar2v_file.cpp b/wxdata/source/scwx/wsr88d/ar2v_file.cpp index 9971eea9..2ba965cf 100644 --- a/wxdata/source/scwx/wsr88d/ar2v_file.cpp +++ b/wxdata/source/scwx/wsr88d/ar2v_file.cpp @@ -1,8 +1,6 @@ #include -#include #include #include -#include #include #include @@ -64,6 +62,19 @@ Ar2vFile::~Ar2vFile() = default; Ar2vFile::Ar2vFile(Ar2vFile&&) noexcept = default; Ar2vFile& Ar2vFile::operator=(Ar2vFile&&) noexcept = default; +std::unordered_map< + uint16_t, + std::unordered_map>> +Ar2vFile::radar_data() const +{ + return p->radarData_; +} + +std::shared_ptr Ar2vFile::vcp_data() const +{ + return p->vcpData_; +} + bool Ar2vFile::LoadFile(const std::string& filename) { BOOST_LOG_TRIVIAL(debug) << logPrefix_ << "LoadFile(" << filename << ")"; @@ -223,6 +234,8 @@ void Ar2vFileImpl::ParseLDMRecords() } } } + + rawRecords_.clear(); } void Ar2vFileImpl::HandleMessage(std::shared_ptr& message) diff --git a/wxdata/source/scwx/wsr88d/rda/digital_radar_data.cpp b/wxdata/source/scwx/wsr88d/rda/digital_radar_data.cpp index 860dfc90..0711a4eb 100644 --- a/wxdata/source/scwx/wsr88d/rda/digital_radar_data.cpp +++ b/wxdata/source/scwx/wsr88d/rda/digital_radar_data.cpp @@ -96,17 +96,32 @@ uint16_t MomentDataBlock::number_of_data_moment_gates() const float MomentDataBlock::data_moment_range() const { - return p->dataMomentRange_ / 0.001f; + return p->dataMomentRange_ * 0.001f; +} + +uint16_t MomentDataBlock::data_moment_range_raw() const +{ + return p->dataMomentRange_; } float MomentDataBlock::data_moment_range_sample_interval() const { - return p->dataMomentRangeSampleInterval_ / 0.001f; + return p->dataMomentRangeSampleInterval_ * 0.001f; +} + +uint16_t MomentDataBlock::data_moment_range_sample_interval_raw() const +{ + return p->dataMomentRangeSampleInterval_; } float MomentDataBlock::snr_threshold() const { - return p->snrThreshold_ / 0.1f; + return p->snrThreshold_ * 0.1f; +} + +int16_t MomentDataBlock::snr_threshold_raw() const +{ + return p->snrThreshold_; } uint8_t MomentDataBlock::data_word_size() const