From 711993362c8a589e4cce02d699d58bcb9dcc14f7 Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Thu, 7 Apr 2022 21:28:05 -0500 Subject: [PATCH] Level 3 palette lookup --- wxdata/include/scwx/common/products.hpp | 2 ++ wxdata/source/scwx/common/products.cpp | 28 +++++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/wxdata/include/scwx/common/products.hpp b/wxdata/include/scwx/common/products.hpp index 62a38fcb..e228e80e 100644 --- a/wxdata/include/scwx/common/products.hpp +++ b/wxdata/include/scwx/common/products.hpp @@ -44,5 +44,7 @@ const std::string& GetLevel2Description(Level2Product product); const std::string& GetLevel2Palette(Level2Product product); Level2Product GetLevel2Product(const std::string& name); +const std::string& GetLevel3Palette(int16_t productCode); + } // namespace common } // namespace scwx diff --git a/wxdata/source/scwx/common/products.cpp b/wxdata/source/scwx/common/products.cpp index 3ed4cc74..75ae6d25 100644 --- a/wxdata/source/scwx/common/products.cpp +++ b/wxdata/source/scwx/common/products.cpp @@ -42,6 +42,21 @@ static const std::unordered_map level2Palette_ { {Level2Product::ClutterFilterPowerRemoved, "???"}, {Level2Product::Unknown, "???"}}; +static const std::unordered_map level3Palette_ { + {19, "BR"}, {20, "BR"}, {27, "BV"}, {30, "SW"}, {31, "???"}, + {32, "BR"}, {37, "BR"}, {38, "BR"}, {41, "???"}, {50, "BR"}, + {51, "BV"}, {56, "BV"}, {57, "???"}, {65, "BR"}, {66, "BR"}, + {67, "BR"}, {78, "???"}, {79, "???"}, {80, "???"}, {81, "???"}, + {86, "BV"}, {90, "BR"}, {93, "BV"}, {94, "BR"}, {97, "BR"}, + {98, "BR"}, {99, "BV"}, {113, "???"}, {132, "???"}, {133, "???"}, + {134, "???"}, {135, "???"}, {137, "BR"}, {138, "???"}, {144, "???"}, + {145, "???"}, {146, "???"}, {150, "???"}, {151, "???"}, {153, "BR"}, + {154, "BV"}, {155, "SW"}, {159, "ZDR"}, {161, "CC"}, {163, "PHI"}, + {165, "???"}, {167, "CC"}, {168, "PHI"}, {169, "???"}, {170, "???"}, + {171, "???"}, {172, "???"}, {173, "???"}, {174, "???"}, {175, "???"}, + {176, "???"}, {177, "???"}, {178, "???"}, {179, "???"}, {193, "BR"}, + {195, "BR"}, {-1, "???"}}; + const std::string& GetRadarProductGroupName(RadarProductGroup group) { return radarProductGroupName_.at(group); @@ -80,6 +95,19 @@ const std::string& GetLevel2Palette(Level2Product product) return level2Palette_.at(product); } +const std::string& GetLevel3Palette(int16_t productCode) +{ + auto it = level3Palette_.find(productCode); + if (it != level3Palette_.cend()) + { + return it->second; + } + else + { + return level3Palette_.at(-1); + } +} + Level2Product GetLevel2Product(const std::string& name) { auto result = std::find_if(