1#![cfg_attr(feature = "nightly", coverage(off))]
2
3#[repr(u8)]
41#[allow(missing_docs)]
42#[derive(Debug, Clone, Copy, PartialEq, Eq)]
43pub enum Grib2TableA {
44 UltraVioletIndexModel = 2,
45 NcepArlTransportAndDispersionModel = 3,
46 NcepArlSmokeModel = 4,
47 SatelliteDerivedPrecipitationAndTemperaturesFromIr = 5,
48 NcepArlDustModel = 6,
49 GlobalWindWaveForecastModel = 10,
50 GlobalMultiGridWaveModelStaticGrids = 11,
51 ProbabilisticStormSurgePSurge = 12,
52 HurricaneMultiGridWaveModel = 13,
53 ExtraTropicalStormSurgeAtlanticDomain = 14,
54 NearshoreWavePredictionSystemNwps = 15,
55 ExtraTropicalStormSurgeEtss = 16,
56 ExtraTropicalStormSurgePacificDomain = 17,
57 ProbabilisticExtraTropicalStormSurgePEtss = 18,
58 ExtraTropicalStormSurgeMicronesiaDomain = 20,
59 ExtraTropicalStormSurgeAtlanticDomain3d = 21,
60 ExtraTropicalStormSurgePacificDomain3d = 22,
61 ExtraTropicalStormSurgeMicronesiaDomain3d = 23,
62 SnowCoverAnalysis = 25,
63 ForecasterGeneratedField = 30,
64 ValueAddedPostProcessedField = 31,
65 GlobalOptimumInterpolationAnalysisGoiFromGfsModel = 42,
66 GlobalOptimumInterpolationAnalysisGoiFromFinalRun = 43,
67 SeaSurfaceTemperatureAnalysis = 44,
68 CoastalOceanCirculationModel = 45,
69 HycomGlobal = 46,
70 HycomNorthPacificBasin = 47,
71 HycomNorthAtlanticBasin = 48,
72 OzoneAnalysisFromTirosObservations = 49,
73 OzoneAnalysisFromNimbus7Observations = 52,
74 RegionalOptimumInterpolationAnalysisRoi = 64,
75 _180WaveTriangular18LayerSpectralModelFromGfsModel = 68,
76 WaveTriangular18LayerSpectralModelFromMediumRangeForecastRun = 69,
77 QuasiLagrangianHurricaneModelQlm = 70,
78 HurricaneWeatherResearchAndForecastingHwrf = 71,
79 HurricaneNonHydrostaticMultiscaleModelOnTheBGridHnmmb = 72,
80 FogForecastModelOceanProdCenter = 73,
81 GulfOfMexicoWindWave = 74,
82 GulfOfAlaskaWindWave = 75,
83 BiasCorrectedMediumRangeForecast = 76,
84 _126WaveTriangular28LayerSpectralModelFromGfsModel = 77,
85 _126WaveTriangular28LayerSpectralModelFromMediumRangeForecastRun = 78,
86 WaveTriangular28LayerSpectralModelFromMediumRangeForecastRun = 80,
87 AnalysisFromGfsGlobalForecastSystem = 81,
88 AnalysisFromGdasGlobalDataAssimilationSystem = 82,
89 HighResolutionRapidRefreshHrrr = 83,
90 MesoNamModelCurrently12Km = 84,
91 RealTimeOceanForecastSystemRtofs = 85,
92 EarlyHurricaneWindSpeedProbabilityModel = 86,
93 CacEnsembleForecastsFromSpectralEnsmb = 87,
94 NoaaWaveWatchIiiNww3OceanWaveModel = 88,
95 NonHydrostaticMesoModelNmmCurrently8Km = 89,
96 WaveTriangular28LayerSpectralModelExtensionOfMediumRangeForecastRun = 90,
97 WaveTriangular28LayerSpectralModelExtensionOfGfsModel = 91,
98 WaveTriangular28LayerSpectralModelRunFromMediumRangeForecastFinalAnalysis = 92,
99 WaveTriangular28LayerSpectralModelRunFromT62GdasAnalysisOfMediumRangeForecastRun = 93,
100 T170L42GlobalSpectralModelFromMrfRun = 94,
101 T126L42GlobalSpectralModelFromMrfRun = 95,
102 GlobalForecastSystemModel = 96,
103 ClimateForecastSystemModel = 98,
104 MiscellaneousTestId99 = 99,
105 MiscellaneousTestId100 = 100,
106 ConventionalObservationReAnalysisCore = 101,
107 NationalBlendGrib = 104,
108 RapidRefreshRap = 105,
109 GlobalEnsembleForecastSystemGefs = 107,
110 LocalizedAviationMosProgramLamp = 108,
111 RealTimeMesoscaleAnalysisRtma = 109,
112 NamModel15KmVersion = 110,
113 NamModelGenericResolution = 111,
114 WrfNmmModelGenericResolution = 112,
115 ProductsFromNcepSrefProcessing = 113,
116 NaefsProductsFromJoinedNcepCmcGlobalEnsembles = 114,
117 DownscaledGfsFromNamExtension = 115,
118 WrfEmModelGenericResolution = 116,
119 NemsGfsAerosolComponent = 117,
120 UnrestrictedMesoscaleAnalysisUrma = 118,
121 WamWholeAtmosphereModel = 119,
122 IceConcentrationAnalysis = 120,
123 WesternNorthAtlanticRegionalWaveModel = 121,
124 AlaskaWatersRegionalWaveModel = 122,
125 NorthAtlanticHurricaneWaveModel = 123,
126 EasternNorthPacificRegionalWaveModel = 124,
127 NorthPacificHurricaneWaveModel = 125,
128 SeaIceForecastModel = 126,
129 LakeIceForecastModel = 127,
130 GlobalOceanForecastModel = 128,
131 GlobalOceanDataAnalysisSystemGodas = 129,
132 MergeOfFieldsFromTheRucNamAndSpectralModel = 130,
133 GreatLakesWaveModel = 131,
134 HighResolutionEnsembleForecastHref = 132,
135 GreatLakesShortRangeWaveModel = 133,
136 RapidRefreshForecastSystemRrfs = 134,
137 HurricaneAnalysisAndForecastSystemHafs = 135,
138 NorthAmericanRegionalReanalysisNarr = 140,
139 LandDataAssimilationAndForecastSystem = 141,
140 NwsRiverForecastSystemNwsrfs = 150,
141 NwsFlashFloodGuidanceSystemNwsffgs = 151,
142 Wsr88dStageIiPrecipitationAnalysis = 152,
143 Wsr88dStageIiiPrecipitationAnalysis = 153,
144 QuantitativePrecipitationForecastGeneratedByNcep = 180,
145 RiverForecastCenterQuantitativePrecipitationForecastMosaicGeneratedByNcep = 181,
146 RiverForecastCenterQuantitativePrecipitationEstimateMosaicGeneratedByNcep = 182,
147 NdfdProductGeneratedByNcepHpc = 183,
148 ClimatologicalCalibratedPrecipitationAnalysisCcpa = 184,
149 NationalConvectiveWeatherDiagnosticGeneratedByNcepAwc = 190,
150 CurrentIcingPotentialAutomatedProductGeneratedByNcepAwc = 191,
151 AnalysisProductFromNcepAwc = 192,
152 ForecastProductFromNcepAwc = 193,
153 ClimateDataAssimilationSystem2Cdas2 = 195,
154 ClimateDataAssimilationSystem2Cdas2UsedForRegenerationRuns = 196,
155 ClimateDataAssimilationSystemCdas = 197,
156 ClimateDataAssimilationSystemCdasUsedForRegenerationRuns = 198,
157 ClimateForecastSystemReanalysisCfsr = 199,
158 CpcManualForecastProduct = 200,
159 CpcAutomatedProduct = 201,
160 EpaAirQualityForecastNorthEastUsDomain = 210,
161 EpaAirQualityForecastEasternUsDomain = 211,
162 SpcManualForecastProduct = 215,
163 NcepOpcAutomatedProduct = 220,
164 Missing = 255,
165}
166impl From<u8> for Grib2TableA {
167 fn from(val: u8) -> Self {
168 match val {
169 2 => Self::UltraVioletIndexModel,
170 3 => Self::NcepArlTransportAndDispersionModel,
171 4 => Self::NcepArlSmokeModel,
172 5 => Self::SatelliteDerivedPrecipitationAndTemperaturesFromIr,
173 6 => Self::NcepArlDustModel,
174 10 => Self::GlobalWindWaveForecastModel,
175 11 => Self::GlobalMultiGridWaveModelStaticGrids,
176 12 => Self::ProbabilisticStormSurgePSurge,
177 13 => Self::HurricaneMultiGridWaveModel,
178 14 => Self::ExtraTropicalStormSurgeAtlanticDomain,
179 15 => Self::NearshoreWavePredictionSystemNwps,
180 16 => Self::ExtraTropicalStormSurgeEtss,
181 17 => Self::ExtraTropicalStormSurgePacificDomain,
182 18 => Self::ProbabilisticExtraTropicalStormSurgePEtss,
183 20 => Self::ExtraTropicalStormSurgeMicronesiaDomain,
184 21 => Self::ExtraTropicalStormSurgeAtlanticDomain3d,
185 22 => Self::ExtraTropicalStormSurgePacificDomain3d,
186 23 => Self::ExtraTropicalStormSurgeMicronesiaDomain3d,
187 25 => Self::SnowCoverAnalysis,
188 30 => Self::ForecasterGeneratedField,
189 31 => Self::ValueAddedPostProcessedField,
190 42 => Self::GlobalOptimumInterpolationAnalysisGoiFromGfsModel,
191 43 => Self::GlobalOptimumInterpolationAnalysisGoiFromFinalRun,
192 44 => Self::SeaSurfaceTemperatureAnalysis,
193 45 => Self::CoastalOceanCirculationModel,
194 46 => Self::HycomGlobal,
195 47 => Self::HycomNorthPacificBasin,
196 48 => Self::HycomNorthAtlanticBasin,
197 49 => Self::OzoneAnalysisFromTirosObservations,
198 52 => Self::OzoneAnalysisFromNimbus7Observations,
199 64 => Self::RegionalOptimumInterpolationAnalysisRoi,
200 68 => Self::_180WaveTriangular18LayerSpectralModelFromGfsModel,
201 69 => Self::WaveTriangular18LayerSpectralModelFromMediumRangeForecastRun,
202 70 => Self::QuasiLagrangianHurricaneModelQlm,
203 71 => Self::HurricaneWeatherResearchAndForecastingHwrf,
204 72 => Self::HurricaneNonHydrostaticMultiscaleModelOnTheBGridHnmmb,
205 73 => Self::FogForecastModelOceanProdCenter,
206 74 => Self::GulfOfMexicoWindWave,
207 75 => Self::GulfOfAlaskaWindWave,
208 76 => Self::BiasCorrectedMediumRangeForecast,
209 77 => Self::_126WaveTriangular28LayerSpectralModelFromGfsModel,
210 78 => Self::_126WaveTriangular28LayerSpectralModelFromMediumRangeForecastRun,
211 80 => Self::WaveTriangular28LayerSpectralModelFromMediumRangeForecastRun,
212 81 => Self::AnalysisFromGfsGlobalForecastSystem,
213 82 => Self::AnalysisFromGdasGlobalDataAssimilationSystem,
214 83 => Self::HighResolutionRapidRefreshHrrr,
215 84 => Self::MesoNamModelCurrently12Km,
216 85 => Self::RealTimeOceanForecastSystemRtofs,
217 86 => Self::EarlyHurricaneWindSpeedProbabilityModel,
218 87 => Self::CacEnsembleForecastsFromSpectralEnsmb,
219 88 => Self::NoaaWaveWatchIiiNww3OceanWaveModel,
220 89 => Self::NonHydrostaticMesoModelNmmCurrently8Km,
221 90 => Self::WaveTriangular28LayerSpectralModelExtensionOfMediumRangeForecastRun,
222 91 => Self::WaveTriangular28LayerSpectralModelExtensionOfGfsModel,
223 92 => Self::WaveTriangular28LayerSpectralModelRunFromMediumRangeForecastFinalAnalysis,
224 93 => Self::WaveTriangular28LayerSpectralModelRunFromT62GdasAnalysisOfMediumRangeForecastRun,
225 94 => Self::T170L42GlobalSpectralModelFromMrfRun,
226 95 => Self::T126L42GlobalSpectralModelFromMrfRun,
227 96 => Self::GlobalForecastSystemModel,
228 98 => Self::ClimateForecastSystemModel,
229 99 => Self::MiscellaneousTestId99,
230 100 => Self::MiscellaneousTestId100,
231 101 => Self::ConventionalObservationReAnalysisCore,
232 104 => Self::NationalBlendGrib,
233 105 => Self::RapidRefreshRap,
234 107 => Self::GlobalEnsembleForecastSystemGefs,
235 108 => Self::LocalizedAviationMosProgramLamp,
236 109 => Self::RealTimeMesoscaleAnalysisRtma,
237 110 => Self::NamModel15KmVersion,
238 111 => Self::NamModelGenericResolution,
239 112 => Self::WrfNmmModelGenericResolution,
240 113 => Self::ProductsFromNcepSrefProcessing,
241 114 => Self::NaefsProductsFromJoinedNcepCmcGlobalEnsembles,
242 115 => Self::DownscaledGfsFromNamExtension,
243 116 => Self::WrfEmModelGenericResolution,
244 117 => Self::NemsGfsAerosolComponent,
245 118 => Self::UnrestrictedMesoscaleAnalysisUrma,
246 119 => Self::WamWholeAtmosphereModel,
247 120 => Self::IceConcentrationAnalysis,
248 121 => Self::WesternNorthAtlanticRegionalWaveModel,
249 122 => Self::AlaskaWatersRegionalWaveModel,
250 123 => Self::NorthAtlanticHurricaneWaveModel,
251 124 => Self::EasternNorthPacificRegionalWaveModel,
252 125 => Self::NorthPacificHurricaneWaveModel,
253 126 => Self::SeaIceForecastModel,
254 127 => Self::LakeIceForecastModel,
255 128 => Self::GlobalOceanForecastModel,
256 129 => Self::GlobalOceanDataAnalysisSystemGodas,
257 130 => Self::MergeOfFieldsFromTheRucNamAndSpectralModel,
258 131 => Self::GreatLakesWaveModel,
259 132 => Self::HighResolutionEnsembleForecastHref,
260 133 => Self::GreatLakesShortRangeWaveModel,
261 134 => Self::RapidRefreshForecastSystemRrfs,
262 135 => Self::HurricaneAnalysisAndForecastSystemHafs,
263 140 => Self::NorthAmericanRegionalReanalysisNarr,
264 141 => Self::LandDataAssimilationAndForecastSystem,
265 150 => Self::NwsRiverForecastSystemNwsrfs,
266 151 => Self::NwsFlashFloodGuidanceSystemNwsffgs,
267 152 => Self::Wsr88dStageIiPrecipitationAnalysis,
268 153 => Self::Wsr88dStageIiiPrecipitationAnalysis,
269 180 => Self::QuantitativePrecipitationForecastGeneratedByNcep,
270 181 => Self::RiverForecastCenterQuantitativePrecipitationForecastMosaicGeneratedByNcep,
271 182 => Self::RiverForecastCenterQuantitativePrecipitationEstimateMosaicGeneratedByNcep,
272 183 => Self::NdfdProductGeneratedByNcepHpc,
273 184 => Self::ClimatologicalCalibratedPrecipitationAnalysisCcpa,
274 190 => Self::NationalConvectiveWeatherDiagnosticGeneratedByNcepAwc,
275 191 => Self::CurrentIcingPotentialAutomatedProductGeneratedByNcepAwc,
276 192 => Self::AnalysisProductFromNcepAwc,
277 193 => Self::ForecastProductFromNcepAwc,
278 195 => Self::ClimateDataAssimilationSystem2Cdas2,
279 196 => Self::ClimateDataAssimilationSystem2Cdas2UsedForRegenerationRuns,
280 197 => Self::ClimateDataAssimilationSystemCdas,
281 198 => Self::ClimateDataAssimilationSystemCdasUsedForRegenerationRuns,
282 199 => Self::ClimateForecastSystemReanalysisCfsr,
283 200 => Self::CpcManualForecastProduct,
284 201 => Self::CpcAutomatedProduct,
285 210 => Self::EpaAirQualityForecastNorthEastUsDomain,
286 211 => Self::EpaAirQualityForecastEasternUsDomain,
287 215 => Self::SpcManualForecastProduct,
288 220 => Self::NcepOpcAutomatedProduct,
289 _ => Self::Missing,
290 }
291 }
292}
293impl core::fmt::Display for Grib2TableA {
294 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
295 let desc = match self {
296 Self::UltraVioletIndexModel => "Ultra Violet Index Model",
297 Self::NcepArlTransportAndDispersionModel => "NCEP/ARL Transport and Dispersion Model",
298 Self::NcepArlSmokeModel => "NCEP/ARL Smoke Model",
299 Self::SatelliteDerivedPrecipitationAndTemperaturesFromIr => "Satellite Derived Precipitation and temperatures, from IR (See PDS Octet 41 ... for specific satellite ID)",
300 Self::NcepArlDustModel => "NCEP/ARL Dust Model",
301 Self::GlobalWindWaveForecastModel => "Global Wind-Wave Forecast Model",
302 Self::GlobalMultiGridWaveModelStaticGrids => "Global Multi-Grid Wave Model (Static Grids)",
303 Self::ProbabilisticStormSurgePSurge => "Probabilistic Storm Surge (P-Surge)",
304 Self::HurricaneMultiGridWaveModel => "Hurricane Multi-Grid Wave Model",
305 Self::ExtraTropicalStormSurgeAtlanticDomain => "Extra-tropical Storm Surge Atlantic Domain",
306 Self::NearshoreWavePredictionSystemNwps => "Nearshore Wave Prediction System (NWPS)",
307 Self::ExtraTropicalStormSurgeEtss => "Extra-Tropical Storm Surge (ETSS)",
308 Self::ExtraTropicalStormSurgePacificDomain => "Extra-tropical Storm Surge Pacific Domain",
309 Self::ProbabilisticExtraTropicalStormSurgePEtss => "Probabilistic Extra-Tropical Storm Surge (P-ETSS)",
310 Self::ExtraTropicalStormSurgeMicronesiaDomain => "Extra-tropical Storm Surge Micronesia Domain",
311 Self::ExtraTropicalStormSurgeAtlanticDomain3d => "Extra-tropical Storm Surge Atlantic Domain (3D)",
312 Self::ExtraTropicalStormSurgePacificDomain3d => "Extra-tropical Storm Surge Pacific Domain (3D)",
313 Self::ExtraTropicalStormSurgeMicronesiaDomain3d => "Extra-tropical Storm Surge Micronesia Domain (3D)",
314 Self::SnowCoverAnalysis => "Snow Cover Analysis",
315 Self::ForecasterGeneratedField => "Forecaster generated field",
316 Self::ValueAddedPostProcessedField => "Value added post processed field",
317 Self::GlobalOptimumInterpolationAnalysisGoiFromGfsModel => "Global Optimum Interpolation Analysis (GOI) from GFS model",
318 Self::GlobalOptimumInterpolationAnalysisGoiFromFinalRun => "Global Optimum Interpolation Analysis (GOI) from \"Final\" run",
319 Self::SeaSurfaceTemperatureAnalysis => "Sea Surface Temperature Analysis",
320 Self::CoastalOceanCirculationModel => "Coastal Ocean Circulation Model",
321 Self::HycomGlobal => "HYCOM - Global",
322 Self::HycomNorthPacificBasin => "HYCOM - North Pacific basin",
323 Self::HycomNorthAtlanticBasin => "HYCOM - North Atlantic basin",
324 Self::OzoneAnalysisFromTirosObservations => "Ozone Analysis from TIROS Observations",
325 Self::OzoneAnalysisFromNimbus7Observations => "Ozone Analysis from Nimbus 7 Observations",
326 Self::RegionalOptimumInterpolationAnalysisRoi => "Regional Optimum Interpolation Analysis (ROI)",
327 Self::_180WaveTriangular18LayerSpectralModelFromGfsModel => "80 wave triangular, 18-layer Spectral model from GFS model",
328 Self::WaveTriangular18LayerSpectralModelFromMediumRangeForecastRun => "80 wave triangular, 18 layer Spectral model from \"Medium Range Forecast\" run",
329 Self::QuasiLagrangianHurricaneModelQlm => "Quasi-Lagrangian Hurricane Model (QLM)",
330 Self::HurricaneWeatherResearchAndForecastingHwrf => "Hurricane Weather Research and Forecasting (HWRF)",
331 Self::HurricaneNonHydrostaticMultiscaleModelOnTheBGridHnmmb => "Hurricane Non-Hydrostatic Multiscale Model on the B Grid (HNMMB)",
332 Self::FogForecastModelOceanProdCenter => "Fog Forecast model - Ocean Prod. Center",
333 Self::GulfOfMexicoWindWave => "Gulf of Mexico Wind/Wave",
334 Self::GulfOfAlaskaWindWave => "Gulf of Alaska Wind/Wave",
335 Self::BiasCorrectedMediumRangeForecast => "Bias corrected Medium Range Forecast",
336 Self::_126WaveTriangular28LayerSpectralModelFromGfsModel => "126 wave triangular, 28 layer Spectral model from GFS model",
337 Self::_126WaveTriangular28LayerSpectralModelFromMediumRangeForecastRun => "126 wave triangular, 28 layer Spectral model from \"Medium Range Forecast\" run",
338 Self::WaveTriangular28LayerSpectralModelFromMediumRangeForecastRun => "62 wave triangular, 28 layer Spectral model from \"Medium Range Forecast\" run",
339 Self::AnalysisFromGfsGlobalForecastSystem => "Analysis from GFS (Global Forecast System)",
340 Self::AnalysisFromGdasGlobalDataAssimilationSystem => "Analysis from GDAS (Global Data Assimilation System)",
341 Self::HighResolutionRapidRefreshHrrr => "High Resolution Rapid Refresh (HRRR)",
342 Self::MesoNamModelCurrently12Km => "MESO NAM Model (currently 12 km)",
343 Self::RealTimeOceanForecastSystemRtofs => "Real Time Ocean Forecast System (RTOFS)",
344 Self::EarlyHurricaneWindSpeedProbabilityModel => "Early Hurricane Wind Speed Probability Model",
345 Self::CacEnsembleForecastsFromSpectralEnsmb => "CAC Ensemble Forecasts from Spectral (ENSMB)",
346 Self::NoaaWaveWatchIiiNww3OceanWaveModel => "NOAA Wave Watch III (NWW3) Ocean Wave Model",
347 Self::NonHydrostaticMesoModelNmmCurrently8Km => "Non-hydrostatic Meso Model (NMM) (Currently 8 km)",
348 Self::WaveTriangular28LayerSpectralModelExtensionOfMediumRangeForecastRun => "62 wave triangular, 28 layer spectral model extension of the \"Medium Range Forecast\" run",
349 Self::WaveTriangular28LayerSpectralModelExtensionOfGfsModel => "62 wave triangular, 28 layer spectral model extension of the GFS model",
350 Self::WaveTriangular28LayerSpectralModelRunFromMediumRangeForecastFinalAnalysis => "62 wave triangular, 28 layer spectral model run from the \"Medium Range Forecast\" final analysis",
351 Self::WaveTriangular28LayerSpectralModelRunFromT62GdasAnalysisOfMediumRangeForecastRun => "62 wave triangular, 28 layer spectral model run from the T62 GDAS analysis of the \"Medium Range Forecast\" run",
352 Self::T170L42GlobalSpectralModelFromMrfRun => "T170/L42 Global Spectral Model from MRF run",
353 Self::T126L42GlobalSpectralModelFromMrfRun => "T126/L42 Global Spectral Model from MRF run",
354 Self::GlobalForecastSystemModel => "Global Forecast System Model. T1534 - Forecast hours 00-384; T574 - Forecast hours 00-192; T190 - Forecast hours 204-384",
355 Self::ClimateForecastSystemModel => "Climate Forecast System Model -- Atmospheric model (GFS) coupled to a multi level ocean model. Currently GFS spectral model at T62, 64 levels coupled to 40 level MOM3 ocean model.",
356 Self::MiscellaneousTestId99 => "Miscellaneous Test ID",
357 Self::MiscellaneousTestId100 => "Miscellaneous Test ID",
358 Self::ConventionalObservationReAnalysisCore => "Conventional Observation Re-Analysis (CORE)",
359 Self::NationalBlendGrib => "National Blend GRIB",
360 Self::RapidRefreshRap => "Rapid Refresh (RAP)",
361 Self::GlobalEnsembleForecastSystemGefs => "Global Ensemble Forecast System (GEFS)",
362 Self::LocalizedAviationMosProgramLamp => "Localized Aviation MOS Program (LAMP)",
363 Self::RealTimeMesoscaleAnalysisRtma => "Real Time Mesoscale Analysis (RTMA)",
364 Self::NamModel15KmVersion => "NAM Model - 15km version",
365 Self::NamModelGenericResolution => "NAM model, generic resolution (Used in SREF processing)",
366 Self::WrfNmmModelGenericResolution => "WRF-NMM model, generic resolution (Used in various runs) NMM=Nondydrostatic Mesoscale Model (NCEP)",
367 Self::ProductsFromNcepSrefProcessing => "Products from NCEP SREF processing",
368 Self::NaefsProductsFromJoinedNcepCmcGlobalEnsembles => "NAEFS Products from joined NCEP, CMC global ensembles",
369 Self::DownscaledGfsFromNamExtension => "Downscaled GFS from NAM eXtension",
370 Self::WrfEmModelGenericResolution => "WRF-EM model, generic resolution (Used in various runs) EM - Eulerian Mass-core (NCAR - aka Advanced Research WRF)",
371 Self::NemsGfsAerosolComponent => "NEMS GFS Aerosol Component",
372 Self::UnrestrictedMesoscaleAnalysisUrma => "UnRestricted Mesoscale Analysis (URMA)",
373 Self::WamWholeAtmosphereModel => "WAM (Whole Atmosphere Model)",
374 Self::IceConcentrationAnalysis => "Ice Concentration Analysis",
375 Self::WesternNorthAtlanticRegionalWaveModel => "Western North Atlantic Regional Wave Model",
376 Self::AlaskaWatersRegionalWaveModel => "Alaska Waters Regional Wave Model",
377 Self::NorthAtlanticHurricaneWaveModel => "North Atlantic Hurricane Wave Model",
378 Self::EasternNorthPacificRegionalWaveModel => "Eastern North Pacific Regional Wave Model",
379 Self::NorthPacificHurricaneWaveModel => "North Pacific Hurricane Wave Model",
380 Self::SeaIceForecastModel => "Sea Ice Forecast Model",
381 Self::LakeIceForecastModel => "Lake Ice Forecast Model",
382 Self::GlobalOceanForecastModel => "Global Ocean Forecast Model",
383 Self::GlobalOceanDataAnalysisSystemGodas => "Global Ocean Data Analysis System (GODAS)",
384 Self::MergeOfFieldsFromTheRucNamAndSpectralModel => "Merge of fields from the RUC, NAM, and Spectral Model",
385 Self::GreatLakesWaveModel => "Great Lakes Wave Model",
386 Self::HighResolutionEnsembleForecastHref => "High Resolution Ensemble Forecast (HREF)",
387 Self::GreatLakesShortRangeWaveModel => "Great Lakes Short Range Wave Model",
388 Self::RapidRefreshForecastSystemRrfs => "Rapid Refresh Forecast System (RRFS)",
389 Self::HurricaneAnalysisAndForecastSystemHafs => "Hurricane Analysis and Forecast System (HAFS)",
390 Self::NorthAmericanRegionalReanalysisNarr => "North American Regional Reanalysis (NARR)",
391 Self::LandDataAssimilationAndForecastSystem => "Land Data Assimilation and Forecast System",
392 Self::NwsRiverForecastSystemNwsrfs => "NWS River Forecast System (NWSRFS)",
393 Self::NwsFlashFloodGuidanceSystemNwsffgs => "NWS Flash Flood Guidance System (NWSFFGS)",
394 Self::Wsr88dStageIiPrecipitationAnalysis => "WSR-88D Stage II Precipitation Analysis",
395 Self::Wsr88dStageIiiPrecipitationAnalysis => "WSR-88D Stage III Precipitation Analysis",
396 Self::QuantitativePrecipitationForecastGeneratedByNcep => "Quantitative Precipitation Forecast generated by NCEP",
397 Self::RiverForecastCenterQuantitativePrecipitationForecastMosaicGeneratedByNcep => "River Forecast Center Quantitative Precipitation Forecast mosaic generated by NCEP",
398 Self::RiverForecastCenterQuantitativePrecipitationEstimateMosaicGeneratedByNcep => "River Forecast Center Quantitative Precipitation estimate mosaic generated by NCEP",
399 Self::NdfdProductGeneratedByNcepHpc => "NDFD product generated by NCEP/HPC",
400 Self::ClimatologicalCalibratedPrecipitationAnalysisCcpa => "Climatological Calibrated Precipitation Analysis (CCPA)",
401 Self::NationalConvectiveWeatherDiagnosticGeneratedByNcepAwc => "National Convective Weather Diagnostic generated by NCEP/AWC",
402 Self::CurrentIcingPotentialAutomatedProductGeneratedByNcepAwc => "Current Icing Potential automated product generated by NCEP/AWC",
403 Self::AnalysisProductFromNcepAwc => "Analysis product from NCEP/AWC",
404 Self::ForecastProductFromNcepAwc => "Forecast product from NCEP/AWC",
405 Self::ClimateDataAssimilationSystem2Cdas2 => "Climate Data Assimilation System 2 (CDAS2)",
406 Self::ClimateDataAssimilationSystem2Cdas2UsedForRegenerationRuns => "Climate Data Assimilation System 2 (CDAS2) - used for regeneration runs",
407 Self::ClimateDataAssimilationSystemCdas => "Climate Data Assimilation System (CDAS)",
408 Self::ClimateDataAssimilationSystemCdasUsedForRegenerationRuns => "Climate Data Assimilation System (CDAS) - used for regeneration runs",
409 Self::ClimateForecastSystemReanalysisCfsr => "Climate Forecast System Reanalysis (CFSR) -- Atmospheric model (GFS) coupled to a multi level ocean, land and seaice model. GFS spectral model at T382, 64 levels coupled to 40 level MOM4 ocean model.",
410 Self::CpcManualForecastProduct => "CPC Manual Forecast Product",
411 Self::CpcAutomatedProduct => "CPC Automated Product",
412 Self::EpaAirQualityForecastNorthEastUsDomain => "EPA Air Quality Forecast - Currently North East US domain",
413 Self::EpaAirQualityForecastEasternUsDomain => "EPA Air Quality Forecast - Currently Eastern US domain",
414 Self::SpcManualForecastProduct => "SPC Manual Forecast Product",
415 Self::NcepOpcAutomatedProduct => "NCEP/OPC automated product",
416 Self::Missing => "Missing",
417 };
418 f.write_str(desc)
419 }
420}
421
422#[repr(u8)]
444#[allow(missing_docs)]
445#[derive(Debug, Clone, Copy, PartialEq, Eq)]
446pub enum Grib2TableC {
447 NcepReAnalysisProject = 1,
448 NcepEnsembleProducts = 2,
449 NcepCentralOperations = 3,
450 EnvironmentalModelingCenter = 4,
451 WeatherPredictionCenter = 5,
452 OceanPredictionCenter = 6,
453 ClimatePredictionCenter = 7,
454 AviationWeatherCenter = 8,
455 StormPredictionCenter = 9,
456 NationalHurricaneCenter = 10,
457 NwsTechniquesDevelopmentLaboratory = 11,
458 NesdisOfficeOfResearchAndApplications = 12,
459 FederalAviationAdministration = 13,
460 NwsMeteorologicalDevelopmentLaboratory = 14,
461 NorthAmericanRegionalReanalysisProject = 15,
462 SpaceWeatherPredictionCenter = 16,
463 EsrlGlobalSystemsDivision = 17,
464 NationalWaterCenter = 18,
465 Missing = 255,
466}
467impl From<u8> for Grib2TableC {
468 fn from(val: u8) -> Self {
469 match val {
470 1 => Self::NcepReAnalysisProject,
471 2 => Self::NcepEnsembleProducts,
472 3 => Self::NcepCentralOperations,
473 4 => Self::EnvironmentalModelingCenter,
474 5 => Self::WeatherPredictionCenter,
475 6 => Self::OceanPredictionCenter,
476 7 => Self::ClimatePredictionCenter,
477 8 => Self::AviationWeatherCenter,
478 9 => Self::StormPredictionCenter,
479 10 => Self::NationalHurricaneCenter,
480 11 => Self::NwsTechniquesDevelopmentLaboratory,
481 12 => Self::NesdisOfficeOfResearchAndApplications,
482 13 => Self::FederalAviationAdministration,
483 14 => Self::NwsMeteorologicalDevelopmentLaboratory,
484 15 => Self::NorthAmericanRegionalReanalysisProject,
485 16 => Self::SpaceWeatherPredictionCenter,
486 17 => Self::EsrlGlobalSystemsDivision,
487 18 => Self::NationalWaterCenter,
488 _ => Self::Missing,
489 }
490 }
491}
492impl core::fmt::Display for Grib2TableC {
493 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
494 let desc = match self {
495 Self::NcepReAnalysisProject => "NCEP Re-Analysis Project",
496 Self::NcepEnsembleProducts => "NCEP Ensemble Products",
497 Self::NcepCentralOperations => "NCEP Central Operations",
498 Self::EnvironmentalModelingCenter => "Environmental Modeling Center",
499 Self::WeatherPredictionCenter => "Weather Prediction Center",
500 Self::OceanPredictionCenter => "Ocean Prediction Center",
501 Self::ClimatePredictionCenter => "Climate Prediction Center",
502 Self::AviationWeatherCenter => "Aviation Weather Center",
503 Self::StormPredictionCenter => "Storm Prediction Center",
504 Self::NationalHurricaneCenter => "National Hurricane Center",
505 Self::NwsTechniquesDevelopmentLaboratory => "NWS Techniques Development Laboratory",
506 Self::NesdisOfficeOfResearchAndApplications => {
507 "NESDIS Office of Research and Applications"
508 }
509 Self::FederalAviationAdministration => "Federal Aviation Administration",
510 Self::NwsMeteorologicalDevelopmentLaboratory => {
511 "NWS Meteorological Development Laboratory"
512 }
513 Self::NorthAmericanRegionalReanalysisProject => {
514 "North American Regional Reanalysis Project"
515 }
516 Self::SpaceWeatherPredictionCenter => "Space Weather Prediction Center",
517 Self::EsrlGlobalSystemsDivision => "ESRL Global Systems Division",
518 Self::NationalWaterCenter => "National Water Center",
519 Self::Missing => "Missing",
520 };
521 f.write_str(desc)
522 }
523}