From 646d8fcfaa5baac5e3173b55a87f30787f82fe65 Mon Sep 17 00:00:00 2001 From: Shahram Najm Date: Fri, 4 Jul 2014 14:52:04 +0100 Subject: [PATCH] Merge from p4: odim BUFR tables and def files --- data/download.sh | 132 ++++ definitions/Makefile.am | 647 ++++++++++++++++++ definitions/bufr/boot_edition_1.def | 33 + definitions/bufr/boot_edition_2.def | 32 + definitions/bufr/boot_edition_3.def | 31 + definitions/bufr/boot_edition_4.def | 30 + definitions/bufr/descriptor_template | 13 + definitions/bufr/rdb_key_28.def | 1 + definitions/bufr/section.1.1.def | 27 + .../bufr/{section.1.def => section.1.2.def} | 14 +- definitions/bufr/section.1.3.def | 36 + definitions/bufr/section.1.4.def | 37 + .../bufr/tables/0/local/8/247/0/element.table | 41 ++ .../bufr/tables/0/local/8/247/0/sequence.def | 40 ++ definitions/make_makefile_am.pl | 4 +- definitions/metar/boot.flexible.def | 154 +++++ tests/CMakeLists.txt | 1 + tests/Makefile.am | 2 +- tests/bufr_dump.sh | 20 + 19 files changed, 1281 insertions(+), 14 deletions(-) create mode 100644 definitions/bufr/boot_edition_1.def create mode 100644 definitions/bufr/boot_edition_2.def create mode 100644 definitions/bufr/boot_edition_3.def create mode 100644 definitions/bufr/boot_edition_4.def create mode 100644 definitions/bufr/descriptor_template create mode 100644 definitions/bufr/rdb_key_28.def create mode 100644 definitions/bufr/section.1.1.def rename definitions/bufr/{section.1.def => section.1.2.def} (80%) create mode 100644 definitions/bufr/section.1.3.def create mode 100644 definitions/bufr/section.1.4.def create mode 100644 definitions/bufr/tables/0/local/8/247/0/element.table create mode 100644 definitions/bufr/tables/0/local/8/247/0/sequence.def create mode 100644 definitions/metar/boot.flexible.def create mode 100755 tests/bufr_dump.sh diff --git a/data/download.sh b/data/download.sh index ed8d76b6b..3d4f78a20 100755 --- a/data/download.sh +++ b/data/download.sh @@ -333,6 +333,138 @@ files=" tigge/tigge_sbsj_sfc_tcw.grib tigge/tigge_sbsj_sfc_tp.grib tigge/tiggelam_cnmc_sfc.grib + bufr/aaen_55.bufr + bufr/aben_55.bufr + bufr/ahws_139.bufr + bufr/airc_142.bufr + bufr/airc_144.bufr + bufr/airs_57.bufr + bufr/alws_139.bufr + bufr/amda_144.bufr + bufr/amsa_55.bufr + bufr/amsb_55.bufr + bufr/amse_55.bufr + bufr/amsu_55.bufr + bufr/amv2_87.bufr + bufr/amv3_87.bufr + bufr/asbh_139.bufr + bufr/asbl_139.bufr + bufr/asca_139.bufr + bufr/asch_139.bufr + bufr/ascs_139.bufr + bufr/aseh_139.bufr + bufr/asel_139.bufr + bufr/ashs_139.bufr + bufr/atap_55.bufr + bufr/ateu_155.bufr + bufr/atms_201.bufr + bufr/atov_55.bufr + bufr/avhm_87.bufr + bufr/avhn_87.bufr + bufr/avhr_58.bufr + bufr/b002_95.bufr + bufr/b002_96.bufr + bufr/b003_56.bufr + bufr/b004_145.bufr + bufr/b005_87.bufr + bufr/b005_89.bufr + bufr/b006_96.bufr + bufr/b007_31.bufr + bufr/bssh_170.bufr + bufr/bssh_176.bufr + bufr/bssh_178.bufr + bufr/bssh_180.bufr + bufr/btem_109.bufr + bufr/buoy_27.bufr + bufr/cmwi_87.bufr + bufr/cmwn_87.bufr + bufr/cnow_28.bufr + bufr/cori_156.bufr + bufr/crit_202.bufr + bufr/csrh_189.bufr + bufr/emsg_189.bufr + bufr/emsg_87.bufr + bufr/euwv_87.bufr + bufr/fy3a_154.bufr + bufr/fy3b_154.bufr + bufr/g2nd_208.bufr + bufr/g2to_206.bufr + bufr/go15_87.bufr + bufr/goee_87.bufr + bufr/goes_87.bufr + bufr/goga_89.bufr + bufr/gosat.bufr + bufr/grst_26.bufr + bufr/gsd1_208.bufr + bufr/gsd2_208.bufr + bufr/gsd3_208.bufr + bufr/gst4_26.bufr + bufr/hirb_55.bufr + bufr/hirs_55.bufr + bufr/ias1_240.bufr + bufr/iasi_241.bufr + bufr/ifco_208.bufr + bufr/ikco_217.bufr + bufr/itrg_208.bufr + bufr/itwt_233.bufr + bufr/j2eo_216.bufr + bufr/j2nb_216.bufr + bufr/jaso_214.bufr + bufr/kond_209.bufr + bufr/maer_207.bufr + bufr/meta_140.bufr + bufr/mhen_55.bufr + bufr/mhsa_55.bufr + bufr/mhsb_55.bufr + bufr/mhse_55.bufr + bufr/mloz_206.bufr + bufr/modi_87.bufr + bufr/modw_87.bufr + bufr/monw_87.bufr + bufr/nomi_206.bufr + bufr/nos1_208.bufr + bufr/nos2_208.bufr + bufr/nos3_208.bufr + bufr/nos4_208.bufr + bufr/nos5_208.bufr + bufr/nos6_208.bufr + bufr/nos7_208.bufr + bufr/nos8_208.bufr + bufr/ocea_131.bufr + bufr/ocea_132.bufr + bufr/ocea_133.bufr + bufr/ocea_21.bufr + bufr/pgps_110.bufr + bufr/pilo_91.bufr + bufr/rada_250.bufr + bufr/rado_250.bufr + bufr/s4kn_165.bufr + bufr/sb19_206.bufr + bufr/sbu8_206.bufr + bufr/ship_11.bufr + bufr/ship_12.bufr + bufr/ship_13.bufr + bufr/ship_14.bufr + bufr/ship_19.bufr + bufr/ship_9.bufr + bufr/smin_49.bufr + bufr/smis_49.bufr + bufr/smiu_49.bufr + bufr/smos_203.bufr + bufr/sn4k_165.bufr + bufr/soil_7.bufr + bufr/ssbt_127.bufr + bufr/stuk_7.bufr + bufr/syno_1.bufr + bufr/syno_2.bufr + bufr/syno_3.bufr + bufr/syno_4.bufr + bufr/temp_101.bufr + bufr/temp_102.bufr + bufr/temp_106.bufr + bufr/tmr7_129.bufr + bufr/tros_31.bufr + bufr/wavb_134.bufr " # Decide what tool to use to download data diff --git a/definitions/Makefile.am b/definitions/Makefile.am index bf9fe89cf..2105bf49b 100644 --- a/definitions/Makefile.am +++ b/definitions/Makefile.am @@ -17,6 +17,520 @@ dist_definitionsbudg_DATA = \ budg/section.1.def\ budg/section.4.def +definitionsbufrdir = @GRIB_DEFINITION_PATH@/bufr +dist_definitionsbufr_DATA = \ + bufr/boot.def\ + bufr/boot_edition_1.def\ + bufr/boot_edition_2.def\ + bufr/boot_edition_3.def\ + bufr/boot_edition_4.def\ + bufr/old_section.1.def\ + bufr/rdb_key.def\ + bufr/rdb_key_28.def\ + bufr/section.0.def\ + bufr/section.1.1.def\ + bufr/section.1.2.def\ + bufr/section.1.3.def\ + bufr/section.1.4.def\ + bufr/section.2.def\ + bufr/section.3.def\ + bufr/section.4.def\ + bufr/section.5.def\ + bufr/section1_flags.table\ + bufr/section3_flags.table + +definitionsbufr_tables_0_local_1_98_0dir = @GRIB_DEFINITION_PATH@/bufr/tables/0/local/1/98/0 +dist_definitionsbufr_tables_0_local_1_98_0_DATA = \ + bufr/tables/0/local/1/98/0/element.table\ + bufr/tables/0/local/1/98/0/sequence.def + +definitionsbufr_tables_0_local_101_98_0dir = @GRIB_DEFINITION_PATH@/bufr/tables/0/local/101/98/0 +dist_definitionsbufr_tables_0_local_101_98_0_DATA = \ + bufr/tables/0/local/101/98/0/element.table\ + bufr/tables/0/local/101/98/0/sequence.def + +definitionsbufr_tables_0_local_8_247_0dir = @GRIB_DEFINITION_PATH@/bufr/tables/0/local/8/247/0 +dist_definitionsbufr_tables_0_local_8_247_0_DATA = \ + bufr/tables/0/local/8/247/0/element.table\ + bufr/tables/0/local/8/247/0/sequence.def + +definitionsbufr_tables_0_wmo_11dir = @GRIB_DEFINITION_PATH@/bufr/tables/0/wmo/11 +dist_definitionsbufr_tables_0_wmo_11_DATA = \ + bufr/tables/0/wmo/11/element.table\ + bufr/tables/0/wmo/11/sequence.def + +definitionsbufr_tables_0_wmo_12dir = @GRIB_DEFINITION_PATH@/bufr/tables/0/wmo/12 +dist_definitionsbufr_tables_0_wmo_12_DATA = \ + bufr/tables/0/wmo/12/element.table\ + bufr/tables/0/wmo/12/sequence.def + +definitionsbufr_tables_0_wmo_13dir = @GRIB_DEFINITION_PATH@/bufr/tables/0/wmo/13 +dist_definitionsbufr_tables_0_wmo_13_DATA = \ + bufr/tables/0/wmo/13/element.table\ + bufr/tables/0/wmo/13/sequence.def + +definitionsbufr_tables_0_wmo_13_codetablesdir = @GRIB_DEFINITION_PATH@/bufr/tables/0/wmo/13/codetables +dist_definitionsbufr_tables_0_wmo_13_codetables_DATA = \ + bufr/tables/0/wmo/13/codetables/1003.table\ + bufr/tables/0/wmo/13/codetables/10063.table\ + bufr/tables/0/wmo/13/codetables/10064.table\ + bufr/tables/0/wmo/13/codetables/1007.table\ + bufr/tables/0/wmo/13/codetables/1024.table\ + bufr/tables/0/wmo/13/codetables/1028.table\ + bufr/tables/0/wmo/13/codetables/1029.table\ + bufr/tables/0/wmo/13/codetables/1031.table\ + bufr/tables/0/wmo/13/codetables/1033.table\ + bufr/tables/0/wmo/13/codetables/1034.table\ + bufr/tables/0/wmo/13/codetables/1036.table\ + bufr/tables/0/wmo/13/codetables/1038.table\ + bufr/tables/0/wmo/13/codetables/1052.table\ + bufr/tables/0/wmo/13/codetables/1090.table\ + bufr/tables/0/wmo/13/codetables/1092.table\ + bufr/tables/0/wmo/13/codetables/1101.table\ + bufr/tables/0/wmo/13/codetables/11030.table\ + bufr/tables/0/wmo/13/codetables/11031.table\ + bufr/tables/0/wmo/13/codetables/11037.table\ + bufr/tables/0/wmo/13/codetables/11038.table\ + bufr/tables/0/wmo/13/codetables/11039.table\ + bufr/tables/0/wmo/13/codetables/13038.table\ + bufr/tables/0/wmo/13/codetables/13039.table\ + bufr/tables/0/wmo/13/codetables/13040.table\ + bufr/tables/0/wmo/13/codetables/13041.table\ + bufr/tables/0/wmo/13/codetables/13051.table\ + bufr/tables/0/wmo/13/codetables/13056.table\ + bufr/tables/0/wmo/13/codetables/13057.table\ + bufr/tables/0/wmo/13/codetables/15025.table\ + bufr/tables/0/wmo/13/codetables/19001.table\ + bufr/tables/0/wmo/13/codetables/19008.table\ + bufr/tables/0/wmo/13/codetables/19010.table\ + bufr/tables/0/wmo/13/codetables/19100.table\ + bufr/tables/0/wmo/13/codetables/19101.table\ + bufr/tables/0/wmo/13/codetables/19102.table\ + bufr/tables/0/wmo/13/codetables/19103.table\ + bufr/tables/0/wmo/13/codetables/19104.table\ + bufr/tables/0/wmo/13/codetables/19105.table\ + bufr/tables/0/wmo/13/codetables/19107.table\ + bufr/tables/0/wmo/13/codetables/19108.table\ + bufr/tables/0/wmo/13/codetables/19109.table\ + bufr/tables/0/wmo/13/codetables/19110.table\ + bufr/tables/0/wmo/13/codetables/19113.table\ + bufr/tables/0/wmo/13/codetables/19117.table\ + bufr/tables/0/wmo/13/codetables/19119.table\ + bufr/tables/0/wmo/13/codetables/20003.table\ + bufr/tables/0/wmo/13/codetables/20004.table\ + bufr/tables/0/wmo/13/codetables/20005.table\ + bufr/tables/0/wmo/13/codetables/20006.table\ + bufr/tables/0/wmo/13/codetables/20008.table\ + bufr/tables/0/wmo/13/codetables/20009.table\ + bufr/tables/0/wmo/13/codetables/2001.table\ + bufr/tables/0/wmo/13/codetables/20011.table\ + bufr/tables/0/wmo/13/codetables/20012.table\ + bufr/tables/0/wmo/13/codetables/20017.table\ + bufr/tables/0/wmo/13/codetables/20018.table\ + bufr/tables/0/wmo/13/codetables/2002.table\ + bufr/tables/0/wmo/13/codetables/20021.table\ + bufr/tables/0/wmo/13/codetables/20022.table\ + bufr/tables/0/wmo/13/codetables/20023.table\ + bufr/tables/0/wmo/13/codetables/20024.table\ + bufr/tables/0/wmo/13/codetables/20025.table\ + bufr/tables/0/wmo/13/codetables/20026.table\ + bufr/tables/0/wmo/13/codetables/20027.table\ + bufr/tables/0/wmo/13/codetables/20028.table\ + bufr/tables/0/wmo/13/codetables/20029.table\ + bufr/tables/0/wmo/13/codetables/2003.table\ + bufr/tables/0/wmo/13/codetables/20032.table\ + bufr/tables/0/wmo/13/codetables/20033.table\ + bufr/tables/0/wmo/13/codetables/20034.table\ + bufr/tables/0/wmo/13/codetables/20035.table\ + bufr/tables/0/wmo/13/codetables/20036.table\ + bufr/tables/0/wmo/13/codetables/20037.table\ + bufr/tables/0/wmo/13/codetables/2004.table\ + bufr/tables/0/wmo/13/codetables/20040.table\ + bufr/tables/0/wmo/13/codetables/20041.table\ + bufr/tables/0/wmo/13/codetables/20042.table\ + bufr/tables/0/wmo/13/codetables/20045.table\ + bufr/tables/0/wmo/13/codetables/20048.table\ + bufr/tables/0/wmo/13/codetables/20050.table\ + bufr/tables/0/wmo/13/codetables/20055.table\ + bufr/tables/0/wmo/13/codetables/20056.table\ + bufr/tables/0/wmo/13/codetables/20062.table\ + bufr/tables/0/wmo/13/codetables/20063.table\ + bufr/tables/0/wmo/13/codetables/20071.table\ + bufr/tables/0/wmo/13/codetables/20085.table\ + bufr/tables/0/wmo/13/codetables/20086.table\ + bufr/tables/0/wmo/13/codetables/20087.table\ + bufr/tables/0/wmo/13/codetables/20089.table\ + bufr/tables/0/wmo/13/codetables/20090.table\ + bufr/tables/0/wmo/13/codetables/20101.table\ + bufr/tables/0/wmo/13/codetables/20102.table\ + bufr/tables/0/wmo/13/codetables/20103.table\ + bufr/tables/0/wmo/13/codetables/20104.table\ + bufr/tables/0/wmo/13/codetables/20105.table\ + bufr/tables/0/wmo/13/codetables/20106.table\ + bufr/tables/0/wmo/13/codetables/20107.table\ + bufr/tables/0/wmo/13/codetables/20108.table\ + bufr/tables/0/wmo/13/codetables/2011.table\ + bufr/tables/0/wmo/13/codetables/20119.table\ + bufr/tables/0/wmo/13/codetables/2012.table\ + bufr/tables/0/wmo/13/codetables/20124.table\ + bufr/tables/0/wmo/13/codetables/2013.table\ + bufr/tables/0/wmo/13/codetables/20136.table\ + bufr/tables/0/wmo/13/codetables/2014.table\ + bufr/tables/0/wmo/13/codetables/2015.table\ + bufr/tables/0/wmo/13/codetables/2016.table\ + bufr/tables/0/wmo/13/codetables/2019.table\ + bufr/tables/0/wmo/13/codetables/2020.table\ + bufr/tables/0/wmo/13/codetables/2021.table\ + bufr/tables/0/wmo/13/codetables/2022.table\ + bufr/tables/0/wmo/13/codetables/2023.table\ + bufr/tables/0/wmo/13/codetables/2024.table\ + bufr/tables/0/wmo/13/codetables/2025.table\ + bufr/tables/0/wmo/13/codetables/2030.table\ + bufr/tables/0/wmo/13/codetables/2031.table\ + bufr/tables/0/wmo/13/codetables/2032.table\ + bufr/tables/0/wmo/13/codetables/2033.table\ + bufr/tables/0/wmo/13/codetables/2034.table\ + bufr/tables/0/wmo/13/codetables/2036.table\ + bufr/tables/0/wmo/13/codetables/2037.table\ + bufr/tables/0/wmo/13/codetables/2038.table\ + bufr/tables/0/wmo/13/codetables/2039.table\ + bufr/tables/0/wmo/13/codetables/2040.table\ + bufr/tables/0/wmo/13/codetables/2041.table\ + bufr/tables/0/wmo/13/codetables/2042.table\ + bufr/tables/0/wmo/13/codetables/2044.table\ + bufr/tables/0/wmo/13/codetables/2045.table\ + bufr/tables/0/wmo/13/codetables/2046.table\ + bufr/tables/0/wmo/13/codetables/2047.table\ + bufr/tables/0/wmo/13/codetables/2048.table\ + bufr/tables/0/wmo/13/codetables/2049.table\ + bufr/tables/0/wmo/13/codetables/2050.table\ + bufr/tables/0/wmo/13/codetables/2051.table\ + bufr/tables/0/wmo/13/codetables/2052.table\ + bufr/tables/0/wmo/13/codetables/2053.table\ + bufr/tables/0/wmo/13/codetables/2054.table\ + bufr/tables/0/wmo/13/codetables/2055.table\ + bufr/tables/0/wmo/13/codetables/2056.table\ + bufr/tables/0/wmo/13/codetables/2057.table\ + bufr/tables/0/wmo/13/codetables/2058.table\ + bufr/tables/0/wmo/13/codetables/2059.table\ + bufr/tables/0/wmo/13/codetables/2060.table\ + bufr/tables/0/wmo/13/codetables/2061.table\ + bufr/tables/0/wmo/13/codetables/2062.table\ + bufr/tables/0/wmo/13/codetables/2064.table\ + bufr/tables/0/wmo/13/codetables/2066.table\ + bufr/tables/0/wmo/13/codetables/2070.table\ + bufr/tables/0/wmo/13/codetables/2080.table\ + bufr/tables/0/wmo/13/codetables/2081.table\ + bufr/tables/0/wmo/13/codetables/2083.table\ + bufr/tables/0/wmo/13/codetables/2084.table\ + bufr/tables/0/wmo/13/codetables/2095.table\ + bufr/tables/0/wmo/13/codetables/2096.table\ + bufr/tables/0/wmo/13/codetables/2097.table\ + bufr/tables/0/wmo/13/codetables/2099.table\ + bufr/tables/0/wmo/13/codetables/2101.table\ + bufr/tables/0/wmo/13/codetables/2103.table\ + bufr/tables/0/wmo/13/codetables/2104.table\ + bufr/tables/0/wmo/13/codetables/21066.table\ + bufr/tables/0/wmo/13/codetables/21067.table\ + bufr/tables/0/wmo/13/codetables/21068.table\ + bufr/tables/0/wmo/13/codetables/21069.table\ + bufr/tables/0/wmo/13/codetables/21070.table\ + bufr/tables/0/wmo/13/codetables/21072.table\ + bufr/tables/0/wmo/13/codetables/21073.table\ + bufr/tables/0/wmo/13/codetables/21076.table\ + bufr/tables/0/wmo/13/codetables/21109.table\ + bufr/tables/0/wmo/13/codetables/21115.table\ + bufr/tables/0/wmo/13/codetables/21116.table\ + bufr/tables/0/wmo/13/codetables/21119.table\ + bufr/tables/0/wmo/13/codetables/21144.table\ + bufr/tables/0/wmo/13/codetables/2115.table\ + bufr/tables/0/wmo/13/codetables/21150.table\ + bufr/tables/0/wmo/13/codetables/21155.table\ + bufr/tables/0/wmo/13/codetables/21158.table\ + bufr/tables/0/wmo/13/codetables/21159.table\ + bufr/tables/0/wmo/13/codetables/21169.table\ + bufr/tables/0/wmo/13/codetables/2119.table\ + bufr/tables/0/wmo/13/codetables/2131.table\ + bufr/tables/0/wmo/13/codetables/2137.table\ + bufr/tables/0/wmo/13/codetables/2138.table\ + bufr/tables/0/wmo/13/codetables/2139.table\ + bufr/tables/0/wmo/13/codetables/2143.table\ + bufr/tables/0/wmo/13/codetables/2144.table\ + bufr/tables/0/wmo/13/codetables/2145.table\ + bufr/tables/0/wmo/13/codetables/2146.table\ + bufr/tables/0/wmo/13/codetables/2148.table\ + bufr/tables/0/wmo/13/codetables/2149.table\ + bufr/tables/0/wmo/13/codetables/2150.table\ + bufr/tables/0/wmo/13/codetables/2151.table\ + bufr/tables/0/wmo/13/codetables/2152.table\ + bufr/tables/0/wmo/13/codetables/2158.table\ + bufr/tables/0/wmo/13/codetables/2159.table\ + bufr/tables/0/wmo/13/codetables/2160.table\ + bufr/tables/0/wmo/13/codetables/2163.table\ + bufr/tables/0/wmo/13/codetables/2164.table\ + bufr/tables/0/wmo/13/codetables/2165.table\ + bufr/tables/0/wmo/13/codetables/2166.table\ + bufr/tables/0/wmo/13/codetables/2167.table\ + bufr/tables/0/wmo/13/codetables/2169.table\ + bufr/tables/0/wmo/13/codetables/2170.table\ + bufr/tables/0/wmo/13/codetables/2172.table\ + bufr/tables/0/wmo/13/codetables/2175.table\ + bufr/tables/0/wmo/13/codetables/2176.table\ + bufr/tables/0/wmo/13/codetables/2177.table\ + bufr/tables/0/wmo/13/codetables/2178.table\ + bufr/tables/0/wmo/13/codetables/2179.table\ + bufr/tables/0/wmo/13/codetables/2180.table\ + bufr/tables/0/wmo/13/codetables/2181.table\ + bufr/tables/0/wmo/13/codetables/2182.table\ + bufr/tables/0/wmo/13/codetables/2183.table\ + bufr/tables/0/wmo/13/codetables/2184.table\ + bufr/tables/0/wmo/13/codetables/2185.table\ + bufr/tables/0/wmo/13/codetables/2186.table\ + bufr/tables/0/wmo/13/codetables/2187.table\ + bufr/tables/0/wmo/13/codetables/2188.table\ + bufr/tables/0/wmo/13/codetables/2189.table\ + bufr/tables/0/wmo/13/codetables/2191.table\ + bufr/tables/0/wmo/13/codetables/22056.table\ + bufr/tables/0/wmo/13/codetables/22060.table\ + bufr/tables/0/wmo/13/codetables/22061.table\ + bufr/tables/0/wmo/13/codetables/22067.table\ + bufr/tables/0/wmo/13/codetables/22068.table\ + bufr/tables/0/wmo/13/codetables/22120.table\ + bufr/tables/0/wmo/13/codetables/22121.table\ + bufr/tables/0/wmo/13/codetables/22122.table\ + bufr/tables/0/wmo/13/codetables/22123.table\ + bufr/tables/0/wmo/13/codetables/22178.table\ + bufr/tables/0/wmo/13/codetables/23001.table\ + bufr/tables/0/wmo/13/codetables/23002.table\ + bufr/tables/0/wmo/13/codetables/23003.table\ + bufr/tables/0/wmo/13/codetables/23004.table\ + bufr/tables/0/wmo/13/codetables/23005.table\ + bufr/tables/0/wmo/13/codetables/23006.table\ + bufr/tables/0/wmo/13/codetables/23007.table\ + bufr/tables/0/wmo/13/codetables/23008.table\ + bufr/tables/0/wmo/13/codetables/23009.table\ + bufr/tables/0/wmo/13/codetables/23016.table\ + bufr/tables/0/wmo/13/codetables/23018.table\ + bufr/tables/0/wmo/13/codetables/23031.table\ + bufr/tables/0/wmo/13/codetables/23032.table\ + bufr/tables/0/wmo/13/codetables/24003.table\ + bufr/tables/0/wmo/13/codetables/25004.table\ + bufr/tables/0/wmo/13/codetables/25005.table\ + bufr/tables/0/wmo/13/codetables/25006.table\ + bufr/tables/0/wmo/13/codetables/25009.table\ + bufr/tables/0/wmo/13/codetables/25010.table\ + bufr/tables/0/wmo/13/codetables/25011.table\ + bufr/tables/0/wmo/13/codetables/25012.table\ + bufr/tables/0/wmo/13/codetables/25013.table\ + bufr/tables/0/wmo/13/codetables/25015.table\ + bufr/tables/0/wmo/13/codetables/25017.table\ + bufr/tables/0/wmo/13/codetables/25020.table\ + bufr/tables/0/wmo/13/codetables/25021.table\ + bufr/tables/0/wmo/13/codetables/25022.table\ + bufr/tables/0/wmo/13/codetables/25023.table\ + bufr/tables/0/wmo/13/codetables/25024.table\ + bufr/tables/0/wmo/13/codetables/25029.table\ + bufr/tables/0/wmo/13/codetables/25030.table\ + bufr/tables/0/wmo/13/codetables/25031.table\ + bufr/tables/0/wmo/13/codetables/25032.table\ + bufr/tables/0/wmo/13/codetables/25033.table\ + bufr/tables/0/wmo/13/codetables/25034.table\ + bufr/tables/0/wmo/13/codetables/25035.table\ + bufr/tables/0/wmo/13/codetables/25036.table\ + bufr/tables/0/wmo/13/codetables/25040.table\ + bufr/tables/0/wmo/13/codetables/25041.table\ + bufr/tables/0/wmo/13/codetables/25042.table\ + bufr/tables/0/wmo/13/codetables/25045.table\ + bufr/tables/0/wmo/13/codetables/25046.table\ + bufr/tables/0/wmo/13/codetables/25047.table\ + bufr/tables/0/wmo/13/codetables/25048.table\ + bufr/tables/0/wmo/13/codetables/25049.table\ + bufr/tables/0/wmo/13/codetables/25051.table\ + bufr/tables/0/wmo/13/codetables/25053.table\ + bufr/tables/0/wmo/13/codetables/25063.table\ + bufr/tables/0/wmo/13/codetables/25069.table\ + bufr/tables/0/wmo/13/codetables/25086.table\ + bufr/tables/0/wmo/13/codetables/25090.table\ + bufr/tables/0/wmo/13/codetables/25093.table\ + bufr/tables/0/wmo/13/codetables/25095.table\ + bufr/tables/0/wmo/13/codetables/25096.table\ + bufr/tables/0/wmo/13/codetables/25097.table\ + bufr/tables/0/wmo/13/codetables/25098.table\ + bufr/tables/0/wmo/13/codetables/25099.table\ + bufr/tables/0/wmo/13/codetables/25110.table\ + bufr/tables/0/wmo/13/codetables/25120.table\ + bufr/tables/0/wmo/13/codetables/25122.table\ + bufr/tables/0/wmo/13/codetables/25123.table\ + bufr/tables/0/wmo/13/codetables/25124.table\ + bufr/tables/0/wmo/13/codetables/25150.table\ + bufr/tables/0/wmo/13/codetables/25174.table\ + bufr/tables/0/wmo/13/codetables/25181.table\ + bufr/tables/0/wmo/13/codetables/25182.table\ + bufr/tables/0/wmo/13/codetables/25184.table\ + bufr/tables/0/wmo/13/codetables/26010.table\ + bufr/tables/0/wmo/13/codetables/29001.table\ + bufr/tables/0/wmo/13/codetables/29002.table\ + bufr/tables/0/wmo/13/codetables/30031.table\ + bufr/tables/0/wmo/13/codetables/30032.table\ + bufr/tables/0/wmo/13/codetables/31021.table\ + bufr/tables/0/wmo/13/codetables/31031.table\ + bufr/tables/0/wmo/13/codetables/33002.table\ + bufr/tables/0/wmo/13/codetables/33003.table\ + bufr/tables/0/wmo/13/codetables/33005.table\ + bufr/tables/0/wmo/13/codetables/33006.table\ + bufr/tables/0/wmo/13/codetables/33015.table\ + bufr/tables/0/wmo/13/codetables/33020.table\ + bufr/tables/0/wmo/13/codetables/33021.table\ + bufr/tables/0/wmo/13/codetables/33022.table\ + bufr/tables/0/wmo/13/codetables/33023.table\ + bufr/tables/0/wmo/13/codetables/33024.table\ + bufr/tables/0/wmo/13/codetables/33025.table\ + bufr/tables/0/wmo/13/codetables/33026.table\ + bufr/tables/0/wmo/13/codetables/33027.table\ + bufr/tables/0/wmo/13/codetables/33028.table\ + bufr/tables/0/wmo/13/codetables/33030.table\ + bufr/tables/0/wmo/13/codetables/33031.table\ + bufr/tables/0/wmo/13/codetables/33032.table\ + bufr/tables/0/wmo/13/codetables/33033.table\ + bufr/tables/0/wmo/13/codetables/33035.table\ + bufr/tables/0/wmo/13/codetables/33037.table\ + bufr/tables/0/wmo/13/codetables/33038.table\ + bufr/tables/0/wmo/13/codetables/33039.table\ + bufr/tables/0/wmo/13/codetables/33041.table\ + bufr/tables/0/wmo/13/codetables/33042.table\ + bufr/tables/0/wmo/13/codetables/33043.table\ + bufr/tables/0/wmo/13/codetables/33044.table\ + bufr/tables/0/wmo/13/codetables/33047.table\ + bufr/tables/0/wmo/13/codetables/33048.table\ + bufr/tables/0/wmo/13/codetables/33049.table\ + bufr/tables/0/wmo/13/codetables/33050.table\ + bufr/tables/0/wmo/13/codetables/33052.table\ + bufr/tables/0/wmo/13/codetables/33053.table\ + bufr/tables/0/wmo/13/codetables/33060.table\ + bufr/tables/0/wmo/13/codetables/33070.table\ + bufr/tables/0/wmo/13/codetables/33071.table\ + bufr/tables/0/wmo/13/codetables/33072.table\ + bufr/tables/0/wmo/13/codetables/33075.table\ + bufr/tables/0/wmo/13/codetables/33076.table\ + bufr/tables/0/wmo/13/codetables/33077.table\ + bufr/tables/0/wmo/13/codetables/33078.table\ + bufr/tables/0/wmo/13/codetables/33079.table\ + bufr/tables/0/wmo/13/codetables/33080.table\ + bufr/tables/0/wmo/13/codetables/33081.table\ + bufr/tables/0/wmo/13/codetables/33082.table\ + bufr/tables/0/wmo/13/codetables/33083.table\ + bufr/tables/0/wmo/13/codetables/33084.table\ + bufr/tables/0/wmo/13/codetables/33086.table\ + bufr/tables/0/wmo/13/codetables/35000.table\ + bufr/tables/0/wmo/13/codetables/35001.table\ + bufr/tables/0/wmo/13/codetables/35030.table\ + bufr/tables/0/wmo/13/codetables/35031.table\ + bufr/tables/0/wmo/13/codetables/35032.table\ + bufr/tables/0/wmo/13/codetables/35033.table\ + bufr/tables/0/wmo/13/codetables/35034.table\ + bufr/tables/0/wmo/13/codetables/35035.table\ + bufr/tables/0/wmo/13/codetables/40005.table\ + bufr/tables/0/wmo/13/codetables/40006.table\ + bufr/tables/0/wmo/13/codetables/40011.table\ + bufr/tables/0/wmo/13/codetables/40012.table\ + bufr/tables/0/wmo/13/codetables/40013.table\ + bufr/tables/0/wmo/13/codetables/40020.table\ + bufr/tables/0/wmo/13/codetables/40023.table\ + bufr/tables/0/wmo/13/codetables/40024.table\ + bufr/tables/0/wmo/13/codetables/40025.table\ + bufr/tables/0/wmo/13/codetables/4059.table\ + bufr/tables/0/wmo/13/codetables/4080.table\ + bufr/tables/0/wmo/13/codetables/8001.table\ + bufr/tables/0/wmo/13/codetables/8002.table\ + bufr/tables/0/wmo/13/codetables/8003.table\ + bufr/tables/0/wmo/13/codetables/8004.table\ + bufr/tables/0/wmo/13/codetables/8005.table\ + bufr/tables/0/wmo/13/codetables/8006.table\ + bufr/tables/0/wmo/13/codetables/8007.table\ + bufr/tables/0/wmo/13/codetables/8008.table\ + bufr/tables/0/wmo/13/codetables/8009.table\ + bufr/tables/0/wmo/13/codetables/8010.table\ + bufr/tables/0/wmo/13/codetables/8011.table\ + bufr/tables/0/wmo/13/codetables/8012.table\ + bufr/tables/0/wmo/13/codetables/8013.table\ + bufr/tables/0/wmo/13/codetables/8014.table\ + bufr/tables/0/wmo/13/codetables/8016.table\ + bufr/tables/0/wmo/13/codetables/8017.table\ + bufr/tables/0/wmo/13/codetables/8018.table\ + bufr/tables/0/wmo/13/codetables/8019.table\ + bufr/tables/0/wmo/13/codetables/8021.table\ + bufr/tables/0/wmo/13/codetables/8023.table\ + bufr/tables/0/wmo/13/codetables/8024.table\ + bufr/tables/0/wmo/13/codetables/8025.table\ + bufr/tables/0/wmo/13/codetables/8026.table\ + bufr/tables/0/wmo/13/codetables/8029.table\ + bufr/tables/0/wmo/13/codetables/8033.table\ + bufr/tables/0/wmo/13/codetables/8035.table\ + bufr/tables/0/wmo/13/codetables/8036.table\ + bufr/tables/0/wmo/13/codetables/8039.table\ + bufr/tables/0/wmo/13/codetables/8040.table\ + bufr/tables/0/wmo/13/codetables/8041.table\ + bufr/tables/0/wmo/13/codetables/8042.table\ + bufr/tables/0/wmo/13/codetables/8043.table\ + bufr/tables/0/wmo/13/codetables/8050.table\ + bufr/tables/0/wmo/13/codetables/8051.table\ + bufr/tables/0/wmo/13/codetables/8052.table\ + bufr/tables/0/wmo/13/codetables/8053.table\ + bufr/tables/0/wmo/13/codetables/8054.table\ + bufr/tables/0/wmo/13/codetables/8060.table\ + bufr/tables/0/wmo/13/codetables/8065.table\ + bufr/tables/0/wmo/13/codetables/8066.table\ + bufr/tables/0/wmo/13/codetables/8070.table\ + bufr/tables/0/wmo/13/codetables/8072.table\ + bufr/tables/0/wmo/13/codetables/8074.table\ + bufr/tables/0/wmo/13/codetables/8075.table\ + bufr/tables/0/wmo/13/codetables/8076.table\ + bufr/tables/0/wmo/13/codetables/8077.table\ + bufr/tables/0/wmo/13/codetables/8079.table\ + bufr/tables/0/wmo/13/codetables/8080.table\ + bufr/tables/0/wmo/13/codetables/8081.table\ + bufr/tables/0/wmo/13/codetables/8082.table\ + bufr/tables/0/wmo/13/codetables/8083.table\ + bufr/tables/0/wmo/13/codetables/8085.table\ + bufr/tables/0/wmo/13/codetables/8086.table + +definitionsbufr_tables_0_wmo_14dir = @GRIB_DEFINITION_PATH@/bufr/tables/0/wmo/14 +dist_definitionsbufr_tables_0_wmo_14_DATA = \ + bufr/tables/0/wmo/14/element.table\ + bufr/tables/0/wmo/14/sequence.def + +definitionsbufr_tables_0_wmo_15dir = @GRIB_DEFINITION_PATH@/bufr/tables/0/wmo/15 +dist_definitionsbufr_tables_0_wmo_15_DATA = \ + bufr/tables/0/wmo/15/element.table\ + bufr/tables/0/wmo/15/sequence.def + +definitionsbufr_tables_0_wmo_16dir = @GRIB_DEFINITION_PATH@/bufr/tables/0/wmo/16 +dist_definitionsbufr_tables_0_wmo_16_DATA = \ + bufr/tables/0/wmo/16/element.table\ + bufr/tables/0/wmo/16/sequence.def + +definitionsbufr_tables_0_wmo_17dir = @GRIB_DEFINITION_PATH@/bufr/tables/0/wmo/17 +dist_definitionsbufr_tables_0_wmo_17_DATA = \ + bufr/tables/0/wmo/17/element.table\ + bufr/tables/0/wmo/17/sequence.def + +definitionsbufr_tables_0_wmo_18dir = @GRIB_DEFINITION_PATH@/bufr/tables/0/wmo/18 +dist_definitionsbufr_tables_0_wmo_18_DATA = \ + bufr/tables/0/wmo/18/element.table\ + bufr/tables/0/wmo/18/sequence.def + +definitionsbufr_tables_0_wmo_19dir = @GRIB_DEFINITION_PATH@/bufr/tables/0/wmo/19 +dist_definitionsbufr_tables_0_wmo_19_DATA = \ + bufr/tables/0/wmo/19/cryosat_element.table\ + bufr/tables/0/wmo/19/cryosat_sequence.def\ + bufr/tables/0/wmo/19/element.table\ + bufr/tables/0/wmo/19/sequence.def + +definitionsbufr_tables_0_wmo_6dir = @GRIB_DEFINITION_PATH@/bufr/tables/0/wmo/6 +dist_definitionsbufr_tables_0_wmo_6_DATA = \ + bufr/tables/0/wmo/6/element.table\ + bufr/tables/0/wmo/6/sequence.def + definitionscdfdir = @GRIB_DEFINITION_PATH@/cdf dist_definitionscdf_DATA = \ cdf/boot.def @@ -2637,6 +3151,139 @@ dist_definitionsmars_eswi_DATA = \ mars/eswi/type.table\ mars/eswi/wave_domain.def +definitionsmetardir = @GRIB_DEFINITION_PATH@/metar +dist_definitionsmetar_DATA = \ + metar/CCCC.txt\ + metar/boot.def\ + metar/boot.flexible.def\ + metar/cccc.def\ + metar/clouds.def\ + metar/clouds.table\ + metar/clouds_Trend1.def\ + metar/clouds_Trend2.def\ + metar/clouds_Trend3.def\ + metar/clouds_Trend4.def\ + metar/colour.def\ + metar/direction.table\ + metar/horizontalVisibility.def\ + metar/horizontalVisibility_Trend1.def\ + metar/horizontalVisibility_Trend2.def\ + metar/horizontalVisibility_Trend3.def\ + metar/horizontalVisibility_Trend4.def\ + metar/missing_field.def\ + metar/nsd_cccc.txt\ + metar/present_weather.def\ + metar/present_weather.list\ + metar/present_weather_Trend1.def\ + metar/present_weather_Trend2.def\ + metar/present_weather_Trend3.def\ + metar/present_weather_Trend4.def\ + metar/qnh.def\ + metar/recent_weather.def\ + metar/remark.def\ + metar/runwayDepthOfDeposit.table\ + metar/runwayFrictionCoefficient.table\ + metar/runwayState.def\ + metar/runwayState1.def\ + metar/runwayState2.def\ + metar/runwayState3.def\ + metar/runwayState4.def\ + metar/runwayStateDeposit.table\ + metar/runwayStateExtentOfContamination.table\ + metar/rvr1.def\ + metar/rvr2.def\ + metar/rvr3.def\ + metar/rvr4.def\ + metar/seaState.table\ + metar/sea_state.def\ + metar/temperature.def\ + metar/temperature.list\ + metar/trend1.def\ + metar/trend2.def\ + metar/trend3.def\ + metar/trend4.def\ + metar/weatherCodes-forecasters.txt\ + metar/weatherCodes-full.txt\ + metar/weatherCodes-metar-template.txt\ + metar/weatherCodes-trend-template.txt\ + metar/wind.def\ + metar/wind_Trend1.def\ + metar/wind_Trend2.def\ + metar/wind_Trend3.def\ + metar/wind_Trend4.def\ + metar/wind_shear.def\ + metar/wrong_delayed.def + +definitionsmetar_stationsdir = @GRIB_DEFINITION_PATH@/metar/stations +dist_definitionsmetar_stations_DATA = \ + metar/stations/nsd_cccc.txt + +definitionstafdir = @GRIB_DEFINITION_PATH@/taf +dist_definitionstaf_DATA = \ + taf/CCCC.txt\ + taf/boot.def\ + taf/cccc.def\ + taf/clouds.def\ + taf/clouds.table\ + taf/clouds_Trend1.def\ + taf/clouds_Trend2.def\ + taf/clouds_Trend3.def\ + taf/clouds_Trend4.def\ + taf/colour.def\ + taf/direction.table\ + taf/horizontalVisibility.def\ + taf/horizontalVisibility_Trend1.def\ + taf/horizontalVisibility_Trend2.def\ + taf/horizontalVisibility_Trend3.def\ + taf/horizontalVisibility_Trend4.def\ + taf/missing_field.def\ + taf/nsd_cccc.txt\ + taf/present_weather.def\ + taf/present_weather.list\ + taf/present_weather_Trend1.def\ + taf/present_weather_Trend2.def\ + taf/present_weather_Trend3.def\ + taf/present_weather_Trend4.def\ + taf/qnh.def\ + taf/recent_weather.def\ + taf/remark.def\ + taf/runwayDepthOfDeposit.table\ + taf/runwayFrictionCoefficient.table\ + taf/runwayState.def\ + taf/runwayState1.def\ + taf/runwayState2.def\ + taf/runwayState3.def\ + taf/runwayState4.def\ + taf/runwayStateDeposit.table\ + taf/runwayStateExtentOfContamination.table\ + taf/rvr1.def\ + taf/rvr2.def\ + taf/rvr3.def\ + taf/rvr4.def\ + taf/seaState.table\ + taf/sea_state.def\ + taf/temperature.def\ + taf/temperature.list\ + taf/trend1.def\ + taf/trend2.def\ + taf/trend3.def\ + taf/trend4.def\ + taf/weatherCodes-forecasters.txt\ + taf/weatherCodes-full.txt\ + taf/weatherCodes-metar-template.txt\ + taf/weatherCodes-trend-template.txt\ + taf/wind.def\ + taf/wind_Trend1.def\ + taf/wind_Trend2.def\ + taf/wind_Trend3.def\ + taf/wind_Trend4.def\ + taf/wind_shear.def\ + taf/wrong_delayed.def + +definitionstaf_stationsdir = @GRIB_DEFINITION_PATH@/taf/stations +dist_definitionstaf_stations_DATA = \ + taf/stations/nsd_cccc.txt + definitionstidedir = @GRIB_DEFINITION_PATH@/tide dist_definitionstide_DATA = \ tide/boot.def\ diff --git a/definitions/bufr/boot_edition_1.def b/definitions/bufr/boot_edition_1.def new file mode 100644 index 000000000..c37d088e4 --- /dev/null +++ b/definitions/bufr/boot_edition_1.def @@ -0,0 +1,33 @@ +# Copyright 2005-2014 ECMWF. +# +# This software is licensed under the terms of the Apache Licence Version 2.0 +# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. +# +# In applying this licence, ECMWF does not waive the privileges and immunities granted to it by +# virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction. +# + +ascii[4] identifier = "BUFR" : read_only,hidden; +alias identifier=identifier; + +unsigned[3] section1Length; + +unsigned[1] editionNumber = 2; + +template section_1 "bufr/section.1.1.def" ; + +flagbit section2Present(section1Flags,7) = 1; + +if(section2Present){ + template section_2 "bufr/section.2.def" ; +} +else { + transient section2Length = 0; +} + +template section_3 "bufr/section.3.def" ; +template section_4 "bufr/section.4.def" ; +template section_5 "bufr/section.5.def" ; + +transient totalLength = section1Length + section2Length + section3Length + section4Length + 8; + diff --git a/definitions/bufr/boot_edition_2.def b/definitions/bufr/boot_edition_2.def new file mode 100644 index 000000000..0456ea8da --- /dev/null +++ b/definitions/bufr/boot_edition_2.def @@ -0,0 +1,32 @@ +# Copyright 2005-2014 ECMWF. +# +# This software is licensed under the terms of the Apache Licence Version 2.0 +# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. +# +# In applying this licence, ECMWF does not waive the privileges and immunities granted to it by +# virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction. +# + + +ascii[4] identifier = "BUFR" : read_only,hidden; +alias identifier=identifier; + +unsigned[3] totalLength ; + +unsigned[1] editionNumber = 2; + +template section_1 "bufr/section.1.2.def" ; + +flagbit section2Present(section1Flags,7) = 1; + +if(section2Present){ + template section_2 "bufr/section.2.def" ; +} +else { + transient section2Length = 0; +} + +template section_3 "bufr/section.3.def" ; +template section_4 "bufr/section.4.def" ; +template section_5 "bufr/section.5.def" ; + diff --git a/definitions/bufr/boot_edition_3.def b/definitions/bufr/boot_edition_3.def new file mode 100644 index 000000000..902d90d3f --- /dev/null +++ b/definitions/bufr/boot_edition_3.def @@ -0,0 +1,31 @@ +# Copyright 2005-2014 ECMWF. +# +# This software is licensed under the terms of the Apache Licence Version 2.0 +# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. +# +# In applying this licence, ECMWF does not waive the privileges and immunities granted to it by +# virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction. +# + +ascii[4] identifier = "BUFR" : read_only,hidden; +alias identifier=identifier; + +unsigned[3] totalLength ; + +unsigned[1] editionNumber = 2; + +template section_1 "bufr/section.1.3.def" ; + +flagbit section2Present(section1Flags,7) = 1; + +if(section2Present){ + template section_2 "bufr/section.2.def" ; +} +else { + transient section2Length = 0; +} + +template section_3 "bufr/section.3.def" ; +template section_4 "bufr/section.4.def" ; +template section_5 "bufr/section.5.def" ; + diff --git a/definitions/bufr/boot_edition_4.def b/definitions/bufr/boot_edition_4.def new file mode 100644 index 000000000..dcb30b848 --- /dev/null +++ b/definitions/bufr/boot_edition_4.def @@ -0,0 +1,30 @@ +# Copyright 2005-2014 ECMWF. +# +# This software is licensed under the terms of the Apache Licence Version 2.0 +# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. +# +# In applying this licence, ECMWF does not waive the privileges and immunities granted to it by +# virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction. +# + +ascii[4] identifier = "BUFR" : read_only,hidden; +alias identifier=identifier; + +unsigned[3] totalLength ; + +unsigned[1] editionNumber = 4; + +template section_1 "bufr/section.1.4.def" ; + +flagbit section2Present(section1Flags,7) = 1; + +if(section2Present){ + template section_2 "bufr/section.2.def" ; +} else { + transient section2Length = 0; +} + +template section_3 "bufr/section.3.def" ; +template section_4 "bufr/section.4.def" ; +template section_5 "bufr/section.5.def" ; + diff --git a/definitions/bufr/descriptor_template b/definitions/bufr/descriptor_template new file mode 100644 index 000000000..6fc9eec72 --- /dev/null +++ b/definitions/bufr/descriptor_template @@ -0,0 +1,13 @@ +None, +Synop, +Synop RA-I, +Synop RA-II, +Synop RA-III, +Synop RA-IV, +Synop RA-VI, +Synop Mobile, +Synop Ship, +Synop Ship VOS, +Pilot, +Temp, +Temp Drop, diff --git a/definitions/bufr/rdb_key_28.def b/definitions/bufr/rdb_key_28.def new file mode 100644 index 000000000..8e1a06775 --- /dev/null +++ b/definitions/bufr/rdb_key_28.def @@ -0,0 +1 @@ +assert(0); diff --git a/definitions/bufr/section.1.1.def b/definitions/bufr/section.1.1.def new file mode 100644 index 000000000..27fd661d2 --- /dev/null +++ b/definitions/bufr/section.1.1.def @@ -0,0 +1,27 @@ +# Copyright 2005-2014 ECMWF. +# +# This software is licensed under the terms of the Apache Licence Version 2.0 +# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. +# +# In applying this licence, ECMWF does not waive the privileges and immunities granted to it by +# virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction. +# + +codetable[2] originatingCentrer 'grib1/0.table' : dump; +unsigned[1] updateSequenceNumber; + +flags[1] section1Flags 'bufr/section1_flags.table' = 128 : hidden ; # = section 2 present + + +unsigned[1] dataCategory; +unsigned[1] dataSubCategory; +unsigned[2] localTablesVersionNumber; + +unsigned[1] yearOfCentury; +unsigned[1] month; +unsigned[1] day; +unsigned[1] hour; +unsigned[1] minute; +unsigned[1] masterTablesVersionNumber; + +alias masterTableNumber = editionNumber; # ? diff --git a/definitions/bufr/section.1.def b/definitions/bufr/section.1.2.def similarity index 80% rename from definitions/bufr/section.1.def rename to definitions/bufr/section.1.2.def index 4e74a97c3..1e6169337 100644 --- a/definitions/bufr/section.1.def +++ b/definitions/bufr/section.1.2.def @@ -2,26 +2,18 @@ # # This software is licensed under the terms of the Apache Licence Version 2.0 # which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. -# +# # In applying this licence, ECMWF does not waive the privileges and immunities granted to it by # virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction. # position offsetSection1; -length[3] section1Length ; +section_length[3] section1Length ; unsigned[1] masterTableNumber; -if(editionNumber < 3) -{ - codetable[2] centre 'grib1/0.table' : dump; -} -else -{ - codetable[1] subCentre 'grib1/0.table' : dump; - codetable[1] centre 'grib1/0.table' : dump; -} +codetable[2] centre 'grib1/0.table' : dump; unsigned[1] updateSequenceNumber; diff --git a/definitions/bufr/section.1.3.def b/definitions/bufr/section.1.3.def new file mode 100644 index 000000000..74ebef875 --- /dev/null +++ b/definitions/bufr/section.1.3.def @@ -0,0 +1,36 @@ +# Copyright 2005-2014 ECMWF. +# +# This software is licensed under the terms of the Apache Licence Version 2.0 +# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. +# +# In applying this licence, ECMWF does not waive the privileges and immunities granted to it by +# virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction. +# + + +position offsetSection1; +section_length[3] section1Length ; + +unsigned[1] masterTableNumber; + +codetable[1] subCentre 'grib1/0.table' : dump; +unsigned[1] centre : dump; + +unsigned[1] updateSequenceNumber; + +flags[1] section1Flags 'bufr/section1_flags.table' = 128 : hidden ; # = section 2 present + +unsigned[1] dataCategory : dump; +unsigned[1] dataSubCategory : dump; +unsigned[1] masterTablesVersionNumber; +unsigned[1] localTablesVersionNumber; + +unsigned[1] typicalYearOfCentury : dump; +unsigned[1] typicalMonth : dump; +unsigned[1] typicalDay : dump; +unsigned[1] typicalHour : dump; +unsigned[1] typicalMinute : dump; +unsigned[1] spare; # ??? + +section_padding section1Padding; + diff --git a/definitions/bufr/section.1.4.def b/definitions/bufr/section.1.4.def new file mode 100644 index 000000000..a0043f304 --- /dev/null +++ b/definitions/bufr/section.1.4.def @@ -0,0 +1,37 @@ +# Copyright 2005-2014 ECMWF. +# +# This software is licensed under the terms of the Apache Licence Version 2.0 +# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. +# +# In applying this licence, ECMWF does not waive the privileges and immunities granted to it by +# virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction. +# + + +position offsetSection1; +section_length[3] section1Length ; + +unsigned[1] masterTableNumber; + +codetable[2] centre 'grib1/0.table' : dump; +unsigned[2] subCentre : dump; + +unsigned[1] updateSequenceNumber; + +flags[1] section1Flags 'bufr/section1_flags.table' = 128 : hidden ; # = section 2 present + +unsigned[1] dataCategory : dump; +unsigned[1] internationalDataSubCategory : dump; +unsigned[1] dataSubCategory : dump; +unsigned[1] masterTablesVersionNumber; +unsigned[1] localTablesVersionNumber; + +unsigned[2] typicalYear : dump; +unsigned[1] typicalMonth : dump; +unsigned[1] typicalDay : dump; +unsigned[1] typicalHour : dump; +unsigned[1] typicalMinute : dump; +unsigned[1] typicalSecond : dump; + +section_padding section1Padding; + diff --git a/definitions/bufr/tables/0/local/8/247/0/element.table b/definitions/bufr/tables/0/local/8/247/0/element.table new file mode 100644 index 000000000..be938f180 --- /dev/null +++ b/definitions/bufr/tables/0/local/8/247/0/element.table @@ -0,0 +1,41 @@ +#code|abbreviation|type|name|unit|scale|reference|width|crex_unit|crex_scale|crex_width +001192|typeOfStationIdentifier|string|Type of station identifier|CCITT IA5|0|0|24 +001193|stationIdentifier|string|Station identifier|CCITT IA5|0|0|128 +002181|supplementaryPresentWeatherSensor|long|Supplementary present weather sensor|Flag-Table|0|0|21 +002193|antennaRotationDirection|double|Antenna rotation direction|Code-Table|0|0|2 +007192|pixelSizeInZdirection|double|Pixel size in Z-direction|Meters|-1|0|16 +021036|radarRainfallIntensity|double|Radar rainfall intensity|mm*h-1|2|0|16 +021198|alpha|double|dBZ-value offset (Alpha)|dBZ|2|-6400|14 +021199|beta|double|dBZ-value increment (Beta)|dBZ|1|0|7 +021200|heightOfCAPPI|double|Height of CAPPI|m|0|-1000|15 +021201|rangeBinSize|double|Range-bin size|Meter|0|0|14 +021202|azimuthalResolution|double|Azimuthal resolution|Degree|1|0|8 +021203|rangeBinOffset|double|Range-bin offset|Meter|-1|0|14 +021204|azimuthOffset|double|Azimuth offset|Degree|1|0|12 +021205|av|double|V-value offset (av)|m/s|2|-16384|15 +021206|bv|double|V-value increment (bv)|m/s|2|0|8 +021207|aw|double|W-value offset (aw)|m/s|2|0|14 +021208|bw|double|W-value increment (bw)|m/s|2|0|8 +025192|accumulationMethod|long|Accumulation method|Code-Table|0|0|8 +025193|adjustmentFactor|long|Adjustment factor|Numeric|2|0|10 +029192|typeOfRotationEllipsoid|long|Type of rotation ellipsoid|Code-Table|0|0|3 +029193|longitudeOrigin|double|Longitude Origin|Degree|2|-18000|16 +029194|latitudeOrigin|double|Latitude Origin|Degree|2|-9000|15 +029195|xOffset|double|X-Offset|Meters|0|-33554432|26 +029196|yOffset|double|Y-Offset|Meters|0|-33554432|26 +029197|standardParallel1|double|Standard parallel 1|Degree|2|-9000|15 +029198|standardParallel2|double|Standard parallel 2|Degree|2|-9000|15 +029199|semimajorAxisOfRotationEllipsoid|double|Semi-major axis of rotation ellipsoid|Meters|0|0|26 +029200|semiminorAxisOfRotationEllipsoid|double|Semi-minor axis of rotation ellipsoid|Meters|0|0|26 +029201|projectionType|Projection type|long|Code-Table|0|0|5 +029202|azimuthOfInitialLine|double|Azimuth of initial line|Degree|2|-9000|15 +029203|longitudeOrigin|Longitude Origin|double|Degree|5|-18000000|26 +029204|latitudeOrigin|Latitude Origin|double|Degree|5|-9000000|25 +029205|geographicProjectionAsPROJInit|string|Geographic projection as PROJ initialization string|CCITT IA5|0|0|800 +030192|northSouthViewOrganisations|long|North south view organisation|Code-Table|0|0|3 +030193|eastWestViewOrganisation|long|East west view organisation|Code-Table|0|0|3 +030194|numberOfBinsAlongTheRadial|long|Number of bins along the radial|Numeric|0|0|12 +030195|numberOfAzimuths|long|Number of azimuths|Numeric|0|0|11 +030196|typeOfProduct|long|Type of product|Code-Table|0|0|8 +030197|compressionMethod|long|Compression method|Code-Table|0|0|8 +030198|byteElementOfACompressedArray|double|Byte element of a compressed array|Numeric|0|0|8 diff --git a/definitions/bufr/tables/0/local/8/247/0/sequence.def b/definitions/bufr/tables/0/local/8/247/0/sequence.def new file mode 100644 index 000000000..bed65ee97 --- /dev/null +++ b/definitions/bufr/tables/0/local/8/247/0/sequence.def @@ -0,0 +1,40 @@ +# General information about radar product + "301192"= [ 301011,301012,301023,301023,301023,301023,029201,005002,006002,005033, 006033,030021,030022 ] +# Projection information + "301193"= [ 029199,029200,029193,029194,029195,029196,029197,029198 ] +# General information about radar product (high resolution) + "301194"= [ 301011,301012,301021,301021,301021,301021,029201,005001,006001,007001 ,005033,006033,030021,030022 ] +# Heights of side view + "313192"= [ 101000,031001,010007 ] +# 4 bit per pixel radar images (top view) + "321192"= [ 110000,031002,005031,107000,031001,102000,031001,031012,030001,101000 ,031001,030001 ] +# 8 bit per pixel radar images (top view) + "321193"= [ 110000,031002,005031,107000,031001,102000,031001,031012,030002,101000 ,031001,030002 ] +# 4 bit per pixel radar image (north-south view) + "321194"= [ 110000,031002,005031,107000,031001,102000,031001,031012,030001,101000 ,031001,030001 ] +# 8 bit per pixel radar image (north-south view) + "321195"= [ 110000,031002,005031,107000,031001,102000,031001,031012,030002,101000 ,031001,030002 ] +# 4 bit per pixel radar image (east-west view) + "321196"= [ 110000,031002,005031,107000,031001,102000,031001,031012,030001,101000 ,031001,030001 ] +# 8 bit per pixel radar image (east-west view) + "321197"= [ 110000,031002,005031,107000,031001,102000,031001,031012,030002,101000 ,031001,030002 ] +# Rain accumulation product + "321198"= [ 103000,031002,101000,031001,013016 ] +# Polar reflectivity data for a given elevation + "321199"= [ 110000,031001,301013,002134,002135,321006,021201,021202,002193,030194 ,030195,321193 ] +# Compressed rainfall accumulation data + "321200"= [ 110000,031002,005031,107000,031001,102000,031001,031012,013011,101000 ,031001,013011 ] +# Polar radial wind data for a given elevation + "321201"= [ 110000,031001,301013,002134,002135,321006,021201,021202,002193,030194 ,030195,321202 ] +# Compressed radial wind data array + "321202"= [ 110000,031002,005031,107000,031001,102000,031001,031012,021014,101000 ,031001,021014 ] +# ODIM polar volume mandatory content + "321203"= [ 112000,031001,321205,030196,002135,030194,021201,021203,030195,002134 ,102000,031001,030196,321206 ] +# ODIM additional station identifiers + "321204"= [ 102000,031001,001192,001193 ] +# ODIM times stamps + "321205"= [ 102002,301011,301013 ] +# ODIM compressed array + "321206"= [ 030197,103000,031002,101000,031002,030198 ] +# List of radars included in a composite + "321250"= [ 104000,031001,001001,001002,031031,033003 ] diff --git a/definitions/make_makefile_am.pl b/definitions/make_makefile_am.pl index 215b162bd..993c1c477 100755 --- a/definitions/make_makefile_am.pl +++ b/definitions/make_makefile_am.pl @@ -6,7 +6,7 @@ push @sub , "."; navigate("."); foreach my $d ( sort @sub ) { - process($d) unless $d =~ /bufr/; + process($d); } print "EXTRA_DIST=CMakeLists.txt\n\n"; print "include \$(DEVEL_RULES)\n"; @@ -38,7 +38,7 @@ sub process { next if($d =~ /^\./); unless (-d $d) { - push @files, $d if($d =~ /\.(table|def|grib|sh)$/); + push @files, $d if($d =~ /\.(txt|list|table|def|grib|sh)$/); } } diff --git a/definitions/metar/boot.flexible.def b/definitions/metar/boot.flexible.def new file mode 100644 index 000000000..e7f7e35de --- /dev/null +++ b/definitions/metar/boot.flexible.def @@ -0,0 +1,154 @@ +# Copyright 2005-2012 ECMWF. +# +# This software is licensed under the terms of the Apache Licence Version 2.0 +# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. +# +# In applying this licence, ECMWF does not waive the privileges and immunities granted to it by +# virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction. +# + +constant normal="NORMAL"; +constant correction="CORRECTION"; +#meta out sprintf("metar_%s.xml",count); + +alias temperatureAndDewpointPresent=zero; +alias qnhPresent=zero; +alias qnhAPresent=zero; +alias qfePresent=zero; +alias status=normal; +alias isCorrection=zero; +alias presentTrend1=zero; +alias presentTrend2=zero; +alias presentTrend3=zero; +alias isAuto=false; +alias windPresent=zero; +alias nosigPresent=zero; + +position startOfMessage; +message_copy theMessage :dump ; + +group identifier; non_alpha na; + +group g : dump; non_alpha na; + +if ( g is "COR" ) { + rename(g,cor); + alias isCorrection=one; + alias status=correction; + group g : dump; non_alpha na; +} +if (length(g) == 4) { + include "cccc.def"; +} else { + if (g is "METAR") { + rename(g,metarTwice); + group g : dump; non_alpha na; + if (length(g) == 4) { include "cccc.def"; } + else { + constant CCCC = "unknown"; + constant coordinatesPresent = 0; + } + } else { + constant CCCC = "unknown"; + constant coordinatesPresent = 0; + } +} + +if (substr(g,6,1) is "Z" && is_integer(g,0,6) ) { + rename(g,YYGGgg); + modify YYGGgg : hidden; + group g : dump ; non_alpha na; + year=getenv("METAR_YEAR") : dump; + month=getenv("METAR_MONTH") : dump; + day = to_string(YYGGgg,0,2) : dump; + hour = to_string(YYGGgg,2,2) : dump; + minute = to_string(YYGGgg,4,2) : dump; +} + +if ( ! isCorrection && g is "COR" ) { + rename(g,cor); + alias status=correction; + alias isCorrection=one; + group g : dump; non_alpha na; +} + +include "wrong_delayed.def"; + +if ( g is "NIL" ) { + rename(g,nil); group g : dump; +} else { + if (g is "AUTO") { + rename(g,auto); + alias isAuto=true; + group g : dump; non_alpha na; + } + + include "wind.def"; + include "horizontalVisibility.def"; + + if ( ! isCavok ) { + include "present_weather.def"; + include "clouds.def"; + } + + include "missing_field.def"; + include "temperature.def"; + include "qnh.def"; + include "colour.def"; + include "recent_weather.def"; + include "wind_shear.def"; + include "sea_state.def"; + template runwayState "metar/runwayState.def"; + include "trend1.def"; + include "trend2.def"; + include "trend3.def"; + include "trend4.def"; + +} + +include "remark.def"; + +if (length(g) == 0) { + modify g : hidden; +} else { + if ( ! remarkPresent) { + rename(g,skippedGroup); + group g : dump; non_alpha na; + include "colour.def"; + include "recent_weather.def"; + include "wind_shear.def"; + include "sea_state.def"; + template runwayState "metar/runwayState.def"; + include "temperature.def"; + include "qnh.def"; + if (!presentTrend1) { + include "trend1.def"; + include "trend2.def"; + include "trend3.def"; + include "trend4.def"; + } + } + include "remark.def"; + if ( ! remarkPresent) { + if ( length(g) == 0) { + modify g : hidden; + } else { + rename(g,unknownGroup) ; + } + } + group notDecoded("=") : dump; + if (remarkPresent) { + rename(notDecoded,remark); + } +} +ascii[1] endMark :read_only ; + +position totalLength; +position endOfMessage; + +meta lengthOfMessage evaluate( endOfMessage-startOfMessage); +meta md5Headers md5(startOfMessage,lengthOfMessage); + +alias ls.totalLength=totalLength; + + diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 8bd168cc8..3148e76ec 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -62,6 +62,7 @@ list( APPEND tests padding debug unit_tests + bufr_dump ) foreach( test ${tests} ) diff --git a/tests/Makefile.am b/tests/Makefile.am index d04b2bbf1..2bee06442 100755 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -9,7 +9,7 @@ TESTS = definitions.sh \ bitmap.sh list.sh second_order.sh \ multi_from_message.sh change_scanning.sh \ julian.sh statistics.sh tigge.sh tigge_conversions.sh \ - read_any.sh padding.sh lamb_az_eq_area.sh grib_to_netcdf.sh debug.sh $(JPEG_TEST) + read_any.sh padding.sh lamb_az_eq_area.sh grib_to_netcdf.sh bufr_dump.sh debug.sh $(JPEG_TEST) noinst_PROGRAMS = packing_check gauss_sub read_any double_cmp packing pack_unpack \ multi_from_message julian read_index index gribex_perf\ diff --git a/tests/bufr_dump.sh b/tests/bufr_dump.sh new file mode 100755 index 000000000..ee65b7e9e --- /dev/null +++ b/tests/bufr_dump.sh @@ -0,0 +1,20 @@ +#!/bin/sh +# Copyright 2005-2014 ECMWF. +# +# This software is licensed under the terms of the Apache Licence Version 2.0 +# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. +# +# In applying this licence, ECMWF does not waive the privileges and immunities granted to it by +# virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction. +# + + +. ./include.sh + +REDIRECT=/dev/null + +for file in ${data_dir}/bufr/*.bufr +do + ${tools_dir}bufr_dump -j $file 2> $REDIRECT > $REDIRECT +done +