Recent Releases of Herbie
Herbie - Herbie 2025.3.1
What's Changed
- Fix extracting coordinate reference system for NBM model. by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/418
Full Changelog: https://github.com/blaylockbk/Herbie/compare/2025.3.0...2025.3.1
Atmosphere - Meteorological Observation and Forecast
- Python
Published by blaylockbk about 1 month ago
Herbie - Herbie 2025.3.0
What's Changed
- Added edge case coverage to pick_points by @aaTman in https://github.com/blaylockbk/Herbie/pull/411
- Update new URL for ECMWF's AIFS model by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/415
New Contributors
- @aaTman made their first contribution in https://github.com/blaylockbk/Herbie/pull/411
Full Changelog: https://github.com/blaylockbk/Herbie/compare/2025.2.1...2025.3.0
Atmosphere - Meteorological Observation and Forecast
- Python
Published by blaylockbk about 1 month ago
Herbie - Herbie 2025.2.1
https://github.com/blaylockbk/Herbie/commit/077d8726819ee5b774504c86a71386464fdc9c1c 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: https://github.com/blaylockbk/Herbie/compare/2025.2.0...2025.2.1
Atmosphere - Meteorological Observation and Forecast
- Python
Published by blaylockbk 2 months ago
Herbie - 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 https://github.com/blaylockbk/Herbie/pull/385
- Add CFS model by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/199
- Examples for CFS by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/402
- Remove pygrib as a dependency; manually parse coordinate reference system from eccodes keys by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/403
Full Changelog: https://github.com/blaylockbk/Herbie/compare/2024.8.0...2025.2.0
Atmosphere - Meteorological Observation and Forecast
- Python
Published by blaylockbk 3 months ago
Herbie - Herbie 2024.8.0
Thanks for all the contributions!
What's Changed
Model template changes/updates
- Add gdas_wave model by @alcoat in https://github.com/blaylockbk/Herbie/pull/342
- Add HREF by @karlwx in https://github.com/blaylockbk/Herbie/pull/349
- Additional NAM Products by @karlwx in https://github.com/blaylockbk/Herbie/pull/351
- Add HIRESW Model by @karlwx in https://github.com/blaylockbk/Herbie/pull/352
- Update GFS and GEFS template by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/358
- Added NCEI as GFS source older than Jan 1, 2021 by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/361
- Handle naming convention change for RRFS files by @timdonohue-aerology in https://github.com/blaylockbk/Herbie/pull/360
- Minor fix in RRFS template by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/362
Other enhancements
- xarray accessor: added 80 and 100 m wind by @williamhobbs in https://github.com/blaylockbk/Herbie/pull/344
- Add type hints by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/354
- Fix type hint by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/356
New Contributors
- @timdonohue-aerology made their first contribution in https://github.com/blaylockbk/Herbie/pull/360
Full Changelog: https://github.com/blaylockbk/Herbie/compare/2024.7.1...2024.8.0
Atmosphere - Meteorological Observation and Forecast
- Python
Published by blaylockbk 9 months ago
Herbie - 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 https://github.com/blaylockbk/Herbie/pull/340
- Also fixed some links in the docs
Full Changelog: https://github.com/blaylockbk/Herbie/compare/2024.7.0...2024.7.1
Atmosphere - Meteorological Observation and Forecast
- Python
Published by blaylockbk 10 months ago
Herbie - 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 https://github.com/jswhit/pygrib/issues/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 https://github.com/blaylockbk/Herbie/pull/313
- Include
uvRelativeToGrid
as GRIB key included in DataArray attrs by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/316 - Improving HerbieWait by @karlwx in https://github.com/blaylockbk/Herbie/pull/322
- Optional dependencies by @rafa-guedes in https://github.com/blaylockbk/Herbie/pull/319
- Migrate mature capabilities from Carpenter_Workshop into Herbie by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/312
- Add xarray accessor
with_wind()
to compute wind speed/direction by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/314 - add accessors to_180 and to_360 by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/335
New Contributors
- @karlwx made their first contribution in https://github.com/blaylockbk/Herbie/pull/313
- @rafa-guedes made their first contribution in https://github.com/blaylockbk/Herbie/pull/319
Full Changelog: https://github.com/blaylockbk/Herbie/compare/2024.5.0...2024.7.0
Atmosphere - Meteorological Observation and Forecast
- Python
Published by blaylockbk 10 months ago
Herbie - Herbie 2024.5.0
This release of Herbie has some new features and changes I've been developing and experimenting with, so I hope to hear from you if something isn't working as expected or if you have other ideas.
๐ฃ Deprecation / Changes
I renamed the argument searchString
to search
. This change only affects you if you are using the keyword argument when calling the inventory or xarray methods. Herbie will now give a warning if you use searchString
, so please update your scripts.
from herbie import Herbie
H = Herbie('2024-01-01')
- H.inventory(searchString="TMP:2 m")
- H.xarray(searchString="TMP:2 m")
+ H.inventory(r"TMP:2 m")
+ H.xarray(r"TMP:2 m")
The reason for the name change is 1) simplicity and 2) the search string isn't an exact match search but is a regex search. (I would have named it filter
, but that is a python built-in and couldn't use that). I should also mention that it is recommended to use the r
or raw string representation (i.e. search=r":TMP:\d+ mb"
) since the string is used as a regular expression.
ds.herbie.pick_points
xarray accessor
โจ New Feature: I'm very excited to share this new feature. I created a new xarray accessor to get nearest neighbor point data from a model grid. I've had this on my mind for a long time and am happy with what I have made so far. This uses the Ball Tree algorithm, and thus adds scikit-learn as a new required dependency.
Here is a very simple example getting two values from the HRRR grid:
from herbie import Herbie
import pandas as pd
# Get HRRR 2-m temperature analysis
ds = Herbie('2024-1-1', model='hrrr').xarray("TMP:2 m")
# DataFrame of points to get from model grid
points = pd.DataFrame(
{
"longitude": [-100.25, -99.4],
"latitude": [44.25, 45.4],
}
)
# Pick points from HRRR grid
ds_points = ds.herbie.pick_points(points)
See more in-depth description and examples in the docs. There are options to get values from $k$ nearest neighbors from the requested point and compute the distance-weighted average of nearby points.
If you give this new feature a try, please let me know if you see any unexpected results.
๐ Documentation
I overhauled the organization of the documentation pages. Hopefully you find them organized a little better. Feel free to contribute to the docs if you see some details missing/misleading/confusing ๐
What's Changed
- Added a
__bool__
method to Herbie by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/298 - Adding Ability to Download NBM QMD Data by @fleegs79 in https://github.com/blaylockbk/Herbie/pull/301
- Add model templates for GDPS and RDPS. Update HRDPS model template. by @blaylockbk and @bryanguarente in https://github.com/blaylockbk/Herbie/pull/304
- Use BallTree for getting values at nearest neighbor points by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/296
- Reorganize docs: spring cleaning ๐ท๐งน by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/308
- Rename
searchString
argument tosearch
by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/305
New Contributors
- @fleegs79 made their first contribution in https://github.com/blaylockbk/Herbie/pull/301
- @bryanguarente made their first contribution in https://github.com/blaylockbk/Herbie/pull/304
Full Changelog: https://github.com/blaylockbk/Herbie/compare/2024.3.1...2024.5.0
Future Changes
I am planning to rename the argument fxx
for the forecast lead time to step
to match the terminology used by cfgrib.
- Herbie('2023-01-01', model='hrrr', fxx=6)
+ Herbie('2023-01-01', model='hrrr', step=6)
Again, this isn't implemented yet, but I plan to implement it eventually and wanted to let you know. Provide any comments if you have any in https://github.com/blaylockbk/Herbie/issues/160
Atmosphere - Meteorological Observation and Forecast
- Python
Published by blaylockbk 12 months ago
Herbie - Herbie 2024.3.1
Just two minor changes; wanted to get these out there for the few it may impact...
What's Changed
- Add Cyrilex to the 'Tip' section in the user guide searchString by @cyrilbois in https://github.com/blaylockbk/Herbie/pull/295
- change common_features into EasyMap to fix the accessors.plot() by @Davidxswang in https://github.com/blaylockbk/Herbie/pull/270
Note: the ds.herbie.plot()
accessor is not implemented well. It could use a lot of work to make some standard, quick-look plots, which would be really cool, if anyone has some big ideas of what that should look like. I'm open to suggestions.
New Contributors
- @cyrilbois made their first contribution in https://github.com/blaylockbk/Herbie/pull/295
- @Davidxswang made their first contribution in https://github.com/blaylockbk/Herbie/pull/270
Full Changelog: https://github.com/blaylockbk/Herbie/compare/2024.3.0...2024.3.1
Atmosphere - Meteorological Observation and Forecast
- Python
Published by blaylockbk about 1 year ago
Herbie - Herbie 2024.3.0
ECMWF shared this exciting news a few days ago about their open data products for the Integrated Forecast System (IFS)
ECMWF now provides a much larger open dataset to the public, representing weather forecasts at a higher resolution and a reduction in some release times.
- ECMWF: Media Centre
This Herbie release updates the ECMWF model templates to access the new IFS and AIFS 0.25 degree datasets. Historical access to the 0.4 degree datasets is still available for dates before February 1, 2024. Thanks @alcoat!
Deprecation
Now that ECMWF provides open access for two different models, the argument model='ecmwf'
is deprecated. Instead, you should access the Integrated Forecast System (IFS) with model='ifs'
or model='aifs
for the Artificial Intelligence IFS.
- Herbie('2024-3-1', model='ecmwf') # Deprecated
+ Herbie('2024-3-1', model='ifs')
Herbie('2024-3-1', model='aifs') # New Model
New Feature
Herbie has two new experimental functions that may be helpful to some people.
HerbieLatest
Find the most recent available model run.HerbieWait
Wait for a particular model run to become available.
You can see examples in the docs: Herbie Latest Data.
If these are helpful to you but you want them to be improved, I'm looking for people to help make these better, (along with FastHerbie
which could use some work too).
Herbie at the American Meteorological Society
I gave a talk on Herbie at the American Meteorology Society in January. You can see my slides here. Soon, you should be able to go to the conference website and watch the recorded presentation.
It was a lot of fun talking to some of you at AMS this year. Its always a surprise to me when I'm wandering around the poster hall and someone says, "Hey Brian, Herbie was used to make this poster!" Thanks everyone for your kindness.
Please feel free to open issues when you see problems, share how you use Herbie in the discussions, and feel free to contribute your ideas and PRs.
What's Changed
- Update GEFS model template by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/268
- New helper functions to find the latest model data,
HerbieLatest
andHerbieWait
by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/274 - update RRFS template by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/269
- Check that curl is in system path; warn if it is not by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/276
- ECMWF IFS change by @alcoat in https://github.com/blaylockbk/Herbie/pull/283
New Contributors
- @alcoat made their first contribution in https://github.com/blaylockbk/Herbie/pull/283
Full Changelog: https://github.com/blaylockbk/Herbie/compare/2023.12.4...2024.3.0
Atmosphere - Meteorological Observation and Forecast
- Python
Published by blaylockbk about 1 year ago
Herbie - Herbie 2023.12.4
What's Changed
- Hide curl messages unless verbose by @alexander0042 in https://github.com/blaylockbk/Herbie/pull/258
- Bug Fix: Skip downloading invalid cURL range, such as in the RAP model wind messages. by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/260
New Contributors
- @alexander0042 made their first contribution in https://github.com/blaylockbk/Herbie/pull/258
Full Changelog: https://github.com/blaylockbk/Herbie/compare/2023.12.3...2023.12.4
Atmosphere - Meteorological Observation and Forecast
- Python
Published by blaylockbk over 1 year ago
Herbie - Herbie 2023.12.3
What's Changed
- BUG FIX: Fix curl range for last grib message by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/257
Full Changelog: https://github.com/blaylockbk/Herbie/compare/2023.12.2...2023.12.3
Atmosphere - Meteorological Observation and Forecast
- Python
Published by blaylockbk over 1 year ago
Herbie - Herbie 2023.12.2
What's Changed
Enhancements
- Refine config file creation by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/253
- Add option to use environment variables for some settings by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/254
Documentation
- DOCS: update and fix Sphinx config by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/255
Full Changelog: https://github.com/blaylockbk/Herbie/compare/2023.12.1...2023.12.2
Atmosphere - Meteorological Observation and Forecast
- Python
Published by blaylockbk over 1 year ago
Herbie - Herbie 2023.12.1
It's been a while since the last release, and I wanted to get out all the changes that have built up.
Please open an issue if you see problems. I'm trying a new "auto release on new tag" workflow action, so I may have some micro releases coming.
What's Changed
New model templates
- NEW MODEL: Add template for URMA and more RTMA by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/190
- NEW MODEL: Add Canada's HRDPS model by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/208
- NEW MODEL: Add HAFS model as a Herbie template by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/227
- NEW MODEL: Update gefs.py to add Azure and Google as source options by @williamhobbs in https://github.com/blaylockbk/Herbie/pull/248
Enhancements
- ENHANCEMENT: Added fallback to ecmwf to also look in short cutoff by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/224
- ENHANCEMENT: Only print xarray note if
self.verbose=True
by @joshuaeh in https://github.com/blaylockbk/Herbie/pull/228 - ENHANCEMENT: Workflow to automatically upload releases to PyPI by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/211
Bug fixes
- BUG FIX: Added correct URL for 0.25 deg GEFS datasets by @swnesbitt in https://github.com/blaylockbk/Herbie/pull/176
- BUG FIX: Add quotes around filepath in curl statement by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/194
- BUG FIX: Add missing requirements for hrrr zarr datasets by @haim0n in https://github.com/blaylockbk/Herbie/pull/209
- BUG FIX: Fix GEFS member check by @davidlandry93 in https://github.com/blaylockbk/Herbie/pull/221
- BUG FIX: Fix the UnicodeDecodeError: 'utf-8' error that occurred when Windows usernames contained UTF-8 characters. by @IncubatorShokuhou in https://github.com/blaylockbk/Herbie/pull/230
- BUG FIX: Fix #232 cURL off-by-one error, add tests, etc. by @GabrielKS in https://github.com/blaylockbk/Herbie/pull/233
Documentation
- DOCS: Converted searchString docs page to Markdown by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/238
- DOCS: Add version switcher by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/191
New Contributors
- @swnesbitt made their first contribution in https://github.com/blaylockbk/Herbie/pull/176
- @davidlandry93 made their first contribution in https://github.com/blaylockbk/Herbie/pull/221
- @joshuaeh made their first contribution in https://github.com/blaylockbk/Herbie/pull/228
- @IncubatorShokuhou made their first contribution in https://github.com/blaylockbk/Herbie/pull/230
- @GabrielKS made their first contribution in https://github.com/blaylockbk/Herbie/pull/233
- @williamhobbs made their first contribution in https://github.com/blaylockbk/Herbie/pull/248
Full Changelog: https://github.com/blaylockbk/Herbie/compare/2023.3.0...2023.12.0
Atmosphere - Meteorological Observation and Forecast
- Python
Published by blaylockbk over 1 year ago
Herbie - Herbie 2023.3.0
Thanks again for using Herbie and your kind words. More than a few of you found me at the AMS annual meeting in Denver to thank me for publishing and maintaining Herbie. It's always encouraging to hear how I've helped someone. I'm still in shock how putting some code I wrote in grad school on the internet was discovered by so many. Hebie is still a project I work on in my free time, and I don't claim it is the most efficient or cleanly coded package, but the lessons I learn with Herbie have helped me in many ways in other work I do. So, I thank you for your involvement and use of Herbie and for helping me develop my skills.
Now I want to give a big "thank you" to these two people
- Ryan May (@dopplershift), thanks for instructing me on how to publish Herbie on conda-forge. This really simplifies installing Herbie given its dependency on cgfrib and cartopy. Herbie can now be installed like this:
conda install herbie-data
Note: The name of this package on pypi and conda is
herbie-data
becauseherbie
is taken on PyPI.
- Andreas Motl (@amotl), thanks for your help with migrating the documentation to readthedocs and adding GitHub Actions to run the suite of tests with each pull request. Automating the doc builds and tests really helps.
These changes and other updates help make Herbie feel a little more "grown up" in this release.
Breaking Changes
- I renamed the file
herbie/archive.py
toherbie/core.py
because the name "archive" was starting to lose its meaning. Please pay attention to how you import Herbie...
# DON'T do this anymore
from herbie.archive import Herbie
# DO this
from herbie import Herbie
- I renamed the Herbie method
H.read_idx()
toH.inventory()
because the single word is easier for me to remember. If you useread_idx()
you will get a warning for now; it will be removed later. Note that theinventory
method is also available for FastHerbie. In fact, I'm migrating away from the term "index" to "inventory" because it I think it's a more accurate description of what a ".idx" file is--in inventory of the file contents. And besides, "index" means other things in python if you are a heavy Pandas user.
## DON'T do this anymore
H = Herbie(date, model)
H.read_idx()
# DO this
H = Herbie(date, model)
H.inventory()
New/Updated Model Templates
- Added
rtma
model template for RTMA (CONUS and Alaska). Template could be extended to include more products (Hawaii, guam, URMA products, etc.). - Added
gdas
to model template by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/107 Thanks, @alcoat! - Updated
gefs
model template (not reforecast GEFS) by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/133 - Updated
ecmwf
to include AWS as source for ECMWF forecasts by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/159
Note: There will be additional changes to the GEFS and GFS model templates to make the more consistent. I also plan to add a template for the URMA model since it exists.
What's Changed
- Install: Herbie can be installed with conda.
- Bug Fix: Essentially turned off 'content-length' check in https://github.com/blaylockbk/Herbie/commit/affdbda6e74c0172ceabb2c4d78ca1c0990530e4 because files from NOMADS report a content-length of 20 bytes (something changed on NOMADS in the last year)
- Enhancement: Fix handling idx source location and generate missing idx with wgrib2 for local files. by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/127
- Documentation: Made the Herbie logo a little more "shiny".
- Documentation: Overhaul of the Herbie documentation (thanks to the flu and being confined to bed for a few days).
- Documentation: Add configuration for "Read the Docs" by @amotl in https://github.com/blaylockbk/Herbie/pull/142
- Fix RTD configuration by @amotl in https://github.com/blaylockbk/Herbie/pull/145
- CI: Run tests on GHA by @amotl in https://github.com/blaylockbk/Herbie/pull/139
- General updates, improvement, and clean up by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/158
- Improvements to
nearest_points
required input. by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/165 - Add a wrapper for wgrib2 in Herbie. by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/161
New Contributors
- @amotl made their first contribution in https://github.com/blaylockbk/Herbie/pull/142
Full Changelog: https://github.com/blaylockbk/Herbie/compare/2022.09.0...2022.x.x
Atmosphere - Meteorological Observation and Forecast
- Python
Published by blaylockbk about 2 years ago
Herbie - Herbie 2022.9.0
Huge shoutout to Ryan May for instructing me on how to publish Herbie on conda-forge. You can now install Herbie 2022.9.0.post1
with Conda
conda install -c conda-forge herbie-data
What's Changed
- Changed to CalVer versioning. Release versions will follow the
YYYY.mm.micro
format as I felt this more clearly highlights when the package was last updated. - Changed default branch from
master
tomain
- Add missing pygrib dependency by @haim0n in https://github.com/blaylockbk/Herbie/pull/74
- Remove unused import by @haim0n in https://github.com/blaylockbk/Herbie/pull/78
- Changes subset hash label to include date and fxx by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/96
- Blaylockbk/issue98 change setup.py to setup.cfg and pyproject.toml by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/99
- Added pygrib and cartopy as a dependency.
- Added NAM model #93
- Documentation: added dark mode documentation via PyData's Sphinx theme
- Let Herbie find the most recent GRIB2 file. by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/103
New Contributors
- @haim0n made their first contribution in https://github.com/blaylockbk/Herbie/pull/74
Full Changelog: https://github.com/blaylockbk/Herbie/compare/0.0.10...2022.09.0
Atmosphere - Meteorological Observation and Forecast
- Python
Published by blaylockbk over 2 years ago
Herbie - Herbie 0.0.10
โญ Over 110 GitHub stars!
Wow, I had no idea so many people would find Herbie useful. Thanks everyone.
What's Changed
- Now you can import the Herbie class easier with
from herbie import Herbie
instead offrom herbie.archive import Herbie
- Add template for GEFS by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/56
- Changed how extending Herbie with custom templates works by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/55
- Herbie helper tool to make an index file for all grib2 files in a directory. by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/59
- Smarter cURL ranges for faster subset downloads by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/62
- Moved the grib and index search in the Herbie class to their own functions (
find_grib
andfind_idx
) - Cache the full index file Dataframe first time it is read.
- Added some ASCII art to
__init__.py
and some Easter eggs (because every project needs cool ASCII art and Easter eggs ๐) - Add some multithreading tools to Herbie by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/69 -- have not done extensive tests; watch your memory
- Fixed subset filename bug (https://github.com/blaylockbk/Herbie/commit/de70cb7b70f899431e5481e28ed4952aab3ef4b6) that affected GFS files.
- Herbie can make an index file if one does not exist on the remote archive if the full grib2 file is downloaded locally and if wgrib2 is installed. https://github.com/blaylockbk/Herbie/commit/86535735a7ee0cd9045f51fd79d85a03873b3c84
- Concat HRRR subh fields, if possible https://github.com/blaylockbk/Herbie/commit/8a9a862392d51ee8666647473d7ae4d984f1182d
Full Changelog: https://github.com/blaylockbk/Herbie/compare/0.0.9...0.0.10
Atmosphere - Meteorological Observation and Forecast
- Python
Published by blaylockbk almost 3 years ago
Herbie - Herbie 0.0.9
Changelog
- Fixed #42: bug where GFS index files could not be found.
- Speed up Herbie.xarray by Reusing local_file by @WToma in https://github.com/blaylockbk/Herbie/pull/46
- Removed old
hrrrb
API and old documentation.
Full Changelog: https://github.com/blaylockbk/Herbie/compare/0.0.8...0.0.9
Atmosphere - Meteorological Observation and Forecast
- Python
Published by blaylockbk about 3 years ago
Herbie - Herbie 0.0.8
Add access to ECMWF open data forecast products
The main feature of this release is the ability to retrieve ECMWF open data forecast products (see tweet)
The big change was implementing a method to read the grib_ls-style index files to get the byte ranges for specific variables/parameters. This means that the searchString
argument will need to be specified differently than that used for other models. Read more about the searchString
argument for grib_ls-style index files: https://blaylockbk.github.io/Herbie/_build/html/user_guide/searchString.html#grib-ls-style-index-files
For example:
from herbie.archive import Herbie
# Create Herbie object to discover ECMWF operational forecast product
H = Herbie("2022-01-26", model="ecmwf", product="oper", fxx=12)
# Download the full grib2 file
H.download()
# Download just the 10-m u and v winds
H.download(searchString=":10(u|v):")
# Retrieve the 500 hPa temperature as an xarray.Dataset
ds = H.xarray(searchString=":t:500:")
๐น More examples for retrieving ECMWF open data
Changelog
- Added access to ECMWF's open data products by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/37
Full Changelog: https://github.com/blaylockbk/Herbie/compare/0.0.7...0.0.8
Pretty Pictures
Atmosphere - Meteorological Observation and Forecast
- Python
Published by blaylockbk over 3 years ago
Herbie - Herbie 0.0.7
Changelog
- Default config value for
priority
is now None, which will make the download source priority to be the order of the SOURCE in the models template files. - isort all imports
- Fixed Issue #24: Use hash labels to name subset files to make unique file names so filenames don't get too long (Pull Request #26).
- When loading data into xarray, Herbie will parse CF grid_mapping from grib file with pygrib/pyproj/metpy. (see CF Appendix F: Grid Mapping for more info). 2789859120883e32592f5559a1e211696b58cf3e
- Lay the groundwork for local GRIB2 files that are not downloaded from remote sources. Suppose you ran a model locally (like WRF) and have that data stored locally. Herbie can be configured to find and read those local files! This assumes an index file also exists in the same directory with
.idx
appended to the file name.- Documentation needed.
- Added model template for
rap_ncei
. This is poorly implemented because the NCEI data doesn't match the other RAP model URLs. - #24, implemented hashed filename for subset by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/26
- Add a Gitter chat badge to README.md by @gitter-badger in https://github.com/blaylockbk/Herbie/pull/21
- Remove Gitter chat badge. I'm not committed to chatting on Gitter; just focus on discussions.
- Add support for NCEI historical RAP analyses by @djgagne in https://github.com/blaylockbk/Herbie/pull/30
- Handle different idx styles by @blaylockbk in https://github.com/blaylockbk/Herbie/pull/35 (more changes in addition to those by djgagne)
- Fixed #33 so that the
herbie.tools.bulk_download
will return a dict of Herbie objects that were successful and those that failed.
Full Changelog: https://github.com/blaylockbk/Herbie/compare/0.0.6...0.0.7
Atmosphere - Meteorological Observation and Forecast
- Python
Published by blaylockbk over 3 years ago
Herbie - Herbie 0.0.6
Changelog
- #18 Use TOML as config file format instead of INI
- Expanded setting that can be set in the configuration file
- Adopt Black formatting
- Moved PyPI project from
hrrrb
toherbie-data
Atmosphere - Meteorological Observation and Forecast
- Python
Published by blaylockbk over 3 years ago
Herbie - Herbie 0.0.5
HRRR-B
๐ Herbie
New Name! I updated the GitHub repository name to Herbie and I'm slowly removing the old hrrrb API (but it's still there).
The most significant change is that the vision of Herbie has expanded. Herbie is being built do download many different model types, not just the HRRR model.
- Rename package to
herbie
. "Herbie is your model output download assistant with a mind of its own." Yes, this is named after a favorite childhood movie series. - Implement new Herbie class
- Drop support for hrrrx (experimental HRRR no longer archived on Pando and ESRL is now developing RRFS)
- Added ability to download and read RAP model GRIB2 files.
- Less reliance on Pando, more on aws and google.
- New method for searchString index file search. Uses same regex search patterns as old API.
- Filename for GRIB2 subset includes all GRIB message numbers.
- Moved default download source to config file setting.
- Check local file copy on init. (Don't need to look for file on remote if we have local copy)
- Option to remove grib2 file when reading xarray if didn't already exist locally (don't clutter local disk).
- Attach index file DataFrame to object if it exists.
- If full file exists locally, use remote idx file to cURL local file instead of remote. (Can't create idx file locally because wgrib2 not available on windows)
- Added GFS data, though it isn't implemented as cleanly as HRRR or RAP
- Renamed 'field' argument to 'product'
- โจ Moved the source URL templates to their own classes in the models folder
- Renamed GitHub repository to Herbie (changed from HRRR_archive_download)
- Added RRFS, NBM, GFS, RAP as models Herbie can download
- Reworked read_idx() to support index files with additional info (specifically for the NBM).
Atmosphere - Meteorological Observation and Forecast
- Python
Published by blaylockbk almost 4 years ago
Herbie - Herbie 0.0.4
New Herbie API
There are a few things about the hrrrb API that make it difficult to update, so I started changing things under the new name "herbie." But don't worry, both the hrrrb
and herbie
APIs are included. The setup.py file also is fixed.
To use the new Herbie API, refer to the documentation for some usage examples.
Atmosphere - Meteorological Observation and Forecast
- Python
Published by blaylockbk almost 4 years ago
Herbie - HRRR-B 0.0.3
Welcome to the world, HRRR-B ๐
This is my first initial GitHub release ever! I have published on PyPi before, but this is my first here on GitHub. Certainly, a happy birthday for the HRRR-B package.
Be aware, this is v0.0.3, meaning it is subject to change at my leisure. The purpose of this repository is to serve as an example of how you can download HRRR data from archives, but I try to keep this package in a workable state that might be useful for you.
๐ Documentation
Atmosphere - Meteorological Observation and Forecast
- Python
Published by blaylockbk about 4 years ago