From 3cb3de6468cb1da3e071924f100125efe7a4ac1d Mon Sep 17 00:00:00 2001 From: Shahram Najm Date: Sat, 2 Dec 2023 13:10:41 +0000 Subject: [PATCH] Scripts: Update for new tile code tables --- definitions/create_grib2_codetables.pl | 191 ++++++++++++++++++++++++- 1 file changed, 187 insertions(+), 4 deletions(-) diff --git a/definitions/create_grib2_codetables.pl b/definitions/create_grib2_codetables.pl index 8f58ef544..5d71dbc11 100644 --- a/definitions/create_grib2_codetables.pl +++ b/definitions/create_grib2_codetables.pl @@ -104,6 +104,15 @@ sub WriteFile { elsif ($filename eq "4.5.table") { $codeFlag2 = TranslateCodes_Table_4_5($codeFlag); } + elsif ($filename eq "4.241.table") { + $codeFlag2 = TranslateCodes_Table_4_241($codeFlag); + } + elsif ($filename eq "4.242.table") { + $codeFlag2 = TranslateCodes_Table_4_242($codeFlag); + } + elsif ($filename eq "4.252.table") { + $codeFlag2 = TranslateCodes_Table_4_252($codeFlag); + } elsif ($filename eq "3.15.table") { $codeFlag2 = TranslateCodes_Table_3_15($codeFlag); } @@ -153,8 +162,6 @@ sub TranslateCodes_Table_3_15 { return $code; } -################################################################################################### -# This is for Code Table 1.4 sub TranslateCodes_Table_1_4 { my ($code) = @_; return "an" if ($code eq "0"); @@ -170,7 +177,6 @@ sub TranslateCodes_Table_1_4 { return $code; } -################################################################################################### sub TranslateCodes_Table_4_4 { my ($code) = @_; return "m" if ($code eq "0"); @@ -188,7 +194,6 @@ sub TranslateCodes_Table_4_4 { return $code; } -################################################################################################### sub TranslateCodes_Table_4_5 { my ($code) = @_; return "sfc" if ($code eq "1" || $code eq "7" || @@ -207,3 +212,181 @@ sub TranslateCodes_Table_4_5 { return "sol" if ($code eq "152"); return $code; } + +sub TranslateCodes_Table_4_241 { + my ($code) = @_; + return "UNDEF" if ($code eq "0"); + return "UNMOD" if ($code eq "1"); + return "SNOW" if ($code eq "2"); + return "FLOOD" if ($code eq "3"); + return "ICE" if ($code eq "4"); + return "ITCW" if ($code eq "5"); + return "ITCS" if ($code eq "6"); + return "AGG" if ($code eq "7"); + return $code; +} + +sub TranslateCodes_Table_4_242 { + my ($code) = @_; + + return "GCV2009" if ($code eq "1"); + return "GLC2000" if ($code eq "2"); + return "ECOCLIMAP" if ($code eq "3"); + return "ECOCLIMAP-SG" if ($code eq "4"); + return "GLCCv2BATS" if ($code eq "5"); + return $code; +} + +sub TranslateCodes_Table_4_252 { + my ($code) = @_; + + return "SEOC" if ($code eq "1"); + return "INWB" if ($code eq "2"); + return "BARE" if ($code eq "3"); + return "HIV" if ($code eq "4"); + return "LOV" if ($code eq "5"); + return "URBAN" if ($code eq "6"); + return "SEAO" if ($code eq "1001"); + return "LAKE" if ($code eq "1002"); + return "RIVE" if ($code eq "1003"); + return "NO" if ($code eq "1004"); + return "ROCK" if ($code eq "1005"); + return "SNOW" if ($code eq "1006"); + return "BOBD" if ($code eq "1007"); + return "TEBD" if ($code eq "1008"); + return "TRBD" if ($code eq "1009"); + return "TEBE" if ($code eq "1010"); + return "TRBE" if ($code eq "1011"); + return "BONE" if ($code eq "1012"); + return "TENE" if ($code eq "1013"); + return "BOND" if ($code eq "1014"); + return "SHRB" if ($code eq "1015"); + return "BOGR" if ($code eq "1016"); + return "GRAS" if ($code eq "1017"); + return "TROG" if ($code eq "1018"); + return "C3W" if ($code eq "1019"); + return "C3S" if ($code eq "1020"); + return "C4" if ($code eq "1021"); + return "FLTR" if ($code eq "1022"); + return "FLGR" if ($code eq "1023"); + return "LCZ1" if ($code eq "1024"); + return "LCZ2" if ($code eq "1025"); + return "LCZ3" if ($code eq "1026"); + return "LCZ4" if ($code eq "1027"); + return "LCZ5" if ($code eq "1028"); + return "LCZ6" if ($code eq "1029"); + return "LCZ7" if ($code eq "1030"); + return "LCZ8" if ($code eq "1031"); + return "LCZ9" if ($code eq "1032"); + return "LCZ10" if ($code eq "1033"); + return "TEBDU" if ($code eq "1034"); + return "TRBDU" if ($code eq "1035"); + return "TEBEU" if ($code eq "1036"); + return "TRBEU" if ($code eq "1037"); + return "BONEU" if ($code eq "1038"); + return "TENEU" if ($code eq "1039"); + return "BONDU" if ($code eq "1040"); + return "GNATU" if ($code eq "1501"); + return "GNOFO" if ($code eq "1502"); + return "GFORE" if ($code eq "1503"); + return "GNOVE" if ($code eq "1504"); + return "GTREE" if ($code eq "1505"); + return "GLVEG" if ($code eq "1506"); + return "GNFLV" if ($code eq "1507"); + return "GCROP" if ($code eq "1508"); + return "GGRAS" if ($code eq "1509"); + return "GBARO" if ($code eq "1510"); + return "GC3CR" if ($code eq "1511"); + return "GBFOR" if ($code eq "1512"); + return "GNFOR" if ($code eq "1513"); + return "GDBFO" if ($code eq "1514"); + return "GTGRA" if ($code eq "1515"); + return "GNFNF" if ($code eq "1516"); + return "GBFFT" if ($code eq "1517"); + return "GBTRE" if ($code eq "1518"); + return "GCGRA" if ($code eq "1519"); + return "GBDTR" if ($code eq "1520"); + return "GBETR" if ($code eq "1521"); + return "GNETR" if ($code eq "1522"); + return "GLCZU" if ($code eq "1523"); + return "GIWAT" if ($code eq "1524"); + return "GPTEBD" if ($code eq "1525"); + return "GPTRBD" if ($code eq "1526"); + return "GPTEBE" if ($code eq "1527"); + return "GPTRBE" if ($code eq "1528"); + return "GPBONE" if ($code eq "1529"); + return "GPTENE" if ($code eq "1530"); + return "GPBOND" if ($code eq "1531"); + return "CRMF" if ($code eq "2001"); + return "SHGR" if ($code eq "2002"); + return "EVNE" if ($code eq "2003"); + return "DENE" if ($code eq "2004"); + return "DEBR" if ($code eq "2005"); + return "EVBR" if ($code eq "2006"); + return "TAGR" if ($code eq "2007"); + return "DESE" if ($code eq "2008"); + return "TUND" if ($code eq "2009"); + return "IRCR" if ($code eq "2010"); + return "SEDE" if ($code eq "2011"); + return "ICGL" if ($code eq "2012"); + return "BOMA" if ($code eq "2013"); + return "INWA" if ($code eq "2014"); + return "OCEA" if ($code eq "2015"); + return "EVSH" if ($code eq "2016"); + return "DESH" if ($code eq "2017"); + return "MFWO" if ($code eq "2018"); + return "INFO" if ($code eq "2019"); + return "WLMI" if ($code eq "2020"); + return "BASO" if ($code eq "2021"); + return "URBA" if ($code eq "2022"); + return "LORI" if ($code eq "2023"); + return "HIRI" if ($code eq "2024"); + return "GLVE" if ($code eq "2501"); + return "GHVE" if ($code eq "2502"); + return "PFIC" if ($code eq "3001"); + return "RACR" if ($code eq "3002"); + return "MCVE" if ($code eq "3003"); + return "MVCR" if ($code eq "3004"); + return "COBS" if ($code eq "3005"); + return "CLBD" if ($code eq "3006"); + return "OPBD" if ($code eq "3007"); + return "CLNE" if ($code eq "3008"); + return "ONDE" if ($code eq "3009"); + return "COBN" if ($code eq "3010"); + return "MFSG" if ($code eq "3011"); + return "MGFS" if ($code eq "3012"); + return "COSH" if ($code eq "3013"); + return "COHV" if ($code eq "3014"); + return "SPVE" if ($code eq "3015"); + return "COBFF" if ($code eq "3016"); + return "CLBFF" if ($code eq "3017"); + return "COVEF" if ($code eq "3018"); + return "ASAA" if ($code eq "3019"); + return "BAAR" if ($code eq "3020"); + return "WABO" if ($code eq "3021"); + return "PESI" if ($code eq "3022"); + return "GRDT" if ($code eq "3501"); + return "TBECO" if ($code eq "4001"); + return "TBDC" if ($code eq "4002"); + return "TBDO" if ($code eq "4003"); + return "TNECO" if ($code eq "4004"); + return "TNDCO" if ($code eq "4005"); + return "TMLCO" if ($code eq "4006"); + return "TCOFF" if ($code eq "4007"); + return "TCOFS" if ($code eq "4008"); + return "MTVG" if ($code eq "4009"); + return "TBURN" if ($code eq "4010"); + return "SCOE" if ($code eq "4011"); + return "SCOD" if ($code eq "4012"); + return "HCCO" if ($code eq "4013"); + return "SHSC" if ($code eq "4014"); + return "FSHCO" if ($code eq "4015"); + return "CROP" if ($code eq "4016"); + return "MCTNV" if ($code eq "4017"); + return "MCSH" if ($code eq "4018"); + return "BAARE" if ($code eq "4019"); + return "WBNA" if ($code eq "4020"); + return "SINA" if ($code eq "4021"); + return "URAR" if ($code eq "4022"); + return $code; +}