Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Version 2.26.0 (May 2022)

Warning

Please note:

  • Calling the deprecated C functions codes_box_new and codes_box_get_points now return an error. These functions will be removed in the next version.

New Features/Improvements

  • [ECC-1375] - GRIB2: Add key to allow alternativeRowScanning to be turned off/on
  • [ECC-1019] - ecCodes and use of BUFR operator 3
  • [ECC-680] - BUFR operator 203YYY: implement encoding
  • [ECC-1387] - GRIB2 CCSDS: bitsPerValue should be set to 0 for a constant field
  • [ECC-1343] - Problems compiling with Jasper v3.0
  • [ECC-1362] - Testing: Add AEC packed data to test suite, that cannot be unpacked by SZIP
  • [ECC-1377] - GRIB: Change units of several wave parameters from dimensionless to radians
  • [ECC-1378] - GRIB2: Update tables/templates with the latest WMO V29.0.0
  • [ECC-1385] - BUFR: Update tables with the latest WMO V38.0.0
  • [ECC-1379] - GRIB: Provide GRIB2 IFS samples with CCSDS packing (for grid-point data)
  • [ECC-1380] - GRIB2: Create mechanism to resolve Fire dataset origin for MARS archiving
  • [ECC-1389] - Python3 bindings: Drop Python versions 3.5 and 3.6
  • [ECC-1367] - C API: codes_get_double_elements: The 'index_array' argument should be 'const'
  • [ECC-1369] - handle_new_from_samples: Allow sample file to include its extension
  • [ECC-1372] - GRIB: Update names and descriptions of 3 GFAS parameters
  • [ECC-1374] - GRIB: Add key 'accuracy' that represents the number of bits, whatever the packing
  • [ECC-1381] - GRIB2: Change the title of parameter code tables to include discipline and category
  • [ECC-1382] - C API: codes_fieldset_new_from_files: The 'keys' argument should be const
  • [ECC-1383] - Spelling: Accessor 'octect_number' should be 'octet_number'

Bug Fixes

  • [ECC-507] - BUFR operator 203YYY: decoded values wrong
  • [ECC-989] - BUFR: Valgrind error: Setting 'unpack=1' before setting unexpandedDescriptors
  • [ECC-1359] - codes_set_string: Fails for integer key even if string can be converted to an integer
  • [ECC-1363] - codes_set_string: Does not fail for invalid value for key of type 'double'
  • [ECC-1370] - GRIB2: Add the 1.5m versions of 2t, 2d, mn2t6 and mx2t6 for S2S
  • [ECC-1371] - GRIB2: Fix definitions for CERRA dataset
  • [ECC-1373] - GRIB2: Two CAMS parameters have duplicate encodings
  • [ECC-1390] - Python3 bindings: NameError: name 'GribInternalError' is not defined

Version 2.25.0 (March 2022)

Warning

Please note:

  • The CMake option ENABLE_AEC is now ON by default.
    AEC (Adaptive Entropy Coding) provides the WMO GRIB CCSDS compression and decompression of data.
    To force the build without it, use -DENABLE_AEC=OFF

New Features/Improvements

  • [ECC-1348] - CMake: Option Adaptive Entropy Coding (AEC) should be turned on by default

  • [ECC-1342] - GRIB2: Finalise the development of Ocean modelling
    The GRIB2 encodings of some parameters have changed. Please check the issue details.

  • [ECC-1318] - GRIB: Change units of parameter 260125
  • [ECC-1321] - GRIB2: replace is_s2s key with a generic S2S pseudo-centre
  • [ECC-1324] - GRIB2: replace is_tigge key with a generic TIGGE pseudo-centre
  • [ECC-1334] - GRIB2: add missing typeOfLevel from levtype mapping
  • [ECC-1344] - Always call fflush() and fsync() before fclose() of a written file
  • [ECC-1345] - GRIB: ECCODES_GRIB_IEEE_PACKING environment variable value should be checked
  • [ECC-1354] - GRIB2: Refactor and generalise the postProcessing concept
  • [ECC-1356] - OpenSuse Leap distribution fails to detect libaec even if installed, if sz2 is not installed too
  • [ECC-1357] - GRIB2: Add key 'aerosolTypeName' for aerosol templates
  • [ECC-1298] - GRIB2: Open Data parameters
  • [ECC-1335] - C API: Deprecate functions codes_box_new and codes_box_get_points
  • [ECC-1346] - GRIB: Fix the capitalisation in several parameter names
  • [ECC-1349] - GRIB2: Add the newly proposed heat index parameters
  • [ECC-1352] - GRIB CCSDS packing: Add extra tests
  • [ECC-1358] - GRIB2 UERRA: Add scaledValue/scaleFactor keys for param 174098
  • [ECC-1325] - Examples: Extend 'bufr_keys_iterator' example to determine the subset number
  • [ECC-1326] - grib_to_netcdf: Improve usage message
  • [ECC-1336] - CMake: Introduce ECCODES_ON_LINUX_32BIT variable for testing
  • [ECC-1327] - Examples: Provide the C version of bufr_read_tempf
  • [ECC-1351] - Python3 bindings: Support numpy.int64 as input to codes_set and codes_set_long

Bug Fixes

  • [ECC-670] - PowerPC: Some tests fail on ppc platform
  • [ECC-1315] - Keys like parameterName and nameOfFirstFixedSurface have a trailing space
  • [ECC-1316] - GRIB: Fortran API: codes_index_select doesn't work with 'parameterName' as key
  • [ECC-1319] - GRIB2: Add missing snow layer definition in marsLevtype concept
  • [ECC-1322] - grib_compare: Option '-e' generates dubious error message
  • [ECC-1323] - GRIB: Cannot convert gridType=space_view to edition 2
  • [ECC-1328] - GRIB2: Add missing marsLevtype concept: Lake or river bottom
  • [ECC-1329] - GRIB: Cannot convert Runoff (paramId=205) to edition 2
  • [ECC-1330] - BUFR: bufrTemplate='unknown' but should be 'aircraftReportWithSecondsAndPressure'
  • [ECC-1331] - GRIB: Polar stereographic projection with alternativeRowScanning is incorrect
  • [ECC-1332] - GRIB2: conditional levtype mapping for lake (sfc) vs ocean (o2d) for ice over water parameters
  • [ECC-1338] - Fortran: call to fclose() should check the return value
  • [ECC-1339] - GRIB2: ECCODES_GRIB_IEEE_PACKING environment variable does not work for edition 2
  • [ECC-1340] - GRIB1: setting packingType=grid_ieee does not work if there is a bitmap
  • [ECC-1347] - BUFR crash: malloc failure during encoding
  • [ECC-1350] - grib_compare: Incorrect behaviour when first file argument is a directory

  • [ECC-1254] - python-eccodes on conda uses the synchronised release tag for its version
  • [ECC-1317] - Python3 bindings: Data file tiggelam_cnmc_sfc.grib2 not included in released tar file

...

Performance enhancements

    • [ECC-638] - grib_ls/grib_get -l using mask: nearest neighbour performance
    • [ECC-668] - BUFR decode performance: high replication counts
    • [ECC-689] - GRIB decode performance: remove redundant keys from GRIB2 messages
    • [ECC-667] - BUFR decode performance: Operator 203YYY: override table keeps growing
  • [ECC-687] - Update GRIB2 definitions with the latest WMO V21.0.0 code tables/templates
  • [ECC-691] - Update BUFR tables with the latest WMO version 30
  • [ECC-616] - BUFR: Cannot extract subsets when operator 203YYY is present
  • [ECC-651] - grib_compare/bufr_compare: Enable a 'two-way' switch for symmetric comparison
  • [ECC-658] - bufr_compare: apply relative comparison (-R) to all ranks of a given key
  • [ECC-625] - Encoding of La1/La2/Lo1/Lo2 should 'snap out' domain edges for sub-areas.
  • [ECC-636] - filter rules: allow printing of array data all on one line
  • [ECC-637] - bufr_dump -p should show descriptors in the WMO F-X-Y format
  • [ECC-646] - Harmonise names of MARS CLASSes between the paramDB, Apps Catalogues and MARS
  • [ECC-654] - Change the name and shortName for parameter 217004 (Methane)
  • [ECC-655] - Lightning parameters: provide GRIB2 representation
  • [ECC-662] - Add extra keys in the EFAS local definition to store info on analysis and fillup
  • [ECC-664] - GRIB: Change the units of the emission parameters (table 219)
  • [ECC-672] - Use WMO codes for new lightning parameters
  • [ECC-679] - Add numberOfForecastsInEnsemble to the GRIB1 Local Definition number 16
  • [ECC-682] - Change the name of averaged lightning parameters
  • [ECC-684] - GRIB: Remove shortNames 'ocu' and 'ocv' from parameters 150133 and 150134
  • [ECC-690] - New Satellite Winds BUFR Sequence for GOES16 - AMVs
  • [ECC-692] - GRIB parameters: change name and shortName of aerosols (table 215)
  • [ECC-652] - New parameters for CAMS chemistry schemes: new species (table 217)
  • [ECC-659] - New parameters for CAMS chemistry schemes: species total column (table 218)
  • [ECC-660] - New parameters for CAMS chemistry schemes: Emissions and Wildfire flux (table 219)
  • [ECC-661] - New parameters for CAMS chemistry schemes: Dry deposition velocity (table 221)
  • [ECC-674] - Examples: typo in bufr_read_scatterometer.f90
  • [ECC-675] - Examples: confusing comment in bufr_expanded.f90

Bug Fixes

  • [ECC-693] - grib_to_netcdf: fails with UKMO GRIB (fields are not considered distinct)
  • [ECC-685] - grib_to_netcdf: fails with GRIB message with almost constant values
  • [ECC-694] - grib_to_netcdf: fails compilation with NetCDF version 3
  • [ECC-431] - bufr_compare: succeeds for BUFR files which are different
  • [ECC-568] - Different behaviour between bufr keys iterator and bufr dump
  • [ECC-640] - grib_ls -B crashes with non-existent input file
  • [ECC-645] - CRASH: BUFR encoding: setting a string key with integer value
  • [ECC-695] - BUFR encoding: Incorrect error message when value out of range
  • [ECC-648] - grib_filter: Cannot set codetable key to an array
  • [ECC-649] - Valgrind error: statistics for a field with all missing values
  • [ECC-650] - bufr_filter: outputs non-printable characters if string key is MISSING
  • [ECC-653] - Three files still have the GPL licence notice
  • [ECC-656] - bufr_compare: using relative comparison (-R) with 'all' does not work
  • [ECC-657] - grib_copy behaviour of -p -P -v options / manual
  • [ECC-677] - Delayed description replication factors not available (from bufr_dump -Dfortran)
  • [ECC-686] - BUFR: Changing the subtype in the local section has effect on other keys

Version 2.7.3 (April 2018)

  • [ECC-672] - Use WMO codes for new lightning parameters
    These are lightning flash density parameters output by the model in IFS cycle 45r1

  • [ECC-625] - Encoding of La1/La2/Lo1/Lo2 should 'snap out' domain edges for sub-areas

Version 2.7.0 (February 2018)

Contributions

  • [ECC-463] - Encoding of spherical harmonics sub-truncation using IEEE-64

New Features/Improvements

  • [ECC-407] - Add option to bufr_count/grib_count to count valid messages
  • [ECC-341] - implement area extraction in bufr_filter for uncompressed data
  • [ECC-629] - grib_ls and grib_count to read standard input instead of a filename
  • [ECC-394] - bufr_dump -E option: include keys whose values are MISSING
  • [ECC-607] - BUFR decode performance: remove redundant calls to reset_deeper_qualifiers
  • [ECC-608] - bufr_descriptor struct: reference type should be 'long' (not 'double')
  • [ECC-611] - BUFR Encoding: channelNumber reset to 0
  • [ECC-602] - Add parameters for Standardised Precipitation index (seasonal fc)
  • [ECC-612] - New parameters for Global Fire Assimilation System (GFAS)
  • [ECC-570] - Wave forecast verification: add support for LC-WFV
  • [ECC-562] - EFAS: Create GRIB2 local definition for EFAS data
  • [ECC-563] - EFAS: Add two parameters for total precipitation in the last 6 and 24 hrs
  • [ECC-641] - new BUFR key for Continuous Data Assimilation

Bug Fixes

  • [ECC-359] - CRASH: set 'pack' to 1 on new bufr handle
  • [ECC-597] - "grib_dump -D" returns "wrong size" errors on grid_second_order
  • [ECC-603] - Decoding of ERS (BUFR edition 2) data
  • [ECC-610] - isOctahedral does not work for non-global gaussian grids with specific areas
  • [ECC-614] - BUFR: problem with datetime extraction
  • [ECC-627] - grib_to_netcdf: fails with less user-friendly error message on non-regular grid
  • [ECC-634] - bufr_dump -p: does not list string keys with MISSING value
  • [ECC-635] - bufr_dump (JSON): should show missing value of string key as 'null'
  • [ECC-609] - ecCodes requires python 2.7 to run all the tests but the minimum required version is 2.6
  • [ECC-615] - ECMWF Installation: build with OpenJPEG v2.3 on all platforms
  • [ECC-617] - BUFR: add WMO version 2 tables from BUFRDC to ecCodes
  • [ECC-618] - BUFR: add WMO version=2 local version=1 tables from BUFRDC to ecCodes
  • [ECC-624] - centre CMCC for mars
  • [ECC-626] - BUFR local tables for processing MWHS and IRAS of FY-3 VASS products
  • [ECC-628] - BUFR local sequence for EUMETSAT AMSR-2 data
  • [ECC-631] - Assign centre abbreviation for 204 (NIWA)

...

New Features/Improvements

  • [ECC-567] - codes_split_file tool
    A new tool has been added. It splits an input file (GRIB, BUFR etc) into chunks of roughly the same size. The output files are named input_01, input_02 etc. This is much faster than grib_copy/bufr_copy.

  • [ECC-592] - Update BUFR tables with the latest WMO version 29
    Note: Some keys have been renamed as a result of this change:

    New name (from version 29)Old name
    verticalSoundingProductQualifiertovsOrAtovsProductQualifier
    bandwidthCorrectionCoefficient1bandwidthCorrectionCoefficient1ForAtovs
    bandwidthCorrectionCoefficient2bandwidthCorrectionCoefficient2ForAtovs


  • [ECC-584] - Update GRIB2 definitions with the latest WMO V20.0.0 code tables/templates
  • [ECC-549] - Create MARS stream for GRIB EFAS data
  • [ECC-555] - Add verificationYear, monthlyVerificationYear, verificationMonth, monthlyVerificationMonth for monthly streams
  • [ECC-477] - Redundant error message changing packing from CCSDS to grid_simple
  • [ECC-547] - Add WMO definition to 2 wave parameters and rename them
  • [ECC-571] - DWD: corrections to edzw local definitions (newer)
  • [ECC-574] - Update MARS stream descriptions for esmm and ehmm
  • [ECC-575] - Add new GRIB fields for lightning
  • [ECC-577] - Add localYear, localMonth, localDay, localHour, localMinute and localSecond to bufr_dump
  • [ECC-578] - Long names of GRIB parameters 210007-210010 (aermr07-10) are incorrect
  • [ECC-580] - Change of parameter name and units: 210064 and 210065
  • [ECC-581] - Tables 172 and 173: rename parameters and assign shortnames
  • [ECC-583] - Two new parameters: Water Vapour Flux and Water Vapour Flux Index
  • [ECC-585] - Add parameter for 'Fraction of snow cover' with units 'Proportion'

Bug Fixes

  • [ECC-594] - Assertion failed: `ktype == GRIB_TYPE_LONG' in src/grib_expression_class_functor.c
  • [ECC-596] - Memory leak: grib_accessor_class_md5.c
  • [ECC-538] - ecCodes does not honour ECCODES_NO_ABORT
  • [ECC-550] - Segmentation violation when setting descriptor 236000
  • [ECC-551] - Standard deviation is shown as NAN
  • [ECC-556] - BUFR: 'typicalDate' calculation should cater for invalid year in BUFR4
  • [ECC-557] - class="l5": set mars.step=endStep for streams mnth/edmm/wamo/ewmm
  • [ECC-558] - Windows - linker error: unresolved external symbol _grib_dumper_class_bufr_simple
  • [ECC-579] - BUFR nested replication problem
  • [ECC-582] - bufr_dump -Efortran creates BUFR which differs from input (string value)
  • [ECC-586] - CRASH: extracting nonexistent BUFR subset with doExtractSubsets
  • [ECC-589] - Clang ThreadSanitizer error: data race on 'bits_all_one'
  • [ECC-590] - Clang ThreadSanitizer error: data race on expanded_descriptor_list_push

Version 2.5.0 (October 2017)

Contributions

  • [ECC-518] - grib_to_netcdf: support deflate option for netCDF-4 output formats
    Thanks to Antonio S. Cofino Gonzalez.
    New options provided for grib_to_netcdf to support deflate and shuffle options for netCDF-4 output formats.

New Features/Improvements

  • [ECC-419] - Simple bufr_dump
    A "-p" option is provided for bufr_dump to allow a "plain" mode dump, just listing key=value

  • [ECC-533] - Implement grib_find_nearest() for Polar Stereographic grid_type
  • [ECC-476] - Add new function codes_count_in_filename which takes a path
  • [ECC-504] - New runoff parameters for system 5 seasonal forecast
  • [ECC-534] - Add two parameters for river discharge in the last 6 and 24 hrs
  • [ECC-537] - Update the local concepts for DWD (2017.09)
  • [ECC-548] - Add GRIB2 Product Definition Templates 4.67 and 4.68
  • [ECC-443] - netcdf4 compression with grib_to_netcdf
  • [ECC-485] - Add support for non-integer size for the 'codetable' statement
  • [ECC-505] - Add BUFR local descriptors from EUMETSAT
  • [ECC-509] - Add option to skip install of fortran modules
  • [ECC-468] - tables seem to be installed as files instead of symbolic links
  • [ECC-500] - Performance: grib2: grib_ls using local parameter takes longer than WMO parameter
  • [ECC-508] - Add option to not install grib definitions and samples
  • [ECC-510] - Add new MARS class for ERA5 land surface parameters
  • [ECC-526] - typeOfLevel key should include typeOfFirstFixedSurface == 10 (Entire atmosphere)
  • [ECC-528] - Add wmo_read_any_from_stream_malloc()
  • [ECC-540] - When using MEMFS the default should be not to install samples and definitions

Bug Fixes

  • [ECC-532] - Problems with bufr_dump: taking all available memory
  • [ECC-435] - CRASH: Python keys iterator on GRIB message
  • [ECC-473] - isOctahedral does not work for non-global gaussian grids
  • [ECC-478] - Scaling values using grib_set ignores values=9999. when bitmapPresent=0
  • [ECC-480] - grib_filter slower on large GRIB file compared with grib_api
  • [ECC-490] - GRIB-API -> ecCodes F90 migration issue
  • [ECC-492] - bufr_dump problems for extracted Aeolus BUFR file
  • [ECC-501] - GRIB2 encoding: longitude values should be 0 to 360
  • [ECC-503] - Fortran interface: status argument of keys_iterator_next should not be optional
  • [ECC-511] - Invalid data read from FRET grib2 files with grid_complex_spatial_differencing packing
  • [ECC-515] - CRASH: reading very large GRIB1 message
  • [ECC-517] - crash/error setting inputExtendedDelayedDescriptorReplicationFactor greater than 486
  • [ECC-521] - grib_get_data for Lambert Conformal: incorrect if adjacent rows scan in the opposite directions
  • [ECC-522] - Lat/Lon iterator gives wrong result for some scanning and organisation modes
  • [ECC-524] - grib_iterator behaves strangely for lambert representation
  • [ECC-529] - grib_get_data for polar stereographic gets wrong lat and long
  • [ECC-535] - Workaround for internal compiler error in memfs.c on Cray
  • [ECC-542] - Enabling memfs searches for Python include dir
  • [ECC-545] - Assertion failure retrieving grib key

Version 2.4.1 (August 2017)

  • [ECC-511] - Invalid data read from FRET grib2 files with grid_complex_spatial_differencing packing
  • [ECC-478] - Scaling values using grib_set ignores values=9999. when bitmapPresent=0
  • [ECC-514] - CMath library is added as a source file
  • [ECC-509] - Add option to skip install of fortran modules
  • [ECC-345] - "make install" should allow not to install definitions files and samples when MEMFS is on
  • [ECC-508] - Add option to not install grib definitions and samples
  • [ECC-510] - Add new MARS class for ERA5 land surface parameters

...

New Features/Improvements

  • [ECC-287] - Support for GRIB3 (experimental)

    Warning

    This is an initial prototype GRIB edition 3 decoder/encoder to accelerate development of the standard to be proposed to WMO.
    At this point this implementation is entirely experimental and can change in future releases.
    It is provided here to solicit feedback.


  • [ECC-470] - BUFR: iasi encoding performance
  • [ECC-482] - datetime comparison in bufr_filter
  • [ECC-484] - Implement logical AND specialised expression
  • [ECC-486] - Implement logical OR specialised expression
  • [ECC-487] - Add parameter for '2 metre relative humidity with respect to water'
  • [ECC-488] - Add GRIB1 representation for parameter 260048 (total precipitation rate)
  • [ECC-496] - Request for a modification of the naming of the new lightning GRIB fields
  • [ECC-497] - New GRIB parameters needed for system 5 seasonal forecast
  • [ECC-420] - CPU time of BUFR unpacking increased significantly in 2.1.0
  • [ECC-483] - Add mars key 'system' for class 'c3'
  • [ECC-481] - extended BUFR rdbSubtype
  • [ECC-493] - Saral altika data using a wrong masterTablesVersionNumber
  • [ECC-489] - Remove unused 'name' data member from struct 'bufr_descriptor'
  • [ECC-411] - Add an environment variable so that GRIB_MAX_OPEN_FILES can be user configurable

Bug Fixes

  • [ECC-313] - Add support for BUFR operator 203YYY
  • [ECC-433] - BUFR operator 206YYY not working
  • [ECC-494] - DESTDIR ignored for Python bindings

Version 2.3.0 (May 2017)

Contributions

  • [ECC-441] - MeteoFrance contribution: GRIB second order packing
  • [ECC-458] - MeteoFrance contribution: GRIB spectral complex packing
  • [ECC-461] - Python: GribMessage class to allow multiple keys to be set

New Features/Improvements

  • [ECC-475] - BUFR WMO version 28 and local tables to be added to ecCodes
  • [ECC-472] - Update GRIB2 definitions with the latest WMO V19.0.0 code tables/templates
  • [ECC-452] - codes_bufr_copy_data missing in Pythonic interface
  • [ECC-460] - Add centre codes for New Delhi (dems/vabb)
  • [ECC-454] - Add new parameters for land reanalysis (ERA5-Land)
  • [ECC-466] - Add two parameters for evaporation in the last 6 and 24 hrs
  • [ECC-437] - tigge_check: bitmap fields with only undefined values
  • [ECC-449] - Remove unused "unpack" data member from grib_context
  • [ECC-456] - type=oi for UERRA class
  • [ECC-457] - GRIB1 to GRIB2 conversion: total precipitation
  • [ECC-459] - GRIB1 to GRIB2 conversion: Local Definition 5 (Forecast probability data)
  • [ECC-465] - Key 'deleteLocalDefinition' works for GRIB edition 1 only

Bug Fixes

  • [ECC-438] - stepUnits throws errors when processing GRIBs with stepUnit != 1 (hour)
  • [ECC-444] - eccodes fails to build when both fmemopen and funopen are available
  • [ECC-447] - ecCodes Python packages not added to the installation manifest
  • [ECC-448] - codes_new_from_message does not set product_kind on handle
  • [ECC-451] - new pythonic interface segv
  • [ECC-453] - grib_set fails randomly: Unable to set stepRange: end must be equal to start when timeRangeIndicator=10
  • [ECC-467] - JRA55: map indicatorOfTypeOfLevel=101 to mars.levtype='sfc'

...

New Features/Improvements

  • [ECC-442] - Implement codes_get_double_element for BUFR array keys (compressed data)
  • [ECC-415] - Performance of eccodes used in BUFR2ODB not good for operations
  • [ECC-418] - Fortran and Python codes_bufr_keys_iterator
  • [ECC-424] - codes_bufr_keys_iterator_delete should free memory allocated for name
  • [ECC-432] - GRIB2 local coding for SPP random field parameters
  • [ECC-436] - Add parameters: maximum CAPE in the last 6 hours and maximum CAPES (CAPE/Shear) in the last 6 hours
  • [ECC-106] - CMake: overriding default install directories

Bug Fixes

  • [ECC-89] - bufrHeaderCentre cannot be printed as string for edition 3 messages
  • [ECC-406] - Cannot convert grid_simple to grid_second_order for some files
  • [ECC-417] - MEMFS option does not work with Python3
  • [ECC-425] - grib_to_netcdf crash when running out of memory
  • [ECC-426] - Use common code tables C-1 and C-11 for GRIB/BUFR
  • [ECC-429] - BUFR: The "count" key works differently from GRIB

Version 2.1.0 (January 2017)

Contributions

  • [ECC-157] - Add high-level Pythonic interface (experimental)
  • [ECC-369] - Differentiate exception types in Python interface
    Thanks to Daniel Lee (DWD)
    The high-level interface is currently experimental and may change in a future release. It is provided here to solicit feedback.

  • [ECC-261] - Reduce packing error by optimizing scaling factor
    Thanks to Philippe Marguinaud (MeteoFrance)

  • [ECC-409] - GNU Hurd support
    Thanks to Alastair McKinstry

New Features/Improvements

  • [ECC-414] - Create a sample BUFR file with the new Sentinel 1 descriptors

    We have included a sample BUFR file with the new Sentinel 1 descriptors approved in WMO tables 27 (released Nov 2016)
    You can find this file in the data tarball. It is also downloaded when running the tests (data/bufr/sentinel1.bufr)

  • [ECC-383] - Implement GRIB lat/lon iterator for 'space view'
  • [ECC-358] - Update GRIB2 definitions with the latest WMO V18.0.0 code tables/templates
  • [ECC-372] - Performance improvement of search by rank
  • [ECC-222] - Decode BUFR data section providing only values array
  • [ECC-363] - Update unbalanced component parameters with WMO GRIB2 codes
  • [ECC-370] - Python: setting keys should handle both scalars and arrays
  • [ECC-395] - Add a new MARS class for YOPP
  • [ECC-396] - Support for Jasper 2.0
  • [ECC-410] - Add GRIB2 Product Definition Template 4.58
  • [ECC-412] - Support for CAMS and CERA-SAT: streams mnth/edmm/wamo/ewmm
  • [ECC-357] - Implement codes_bufr_copy_data in C, Fortran and Python
  • [ECC-365] - add placeholder facility in the output filename of grib_filter (like it is done in grib_set/grib_copy)
  • [ECC-379] - BUFR encoding failing when value out of range
  • [ECC-382] - Provide API function to access the name of the package
  • [ECC-391] - Text fix for grib_index.c
  • [ECC-392] - bufr_compare: should print double value as MISSING rather than -1e+100
  • [ECC-397] - Rename parameter 260242 to '2 metre relative humidity'
  • [ECC-399] - Detecting NaN values when encoding grib
  • [ECC-413] - DWD local definitions: Remove superfluous tables

Bug Fixes

  • [ECC-325] - Memory leaks during BUFR unpack
  • [ECC-339] - Improve keys iterator for BUFR
  • [ECC-376] - BUFR tables version 27 to be added to ecCodes
  • [ECC-386] - GRIB: Slow-down of read routine
  • [ECC-272] - Flat JSON dump of some BUFR files doesn't contain the last element
  • [ECC-275] - errors.pl not creating ecCodes header files
  • [ECC-336] - ctest gts failures on minimac
  • [ECC-351] - grib_util_set_spec() returns a corrupted field
  • [ECC-353] - grib_util_spec() does not always generate jpeg
  • [ECC-355] - grib_compare: using relative comparison (-R) with "all" does not work
  • [ECC-361] - Test failure: bufr_copy_data F90 example with PGI compiler
  • [ECC-364] - BUFR extractSubsets wrong result when key is constant in the extracted range
  • [ECC-367] - BUFR extractSubsets for stationOrSiteName key
  • [ECC-368] - Last element of a BUFR message not found when using search expression
  • [ECC-373] - grib_api.h incorrectly wraps system headers in extern "C"
  • [ECC-378] - Reading a file of 0 bytes does not generate any error and eventually crashes
  • [ECC-380] - ecCodes attempts to link to openjpeg 1.X library if found
  • [ECC-387] - Thread safety for BUFR decoding
  • [ECC-388] - Missing bounds check in grib_trie.c leads to segfault
  • [ECC-389] - BUFR encoding 2 values as different should be one value
  • [ECC-393] - bufr_compare: cannot blacklist a key with given rank
  • [ECC-398] - untrapped error : No descriptors in section 3. Malformed message
  • [ECC-402] - codes_set does not set localLongitude in BUFR to correct values
  • [ECC-404] - JPEG-specific tests run and fail when ENABLE_JPG is off / JPEG headers are not available
  • [ECC-405] - Corrupt BUFR file: bufr_new_from_file crash
  • [ECC-408] - grib_handle_new_from_partial_message should take const data pointer

Version 2.0.2 (November 2016)

  • [ECC-364] - BUFR extractSubsets wrong result when key is constant in the extracted range
  • [ECC-367] - BUFR extractSubsets for stationOrSiteName key
  • [ECC-368] - Last element of a BUFR message not found when using search expression
  • [ECC-358] - Update GRIB2 definitions with the latest WMO V18.0.0 code tables/templates
  • [ECC-385] - UERRA: Type of first fixed surface 118 should be mapped to the levtype=ml

...

Tip

This is the first full (Production-ready) release of ecCodes.
This means that the application has gone through a thorough internal testing process and that all known technical issues have been resolved.  It is now fully functional and ready to be released for general use.

GRIB encoding and decoding has been particularly well tested within the IFS and ecCodes replaces GRIB-API in the next operational cycle update.
BUFR encoding and decoding has been tested and work has started to replace BUFRDC with ecCodes in ECMWF operational software.

Contributions

  • [ECC-260] - Add support for template 5.42 (CCSDS)
    Thanks to Daniel Lee (DWD) and Mathis Rosenhauer (DKRZ)

  • [ECC-303] - Cannot build with OpenJPEG version 2
    Thanks to Alastair McKinstry

New Features/Improvements

  • [ECC-284] - Dump instructions to create the input BUFR message
  • [ECC-320] - Dump instructions to decode a BUFR message
  • [ECC-151] - Implement change of compression method in BUFR
  • [ECC-178] - Implement codes_set for delayedReplication in BUFR
  • [ECC-307] - implement area extraction in bufr_filter for compressed data
  • [ECC-314] - implement extraction of a time interval in BUFR for compressed data
  • [ECC-354] - simple thinning of BUFR data
  • [ECC-312] - Interface change: Remove functions codes_new_from_samples and codes_handle_new_from_samples
  • [ECC-297] - Add support for Data representation template 5.42 - Grid point and spectral data - CCSDS
  • [ECC-285] - bufr_dump -Efilter
  • [ECC-292] - bufr_dump -Efortran
  • [ECC-293] - bufr_dump -Epython
  • [ECC-327] - bufr_dump -EC
  • [ECC-295] - codes_set_string_array Fortran
  • [ECC-304] - New wave parameters as requested by member state users
  • [ECC-310] - Python codes_set_array with strings
  • [ECC-348] - BUFR decoding not to fail when wrong data section length
  • [ECC-283] - F90/Python: Add functions for setting definitions and samples paths
  • [ECC-294] - C function grib_get_data has unused argument 'size'
  • [ECC-296] - Use Python distutils to install Python modules
  • [ECC-300] - add some BUFR header keys to dump
  • [ECC-301] - Add tests for bufr_dump -Efortran feature
  • [ECC-323] - bufr_dump should fail if decoding fails
  • [ECC-330] - Array size control in grib_fortran.c
  • [ECC-334] - BUFR edition 3: bufr_dump does not show the key 'edition'
  • [ECC-224] - Make Python and Fortran test for set by rank
  • [ECC-251] - typicalDate should be localDate and read only
  • [ECC-332] - GRIB-netCDF parameter mappings updates


Bug Fixes

  • [ECC-200] - doxygen not working and documentation missing
  • [ECC-236] - bufr_ls does not print the right value for unpacked data
  • [ECC-286] - bufr_filter not able to set keys names starting with a number
  • [ECC-288] - bufr_compare -R key=tolerance does not work
  • [ECC-289] - problem encoding string in BUFR non compressed
  • [ECC-290] - not possible to set value for operator 205YYY in BUFR
  • [ECC-291] - numberOfObservations key in BUFR header conflict with element key name
  • [ECC-298] - fortran codes_new_from_samples does not work for BUFR
  • [ECC-299] - Fortran error messages in codes_ functions print message with grib_
  • [ECC-302] - bufr_compare does not compare attributes
  • [ECC-324] - bufr_dump: Segmentation fault
  • [ECC-328] - Compiler warning: passing incompatible pointer types on macosx
  • [ECC-333] - bufr_compare -H aborting
  • [ECC-335] - grib_util_set_spec: Setting edition=2 and deleteLocalDefinition=1 on GRIB1 does not delete the local definition in target GRIB2
  • [ECC-338] - Many transient keys are shown in the dump and keys_iterator
  • [ECC-317] - Number of values not set correct in JPEG encoded constant field.
  • [ECC-319] - GRIBEditionNumber returns "?" if queried as a string
  • [ECC-316] - GRIB1: Representation of 'seconds' unit (15) disagrees with WMO table 4 (254)
  • [ECC-308] - grib_to_netcdf duplicate grib message error output
  • [ECC-331] - grib_get_size returns incorrect size for GRIB 1 'reservedNeedNotBePresent' key

...