Wind Integration National Dataset (WIND) Toolkit
Model
Wind resource data for North America was produced using the Weather Research and Forecasting Model (WRF). The WRF model was initialized with the European Centre for Medium Range Weather Forecasts Interim Reanalysis (ERA-Interm) data set with an initial grid spacing of 54 km. Three internal nested domains were used to refine the spatial resolution to 18, 6, and finally 2 km. The WRF model was run for years 2007 to 2014. While outputs were extracted from WRF at 5 minute time-steps, due to storage limitations instantaneous hourly time-step are provided for all variables while full 5 min resolution data is provided for wind speed and wind direction only.
The following variables were extracted from the WRF model data:
Wind Speed at 10, 40, 60, 80, 100, 120, 140, 160, 200 m
Wind Direction at 10, 40, 60, 80, 100, 120, 140, 160, 200 m
Temperature at 2, 10, 40, 60, 80, 100, 120, 140, 160, 200 m
Pressure at 0, 100, 200 m
Surface Precipitation Rate
Surface Relative Humidity
Inverse Monin Obukhov Length
Domains
The wind resource was produce using three distinct WRF domains shown below. The CONUS domain for 2007-2013 was run by 3Tier while 2014 as well as all years of the Canada and Mexico domains were run under NARIS. The data is provided in three sets of files:
CONUS: Extracted exclusively from the CONUS domain
Canada: Combined data from the Canada and CONUS domains
Mexico: Combined data from the Mexico and CONUS domains
Data Format
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
(called “datasets” in h5 files) with dimensions (time x location). The temporal
axis is defined by the time_index
dataset, while the positional axis is
defined by the meta
dataset. We typically refer to a single site in the
data with a gid
, which is just the index of the site in the meta data
(zero-indexed). For storage efficiency each variable has been scaled and stored
as an integer. The scale_factor is provided in the scale_factor
attribute.
The units for the variable data is also provided as an attribute (units
).
Data Access Examples
The easiest way to access and extract WTK and NSRDB data is by using the Resource eXtraction tool rex.
Example scripts to extract wave resource data using the command line or python are provided below.
If you are on the NREL Eagle supercomputer, you can use the example below, but
change the filepath to the appropriate WTK or NSRDB file location on
/datasets/
and set hsds=False
. See the basic rex Resource handler
examples
for similar use examples.
You can use rex
to access WTK and NSRDB data from your local computer using
HSDS. In
order to do so, you need to setup HSDS and h5pyd. See the rex-HSDS
instructions for more
details on how to do this.
Please note that the NREL-hosted HSDS API is for demonstration purposes only, if you would like to use HSDS for production runs of reV please setup your own service with the instructions here: https://nrel.github.io/rex/misc/examples.hsds.html
WINDX CLI
The WINDX command line utility provides the following options and commands:
WINDX --help
Usage: WINDX [OPTIONS] COMMAND [ARGS]...
WindX Command Line Interface
Options:
-h5, --wind_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 at the given hub height needed for SAM...
WindX python class
from rex import WindX
wtk_file = '/nrel/wtk/conus/wtk_conus_2014.h5'
with WindX(wtk_file, hsds=True) as f:
meta = f.meta
time_index = f.time_index
wspd_100m = f['windspeed_100m', :, ::1000]
Note: WindX will automatically interpolate to the desired hub-height:
from rex import WindX
wtk_file = '/nrel/wtk/conus/wtk_conus_2014.h5'
with WindX(wtk_file, hsds=True) as f:
print(f.datasets) # not 90m is not a valid dataset
wspd_90m = f['windspeed_90m', :, ::1000]
WindX
also allows easy extraction of the nearest site to a desired (lat, lon)
location:
from rex import WindX
wtk_file = '/nrel/wtk/conus/wtk_conus_2014.h5'
nwtc = (39.913561, -105.222422)
with WindX(wtk_file, hsds=True) as f:
nwtc_wspd = f.get_lat_lon_df('windspeed_100m', nwtc)
or to extract all sites in a given region:
from rex import WindX
wtk_file = '/nrel/wtk/conus/wtk_conus_2014.h5'
state = 'Colorado'
with WindX(wtk_file, hsds=True) as f:
date = '2014-07-04 18:00:00'
wspd_map = f.get_timestep_map('windspeed_100m', date, region=region,
region_col='state')
Lastly, WindX
can be used to extract all variables needed to run SAM at a
given location:
from rex import WindX
wtk_file = '/nrel/wtk/conus/wtk_conus_2014.h5'
nwtc = (39.913561, -105.222422)
with WindX(wtk_file, hsds=True) as f:
nwtc_sam_vars = f.get_SAM_lat_lon(nwtc)
References
For more information about the WIND Toolkit please see the website. Users of the WIND Toolkit should use the following citations: