Releases: NOAA-MDL/grib2io
grib2io v2.4.0
Introduction
This is a significant release for grib2io -- notably the refactoring of the g2clib Cython extension module and the introduction of a new Cython extension module, iplib
, that provides an interface to the NCEPLIBS-ip Fortran interpolation library. This now means that grib2io-interp is no longer necessary to install as an additional component and its development is no longer active.
These changes also now make grib2io available for Python 3.13 and NumPy 2.x
What's Changed
- Clean up date/time attribute setting. by @EricEngle-NOAA in #159
- Add aerosol related updates by @bbakernoaa in #161
- Fix dimensionality bug in the xarray backend by @EricEngle-NOAA in #165
- Fix incorrect leadtime for sub hourly values by @EricEngle-NOAA in #168
- New Cython extension module,
iplib
, to interface the NCEPLIBS-ip with support for OpenMP threading setting and getting by @EricEngle-NOAA in #170 - Refactor g2clib Cython extension module by @EricEngle-NOAA in #171
- Support for Python 3.13 and numpy 2.x by @EricEngle-NOAA in #173
- Updates to setup.py to allow more control when building with static libs by @EricEngle-NOAA in #175
New Contributors
- @bbakernoaa made their first contribution in #161
Full Changelog: v2.3.0...v2.4.0
grib2io v2.3.0
What's Changed
- New method,
subset()
, forGrib2Message
objects to perform spatial subsetting by @TimothyCera-NOAA in #155 - Added new
da.grib2io.update_attrs()
to update message attributes by @TimothyCera-NOAA in #154 - NCEP GRIB2 tables updated to version 33.0.0
Full Changelog: v2.2.5...v2.3.0
grib2io v2.2.5
What's Changed
- Fixed
to_grib2()
writing an xarray without dimensional coordinates by @TimothyCera-NOAA in #152 - Fixed issue where the
nbytes
property was not being calculated when printing Datasets on xarray>2024.1.0 by @TimothyCera-NOAA in #153
Full Changelog: v2.2.4...v2.2.5
grib2io v2.2.4
What's Changed
- grib2io will now silently ignore non-GRIB2 data in a file, but will warn when a GRIB1 message is encounter (existing behavior) by @EricEngle-NOAA in 65557cc
Full Changelog: v2.2.3...v2.2.4
grib2io v2.2.3
What's Changed
- Change to match shapes for setting leadTime attrs. by @TimothyCera-NOAA in #147
- Added optional xarray dependency. by @TimothyCera-NOAA in #148
- Fix #144 by @alcoat in #149
- Add or edit multiple set functions. by @TimothyCera-NOAA in #150
- Added mode="x" new to open by @TimothyCera-NOAA in #151
- Fixed issue reading "GRIB" header by @EricEngle-NOAA in 2ae039d
Full Changelog: v2.2.2...v2.2.3
grib2io v2.2.2
What's Changed
- Fixed a bug where grib2io was not properly opening Gzipped GRIB2 files by @EricEngle-NOAA in 95e397d
- Fixed an issue with the scenario where of calling
flush_data()
on aGrib2Message
object created from a user (i.e. not read from file) would raise an error by @EricEngle-NOAA in 95e397d - Fixed an issue with the scenario of calling
pack()
method for aGrib2Message
object where data areNone
. Moving forward,pack()
will attempt to pack data if it can be found (i.e. reading data from disk) by @EricEngle-NOAA in 95e397d - Cleaned up logic of handling the
Grib2MessageOnDiskArray
object in theGrib2Message
object when flushing unpacked data. Moving forward, theGrib2Message._data
private attribute will be eitherNone
ornumpy.ndarray
andGrib2Message._ondiskarray
will always beNone
orGrib2MessageOnDiskArray
. by @EricEngle-NOAA in 95e397d
Full Changelog: v2.2.1...v2.2.2
grib2io v2.2.1
What's Changed
- Fixed a bug in
Grib2Message.interpolate()
where num_threads was not being passed to the module-level function,grib2io.interpolate()
. This caused the default value of 1 to always be used by @EricEngle-NOAA in dadabda
Full Changelog: v2.2.0...v2.2.1
grib2io v2.2.0
What's Changed
- Fixed issue when opening GRIB2 files via the xarray backend by @TimothyCera-NOAA in #126
- Added support for MRMS GRIB2 files and custom MRMS GRIB2 tables File by @EricEngle-NOAA in #127
- MRMS GRIB2 files are Gzipped. grib2io can now read Gzipped GRIB2 files, but this cannot be done using the xarray backend
- Cleanup of GRIB2 message indexing and allow for GRIB1 messages to be ignored by @EricEngle-NOAA in #129
- Some ECMWF files contain both GRIB1 and GRIB2 messages
- Add support for PDT 4.32 by @EricEngle-NOAA in #130
- Properly mask output data when interpolating from smaller to larger domain by @EricEngle-NOAA in #133
- Improved docstrings and some type hints. by @TimothyCera-NOAA in #134
Grib2Message
class now contains propertieslats
andlons
by @EricEngle-NOAA in #135- Static library build support by @EricEngle-NOAA in #138
- Expose
bitmap
as publicGrib2Message
attribute by @EricEngle-NOAA in #140 - Added
to_grib2()
xarray accessor method forxarray.Dataset
andxarray.DataArray
objects by @TimothyCera-NOAA in #136 - Improved performance when opening files by removing the use of a 1MB buffer (leftover from grib2io v1.x) and by making
grib2io.open
attrslevels
andvariables
properties by @EricEngle-NOAA in 2fd5219 and 626e28e - Added NCEP GRIB2 table version number by @EricEngle-NOAA in 01e3f62
- Changed
Grib2Message.duration
attribute from beingNone
todatetime.timedelta(hours=0)
by @EricEngle-NOAA in 9ef5e53 - Added properties
min
,max
,mean
, andmedian
to the Grib2Message object by @EricEngle-NOAA in 24e4260 - Added ability to control the number of OpenMP threads used for interpolation @EricEngle-NOAA in b0d2245
Details about writing to GRIB2 from the Xarray Backend
grib2io v2.2.0 introduces the ability to write GRIB2 files from the xarray backend via .to_grib2()
accessor methods for xarray.Dataset
and xarray.DataArray
objects. At this time, this will only work if xarray objects originated from the grib2io xarray backend. The .to_grib2()
accessor method leverages xarray attributes 'GRIB2IO_section*'
that are the numeric GRIB2 metadata sections. Future updates to the grib2io xarray backend will further build out this functionality.
Full Changelog: v2.1.4...v2.2.0
grib2io v2.1.4
What's Changed
- A follow up to changes in v2.1.3 -- Fixed the number of longitudes generated for Gaussian grids by @alcoat in #125
Full Changelog: v2.1.3...v2.1.4
grib2io v2.1.3
What's Changed
- Fixed issue (#123) that was causing incorrect latitude/longitude values for Gaussian grids by @EricEngle-NOAA in #124
- Added missing GRIB2 named attribute,
'numberOfParallels'
, for Gaussian grids.
Full Changelog: v2.1.2...v2.1.3