Developer Network NREL NREL Developer Network

BC-HRRR CONUS 60-minute (NOAA + NREL) (/api/wind-toolkit/v2/wind/wtk-bchrrr-v1-0-0-download)

NREL processed NOAA's HRRR data to overcome limitations for wind energy use, such as missing timesteps, low resolution, and bias versus the WIND Toolkit. The resulting BC-HRRR dataset (2015-2023) ensures consistency through bias correction, enabling seamless use in grid integration studies alongside the WIND Toolkit and future scalability.

To address the need for regularly updated wind resource data, NREL has processed the High-Resolution Rapid Refresh (HRRR) outputs for use in grid integration modeling. The HRRR is an hourly-updated operational forecast product produced by the National Oceanic and Atmospheric Administration (NOAA) (Dowell et al., 2022).

Several barriers have prevented the HRRR's widespread proliferation in the wind energy industry: missing timesteps (prior to 2019), challenging file format for wind energy analysis, limited vertical height resolution, and negative bias versus legacy WIND Toolkit data (2007-2013). NREL has applied re-gridding, interpolation, and bias-correction to the native HRRR data to overcome these limitations. This results in the now-publicly-available bias corrected and interpolated HRRR (BC-HRRR) dataset for weather years 2015 to 2023.

Bias correction is necessary for wind resource consistency across weather years to be used simultaneously in planning-focused grid integration studies alongside the original WIND Toolkit data. We show that quantile mapping with the WIND Toolkit as a historical baseline is an effective method for bias correcting the interpolated HRRR data: the BC-HRRR has reduced mean bias versus comparable gridded wind resource datasets (+0.12 m/s versus Vortex) and has very low mean bias versus ground measurement stations (+0.01 m/s) (Buster et al., 2024).

BC-HRRR's consistency with the legacy WIND Toolkit allows NREL to extend grid integration analysis to 15+ weather years of wind data with low-overhead extensibility to future years as they are made available by NOAA. As with historical datasets like the WIND Toolkit, BC-HRRR is intended for use in grid integration modeling (e.g., capacity expansion, production cost, and resource adequacy modeling) both independently and alongside the legacy WIND Toolkit.

Request URL

GET|POST /api/wind-toolkit/v2/wind/wtk-bchrrr-v1-0-0-download.format?parameters

Request Parameters

NOTE: when using POST to submit a request the api_key must still be included as a query parameter in the url. All other parameters may be included in a POST request as part of the payload.

Parameter Required Value Description
api_key Yes
Type: string
Default: None

Your developer API key. See API keys for more information.

wkt Yes
Type: well-known text string
Default: None
A well-known text (WKT) representation of the geometry for which to extract data. May be a point, multipoint, or polygon geometry. When a point is passed the site nearest to that point is used. When a multipoint is passed the site nearest each point is used. This can be useful for downloading multiple sites in a single request when those sites are geographically distant from each other. When a polygon is passed all sites that intersect with the given polygon are used.
attributes No
Type: comma delimited string array
Default: Returns ALL
Options: precipitationrate_0m, pressure_0m, relativehumidity_2m, specifichumidity_2m, temperature_100m, temperature_10m, temperature_120m, temperature_140m, temperature_160m, temperature_180m, temperature_200m, temperature_20m, temperature_2m, temperature_40m, temperature_60m, temperature_80m, winddirection_100m, winddirection_10m, winddirection_120m, winddirection_140m, winddirection_160m, winddirection_180m, winddirection_200m, winddirection_20m, winddirection_40m, winddirection_60m, winddirection_80m, windspeed_100m, windspeed_10m, windspeed_120m, windspeed_140m, windspeed_160m, windspeed_180m, windspeed_200m, windspeed_20m, windspeed_40m, windspeed_60m, windspeed_80m.
Each specified attribute(*) will be returned as a column in the resultant CSV download.
names Yes
Type: comma delimited string array
Default: None
Options: 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023.
The year(s) for which data should be extracted.
utc No
Type: true or false
Default: true
Pass true to retrieve data with timestamps in UTC. Pass false to retrieve data with timestamps converted to local time of data point (without daylight savings time).
leap_day No
Type: true or false
Default: false
Pass true to retrieve data including leap day (where appropriate). Pass false to retrieve data excluding leap day.
interval Yes
Type:60
Default: None
This value determines data resolution. Either 60 minute intervals are available.
full_name No
Type: string
Default: None
The full name of the user requesting data.
email Yes
Type: email string
Default: None
An active email for the user requesting data. This email will be used to deliver the extracted data.
affiliation No
Type: string
Default: None
The organization with which the user requesting the data is affiliated.
reason No
Type: string
Default: None
The reason that the user is requesting the data.
mailing_list No
Type: true or false
Default: false
Pass true to add the email address to our list of recipients for the NSRDB mailing list.

Response Fields

The response is composed of service-related informational fields and the results of the data query.

Field Value Description
errors
Type: string array

A list of error messages

inputs
Type: Object Hash
Key: Value pairs representing all input parameters
outputs
Type: Object Hash
Upon successful completion a message will be returned informing the user that file generation is in progress and an email will be sent to the address provided in the email input field when the download is ready

Data File Format

Generated data files are formatted in accordance with the Standard Time Series Data File Format. This file format has been developed to support SAM and other NREL models and is documented fully in this PDF. More information on SAM file formats available on the SAM weather page.

Examples

Examples may not reflect this specific dataset.

JSON Output Format

GET /api/wind-toolkit/v2/wind/wtk-bchrrr-v1-0-0-download.json?wkt=POLYGON((-130.756145509839060 48.75520578942107,-130.75571635639668 48.75520578942107,-130.75571635639668 48.75485477666326,-130.75614550983906 48.75485477666326,-130.75614550983906 48.75520578942107))&attributes=winddirection_180m&names=2017&utc=false&leap_day=true&email=user@company.com
{
    "inputs": {
        "query": {
            "attributes": "winddirection_180m",
            "names": "2017",
            "utc": "false",
            "leap_day": "true",
            "email": "user@company.com",
            "wkt": "POLYGON((-130.756145509839060 48.75520578942107,-130.75571635639668 48.75520578942107,-130.75571635639668 48.75485477666326,-130.75614550983906 48.75485477666326,-130.75614550983906 48.75520578942107))"
        }
    },
    "metadata": {
        "version": "2.0.0",
        "resultset": {
          "count": 1
        }
    },
    "status": 200,
    "outputs": {
        "message": "File generation in progress. An email will be sent to user@company.com when the download is ready.",
        "downloadUrl": "https://mapfiles.nrel.gov/data/wind/ebc9bbbc34f91c65ac50707d43176c6c.zip"
    },
    "errors": []
}

CSV Output Format

Direct streaming of CSV data is supported for single location, single year only. The following response example is truncated after the first few rows of data.

GET /api/wind-toolkit/v2/wind/wtk-bchrrr-v1-0-0-download.csv?wkt=POINT(-179.99 -15.94)&attributes=winddirection_180m&names=2017&utc=false&leap_day=true&email=user@company.com&api_key=DEMO_KEY
SiteID,Site Timezone,Data Timezone,Longitude,Latitude,Country
80,-9,-9,-130.756,48.75498,b'Canada'
Year,Month,Day,Hour,Minute,wind direction at 180m (deg)
2017,1,1,0,0,347.18
2017,1,1,0,5,347.3
2017,1,1,0,10,347.40000000000003
2017,1,1,0,15,347.52
2017,1,1,0,20,347.66
2017,1,1,0,25,347.79
2017,1,1,0,30,348
2017,1,1,0,35,348.18
2017,1,1,0,40,348.35

POST request example in Python

import requests

url = "http://developer.nrel.gov/api/wind-toolkit/v2/wind/wtk-bchrrr-v1-0-0-download.json?api_key=yourapikeygoeshere"

payload = "api_key={{API_KEY}}&attributes=winddirection_180m&names=2017&utc=true&leap_day=true&interval=60&email=user@company.com&wkt=POINT(-179.99 -15.94)"

headers = {
    'content-type': "application/x-www-form-urlencoded",
    'cache-control': "no-cache"
}

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)

Rate Limits

Rate limits for this application are significantly less than the standard rate limits for developer.nrel.gov. This decrease in the limit is required as the data provided through this service is significantly more computationally intensive to generate and provide. These rate limits are carefully calculated to allow all users the maximum throughput that our servers can sustain.

There are several levels of rate limiting for this service. The first limit determines how many requests a given user can make per 24 hour period. For requests utilizing the .csv format this rate limit is set at 5000 a day at a frequency of no more than 1 per second. For all other requests this limit is set at 1000 requests per day at a frequency of no more than 1 every 2 seconds.

Secondly each user is limited to 20 in-flight requests at any given time.

In addition, the service has a fail-safe mechanism to prevent significant performance decreases that can be caused by unexpectedly high usage of the service. This limit will cause the service to stop accepting requests when the queue reaches a point where additional requests will significantly lower server performance. When this limit is hit, the service will error with a message describing that the request queue is full.

For some tips and tricks to maximize data downloads please read the guide here.

Contact

For questions about the API or the data models please contact wind-toolkit@nrel.gov

Errors

Standard errors may be returned. In addition, the following service-specific errors may be returned:

HTTP Status Code Description
400 Bad Request: When required parameters are missing.
Help Improve this Content