mirror of
https://github.com/ciphervance/supercell-wx.git
synced 2025-10-30 18:30:06 +00:00
Data level code to string
This commit is contained in:
parent
2f06076bb5
commit
3a607cc1fe
3 changed files with 120 additions and 0 deletions
|
|
@ -1,5 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
namespace scwx
|
namespace scwx
|
||||||
{
|
{
|
||||||
namespace wsr88d
|
namespace wsr88d
|
||||||
|
|
@ -53,6 +55,9 @@ enum class DataLevelCode
|
||||||
Unknown
|
Unknown
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const std::string& GetDataLevelCodeName(DataLevelCode dataLevelCode);
|
||||||
|
const std::string& GetDataLevelCodeShortName(DataLevelCode dataLevelCode);
|
||||||
|
|
||||||
} // namespace rpg
|
} // namespace rpg
|
||||||
} // namespace wsr88d
|
} // namespace wsr88d
|
||||||
} // namespace scwx
|
} // namespace scwx
|
||||||
|
|
|
||||||
114
wxdata/source/scwx/wsr88d/rpg/rpg_types.cpp
Normal file
114
wxdata/source/scwx/wsr88d/rpg/rpg_types.cpp
Normal file
|
|
@ -0,0 +1,114 @@
|
||||||
|
#include <scwx/wsr88d/rpg/rpg_types.hpp>
|
||||||
|
|
||||||
|
#include <unordered_map>
|
||||||
|
|
||||||
|
namespace scwx
|
||||||
|
{
|
||||||
|
namespace wsr88d
|
||||||
|
{
|
||||||
|
namespace rpg
|
||||||
|
{
|
||||||
|
|
||||||
|
static const std::unordered_map<DataLevelCode, std::string> dataLevelCodeName_ {
|
||||||
|
{DataLevelCode::BadData, "Bad Data"},
|
||||||
|
{DataLevelCode::BelowThreshold, "Below Threshold"},
|
||||||
|
{DataLevelCode::Blank, ""},
|
||||||
|
{DataLevelCode::ChaffDetection, "Chaff Detection"},
|
||||||
|
{DataLevelCode::EditRemove, "Edit/Remove"},
|
||||||
|
{DataLevelCode::FlaggedData, "Flagged Data"},
|
||||||
|
{DataLevelCode::Missing, "Missing"},
|
||||||
|
{DataLevelCode::NoData, "No Data"},
|
||||||
|
{DataLevelCode::OutsideCoverageArea, "Data Outside Coverage Area"},
|
||||||
|
{DataLevelCode::NoAccumulation, "No Accumulation"},
|
||||||
|
{DataLevelCode::RangeFolded, "Range Folded"},
|
||||||
|
{DataLevelCode::Reserved, "Reserved"},
|
||||||
|
|
||||||
|
// Hydrometeor Classification
|
||||||
|
{DataLevelCode::Biological, "Biological"},
|
||||||
|
{DataLevelCode::AnomalousPropagationGroundClutter,
|
||||||
|
"Anomalous Propagation/Ground Clutter"},
|
||||||
|
{DataLevelCode::IceCrystals, "Ice Crystals"},
|
||||||
|
{DataLevelCode::DrySnow, "Dry Snow"},
|
||||||
|
{DataLevelCode::WetSnow, "Wet Snow"},
|
||||||
|
{DataLevelCode::LightAndOrModerateRain, "Light/Moderate Rain"},
|
||||||
|
{DataLevelCode::HeavyRain, "Heavy Rain"},
|
||||||
|
{DataLevelCode::BigDrops, "Big Drops"},
|
||||||
|
{DataLevelCode::Graupel, "Graupel"},
|
||||||
|
{DataLevelCode::SmallHail, "Small Hail"},
|
||||||
|
{DataLevelCode::LargeHail, "Large Hail"},
|
||||||
|
{DataLevelCode::GiantHail, "Giant Hail"},
|
||||||
|
{DataLevelCode::UnknownClassification, "Unknown Classification"},
|
||||||
|
|
||||||
|
// Rainfall Rate Classification
|
||||||
|
{DataLevelCode::NoPrecipitation, "No Precip (Biota or NoEcho)"},
|
||||||
|
{DataLevelCode::Unfilled, "Unfilled"},
|
||||||
|
{DataLevelCode::Convective, "Convective R(Z,ZDR)"},
|
||||||
|
{DataLevelCode::Tropical, "Tropical R(Z,ZDR)"},
|
||||||
|
{DataLevelCode::SpecificAttenuation, "Specific Attenuation"},
|
||||||
|
{DataLevelCode::KL, "R(KDP) 25 Coeff."},
|
||||||
|
{DataLevelCode::KH, "R(KDP) 44 Coeff."},
|
||||||
|
{DataLevelCode::Z1, "R(Z)"},
|
||||||
|
{DataLevelCode::Z6, "R(Z) * 0.6"},
|
||||||
|
{DataLevelCode::Z8, "R(Z) * 0.8"},
|
||||||
|
{DataLevelCode::SI, "R(Z) * multiplier"},
|
||||||
|
|
||||||
|
{DataLevelCode::Unknown, "?"}};
|
||||||
|
|
||||||
|
static const std::unordered_map<DataLevelCode, std::string>
|
||||||
|
dataLevelCodeShortName_ {
|
||||||
|
{DataLevelCode::BadData, ""},
|
||||||
|
{DataLevelCode::BelowThreshold, "TH"},
|
||||||
|
{DataLevelCode::Blank, ""},
|
||||||
|
{DataLevelCode::ChaffDetection, ""},
|
||||||
|
{DataLevelCode::EditRemove, ""},
|
||||||
|
{DataLevelCode::FlaggedData, ""},
|
||||||
|
{DataLevelCode::Missing, ""},
|
||||||
|
{DataLevelCode::NoData, "ND"},
|
||||||
|
{DataLevelCode::OutsideCoverageArea, ""},
|
||||||
|
{DataLevelCode::NoAccumulation, ""},
|
||||||
|
{DataLevelCode::RangeFolded, "RF"},
|
||||||
|
{DataLevelCode::Reserved, ""},
|
||||||
|
|
||||||
|
// Hydrometeor Classification
|
||||||
|
{DataLevelCode::Biological, "BI"},
|
||||||
|
{DataLevelCode::AnomalousPropagationGroundClutter, "GC"},
|
||||||
|
{DataLevelCode::IceCrystals, "IC"},
|
||||||
|
{DataLevelCode::DrySnow, "DS"},
|
||||||
|
{DataLevelCode::WetSnow, "WS"},
|
||||||
|
{DataLevelCode::LightAndOrModerateRain, "RA"},
|
||||||
|
{DataLevelCode::HeavyRain, "HR"},
|
||||||
|
{DataLevelCode::BigDrops, "BD"},
|
||||||
|
{DataLevelCode::Graupel, "GR"},
|
||||||
|
{DataLevelCode::SmallHail, "HA"},
|
||||||
|
{DataLevelCode::LargeHail, "LH"},
|
||||||
|
{DataLevelCode::GiantHail, "GH"},
|
||||||
|
{DataLevelCode::UnknownClassification, "UK"},
|
||||||
|
|
||||||
|
// Rainfall Rate Classification
|
||||||
|
{DataLevelCode::NoPrecipitation, "NP"},
|
||||||
|
{DataLevelCode::Unfilled, "UF"},
|
||||||
|
{DataLevelCode::Convective, "CZ"},
|
||||||
|
{DataLevelCode::Tropical, "TZ"},
|
||||||
|
{DataLevelCode::SpecificAttenuation, "SA"},
|
||||||
|
{DataLevelCode::KL, "KL"},
|
||||||
|
{DataLevelCode::KH, "KH"},
|
||||||
|
{DataLevelCode::Z1, "Z1"},
|
||||||
|
{DataLevelCode::Z6, "Z6"},
|
||||||
|
{DataLevelCode::Z8, "Z8"},
|
||||||
|
{DataLevelCode::SI, "SI"},
|
||||||
|
|
||||||
|
{DataLevelCode::Unknown, "?"}};
|
||||||
|
|
||||||
|
const std::string& GetDataLevelCodeName(DataLevelCode dataLevelCode)
|
||||||
|
{
|
||||||
|
return dataLevelCodeName_.at(dataLevelCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
const std::string& GetDataLevelCodeShortName(DataLevelCode dataLevelCode)
|
||||||
|
{
|
||||||
|
return dataLevelCodeShortName_.at(dataLevelCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace rpg
|
||||||
|
} // namespace wsr88d
|
||||||
|
} // namespace scwx
|
||||||
|
|
@ -186,6 +186,7 @@ set(SRC_WSR88D_RPG source/scwx/wsr88d/rpg/ccb_header.cpp
|
||||||
source/scwx/wsr88d/rpg/radar_coded_message.cpp
|
source/scwx/wsr88d/rpg/radar_coded_message.cpp
|
||||||
source/scwx/wsr88d/rpg/radial_data_packet.cpp
|
source/scwx/wsr88d/rpg/radial_data_packet.cpp
|
||||||
source/scwx/wsr88d/rpg/raster_data_packet.cpp
|
source/scwx/wsr88d/rpg/raster_data_packet.cpp
|
||||||
|
source/scwx/wsr88d/rpg/rpg_types.cpp
|
||||||
source/scwx/wsr88d/rpg/scit_forecast_data_packet.cpp
|
source/scwx/wsr88d/rpg/scit_forecast_data_packet.cpp
|
||||||
source/scwx/wsr88d/rpg/set_color_level_packet.cpp
|
source/scwx/wsr88d/rpg/set_color_level_packet.cpp
|
||||||
source/scwx/wsr88d/rpg/special_graphic_symbol_packet.cpp
|
source/scwx/wsr88d/rpg/special_graphic_symbol_packet.cpp
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue