I'm not sure if this is a bug or simply a change, so let me know if I should move this to a discussion...
With eccodes==2.44.0, I could get 80 and 100 m wind speed from GFS and GEFS like this:
search_str = ('[UV]GRD:80 m above|[UV]GRD:100 m above')
ds = Herbie(
date=pd.Timestamp('2025-08-20 12:00:00'),
model='gfs',
product='pgrb2.0p25',
fxx=18,
).xarray(search_str)
xr.merge(ds, compat='override')
ds is a list of datasets, and xr.merge... returns an xarray dataset with variables u and v for 80 m wind speed, u100 and v100 for 100 m wind speed.
But with eccodes>=2.45.0,
search_str = ('[UV]GRD:80 m above|[UV]GRD:100 m above')
ds = Herbie(
date=pd.Timestamp('2025-08-20 12:00:00'),
model='gfs',
product='pgrb2.0p25',
fxx=18,
).xarray(search_str)
ds
ds is a single dataset with only u and v variables and two separate values for the heightAboveGround coordinate (80.0 and 100.0)
But then searching only for 100 m wind speed gives variables named u100 and v100:
search_str = ('[UV]GRD:100 m above')
ds = Herbie(
date=pd.Timestamp('2025-08-20 12:00:00'),
model='gfs',
product='pgrb2.0p25',
fxx=18,
).xarray(search_str)
ds

I'm not sure if this is a bug or simply a change, so let me know if I should move this to a discussion...
With eccodes==2.44.0, I could get 80 and 100 m wind speed from GFS and GEFS like this:
dsis a list of datasets, andxr.merge...returns an xarray dataset with variablesuandvfor 80 m wind speed,u100andv100for 100 m wind speed.But with eccodes>=2.45.0,
dsis a single dataset with onlyuandvvariables and two separate values for theheightAboveGroundcoordinate (80.0 and 100.0)But then searching only for 100 m wind speed gives variables named
u100andv100: