- fixed issue where GRIB messages with non-hourly steps could not be read See #370.
- added automatic caching of geographic coordinates for improved performance See #341.
- fixed issue where to_grib() could crash if given a dataset with a single-valued dimension See #347.
- fixed issue where values could not be extracted when alternativeRowScanning=1 and grid is not represented as 2D See #358.
- fixed issue where the grib_errors parameter was not being handled correctly. This parameter has now been renamed to errors. See #349.
- dropped support for Python 3.6. See #363.
- added --var-encoding-json (or -v) option to the to_netcdf tool, e.g.
cfgrib to_netcdf -v '{"dtype": "float", "scale_factor": 0.1}' -o $OUTFILE $INFILE
See #334. - fix issue where xarrays derived from Gaussian grids did not have the correct geometry when written back out as GRIB See #330.
- fix issue where open_datasets() could merge different GRIB fields that have the same data values See #336.
- large reduction in memory leak See #320.
- Replaced
distutils.version
bypackaging.version
and added description and url to the xarray plugin. See #318.
- added --netcdf_kwargs_json option to 'cfgrib to_netcdf' See #294.
- fixed support for GRIB files with alternativeRowScanning=1 See #296.
- fixed support for missing values See #313.
- Fix failure to read index files. See #292.
- Allow backend kwargs to be provided in the to_netcdf executable, either via a json format string, or a path to a json file via -b. See #288.
- Fixed issue where the use of relpath() could cause a problem on Windows. See #284.
- Fix passing of pathlib.Path. See #282.
- Fixed issue where writing an ensemble number into a GRIB file caused an error. See #278.
- Big internal refactor to add support for a generic
Fieldset
similar to Metview. See #243.
- Fix the plugin interface that was missing
extra_coords
. See #231. - Fix the crash when
extra_coords
return a scalar. See #238. - Improve type-hints. Needed by #243.
- Depend on the ECMWF eccodes python package to access the low level ecCodes C-library, dropping all other GRIB decoding options. See: #95, #14. #204, #147 and #141.
- Many performance improvements during the generation of the index and during data access. See: #142 and #197.
filter_by_keys
now can select on all keys known to ecCodes without the need to add non default ones toread_keys
explicitly. See: #187.- Include support for engine="cfgrib" using xarray 0.18+ new backend API. See: #216.
- Fixed issue where could not load a GRIB message that has only one grid point. See: #199.
- Decode
level
coordinates as float in all cases, fixed issue with non-int levels. See: #195.
- Simpler and clearer messages in the event of errors.
- Use ECCODES_DIR environment variable if present. Ported from eccodes-python by xavierabellan. See: #162.
- Fix using current ecCodes bindings when setting CFGRIB_USE_EXTERNAL_ECCODES_BINDINGS=1.
- Use ecmwflibs if present to find the ecCodes installation.
- Added support for
indexingDate
,indexingTime
time coordinates. lambert_azimuthal_equal_area
grids are now returned as 2D arrays. See: #119.
- Add support for MULTI-FIELD messages used in some GRIB products to store
u
andv
components of wind (e.g. GFS, NAM, etc). This has been the single most reported bug in cfgrib with two failed attempts at fixing it already. Let's see if the third time's a charm. Please test! See: #45, #76 and #111.
- Always open GRIB files in binary mode, by @b8raoult
- Add support of experimental pyeccodes low-level driver by @b8raoult
- Add support for forecastMonth in cf2cdm.translate_coords.
- Fix the README.
- Deprecate
ensure_valid_time
and the config optionpreferred_time_dimension
that are now better handled viatime_dims
.
- Add more options to
time_dims
forecasts products may be represented as('time', 'verifying_time')
or('time', 'forecastMonth')
. See: #97.
- Add support for selecting the time coordinates to use as dimensions via
time_dims
. Forecasts products may be represented as('time', 'step')
(the default),('time', 'valid_time')
or('valid_time', 'step')
. See: #97. - Reduce the in-memory footprint of the
FieldIndex
and the size of.idx
files.
- Add support to read additional keys from the GRIB files via
read_keys
, they appear in the variableattrs
and you canfilter_by_keys
on them. This is a general solution for all issues where users know the name of the additional keys they are interested in. See: #89 and #101.
- Fix a bytes-in-the-place-of-str bug when attempting to write a GRIB on Windows. See: #91.
- Honor setting
indexpath
inopen_datasets
, See: #93.
- Much improved
cfgrib.open_datasets
heuristics now reads many more heterogeneous GRIB files. The function is now a supported API. See: #63, #66, #73 and #75. - Fix conda dependencies on Python 2 only package, See: #78.
- Drop support for Python 2, in line with xarray 0.12.0. The 0.9.6.x series will be supported long term for Python 2 users. See: #69.
- Sync internal ecCodes bindings API to the one in eccodes-python. See: #81.
- Source code has been formatted with
black -S -l 99
. - Added initial support for spectral coordinates.
- Improve merging of variables into a dataset. See: #63.
- Fix an issue in the README format.
- Fixed (for real) MULTI-FIELD messages, See: #45.
- Added a protocol version to the index file. Old
*.idx
files must be removed.
- Fix an important typo in the README. See: #64.
- Add support for Windows by installing ecCodes via conda. See: #7.
- Added conda-forge package. See: #5.
- Fixed a serious bug in the computation of the suggested
filter_by_keys
for non-cubic GRIB files. As a resultcfgrib.xarray_store.open_datasets
was not finding all the variables in the files. See: #54. - Fixed a serious bug in variable naming that could drop or at worse mix the values of variables. Again see: #54.
- Re-opened #45 as the fix was returning wrong data. Now we are back to dropping all variable in a MULTI-FIELD except the first.
- Do not set explicit timezone in
units
to avoid crashing some versions of xarray. See: #44.
- Enable ecCodes implicit MULTI-FIELD support by default, needed for NAM Products by NCEP. See: #45.
- Added support for
depthBelowLand
coordinate.
- Add support for building
valid_time
from a badtime-step
hypercube.
- Also convert is
valid_time
can index all times and steps intranslate_coords
.
- Set
valid_time
as preferred time dimension for the CDS data model. - Fall back to using the generic
GRIB2
ecCodes template when no better option is found. See: #39.
- Fix the crash when using
cf2cdm.translate_coords
on datasets with non-dimension coordinates. See: #41. - Added a
cfgrib
script that can translate GRIB to netCDF. See: #40.
- Drop support for xarray versions prior to v0.11 to reduce complexity. (This is really only v0.10.9). See: #32.
- Declare the data as
CF-1.7
compliant via theConventions
global attribute. See: #36. - Tested larger-than-memory and distributed processing via dask and dask.distributed. See: #33.
- Promote write support via
cfgrib.to_grib
to Alpha. See: #18. - Provide the
cf2cdm.translate_coords
utility function to translate the coordinates between CF-compliant data models, defined byout_name
,units
andstore_direction
. See: #24. - Provide
cfgrib.__version__
. See: #31. - Raise with a better error message when users attempt to open a file that is not a GRIB. See: #34.
- Make 2D grids for
rotated_ll
androtated_gg
gridType
's. See: #35.
- Fix formatting for PyPI page.
- Saves one index file per set of
index_keys
in a much more robust way. - Refactor CF-encoding and add the new
encode_cf
option tobackend_kwargs
. See: #23. - Refactor error handling and the option to ignore errors (not well documented yet). See: #13.
- Do not crash on
gridType
not fully supported by the installed ecCodes See: #27. - Several smaller bug fixes and performance improvements.
- Assorted README fixes, in particular advertise index file support as alpha.
- Big performance improvement: add alpha support to save to and read from disk the GRIB index produced by the full-file scan at the first open. See: #20.
- Rename coordinate
air_pressure
toisobaricInhPa
for consistency with all other verticallevel
coordinates. See: #25.
- Fix PyPI description.
- Change the usage of
cfgrib.open_dataset
to allign it withxarray.open_dataset
, in particularfilter_by_key
must be added into thebackend_kwargs
dictionary. See: #21.
- Beta release with read support.