High Resolution Ocean Surface Wave Hindcast (US Wave) Data
The development of this dataset was funded by the U.S. Department of Energy, Office of Energy Efficiency & Renewable Energy, Water Power Technologies Office to improve our understanding of the U.S. wave energy resource and to provide critical information for wave energy project development and wave energy converter (WEC) conceptual design. This will be the highest resolution publicly available long-term wave hindcast dataset that – when complete – covers the entire U.S. EEZ. As such, it could be of value to any company with marine operations inside the U.S. EEZ. Specifically, the data can be used to investigate the historical record of wave statistics at any U.S. site. This level of detail could be of interest to the Oil and Gas industry for offshore platform engineering, to the offshore wind industry for turbine and array design, to offshore aquaculture production and blue economy development, to coastal communities for extreme hazards mitigation, to global shipping companies and fisherman for a better understanding of weather windows and seasonal wave climate patterns at a spatial resolution that does not exist elsewhere. The NREL Offshore Wind group has expressed significant interest in this dataset for device structural modeling, array design, and economic modeling.
This is the highest resolution publicly available wave hindcast dataset. The multi-scale, unstructured-grid modeling approach using WaveWatch III and SWAN enabled long-term (decades) high-resolution hindcasts in a large regional domain. The model was extensively validated not only for the most common wave parameters, but also six IEC resource parameters and 2D spectra with high quality spectral data derived from publicly available buoys. This creation of this dataset was funded by the U.S. Department of Energy, Office of Energy Efficiency & Renewable Energy, Water Power Technologies Office under Contract DE-AC05-76RL01830 to Pacific Northwest National Laboratory (PNNL). Additional details on detailed definitions of the variables found in the dataset, the SWAN and WaveWatch III model configuration and model validation are available in a peer-review publication Development and validation of a high-resolution regional wave hindcast model for U.S. West Coast wave resource characterization and a PNNL technical report: High-Resolution Regional Wave Hindcast for the U.S.West Coast. This study was funded by the U.S. Department of Energy, Office of Energy Efficiency & Renewable Energy, Water Power Technologies Office under Contract DE-AC05-76RL01830 to Pacific Northwest National Laboratory (PNNL).
The following variables were extracted from the SWAM Model data and are available in the .h5 files: - Mean Wave Direction: Direction Normal to the Wave Crests - Significant Wave Height: Calculated as the zeroth spectral moment (i.e., H_m0) - Mean Absolute Period: Resolved Spectral Moment (m_0/m_1) - Peak Period: The period associated with the maximum value of the wave energy spectrum - Mean Zero Crossing Period: Total wave energy flux from all directions - Energy Period: Spectral width characterizes the relative spreading of energy in the wave spectrum. - Directionality Coefficient: Fraction of total wave energy travelling in the direction of maximum wave power - Maximum Energy Direction: The direction from which the most wave energy is travelling - Omni-Directional Wave Power: Total wave energy flux from all directions - Spectral Width: Spectral width characterizes the relative spreading of energy in the wave spectrum.
The dataset currently covers the U.S. Exclusive Economic Zone (‘EEZ’, up to 200 nautical miles from shore) offshore of the West Coast, and includes shallow nearshore regions not covered by previous model hindcasts. Future additions to the dataset will extend the coverage to the entire U.S. EEZ, including Island territories. The dataset has a 3-hour timestep spanning 32 years from 1979 through 2010. It includes the most common wave statistics (wave height, wave direction, wave period), alongside several other wave statistics developed for the wave energy sector. The dataset was generated from the unstructured-grid SWAN model output that was driven by a WaveWatch III model with global-regional nested grids. The SWAN model simulations were performed with a spatial resolution as fine as 200 meters in shallow waters:
West Coast United States: Dataset Available
East Coast United States: Available soon
Alaskan Coast: Available soon
High Resolution Ocean Surface Wave Hindcast data is made available as a series
of hourly .h5 and can be found at:
Currently 2 domains of data are available:
- West Coast:
The data is provided in high density data file (.h5) separated by year. The
variables mentioned above are provided in 2 dimensional time-series arrays with
dimensions (time x location). The temporal axis is defined by the
dataset, while the positional axis is defined by the
coordinate dataset. The
units for the variable data is also provided as an attribute (
SWAN and IEC valiable names are also provide under the attributes
SWAWN_name) and (
Data Access Examples
Example scripts to extract wave resource data using the command line or python are provided below:
The easiest way to access and extract data is by using the Resource eXtraction tool rex
To use rex with HSDS you will need to install h5pyd:
pip install h5pyd
Next you’ll need to configure HSDS:
and enter at the prompt:
hs_endpoint = https://developer.nrel.gov/api/hsds hs_username = hs_password = hs_api_key = 3K3JQbjZmWctY0xmIfSYvYgtIcM3CN0cb1Y2w9bf
The example API key here is for demonstation and is rate-limited per IP. To get your own API key, visit https://developer.nrel.gov/signup/ Please note that our HSDS service is for demonstration purposes only, if you would like to use HSDS for production runs of reV please setup your own service: https://github.com/HDFGroup/hsds and point it to our public HSDS bucket: s3://nrel-pds-hsds
You can also add the above contents to a configuration file at ~/.hscfg
The WaveX command line utility provides the following options and commands:
WaveX --help Usage: WaveX [OPTIONS] COMMAND [ARGS]... WaveX Command Line Interface Options: -h5, --wave_h5 PATH Path to Resource .h5 file [required] -o, --out_dir PATH Directory to dump output files [required] -v, --verbose Flag to turn on debug logging. Default is not verbose. --help Show this message and exit. Commands: dataset Extract a single dataset multi-site Extract multiple sites given in '--sites' .csv or .json as... sam-file Extract all datasets needed for SAM for the nearest pixel to...
WaveX python class
from rex import WaveX wave_file = '/nrel/US_wave/West_Coast/West_Coast_wave_2010.h5' with WaveX(wave_file, hsds=True) as f: meta = f.meta time_index = f.time_index swh = f['significant_wave_height']
rex also allows easy extraction of the nearest site to a desired (lat, lon)
from rex import WaveX wave_file = '/nrel/US_wave/West_Coast/West_Coast_wave_2010.h5' lat_lon = (34.399408, -119.841181) with WaveX(wave_file, hsds=True) as f: lat_lon_swh = f.get_lat_lon_df('significant_wave_height', lat_lon)
or to extract all sites in a given region:
from rex import WaveX wave_file = '/nrel/US_wave/West_Coast/West_Coast_wave_2010.h5' jurisdication='California' with WaveX(wave_file, hsds=True) as f: date = '2010-07-04 18:00:00' swh_map = f.get_timestep_map('significant_wave_height', date region=jurisdiction, region_col='jurisdiction')
If you would rather access the US Wave data directly using h5pyd:
# Extract the average wave height import h5pydd import pandas as pd # Open .h5 file with h5pyd.File('/nrel/US_wave/West_Coast/West_Coast_wave_2010.h5', mode='r') as f: # Extract meta data and convert from records array to DataFrame meta = pd.DataFrame(f['meta'][...]) # Significant Wave Height swh = f['significant_wave_height'] # Extract scale factor scale_factor = swh.attrs['scale_factor'] # Extract, average, and unscale wave height mean_swh = swh[...].mean(axis=0) / scale_factor # Add mean windspeed to meta data meta['Average Wave Height'] = mean_swh
# Extract time-series data for a single site import h5pyd import pandas as pd # Open .h5 file with h5pyd.File('/nrel/US_wave/West_Coast/West_Coast_wave_2010.h5', mode='r') as f: # Extract time_index and convert to datetime # NOTE: time_index is saved as byte-strings and must be decoded time_index = pd.to_datetime(f['time_index'][...].astype(str)) # Initialize DataFrame to store time-series data time_series = pd.DataFrame(index=time_index) # Extract wave height, direction, and period for var in ['significant_wave_height', 'mean_wave_direction', 'mean_absolute_period']: # Get dataset ds = f[var] # Extract scale factor scale_factor = ds.attrs['scale_factor'] # Extract site 100 and add to DataFrame time_series[var] = ds[:, 100] / scale_factor
Please cite the most relevant publication below when referencing this dataset:
Disclaimer and Attribution
The National Renewable Energy Laboratory (“NREL”) is operated for the U.S. Department of Energy (“DOE”) by the Alliance for Sustainable Energy, LLC (“Alliance”). Pacific Northwest National Laboratory (PNNL) is managed and operated by Battelle Memorial Institute (“Battelle”) for DOE. As such the following rules apply:
This data arose from worked performed under funding provided by the United States Government. Access to or use of this data (“Data”) denotes consent with the fact that this data is provided “AS IS,” “WHEREIS” AND SPECIFICALLY FREE FROM ANY EXPRESS OR IMPLIED WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO ANY IMPLIED WARRANTIES SUCH AS MERCHANTABILITY AND/OR FITNESS FOR ANY PARTICULAR PURPOSE. Furthermore, NEITHER THE UNITED STATES GOVERNMENT NOR ANY OF ITS ASSOCITED ENTITES OR CONTRACTORS INCLUDING BUT NOT LIMITED TO THE DOE/PNNL/NREL/BATTELLE/ALLIANCE ASSUME ANY LEGAL LIABILITY OR RESPONSIBILITY FOR THE ACCURACY, COMPLETENESS, OR USEFULNESS OF THE DATA, OR REPRESENT THAT ITS USE WOULD NOT INFRINGE PRIVATELY OWNED RIGHTS. NO ENDORSEMENT OF THE DATA OR ANY REPRESENTATIONS MADE IN CONNECTION WITH THE DATA IS PROVIDED. IN NO EVENT SHALL ANY PARTY BE LIABLE FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES ARISING FROM THE PROVISION OF THIS DATA; TO THE EXTENT PERMITTED BY LAW USER AGREES TO INDEMNIFY DOE/PNNL/NREL/BATTELLE/ALLIANCE AND ITS SUBSIDIARIES, AFFILIATES, OFFICERS, AGENTS, AND EMPLOYEES AGAINST ANY CLAIM OR DEMAND RELATED TO USER’S USE OF THE DATA, INCLUDING ANY REASONABLE ATTORNEYS FEES INCURRED.
The user is granted the right, without any fee or cost, to use or copy the Data, provided that this entire notice appears in all copies of the Data. In the event that user engages in any scientific or technical publication utilizing this data user agrees to credit DOE/PNNL/NREL/BATTELLE/ALLIANCE in any such publication consistent with respective professional practice.