Adding interface to radar data, correcting scaling

This commit is contained in:
Dan Paulat 2021-07-25 08:35:24 -05:00
parent 63c0034b64
commit 3a3843c280
4 changed files with 46 additions and 5 deletions

View file

@ -1,7 +1,11 @@
#pragma once
#include <scwx/wsr88d/rda/digital_radar_data.hpp>
#include <scwx/wsr88d/rda/volume_coverage_pattern_data.hpp>
#include <memory>
#include <string>
#include <unordered_map>
namespace scwx
{
@ -27,6 +31,12 @@ public:
Ar2vFile(Ar2vFile&&) noexcept;
Ar2vFile& operator=(Ar2vFile&&) noexcept;
std::unordered_map<
uint16_t,
std::unordered_map<uint16_t, std::shared_ptr<rda::DigitalRadarData>>>
radar_data() const;
std::shared_ptr<const rda::VolumeCoveragePatternData> vcp_data() const;
bool LoadFile(const std::string& filename);
private:

View file

@ -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;

View file

@ -1,8 +1,6 @@
#include <scwx/wsr88d/ar2v_file.hpp>
#include <scwx/wsr88d/rda/digital_radar_data.hpp>
#include <scwx/wsr88d/rda/message_factory.hpp>
#include <scwx/wsr88d/rda/types.hpp>
#include <scwx/wsr88d/rda/volume_coverage_pattern_data.hpp>
#include <scwx/util/rangebuf.hpp>
#include <fstream>
@ -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<uint16_t, std::shared_ptr<rda::DigitalRadarData>>>
Ar2vFile::radar_data() const
{
return p->radarData_;
}
std::shared_ptr<const rda::VolumeCoveragePatternData> 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<rda::Message>& message)

View file

@ -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