mirror of
https://github.com/ciphervance/supercell-wx.git
synced 2025-10-30 20:50:06 +00:00
Adding interface to radar data, correcting scaling
This commit is contained in:
parent
63c0034b64
commit
3a3843c280
4 changed files with 46 additions and 5 deletions
|
|
@ -1,7 +1,11 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <scwx/wsr88d/rda/digital_radar_data.hpp>
|
||||||
|
#include <scwx/wsr88d/rda/volume_coverage_pattern_data.hpp>
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <unordered_map>
|
||||||
|
|
||||||
namespace scwx
|
namespace scwx
|
||||||
{
|
{
|
||||||
|
|
@ -27,6 +31,12 @@ public:
|
||||||
Ar2vFile(Ar2vFile&&) noexcept;
|
Ar2vFile(Ar2vFile&&) noexcept;
|
||||||
Ar2vFile& operator=(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);
|
bool LoadFile(const std::string& filename);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
||||||
|
|
@ -88,8 +88,11 @@ public:
|
||||||
|
|
||||||
uint16_t number_of_data_moment_gates() const;
|
uint16_t number_of_data_moment_gates() const;
|
||||||
float data_moment_range() const;
|
float data_moment_range() const;
|
||||||
|
uint16_t data_moment_range_raw() const;
|
||||||
float data_moment_range_sample_interval() const;
|
float data_moment_range_sample_interval() const;
|
||||||
|
uint16_t data_moment_range_sample_interval_raw() const;
|
||||||
float snr_threshold() const;
|
float snr_threshold() const;
|
||||||
|
int16_t snr_threshold_raw() const;
|
||||||
uint8_t data_word_size() const;
|
uint8_t data_word_size() const;
|
||||||
float scale() const;
|
float scale() const;
|
||||||
float offset() const;
|
float offset() const;
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
#include <scwx/wsr88d/ar2v_file.hpp>
|
#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/message_factory.hpp>
|
||||||
#include <scwx/wsr88d/rda/types.hpp>
|
#include <scwx/wsr88d/rda/types.hpp>
|
||||||
#include <scwx/wsr88d/rda/volume_coverage_pattern_data.hpp>
|
|
||||||
#include <scwx/util/rangebuf.hpp>
|
#include <scwx/util/rangebuf.hpp>
|
||||||
|
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
@ -64,6 +62,19 @@ Ar2vFile::~Ar2vFile() = default;
|
||||||
Ar2vFile::Ar2vFile(Ar2vFile&&) noexcept = default;
|
Ar2vFile::Ar2vFile(Ar2vFile&&) noexcept = default;
|
||||||
Ar2vFile& Ar2vFile::operator=(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)
|
bool Ar2vFile::LoadFile(const std::string& filename)
|
||||||
{
|
{
|
||||||
BOOST_LOG_TRIVIAL(debug) << logPrefix_ << "LoadFile(" << 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)
|
void Ar2vFileImpl::HandleMessage(std::shared_ptr<rda::Message>& message)
|
||||||
|
|
|
||||||
|
|
@ -96,17 +96,32 @@ uint16_t MomentDataBlock::number_of_data_moment_gates() const
|
||||||
|
|
||||||
float MomentDataBlock::data_moment_range() 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
|
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
|
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
|
uint8_t MomentDataBlock::data_word_size() const
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue