Add data level codes, refactor data value determination to product description block

This commit is contained in:
Dan Paulat 2024-01-04 01:17:14 -06:00
parent b67f546774
commit 2f06076bb5
5 changed files with 407 additions and 51 deletions

View file

@ -1,9 +1,11 @@
#pragma once
#include <scwx/awips/message.hpp>
#include <scwx/wsr88d/rpg/rpg_types.hpp>
#include <cstdint>
#include <memory>
#include <optional>
#include <units/angle.h>
@ -61,6 +63,9 @@ public:
float scale() const;
uint16_t number_of_levels() const;
std::optional<DataLevelCode> data_level_code(std::uint8_t level) const;
std::optional<float> data_value(std::uint8_t level) const;
float log_offset() const;
float log_scale() const;

View file

@ -0,0 +1,58 @@
#pragma once
namespace scwx
{
namespace wsr88d
{
namespace rpg
{
enum class DataLevelCode
{
BadData,
BelowThreshold,
Blank,
ChaffDetection,
EditRemove,
FlaggedData,
Missing,
NoData,
OutsideCoverageArea,
NoAccumulation,
RangeFolded,
Reserved,
// Hydrometeor Classification
Biological,
AnomalousPropagationGroundClutter,
IceCrystals,
DrySnow,
WetSnow,
LightAndOrModerateRain,
HeavyRain,
BigDrops,
Graupel,
SmallHail,
LargeHail,
GiantHail,
UnknownClassification,
// Rainfall Rate Classification
NoPrecipitation,
Unfilled,
Convective,
Tropical,
SpecificAttenuation,
KL,
KH,
Z1,
Z6,
Z8,
SI,
Unknown
};
} // namespace rpg
} // namespace wsr88d
} // namespace scwx