Releases: blaylockbk/Herbie
Herbie 2025.7.0
This release adds support for accessing the new AIFS ensemble dataset which was made operational on July 1, 2025.
What's Changed
Full Changelog: 2025.6.0...2025.7.0
Herbie 2025.6.0
What's Changed
- update src/herbie sources by @emmanuel-ferdman in #435
- Fix wind direction logic to mask only where u and v are both zero. by @blaylockbk in #443
- Add
product
param in CLI by @zamlty in #445 - remove source https://ftpprd.ncep.noaa.gov by @alcoat in #448
- Fix erroneous invalid variable warning in CFS by @dchassin in #451
- Fix deprecation warning in open_dataset call from core by @dchassin in #453
- Added GFS NCEI historical analysis source by @vieramercado in #446
New Contributors
- @emmanuel-ferdman made their first contribution in #435
- @zamlty made their first contribution in #445
- @dchassin made their first contribution in #451
- @vieramercado made their first contribution in #446
Full Changelog: 2025.5.0...2025.6.0
Herbie 2025.5.0
Highlights
There are two main enhancements in this release.
-
Herbie Command Line Interface (CLI): This lets you explore and download data from the terminal rather than coding something in Python. Install Herbie, then run
herbie --help
in the command line to see what it can do. -
Herbie plugins for custom model templates. This might be useful if you have your own GRIB2 files locally and you want to use Herbie to access your local files. Please refer to the Herbie Plugin Tutorial for some instruction.
These features were fun to make. If you give them a try, I would really appreciate your feedback.
I should also say that I'm fully on board using uv in my development workflow. I'd recommend giving it a try if you haven't yet.
What's Changed
- change gfs limit including 2021-01-01 by @alcoat in #420
- HRRR Subh: Remove fxx_subh parameter by @sjcrz in #423
- I started using uv, so I changed
pyproject.toml
, build, and GitHub Actions by @blaylockbk in #429 - Adds
show_versions
utility by @blaylockbk in #432 - Add support for NOAA Wave Ensemble Reforecast by @neon-ninja in #433
- Herbie Command Line Interface (CLI) by @blaylockbk in #410
- Handle case where search string results in no subsets by @neon-ninja in #434
- Herbie Plugins: Load custom model templates from installed plugin by @blaylockbk in #425
New Contributors
- @sjcrz made their first contribution in #423
- @neon-ninja made their first contribution in #433
Full Changelog: 2025.3.1...2025.5.0
Herbie 2025.3.1
What's Changed
- Fix extracting coordinate reference system for NBM model. by @blaylockbk in #418
Full Changelog: 2025.3.0...2025.3.1
Herbie 2025.3.0
What's Changed
- Added edge case coverage to pick_points by @aaTman in #411
- Update new URL for ECMWF's AIFS model by @blaylockbk in #415
New Contributors
Full Changelog: 2025.2.1...2025.3.0
Herbie 2025.2.1
077d872 is a minor tweak to the minimum pinned dependences as stated in #408. I want to keep Herbie aligned with the latest xarray version.
Full Changelog: 2025.2.0...2025.2.1
Herbie 2025.2.0
I know, it's about time for another release with some small additions.
The biggest change is dropping the pygrib dependency, because I was having problems with it and Numpy v2+. Since Herbie only used pygrib for parsing the coordinate reference system, Herbie now attempts to parse those details using additional keys from cfgrib. This feature could use refactoring, but it gets the job done for now.
The second big change is Heribe can access the latest and archived Climate Forecast System (see examples in docs)
If you have issues with this release, please open an issue. Thanks!
What's Changed
- Dropped support for Python 3.9.
- Update core.py to fix links to search docs by @williamhobbs in #385
- Add CFS model by @blaylockbk in #199
- Examples for CFS by @blaylockbk in #402
- Remove pygrib as a dependency; manually parse coordinate reference system from eccodes keys by @blaylockbk in #403
Full Changelog: 2024.8.0...2025.2.0
Herbie 2024.8.0
Thanks for all the contributions!
What's Changed
Model template changes/updates
- Add gdas_wave model by @alcoat in #342
- Add HREF by @karlwx in #349
- Additional NAM Products by @karlwx in #351
- Add HIRESW Model by @karlwx in #352
- Update GFS and GEFS template by @blaylockbk in #358
- Added NCEI as GFS source older than Jan 1, 2021 by @blaylockbk in #361
- Handle naming convention change for RRFS files by @timdonohue-aerology in #360
- Minor fix in RRFS template by @blaylockbk in #362
Other enhancements
- xarray accessor: added 80 and 100 m wind by @williamhobbs in #344
- Add type hints by @blaylockbk in #354
- Fix type hint by @blaylockbk in #356
New Contributors
- @timdonohue-aerology made their first contribution in #360
Full Changelog: 2024.7.1...2024.8.0
Herbie 2024.7.1
This release allows Numpy 2.0 to be used, since pygrib recently published support in pygrib v2.6.1.
What's Changed
- Numpy 2.0 support is ready by @blaylockbk in #340
- Also fixed some links in the docs
Full Changelog: 2024.7.0...2024.7.1
Herbie 2024.7.0
I'm excited about this release because I brought in some tools for plotting data that I've developed over the years from Carpenter_Workshop into Herbie. I hope people will test it, tell me if they are helpful for you, and tell me if I've broken anything.
Optional Dependencies
The "core" function of Herbie is to download data and read it with xarray. Thus, extra features, like plotting and extracting data at a point, now require installing "extra" dependencies that are not automatically installed. These optional dependencies include cartopy
, metpy
, matplotlib
, and scikit-learn
.
- Installing Herbie from conda-forge will always install extra dependencies.
- Install from pip
pip install herbie-data
will only install core dependencies. - Install from pip
pip install herbie-data[extras]
will install dependencies for extra features.
I anticipate this might cause some breaking changes for people. If this change didn't get it right, please open an issue (and offer some help).
Numpy <2.0
Related to dependencies, it seems pygib isn't working with Numpy 2.0 jswhit/pygrib#251, so I've tagged Herbie to require numpy<2.0
. Please let me know if this changes or you have an idea to fix this. Actually, pygrib is only used by Herbie to parse the coordinate reference system from the grib files. It would be nice if Herbie didn't need to depend on pygrib (PR anyone??). Maybe pygrib should be another optional dependency.
Mature functions from Carpenter_Workshop moved into Herbie
I use my Carpenter Workshop repository as a workshop for building new stuff and testing ideas. Some of the tools I made there I use nearly every day (my EasyMap class for making Cartopy more simple), so I've migrated some of the mature features into Herbie.
from herbie.toolbox import EasyMap
EasyMap lets you make a cartopy axes without a lot of boilerplate code. I find it useful. Read more in the docs.ax = EasyMay('50m', crs=..., figsize=[10,8]).STATES().LAND().OCEAN().BORDERS().ax
from herbie.toolbox import ...
Other stuff in the toolbox, like unit conversionsfrom herbie import paint
Paint is a bunch of additional colormaps I've collected over the years that I think look nice. For example, here are the National Weather Service standard color curves:
I'm not completely satisfied with how these are implemented and organized, so this is considered an unstable feature. The documentation is fresh and incomplete.
What's Changed
- Add GFS GraphCast AI Model by @karlwx in #313
- Include
uvRelativeToGrid
as GRIB key included in DataArray attrs by @blaylockbk in #316 - Improving HerbieWait by @karlwx in #322
- Optional dependencies by @rafa-guedes in #319
- Migrate mature capabilities from Carpenter_Workshop into Herbie by @blaylockbk in #312
- Add xarray accessor
with_wind()
to compute wind speed/direction by @blaylockbk in #314 - add accessors to_180 and to_360 by @blaylockbk in #335
New Contributors
- @karlwx made their first contribution in #313
- @rafa-guedes made their first contribution in #319
Full Changelog: 2024.5.0...2024.7.0