Releases: NOAA-MDL/grib2io
grib2io v2.1.2
What's Changed
- In
setup.py
, addedLD_LIBRARY_PATH
directories tofind_library()
by @TimothyCera-NOAA in #116 - Fixed issue getting latitudes and longitudes in the xarray backend by @EricEngle-NOAA in #118
- Added support for NAVGEM GRIB2 files which include a text header by @TimothyCera-NOAA in #115
- Fixed import of gaussian_latitudes() by @EricEngle-NOAA in #122
- Updated NCEP GRIB2 tables
New Contributors
- @TimothyCera-NOAA made their first contribution in #116
Full Changelog: v2.1.1...v2.1.2
grib2io v2.1.1
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) andshow_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
, andhas_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
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) andshow_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
, andhas_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
Another very small bugfix release.
What's Changed
- Fixed a bug in
show_config()
that was causing aModuleNotFoundError
. (see eb95acd)
Full Changelog: v2.0.1...v2.0.2
grib2io v2.0.1
grib2io v2.0.1 is a bugfix release along with some minor enhancements to the xarray backend
What's Changed
- Removed
import g2clib
fromgrib2io.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; addedgriddef()
accessor function to return thegrib2io.Grib2GridDef
object. (see f4944b3) - xarray backend: Added
validDate
coordinate variable andshortName
andfullName
attrs to DataArrays. (see 3f7225d)
Full Changelog: v2.0.0...v2.0.1
grib2io v2.0.0
What's Changed
- Bump numpy from 1.15.1 to 1.22.0 by @dependabot in #26
- Template descriptor class by @EricEngle-NOAA in #60
- Update README.md by @timcera in #71
- Interp to stations by @EricEngle-NOAA in #74
- tweaks to xarray_backend for forming datarray based on pdtn by @AdamSchnapp in #77
- Separate interpolation from grib2io by @EricEngle-NOAA in #78
- Fix latlons by @EricEngle-NOAA in #83
- Add pyproject.toml by @EricEngle-NOAA in #84
- Update xarray backend by @EricEngle-NOAA in #86
- Have setup.py automatically find dependent libraries by @EricEngle-NOAA in #89
- correct station interp of da, added docblocks, accounted for more pdtns by @AdamSchnapp in #90
New Contributors
- @dependabot made their first contribution in #26
- @timcera made their first contribution in #71
Full Changelog: v1.1.0...v2.0.0
grib2io v2.0.0rc2
What's Changed
- Fix latlons by @EricEngle-NOAA in #83
- Add pyproject.toml by @EricEngle-NOAA in #84
- Unified interpolation function by @EricEngle-NOAA in #85
- Update xarray backend by @EricEngle-NOAA in #86
Full Changelog: v2.0.0rc1...v2.0.0rc2
grib2io v2.0.0rc1
What's Changed
- Update README.md by @timcera in #71
- Interp to stations by @EricEngle-NOAA in #74
- tweaks to xarray_backend for forming datarray based on pdtn by @AdamSchnapp in #77
- Separate interpolation from grib2io into it own repo/package, grib2io-interp by @EricEngle-NOAA in #78
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
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
Full Changelog: v2.0.0b1...v2.0.0b2
grib2io v2.0.0b1
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
ordatetime.timedelta
. (#1) -
Improved xarray backend support.
Full Changelog: v1.1.0...v2.0.0b1