Wave data missing from hourly era5 reanalysis at single levels

I am trying to download 10m u and v wind, mean sea level pressure, sea surface temperature, and significant wave height of combined wind waves and swell from the era reanalysis at single levels dataset (“reanalysis-era5-single-levels” in the api). All of the parameters download just fine except for the significant wave height. I have tried for many different regions of the ocean and as netcdf and grib file formats. I have also tried downloading other wave parameters and got nothing. Has the era5 reanalysis at single levels wave data been deprecated? If so, where can this data be found?

I’m facing the same issue here. Had you tried in the past to get the wave data and it was working? It’s my first time and I was thinking that maybe there is a issue because CDs is a “new system is in its early days of full operations and still undergoing enhancements and fine tuning” as per an announcement.

The wind speeds have a more dense grid and as a result, when you import the downloaded .grib file the reader (xr.open_dataset()) is skipping some variables.

A way I have found is importing them using different variables, for example:

data_mpww = xr.open_dataset(“download_waves_2024.grib”, engine=“cfgrib”, filter_by_keys={“shortName”: “mpww”})
data_mwd = xr.open_dataset(“download_waves_2024.grib”, engine=“cfgrib”, filter_by_keys={“shortName”: “mwd”})
data_shww = xr.open_dataset(“download_waves_2024.grib”, engine=“cfgrib”, filter_by_keys={“shortName”: “shww”})
data = xr.open_dataset(“download_waves_2024.grib”, engine=“cfgrib”)

The wave-related parameters are stored separately using filter_by_keys. The wind parameters are stored in ‘data’.

If that also doesn’t work, try changing the area (there aren’t any wave data over land).

Don’t trust me too much, I just started working with this, but it seems that it works.

Hey! Thanks for getting back on this and working on it. My data pull is for a very specific application and all I need to do is pull the wind, sea surface temperature, mslp, and significant wave height for a very specific range and then average the values over that range for each time.

So, for that, I am just downloading all of the non-wave data and averaging it and then downloading the wave data and averaging it, combining it all into one dataframe and then calling it a day. It is a little annoying that I need to do two downloads and combine, but it isn’t the end of the world