gistools/readers/grib2/sections/_0/
tables.rs

1#![cfg_attr(feature = "nightly", coverage(off))]
2
3/// Table 0 - NATIONAL/INTERNATIONAL ORIGINATING CENTERS
4///
5/// [Read more...](https://www.nco.ncep.noaa.gov/pmb/docs/on388/table0.html)
6#[repr(u8)]
7#[allow(missing_docs)]
8#[derive(Debug, Clone, Copy, PartialEq, Eq)]
9pub enum Grib2Table0 {
10    MelbourneWMC1 = 1,
11    MelbourneWMC2 = 2,
12    MelbourneWMC3 = 3,
13    MoscowWMC1 = 4,
14    MoscowWMC2 = 5,
15    MoscowWMC3 = 6,
16    UsNationalWeatherServiceNcepWMC = 7,
17    UsNationalWeatherServiceNwstgWMC = 8,
18    UsNationalWeatherServiceOtherWMC = 9,
19    CairoRsmcRafc1 = 10,
20    CairoRsmcRafc2 = 11,
21    DakarRsmcRafc1 = 12,
22    DakarRsmcRafc2 = 13,
23    NairobiRsmcRafc1 = 14,
24    NairobiRsmcRafc2 = 15,
25    CasablancaRsmc = 16,
26    TunisRsmc = 17,
27    TunisCasablancaRsmc1 = 18,
28    TunisCasablancaRsmc2 = 19,
29    LasPalmasRafc = 20,
30    AlgiersRsmc = 21,
31    Acmad = 22,
32    MozambiqueNmc = 23,
33    PretoriaRsmc = 24,
34    LaReunionRsmc = 25,
35    KhabarovskRsmc1 = 26,
36    KhabarovskRsmc2 = 27,
37    NewDelhiRsmcRafc1 = 28,
38    NewDelhiRsmcRafc2 = 29,
39    NovosibirskRsmc1 = 30,
40    NovosibirskRsmc2 = 31,
41    TashkentRsmc = 32,
42    JeddahRsmc = 33,
43    TokyoRsmcJapaneseMeteorologicalAgency1 = 34,
44    TokyoRsmcJapaneseMeteorologicalAgency2 = 35,
45    Bankok = 36,
46    UlanBator = 37,
47    BeijingRsmc1 = 38,
48    BeijingRsmc2 = 39,
49    Seoul = 40,
50    BuenosAiresRsmcRafc1 = 41,
51    BuenosAiresRsmcRafc2 = 42,
52    BrasiliaRsmcRafc1 = 43,
53    BrasiliaRsmcRafc2 = 44,
54    Santiago = 45,
55    BrazilianSpaceAgencyInpe = 46,
56    ColumbiaNmc = 47,
57    EcuadorNmc = 48,
58    PeruNmc = 49,
59    VenezuelaNmc = 50,
60    MiamiRsmcRafc = 51,
61    MiamiRsmcNationalHurricaneCenter = 52,
62    CanadianMeteorologicalServiceMontrealRsmc1 = 53,
63    CanadianMeteorologicalServiceMontrealRsmc2 = 54,
64    SanFrancisco = 55,
65    ArincCenter = 56,
66    UsAirForceAirForceGlobalWeatherCenter = 57,
67    FleetNumericalMeteorologyAndOceanographyCenterMontereyCaUsa = 58,
68    TheNoaaForecastSystemsLabBoulderCoUsa = 59,
69    NationalCenterForAtmosphericResearchNcarBoulderCo = 60,
70    ServiceArgosLandoverMdUsa = 61,
71    UsNavalOceanographicOffice = 62,
72    InternationalResearchInstitudeForClimateAndSociety = 63,
73    Honolulu = 64,
74    DarwinRsmc1 = 65,
75    DarwinRsmc2 = 66,
76    MelbourneRsmc = 67,
77    WellingtonRsmcRafc1 = 69,
78    WellingtonRsmcRafc2 = 70,
79    NadiRsmc = 71,
80    Singapore = 72,
81    MalaysiaNmc = 73,
82    UkMetOfficeExeterRsmc1 = 74,
83    UkMetOfficeExeterRsmc2 = 75,
84    MoscowRsmcRafc = 76,
85    OffenbachRsmc1 = 78,
86    OffenbachRsmc2 = 79,
87    RomeRsmc1 = 80,
88    RomeRsmc2 = 81,
89    Norrkoping1 = 82,
90    Norrkoping2 = 83,
91    FrenchWeatherServiceToulouse1 = 84,
92    FrenchWeatherServiceToulouse2 = 85,
93    Helsinki = 86,
94    Belgrade = 87,
95    Oslo = 88,
96    Prague = 89,
97    Episkopi = 90,
98    Ankara = 91,
99    FrankfurtMainRafc = 92,
100    LondonWafc = 93,
101    Copenhagen = 94,
102    Rota = 95,
103    Athens = 96,
104    EuropeanSpaceAgencyEsa = 97,
105    EuropeanCenterForMediumRangeWeatherForecastsRsmc = 98,
106    DeBiltNetherlands = 99,
107    Brazzaville = 100,
108    Abidjan = 101,
109    LibyanArabJamahiriyaNmc = 102,
110    MadagascarNmc = 103,
111    MauritiusNmc = 104,
112    NigerNmc = 105,
113    SeychellesNmc = 106,
114    UgandaNmc = 107,
115    UnitedRepublicOfTanzaniaNmc = 108,
116    ZimbabweNmc = 109,
117    HongKong = 110,
118    AfghanistanNmc = 111,
119    BahrainNmc = 112,
120    BangladeshNmc = 113,
121    BhutanNmc = 114,
122    CambodiaNmc = 115,
123    DemocraticPeoplesRepublicOfKoreaNmc = 116,
124    IslamicRepublicOfIranNmc = 117,
125    IraqNmc = 118,
126    KazakhstanNmc = 119,
127    KuwaitNmc = 120,
128    KyrgyzRepublicNmc = 121,
129    LaoPeoplesDemocraticRepublicNmc = 122,
130    MacaoChina = 123,
131    MaldivesNmc = 124,
132    MyanmarNmc = 125,
133    NepalNmc = 126,
134    OmanNmc = 127,
135    PakistanNmc = 128,
136    QatarNmc = 129,
137    YemenNmc = 130,
138    SriLankaNmc = 131,
139    TajikistanNmc = 132,
140    TurkmenistanNmc = 133,
141    UnitedArabEmiratesNmc = 134,
142    UzbekistanNmc = 135,
143    VietNamNmc = 136,
144    BoliviaNmc = 140,
145    GuyanaNmc = 141,
146    ParaguayNmc = 142,
147    SurinameNmc = 143,
148    UruguayNmc = 144,
149    FrenchGuyana = 145,
150    BrazilianNavyHydrographicCenter = 146,
151    NationalCommissionOnSpaceActivitiesArgentina = 147,
152    BrazilianDepartmentOfAirspaceControlDecea = 148,
153    AntiguaAndBarbudaNmc = 150,
154    BahamasNmc = 151,
155    BarbadosNmc = 152,
156    BelizeNmc = 153,
157    BritishCaribbeanTerritoriesCenter = 154,
158    SanJose = 155,
159    CubaNmc = 156,
160    DominicaNmc = 157,
161    DominicanRepublicNmc = 158,
162    ElSalvadorNmc = 159,
163    UsNoaaNesdis = 160,
164    UsNoaaOfficeOfOceanicAndAtmosphericResearch = 161,
165    GuatemalaNmc = 162,
166    HaitiNmc = 163,
167    HondurasNmc = 164,
168    JamaicaNmc = 165,
169    MexicoCity = 166,
170    NetherlandsAntillesAndArubaNmc = 167,
171    NicaraguaNmc = 168,
172    PanamaNmc = 169,
173    SaintLuciaNmc = 170,
174    TrinidadAndTobagoNmc = 171,
175    FrenchDepartmentsInRaIv = 172,
176    UsNationalAeronauticsAndSpaceAdministrationNasa = 173,
177    IntegratedSystemDataManagerMarineEnvironmentalDataServiceIsdmMedsCanada = 174,
178    UsCooperativeInstitudeForMeteorologicalSatelliteStudies = 176,
179    CookIslandsNmc = 190,
180    FrenchPolynesiaNmc = 191,
181    TongaNmc = 192,
182    VanuatuNmc = 193,
183    BruneiNmc = 194,
184    IndonesiaNmc = 195,
185    KiribatiNmc = 196,
186    FederatedStatesOfMicronesiaNmc = 197,
187    NewCaledoniaNmc = 198,
188    Niue = 199,
189    PapuaNewGuineaNmc = 200,
190    PhilippinesNmc = 201,
191    SamoaNmc = 202,
192    SolomonIslandsNmc = 203,
193    NarionalInstitudeOfWaterAndAtmosphericResearchNewZealand = 204,
194    FrascatiEsaEsrin = 210,
195    Lanion = 211,
196    Lisbon = 212,
197    Reykjavik = 213,
198    Madrid = 214,
199    Zurich = 215,
200    ServiceArgosToulouse = 216,
201    Bratislava = 217,
202    Budapest = 218,
203    Ljubljana = 219,
204    Warsaw = 220,
205    Zagreb = 221,
206    AlbaniaNmc = 222,
207    ArmeniaNmc = 223,
208    AustriaNmc = 224,
209    AzerbaijanNmc = 225,
210    BelarusNmc = 226,
211    BelgiumNmc = 227,
212    BosniaAndHerzegovinaNmc = 228,
213    BulgariaNmc = 229,
214    CyprusNmc = 230,
215    EstoniaNmc = 231,
216    GeorgiaNmc = 232,
217    Dublin = 233,
218    IsraelNmc = 234,
219    JordanNmc = 235,
220    LatviaNmc = 236,
221    LebanonNmc = 237,
222    LithuaniaNmc = 238,
223    Luxembourg = 239,
224    MaltaNmc = 240,
225    Monaco = 241,
226    RomaniaNmc = 242,
227    SyrianArabRepublicNmc = 243,
228    TheFormerYugoslavRepublicOfMacedoniaNmc = 244,
229    UkraineNmc = 245,
230    RepublicOfMoldovaNmc = 246,
231    OperationalProgrammeForTheExchangeOfWeatherRadarInformationOperaEumetnet = 247,
232    ConsortiumForSmallScaleModellingCosmo = 250,
233    EumetsatOperationsCenter = 254,
234    MissingValue = 255,
235}
236impl From<u8> for Grib2Table0 {
237    fn from(val: u8) -> Self {
238        match val {
239            1 => Self::MelbourneWMC1,
240            2 => Self::MelbourneWMC2,
241            3 => Self::MelbourneWMC3,
242            4 => Self::MoscowWMC1,
243            5 => Self::MoscowWMC2,
244            6 => Self::MoscowWMC3,
245            7 => Self::UsNationalWeatherServiceNcepWMC,
246            8 => Self::UsNationalWeatherServiceNwstgWMC,
247            9 => Self::UsNationalWeatherServiceOtherWMC,
248            10 => Self::CairoRsmcRafc1,
249            11 => Self::CairoRsmcRafc2,
250            12 => Self::DakarRsmcRafc1,
251            13 => Self::DakarRsmcRafc2,
252            14 => Self::NairobiRsmcRafc1,
253            15 => Self::NairobiRsmcRafc2,
254            16 => Self::CasablancaRsmc,
255            17 => Self::TunisRsmc,
256            18 => Self::TunisCasablancaRsmc1,
257            19 => Self::TunisCasablancaRsmc2,
258            20 => Self::LasPalmasRafc,
259            21 => Self::AlgiersRsmc,
260            22 => Self::Acmad,
261            23 => Self::MozambiqueNmc,
262            24 => Self::PretoriaRsmc,
263            25 => Self::LaReunionRsmc,
264            26 => Self::KhabarovskRsmc1,
265            27 => Self::KhabarovskRsmc2,
266            28 => Self::NewDelhiRsmcRafc1,
267            29 => Self::NewDelhiRsmcRafc2,
268            30 => Self::NovosibirskRsmc1,
269            31 => Self::NovosibirskRsmc2,
270            32 => Self::TashkentRsmc,
271            33 => Self::JeddahRsmc,
272            34 => Self::TokyoRsmcJapaneseMeteorologicalAgency1,
273            35 => Self::TokyoRsmcJapaneseMeteorologicalAgency2,
274            36 => Self::Bankok,
275            37 => Self::UlanBator,
276            38 => Self::BeijingRsmc1,
277            39 => Self::BeijingRsmc2,
278            40 => Self::Seoul,
279            41 => Self::BuenosAiresRsmcRafc1,
280            42 => Self::BuenosAiresRsmcRafc2,
281            43 => Self::BrasiliaRsmcRafc1,
282            44 => Self::BrasiliaRsmcRafc2,
283            45 => Self::Santiago,
284            46 => Self::BrazilianSpaceAgencyInpe,
285            47 => Self::ColumbiaNmc,
286            48 => Self::EcuadorNmc,
287            49 => Self::PeruNmc,
288            50 => Self::VenezuelaNmc,
289            51 => Self::MiamiRsmcRafc,
290            52 => Self::MiamiRsmcNationalHurricaneCenter,
291            53 => Self::CanadianMeteorologicalServiceMontrealRsmc1,
292            54 => Self::CanadianMeteorologicalServiceMontrealRsmc2,
293            55 => Self::SanFrancisco,
294            56 => Self::ArincCenter,
295            57 => Self::UsAirForceAirForceGlobalWeatherCenter,
296            58 => Self::FleetNumericalMeteorologyAndOceanographyCenterMontereyCaUsa,
297            59 => Self::TheNoaaForecastSystemsLabBoulderCoUsa,
298            60 => Self::NationalCenterForAtmosphericResearchNcarBoulderCo,
299            61 => Self::ServiceArgosLandoverMdUsa,
300            62 => Self::UsNavalOceanographicOffice,
301            63 => Self::InternationalResearchInstitudeForClimateAndSociety,
302            64 => Self::Honolulu,
303            65 => Self::DarwinRsmc1,
304            66 => Self::DarwinRsmc2,
305            67 => Self::MelbourneRsmc,
306            69 => Self::WellingtonRsmcRafc1,
307            70 => Self::WellingtonRsmcRafc2,
308            71 => Self::NadiRsmc,
309            72 => Self::Singapore,
310            73 => Self::MalaysiaNmc,
311            74 => Self::UkMetOfficeExeterRsmc1,
312            75 => Self::UkMetOfficeExeterRsmc2,
313            76 => Self::MoscowRsmcRafc,
314            78 => Self::OffenbachRsmc1,
315            79 => Self::OffenbachRsmc2,
316            80 => Self::RomeRsmc1,
317            81 => Self::RomeRsmc2,
318            82 => Self::Norrkoping1,
319            83 => Self::Norrkoping2,
320            84 => Self::FrenchWeatherServiceToulouse1,
321            85 => Self::FrenchWeatherServiceToulouse2,
322            86 => Self::Helsinki,
323            87 => Self::Belgrade,
324            88 => Self::Oslo,
325            89 => Self::Prague,
326            90 => Self::Episkopi,
327            91 => Self::Ankara,
328            92 => Self::FrankfurtMainRafc,
329            93 => Self::LondonWafc,
330            94 => Self::Copenhagen,
331            95 => Self::Rota,
332            96 => Self::Athens,
333            97 => Self::EuropeanSpaceAgencyEsa,
334            98 => Self::EuropeanCenterForMediumRangeWeatherForecastsRsmc,
335            99 => Self::DeBiltNetherlands,
336            100 => Self::Brazzaville,
337            101 => Self::Abidjan,
338            102 => Self::LibyanArabJamahiriyaNmc,
339            103 => Self::MadagascarNmc,
340            104 => Self::MauritiusNmc,
341            105 => Self::NigerNmc,
342            106 => Self::SeychellesNmc,
343            107 => Self::UgandaNmc,
344            108 => Self::UnitedRepublicOfTanzaniaNmc,
345            109 => Self::ZimbabweNmc,
346            110 => Self::HongKong,
347            111 => Self::AfghanistanNmc,
348            112 => Self::BahrainNmc,
349            113 => Self::BangladeshNmc,
350            114 => Self::BhutanNmc,
351            115 => Self::CambodiaNmc,
352            116 => Self::DemocraticPeoplesRepublicOfKoreaNmc,
353            117 => Self::IslamicRepublicOfIranNmc,
354            118 => Self::IraqNmc,
355            119 => Self::KazakhstanNmc,
356            120 => Self::KuwaitNmc,
357            121 => Self::KyrgyzRepublicNmc,
358            122 => Self::LaoPeoplesDemocraticRepublicNmc,
359            123 => Self::MacaoChina,
360            124 => Self::MaldivesNmc,
361            125 => Self::MyanmarNmc,
362            126 => Self::NepalNmc,
363            127 => Self::OmanNmc,
364            128 => Self::PakistanNmc,
365            129 => Self::QatarNmc,
366            130 => Self::YemenNmc,
367            131 => Self::SriLankaNmc,
368            132 => Self::TajikistanNmc,
369            133 => Self::TurkmenistanNmc,
370            134 => Self::UnitedArabEmiratesNmc,
371            135 => Self::UzbekistanNmc,
372            136 => Self::VietNamNmc,
373            140 => Self::BoliviaNmc,
374            141 => Self::GuyanaNmc,
375            142 => Self::ParaguayNmc,
376            143 => Self::SurinameNmc,
377            144 => Self::UruguayNmc,
378            145 => Self::FrenchGuyana,
379            146 => Self::BrazilianNavyHydrographicCenter,
380            147 => Self::NationalCommissionOnSpaceActivitiesArgentina,
381            148 => Self::BrazilianDepartmentOfAirspaceControlDecea,
382            150 => Self::AntiguaAndBarbudaNmc,
383            151 => Self::BahamasNmc,
384            152 => Self::BarbadosNmc,
385            153 => Self::BelizeNmc,
386            154 => Self::BritishCaribbeanTerritoriesCenter,
387            155 => Self::SanJose,
388            156 => Self::CubaNmc,
389            157 => Self::DominicaNmc,
390            158 => Self::DominicanRepublicNmc,
391            159 => Self::ElSalvadorNmc,
392            160 => Self::UsNoaaNesdis,
393            161 => Self::UsNoaaOfficeOfOceanicAndAtmosphericResearch,
394            162 => Self::GuatemalaNmc,
395            163 => Self::HaitiNmc,
396            164 => Self::HondurasNmc,
397            165 => Self::JamaicaNmc,
398            166 => Self::MexicoCity,
399            167 => Self::NetherlandsAntillesAndArubaNmc,
400            168 => Self::NicaraguaNmc,
401            169 => Self::PanamaNmc,
402            170 => Self::SaintLuciaNmc,
403            171 => Self::TrinidadAndTobagoNmc,
404            172 => Self::FrenchDepartmentsInRaIv,
405            173 => Self::UsNationalAeronauticsAndSpaceAdministrationNasa,
406            174 => Self::IntegratedSystemDataManagerMarineEnvironmentalDataServiceIsdmMedsCanada,
407            176 => Self::UsCooperativeInstitudeForMeteorologicalSatelliteStudies,
408            190 => Self::CookIslandsNmc,
409            191 => Self::FrenchPolynesiaNmc,
410            192 => Self::TongaNmc,
411            193 => Self::VanuatuNmc,
412            194 => Self::BruneiNmc,
413            195 => Self::IndonesiaNmc,
414            196 => Self::KiribatiNmc,
415            197 => Self::FederatedStatesOfMicronesiaNmc,
416            198 => Self::NewCaledoniaNmc,
417            199 => Self::Niue,
418            200 => Self::PapuaNewGuineaNmc,
419            201 => Self::PhilippinesNmc,
420            202 => Self::SamoaNmc,
421            203 => Self::SolomonIslandsNmc,
422            204 => Self::NarionalInstitudeOfWaterAndAtmosphericResearchNewZealand,
423            210 => Self::FrascatiEsaEsrin,
424            211 => Self::Lanion,
425            212 => Self::Lisbon,
426            213 => Self::Reykjavik,
427            214 => Self::Madrid,
428            215 => Self::Zurich,
429            216 => Self::ServiceArgosToulouse,
430            217 => Self::Bratislava,
431            218 => Self::Budapest,
432            219 => Self::Ljubljana,
433            220 => Self::Warsaw,
434            221 => Self::Zagreb,
435            222 => Self::AlbaniaNmc,
436            223 => Self::ArmeniaNmc,
437            224 => Self::AustriaNmc,
438            225 => Self::AzerbaijanNmc,
439            226 => Self::BelarusNmc,
440            227 => Self::BelgiumNmc,
441            228 => Self::BosniaAndHerzegovinaNmc,
442            229 => Self::BulgariaNmc,
443            230 => Self::CyprusNmc,
444            231 => Self::EstoniaNmc,
445            232 => Self::GeorgiaNmc,
446            233 => Self::Dublin,
447            234 => Self::IsraelNmc,
448            235 => Self::JordanNmc,
449            236 => Self::LatviaNmc,
450            237 => Self::LebanonNmc,
451            238 => Self::LithuaniaNmc,
452            239 => Self::Luxembourg,
453            240 => Self::MaltaNmc,
454            241 => Self::Monaco,
455            242 => Self::RomaniaNmc,
456            243 => Self::SyrianArabRepublicNmc,
457            244 => Self::TheFormerYugoslavRepublicOfMacedoniaNmc,
458            245 => Self::UkraineNmc,
459            246 => Self::RepublicOfMoldovaNmc,
460            247 => Self::OperationalProgrammeForTheExchangeOfWeatherRadarInformationOperaEumetnet,
461            250 => Self::ConsortiumForSmallScaleModellingCosmo,
462            254 => Self::EumetsatOperationsCenter,
463            _ => Self::MissingValue,
464        }
465    }
466}
467impl core::fmt::Display for Grib2Table0 {
468    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
469        let desc = match self {
470            Self::MelbourneWMC1 => "Melbourne (WMC)",
471            Self::MelbourneWMC2 => "Melbourne (WMC)",
472            Self::MelbourneWMC3 => "Melbourne (WMC)",
473            Self::MoscowWMC1 => "Moscow (WMC)",
474            Self::MoscowWMC2 => "Moscow (WMC)",
475            Self::MoscowWMC3 => "Moscow (WMC)",
476            Self::UsNationalWeatherServiceNcepWMC => "US National Weather Service - NCEP (WMC)",
477            Self::UsNationalWeatherServiceNwstgWMC => "US National Weather Service - NWSTG (WMC)",
478            Self::UsNationalWeatherServiceOtherWMC => "US National Weather Service - Other (WMC)",
479            Self::CairoRsmcRafc1 => "Cairo (RSMC/RAFC)",
480            Self::CairoRsmcRafc2 => "Cairo (RSMC/RAFC)",
481            Self::DakarRsmcRafc1 => "Dakar (RSMC/RAFC)",
482            Self::DakarRsmcRafc2 => "Dakar (RSMC/RAFC)",
483            Self::NairobiRsmcRafc1 => "Nairobi (RSMC/RAFC)",
484            Self::NairobiRsmcRafc2 => "Nairobi (RSMC/RAFC)",
485            Self::CasablancaRsmc => "Casablanca (RSMC)",
486            Self::TunisRsmc => "Tunis (RSMC)",
487            Self::TunisCasablancaRsmc1 => "Tunis-Casablanca (RSMC)",
488            Self::TunisCasablancaRsmc2 => "Tunis-Casablanca (RSMC)",
489            Self::LasPalmasRafc => "Las Palmas (RAFC)",
490            Self::AlgiersRsmc => "Algiers (RSMC)",
491            Self::Acmad => "ACMAD",
492            Self::MozambiqueNmc => "Mozambique (NMC)",
493            Self::PretoriaRsmc => "Pretoria (RSMC)",
494            Self::LaReunionRsmc => "La Reunion (RSMC)",
495            Self::KhabarovskRsmc1 => "Khabarovsk (RSMC)",
496            Self::KhabarovskRsmc2 => "Khabarovsk (RSMC)",
497            Self::NewDelhiRsmcRafc1 => "New Delhi (RSMC/RAFC)",
498            Self::NewDelhiRsmcRafc2 => "New Delhi (RSMC/RAFC)",
499            Self::NovosibirskRsmc1 => "Novosibirsk (RSMC)",
500            Self::NovosibirskRsmc2 => "Novosibirsk (RSMC)",
501            Self::TashkentRsmc => "Tashkent (RSMC)",
502            Self::JeddahRsmc => "Jeddah (RSMC)",
503            Self::TokyoRsmcJapaneseMeteorologicalAgency1 => {
504                "Tokyo (RSMC), Japanese Meteorological Agency"
505            }
506            Self::TokyoRsmcJapaneseMeteorologicalAgency2 => {
507                "Tokyo (RSMC), Japanese Meteorological Agency"
508            }
509            Self::Bankok => "Bankok",
510            Self::UlanBator => "Ulan Bator",
511            Self::BeijingRsmc1 => "Beijing (RSMC)",
512            Self::BeijingRsmc2 => "Beijing (RSMC)",
513            Self::Seoul => "Seoul",
514            Self::BuenosAiresRsmcRafc1 => "Buenos Aires (RSMC/RAFC)",
515            Self::BuenosAiresRsmcRafc2 => "Buenos Aires (RSMC/RAFC)",
516            Self::BrasiliaRsmcRafc1 => "Brasilia (RSMC/RAFC)",
517            Self::BrasiliaRsmcRafc2 => "Brasilia (RSMC/RAFC)",
518            Self::Santiago => "Santiago",
519            Self::BrazilianSpaceAgencyInpe => "Brazilian Space Agency - INPE",
520            Self::ColumbiaNmc => "Columbia (NMC)",
521            Self::EcuadorNmc => "Ecuador (NMC)",
522            Self::PeruNmc => "Peru (NMC)",
523            Self::VenezuelaNmc => "Venezuela (NMC)",
524            Self::MiamiRsmcRafc => "Miami (RSMC/RAFC)",
525            Self::MiamiRsmcNationalHurricaneCenter => "Miami (RSMC), National Hurricane Center",
526            Self::CanadianMeteorologicalServiceMontrealRsmc1 => {
527                "Canadian Meteorological Service - Montreal (RSMC)"
528            }
529            Self::CanadianMeteorologicalServiceMontrealRsmc2 => {
530                "Canadian Meteorological Service - Montreal (RSMC)"
531            }
532            Self::SanFrancisco => "San Francisco",
533            Self::ArincCenter => "ARINC Center",
534            Self::UsAirForceAirForceGlobalWeatherCenter => {
535                "US Air Force - Air Force Global Weather Center"
536            }
537            Self::FleetNumericalMeteorologyAndOceanographyCenterMontereyCaUsa => {
538                "Fleet Numerical Meteorology and Oceanography Center,Monterey,CA,USA"
539            }
540            Self::TheNoaaForecastSystemsLabBoulderCoUsa => {
541                "The NOAA Forecast Systems Lab, Boulder, CO, USA"
542            }
543            Self::NationalCenterForAtmosphericResearchNcarBoulderCo => {
544                "National Center for Atmospheric Research (NCAR), Boulder, CO"
545            }
546            Self::ServiceArgosLandoverMdUsa => "Service ARGOS - Landover, MD, USA",
547            Self::UsNavalOceanographicOffice => "US Naval Oceanographic Office",
548            Self::InternationalResearchInstitudeForClimateAndSociety => {
549                "International Research Institude for Climate and Society"
550            }
551            Self::Honolulu => "Honolulu",
552            Self::DarwinRsmc1 => "Darwin (RSMC)",
553            Self::DarwinRsmc2 => "Darwin (RSMC)",
554            Self::MelbourneRsmc => "Melbourne (RSMC)",
555            Self::WellingtonRsmcRafc1 => "Wellington (RSMC/RAFC)",
556            Self::WellingtonRsmcRafc2 => "Wellington (RSMC/RAFC)",
557            Self::NadiRsmc => "Nadi (RSMC)",
558            Self::Singapore => "Singapore",
559            Self::MalaysiaNmc => "Malaysia (NMC)",
560            Self::UkMetOfficeExeterRsmc1 => "U.K. Met Office - Exeter (RSMC)",
561            Self::UkMetOfficeExeterRsmc2 => "U.K. Met Office - Exeter (RSMC)",
562            Self::MoscowRsmcRafc => "Moscow (RSMC/RAFC)",
563            Self::OffenbachRsmc1 => "Offenbach (RSMC)",
564            Self::OffenbachRsmc2 => "Offenbach (RSMC)",
565            Self::RomeRsmc1 => "Rome (RSMC)",
566            Self::RomeRsmc2 => "Rome (RSMC)",
567            Self::Norrkoping1 => "Norrkoping",
568            Self::Norrkoping2 => "Norrkoping",
569            Self::FrenchWeatherServiceToulouse1 => "French Weather Service - Toulouse",
570            Self::FrenchWeatherServiceToulouse2 => "French Weather Service - Toulouse",
571            Self::Helsinki => "Helsinki",
572            Self::Belgrade => "Belgrade",
573            Self::Oslo => "Oslo",
574            Self::Prague => "Prague",
575            Self::Episkopi => "Episkopi",
576            Self::Ankara => "Ankara",
577            Self::FrankfurtMainRafc => "Frankfurt/Main (RAFC)",
578            Self::LondonWafc => "London (WAFC)",
579            Self::Copenhagen => "Copenhagen",
580            Self::Rota => "Rota",
581            Self::Athens => "Athens",
582            Self::EuropeanSpaceAgencyEsa => "European Space Agency (ESA)",
583            Self::EuropeanCenterForMediumRangeWeatherForecastsRsmc => {
584                "European Center for Medium-Range Weather Forecasts (RSMC)"
585            }
586            Self::DeBiltNetherlands => "De Bilt, Netherlands",
587            Self::Brazzaville => "Brazzaville",
588            Self::Abidjan => "Abidjan",
589            Self::LibyanArabJamahiriyaNmc => "Libyan Arab Jamahiriya (NMC)",
590            Self::MadagascarNmc => "Madagascar (NMC)",
591            Self::MauritiusNmc => "Mauritius (NMC)",
592            Self::NigerNmc => "Niger (NMC)",
593            Self::SeychellesNmc => "Seychelles (NMC)",
594            Self::UgandaNmc => "Uganda (NMC)",
595            Self::UnitedRepublicOfTanzaniaNmc => "United Republic of Tanzania (NMC)",
596            Self::ZimbabweNmc => "Zimbabwe (NMC)",
597            Self::HongKong => "Hong-Kong",
598            Self::AfghanistanNmc => "Afghanistan (NMC)",
599            Self::BahrainNmc => "Bahrain (NMC)",
600            Self::BangladeshNmc => "Bangladesh (NMC)",
601            Self::BhutanNmc => "Bhutan (NMC)",
602            Self::CambodiaNmc => "Cambodia (NMC)",
603            Self::DemocraticPeoplesRepublicOfKoreaNmc => {
604                "Democratic People's Republic of Korea (NMC)"
605            }
606            Self::IslamicRepublicOfIranNmc => "Islamic Republic of Iran (NMC)",
607            Self::IraqNmc => "Iraq (NMC)",
608            Self::KazakhstanNmc => "Kazakhstan (NMC)",
609            Self::KuwaitNmc => "Kuwait (NMC)",
610            Self::KyrgyzRepublicNmc => "Kyrgyz Republic (NMC)",
611            Self::LaoPeoplesDemocraticRepublicNmc => "Lao People's Democratic Republic (NMC)",
612            Self::MacaoChina => "Macao, China",
613            Self::MaldivesNmc => "Maldives (NMC)",
614            Self::MyanmarNmc => "Myanmar (NMC)",
615            Self::NepalNmc => "Nepal (NMC)",
616            Self::OmanNmc => "Oman (NMC)",
617            Self::PakistanNmc => "Pakistan (NMC)",
618            Self::QatarNmc => "Qatar (NMC)",
619            Self::YemenNmc => "Yemen (NMC)",
620            Self::SriLankaNmc => "Sri Lanka (NMC)",
621            Self::TajikistanNmc => "Tajikistan (NMC)",
622            Self::TurkmenistanNmc => "Turkmenistan (NMC)",
623            Self::UnitedArabEmiratesNmc => "United Arab Emirates (NMC)",
624            Self::UzbekistanNmc => "Uzbekistan (NMC)",
625            Self::VietNamNmc => "Viet Nam (NMC)",
626            Self::BoliviaNmc => "Bolivia (NMC)",
627            Self::GuyanaNmc => "Guyana (NMC)",
628            Self::ParaguayNmc => "Paraguay (NMC)",
629            Self::SurinameNmc => "Suriname (NMC)",
630            Self::UruguayNmc => "Uruguay (NMC)",
631            Self::FrenchGuyana => "French Guyana",
632            Self::BrazilianNavyHydrographicCenter => "Brazilian Navy Hydrographic Center",
633            Self::NationalCommissionOnSpaceActivitiesArgentina => {
634                "National Commission on Space Activities - Argentina"
635            }
636            Self::BrazilianDepartmentOfAirspaceControlDecea => {
637                "Brazilian Department of Airspace Control - DECEA"
638            }
639            Self::AntiguaAndBarbudaNmc => "Antigua and Barbuda (NMC)",
640            Self::BahamasNmc => "Bahamas (NMC)",
641            Self::BarbadosNmc => "Barbados (NMC)",
642            Self::BelizeNmc => "Belize (NMC)",
643            Self::BritishCaribbeanTerritoriesCenter => "British Caribbean Territories Center",
644            Self::SanJose => "San Jose",
645            Self::CubaNmc => "Cuba (NMC)",
646            Self::DominicaNmc => "Dominica (NMC)",
647            Self::DominicanRepublicNmc => "Dominican Republic (NMC)",
648            Self::ElSalvadorNmc => "El Salvador (NMC)",
649            Self::UsNoaaNesdis => "US NOAA/NESDIS",
650            Self::UsNoaaOfficeOfOceanicAndAtmosphericResearch => {
651                "US NOAA Office of Oceanic and Atmospheric Research"
652            }
653            Self::GuatemalaNmc => "Guatemala (NMC)",
654            Self::HaitiNmc => "Haiti (NMC)",
655            Self::HondurasNmc => "Honduras (NMC)",
656            Self::JamaicaNmc => "Jamaica (NMC)",
657            Self::MexicoCity => "Mexico City",
658            Self::NetherlandsAntillesAndArubaNmc => "Netherlands Antilles and Aruba (NMC)",
659            Self::NicaraguaNmc => "Nicaragua (NMC)",
660            Self::PanamaNmc => "Panama (NMC)",
661            Self::SaintLuciaNmc => "Saint Lucia (NMC)",
662            Self::TrinidadAndTobagoNmc => "Trinidad and Tobago (NMC)",
663            Self::FrenchDepartmentsInRaIv => "French Departments in RA IV",
664            Self::UsNationalAeronauticsAndSpaceAdministrationNasa => {
665                "US National Aeronautics and Space Administration (NASA)"
666            }
667            Self::IntegratedSystemDataManagerMarineEnvironmentalDataServiceIsdmMedsCanada => {
668                "Integrated System Data Management/Marine Environmental Data Service (ISDM/MEDS) - \
669                 Canada"
670            }
671            Self::UsCooperativeInstitudeForMeteorologicalSatelliteStudies => {
672                "US Cooperative Institude for Meteorological Satellite Studies"
673            }
674            Self::CookIslandsNmc => "Cook Islands (NMC)",
675            Self::FrenchPolynesiaNmc => "French Polynesia (NMC)",
676            Self::TongaNmc => "Tonga (NMC)",
677            Self::VanuatuNmc => "Vanuatu (NMC)",
678            Self::BruneiNmc => "Brunei (NMC)",
679            Self::IndonesiaNmc => "Indonesia (NMC)",
680            Self::KiribatiNmc => "Kiribati (NMC)",
681            Self::FederatedStatesOfMicronesiaNmc => "Federated States of Micronesia (NMC)",
682            Self::NewCaledoniaNmc => "New Caledonia (NMC)",
683            Self::Niue => "Niue",
684            Self::PapuaNewGuineaNmc => "Papua New Guinea (NMC)",
685            Self::PhilippinesNmc => "Philippines (NMC)",
686            Self::SamoaNmc => "Samoa (NMC)",
687            Self::SolomonIslandsNmc => "Solomon Islands (NMC)",
688            Self::NarionalInstitudeOfWaterAndAtmosphericResearchNewZealand => {
689                "Narional Institude of Water and Atmospheric Research - New Zealand"
690            }
691            Self::FrascatiEsaEsrin => "Frascati (ESA/ESRIN)",
692            Self::Lanion => "Lanion",
693            Self::Lisbon => "Lisbon",
694            Self::Reykjavik => "Reykjavik",
695            Self::Madrid => "Madrid",
696            Self::Zurich => "Zurich",
697            Self::ServiceArgosToulouse => "Service ARGOS - Toulouse",
698            Self::Bratislava => "Bratislava",
699            Self::Budapest => "Budapest",
700            Self::Ljubljana => "Ljubljana",
701            Self::Warsaw => "Warsaw",
702            Self::Zagreb => "Zagreb",
703            Self::AlbaniaNmc => "Albania (NMC)",
704            Self::ArmeniaNmc => "Armenia (NMC)",
705            Self::AustriaNmc => "Austria (NMC)",
706            Self::AzerbaijanNmc => "Azerbaijan (NMC)",
707            Self::BelarusNmc => "Belarus (NMC)",
708            Self::BelgiumNmc => "Belgium (NMC)",
709            Self::BosniaAndHerzegovinaNmc => "Bosnia and Herzegovina (NMC)",
710            Self::BulgariaNmc => "Bulgaria (NMC)",
711            Self::CyprusNmc => "Cyprus (NMC)",
712            Self::EstoniaNmc => "Estonia (NMC)",
713            Self::GeorgiaNmc => "Georgia (NMC)",
714            Self::Dublin => "Dublin",
715            Self::IsraelNmc => "Israel (NMC)",
716            Self::JordanNmc => "Jordan (NMC)",
717            Self::LatviaNmc => "Latvia (NMC)",
718            Self::LebanonNmc => "Lebanon (NMC)",
719            Self::LithuaniaNmc => "Lithuania (NMC)",
720            Self::Luxembourg => "Luxembourg",
721            Self::MaltaNmc => "Malta (NMC)",
722            Self::Monaco => "Monaco",
723            Self::RomaniaNmc => "Romania (NMC)",
724            Self::SyrianArabRepublicNmc => "Syrian Arab Republic (NMC)",
725            Self::TheFormerYugoslavRepublicOfMacedoniaNmc => {
726                "The former Yugoslav Republic of Macedonia (NMC)"
727            }
728            Self::UkraineNmc => "Ukraine (NMC)",
729            Self::RepublicOfMoldovaNmc => "Republic of Moldova (NMC)",
730            Self::OperationalProgrammeForTheExchangeOfWeatherRadarInformationOperaEumetnet => {
731                "Operational Programme for the Exchange of Weather RAdar Information (OPERA) - \
732                 EUMETNET"
733            }
734            Self::ConsortiumForSmallScaleModellingCosmo => {
735                "COnsortium for Small scale  MOdelling (COSMO)"
736            }
737            Self::EumetsatOperationsCenter => "EUMETSAT Operations Center",
738            Self::MissingValue => "Missing Value",
739        };
740        f.write_str(desc)
741    }
742}
743
744///  TABLE 0.0 - Discipline of Processed Data
745///
746/// [Read more...](https://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc/grib2_table0-0.shtml)
747/// This table is used to indicate the discipline of the processed data contained within a GRIB message.
748/// This number is coded in octet 7 of section 0 of the GRIB2 message.
749#[repr(u8)]
750#[allow(missing_docs)]
751#[derive(Debug, Clone, Copy, PartialEq, Eq)]
752pub enum Grib2Table0_0 {
753    Meteorological = 0,
754    Hydrological = 1,
755    LandSurface = 2,
756    SatelliteRemoteSensing = 3,
757    SpaceWeather = 4,
758    Oceanographic = 10,
759    Unknown(u8),
760}
761impl From<u8> for Grib2Table0_0 {
762    fn from(val: u8) -> Self {
763        match val {
764            0 => Self::Meteorological,
765            1 => Self::Hydrological,
766            2 => Self::LandSurface,
767            3 => Self::SatelliteRemoteSensing,
768            4 => Self::SpaceWeather,
769            10 => Self::Oceanographic,
770            other => Self::Unknown(other),
771        }
772    }
773}
774impl From<Grib2Table0_0> for u8 {
775    fn from(val: Grib2Table0_0) -> Self {
776        match val {
777            Grib2Table0_0::Meteorological => 0,
778            Grib2Table0_0::Hydrological => 1,
779            Grib2Table0_0::LandSurface => 2,
780            Grib2Table0_0::SatelliteRemoteSensing => 3,
781            Grib2Table0_0::SpaceWeather => 4,
782            Grib2Table0_0::Oceanographic => 10,
783            Grib2Table0_0::Unknown(v) => v,
784        }
785    }
786}
787impl core::fmt::Display for Grib2Table0_0 {
788    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
789        let desc = match self {
790            Self::Meteorological => "Meteorological Products",
791            Self::Hydrological => "Hydrological Products",
792            Self::LandSurface => "Land Surface Products",
793            Self::SatelliteRemoteSensing => "Satellite Remote Sensing Products",
794            Self::SpaceWeather => "Space Weather Products",
795            Self::Oceanographic => "Oceanographic Products",
796            Self::Unknown(v) => return write!(f, "Unknown Discipline ({v})"),
797        };
798        f.write_str(desc)
799    }
800}