Move elevation conversion code into VCP and DRD code

This commit is contained in:
AdenKoperczak 2025-04-08 10:41:44 -04:00
parent 63585af26d
commit 6ca76b9eca
No known key found for this signature in database
GPG key ID: 9843017036F62EE7
3 changed files with 30 additions and 19 deletions

View file

@ -447,11 +447,9 @@ void Ar2vFileImpl::IndexFile()
{
//logger_->debug("Indexing file");
constexpr float scaleFactor = 8.0f / 0.043945f;
for (auto& elevationCut : radarData_)
{
std::uint16_t elevationAngle {};
float elevationAngle {};
rda::WaveformType waveformType = rda::WaveformType::Unknown;
std::shared_ptr<rda::GenericRadarData>& radial0 =
@ -467,14 +465,14 @@ void Ar2vFileImpl::IndexFile()
if (vcpData_ != nullptr)
{
elevationAngle = vcpData_->elevation_angle_raw(elevationCut.first);
elevationAngle = vcpData_->elevation_angle(elevationCut.first);
waveformType = vcpData_->waveform_type(elevationCut.first);
}
else if ((digitalRadarData0 =
std::dynamic_pointer_cast<rda::DigitalRadarData>(radial0)) !=
nullptr)
{
elevationAngle = digitalRadarData0->elevation_angle_raw();
elevationAngle = digitalRadarData0->elevation_angle().value();
}
else
{
@ -502,18 +500,7 @@ void Ar2vFileImpl::IndexFile()
auto time = util::TimePoint(radial0->modified_julian_date(),
radial0->collection_time());
// NOLINTNEXTLINE This conversion is accurate
float elevationAngleConverted = elevationAngle / scaleFactor;
// Any elevation above 90 degrees should be interpreted as a
// negative angle
// NOLINTBEGIN(cppcoreguidelines-avoid-magic-numbers)
if (elevationAngleConverted > 90)
{
elevationAngleConverted -= 360;
}
// NOLINTEND(cppcoreguidelines-avoid-magic-numbers)
index_[dataBlockType][elevationAngleConverted][time] =
index_[dataBlockType][elevationAngle][time] =
elevationCut.second;
}
}