Skip to content

Releases: NOAA-MDL/grib2io

grib2io v2.1.2

16 Jan 14:35
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v2.1.1...v2.1.2

grib2io v2.1.1

18 Dec 16:43
Compare
Choose a tag to compare

grib2io v2.1.1 Release Notes

  • Emergency release because I forgot to include VERSION file in MANIFEST.in 😞

What's Changed in v2.1.0

  • Fixed an issue where template numbers for new Grib2Message objects where not being put into the section array by @EricEngle-NOAA in #102
  • Add support for DRT 5.42 - AEC compression (requires NCEPLIBS-g2c v1.8.0 or newer) by @EricEngle-NOAA in #103
  • Allow for appending GRIB2 messages to an existing GRIB2 file by @alcoat in #104
  • Provide lookup functions for GRIB2 variable shortNames by @EricEngle-NOAA in #109
  • Fixed threshold metadata issues for GRIB2 PDTs 4.5 and 4.9 by @EricEngle-NOAA in #106 and in #110
  • Added support for Grid Definition Template 32769 and generation of lats and lons for this grid by @EricEngle-NOAA in #111
  • Updated demo Jupyter Notebooks by @eengl in #112
  • Updated GRIB2 tables and docstring cleanup.
  • Added __index__ for Grib2Metadata class (0dc99b2) and show_table() method (2cadd5d).
  • Fixed an issue where the correct number of grid points would be missing from Grib2Message.section3[1]. (8bce22c)
  • Added module-level variables has_aec_support, has_jpeg_support, and has_png_support for testing the availability of 3rd party compression features from NCEPLIBS-g2c. (12c6db7)

New Contributors

Full Changelog: v2.1.0...v2.1.1

grib2io v2.1.0

18 Dec 16:36
Compare
Choose a tag to compare

What's Changed

  • Fixed an issue where template numbers for new Grib2Message objects where not being put into the section array by @EricEngle-NOAA in #102
  • Add support for DRT 5.42 - AEC compression (requires NCEPLIBS-g2c v1.8.0 or newer) by @EricEngle-NOAA in #103
  • Allow for appending GRIB2 messages to an existing GRIB2 file by @alcoat in #104
  • Provide lookup functions for GRIB2 variable shortNames by @EricEngle-NOAA in #109
  • Fixed threshold metadata issues for GRIB2 PDTs 4.5 and 4.9 by @EricEngle-NOAA in #106 and in #110
  • Added support for Grid Definition Template 32769 and generation of lats and lons for this grid by @EricEngle-NOAA in #111
  • Updated demo Jupyter Notebooks by @eengl in #112
  • Updated GRIB2 tables and docstring cleanup.
  • Added __index__ for Grib2Metadata class (0dc99b2) and show_table() method (2cadd5d).
  • Fixed an issue where the correct number of grid points would be missing from Grib2Message.section3[1]. (8bce22c)
  • Added module-level variables has_aec_support, has_jpeg_support, and has_png_support for testing the availability of 3rd party compression features from NCEPLIBS-g2c. (12c6db7)

New Contributors

Full Changelog: v2.0.2...v2.1.0

grib2io v2.0.2

06 Oct 12:07
Compare
Choose a tag to compare

Another very small bugfix release.

What's Changed

  • Fixed a bug in show_config() that was causing a ModuleNotFoundError. (see eb95acd)

Full Changelog: v2.0.1...v2.0.2

grib2io v2.0.1

05 Oct 18:34
Compare
Choose a tag to compare

grib2io v2.0.1 is a bugfix release along with some minor enhancements to the xarray backend

What's Changed

  • Removed import g2clib from grib2io.utils.__init__. This is no longer needed and was causing ModuleNotFoundError. (see 992c891)
  • Fixed an issue in setup.py where g2c_incdir could be undefined. (see 8db08fa)
  • Fixed an issue when creating a new Grib2Message object from scratch, the reference date components are set to zero that would raise errors with the datetime.datetime objects. For new Grib2Messages, the reference date is now set to the UNIX epoch. (see 7fd6f5d)
  • xarray backend: Added ability to pass interpolation method options to the interp accessor functions. (see b9053dc)
  • xarray backend: Added engine attribute to returned Dataset; added griddef() accessor function to return the grib2io.Grib2GridDef object. (see f4944b3)
  • xarray backend: Added validDate coordinate variable and shortName and fullName attrs to DataArrays. (see 3f7225d)

Full Changelog: v2.0.0...v2.0.1

grib2io v2.0.0

10 Jul 14:02
4e353a3
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.1.0...v2.0.0

grib2io v2.0.0rc2

26 Jun 14:38
Compare
Choose a tag to compare
grib2io v2.0.0rc2 Pre-release
Pre-release

What's Changed

Full Changelog: v2.0.0rc1...v2.0.0rc2

grib2io v2.0.0rc1

06 Jun 23:46
Compare
Choose a tag to compare
grib2io v2.0.0rc1 Pre-release
Pre-release

What's Changed

New Contributors

Known Issues

  • Issue generating latitude and longitude values for some GRIB2 files (mainly from CMC and BOM Australia) #82

Full Changelog: v2.0.0b2...v2.0.0rc1

grib2io v2.0.0b2

14 Apr 15:13
Compare
Choose a tag to compare
grib2io v2.0.0b2 Pre-release
Pre-release

grib2io v2.0.0 Beta 2 Release Notes

Fixes:

  • Fixed issue with grib2io.open.select() to allow it to ignore Grib2Message objects where a metadata attribute would not be present. Previously, this would lead to an error being raised. (#63)
  • Fixed issue with generating lats and lons for rotated grids. (#42)
  • Fixed issue with packing a Grib2Message object when a bit map is present. (#62)
  • Fixed issue in setup.py that was not allowing xarray backend to be installed properly. (#64)

IMPORTANT: This release is available on PyPI as 2.0.0b2.post1

  • This release fixes some of the setup.cfg/.py issues with the available original 2.0.0b2. (#65, #69)

Full Changelog: v2.0.0b1...v2.0.0b2

grib2io v2.0.0b1

13 Mar 17:33
f450b1a
Compare
Choose a tag to compare
grib2io v2.0.0b1 Pre-release
Pre-release

grib2io v2.0.0 Beta 1 Release Notes

Introduction

The entire grib2io codebase has been rewritten. grib2io v1 was an optimized version of its predecessor, ncepgrib2 (formerly a part of the pygrib package). grib2io v2 has taken a different approach to handling the vast amount of GRIB2 metadata.

The Grib2Message object uses dynamic inheritance where it is comprised of a base object (for GRIB2 Sections 0 and 1). The rest of the GRIB2 message makes use of templates, so grib2io defines each grid, product, and data representation template as a class. When a GRIB2 message is read from file or created from scratch, Grib2Message.__new__() is used to create the custom Grib2Message object based on the template numbers.

In the Grib2Message object, GRIB2 section metadata values are stored in class variables of the section name (e.g. section0, section1, etc). The Grib2Message base class and template classes contain metadata that are class variable that are dataclass field objects. Their default values are descriptor classes that live in grib2io/templates. Each GRIB2 metadata attribute has a descriptor class defined for it. This allows for real-time mapping between a GRIB2 numeric metadata value stored in the section array and its "decoded" state.

Why refactor in this manner? The Grib2Message object now becomes a lightweight object container. The GRIB2 metadata only exists in 1 location -- its respective section array and you access the decoded variable through its descriptor class, not another variable in the object.

Highlights

  • Rewrite of Grib2Message object leveraging dynamic inheritance; template classes; and descriptor classes for metadata (see Introduction above for more information). (#39)

  • Added support for spatial interpolation using NCEPLIBS-sp and NCEPLIBS-ip libraries. (#52)

  • Improved perforamance when indexing GRIB2 messages. Instead of storing many attributes of each message, the actual Grib2Message object is stored along with message offset information.

  • IMPORTANT: For grib2io.open, GRIB2 message number counting now begins at zero (0).

  • Improved grib2io.open.select() functionality. Since each Grib2Message object is indexed, the select method can easily access ANY Grib2Message metadata attribute.

  • Improved performance when unpacking data values. The GRIB2 data section is only read from file when Grib2Message.data is referenced. (#40)

  • Added support for Reduced and Rotated Lat/Lon grids. (#42 and #59)

  • Added support for Product Definition Template 4.48. (#49)

  • Date and time metadata objects are now of type datetime.datetime or datetime.timedelta. (#1)

  • Improved xarray backend support.

Full Changelog: v1.1.0...v2.0.0b1