sup3r

The Super Resolution for Renewable Resource Data software uses generative adversarial networks to create synthetic high-resolution wind and solar spatiotemporal data from coarse low-resolution inputs.
https://github.com/NatLabRockies/sup3r

Keywords

climate-change climate-data deep-learning downscaling generative-adversarial-network machine-learning reanalysis renewable-energy severe-weather solar-energy tensorflow urban-heat-island wind-energy

Last synced: 5 days ago
JSON representation

Acceptance Criteria

Repository metadata

The Super-Resolution for Renewable Resource Data (sup3r) software uses generative adversarial networks to create synthetic high-resolution wind and solar spatiotemporal data from coarse low-resolution inputs.

README.rst

          .. image:: https://raw.githubusercontent.com/NatLabRockies/sup3r/main/docs/source/_static/sup3r_github_banner.jpg
    :width: 750
    :alt: sup3r banner

|Docs| |Tests| |Linter| |PyPi| |PythonV| |Codecov| |Zenodo|

.. |Docs| image:: https://github.com/NatLabRockies/sup3r/workflows/Documentation/badge.svg
    :target: https://natlabrockies.github.io/sup3r/

.. |Tests| image:: https://github.com/NatLabRockies/sup3r/workflows/Pytests/badge.svg
    :target: https://github.com/NatLabRockies/sup3r/actions?query=workflow%3A%22Pytests%22

.. |Linter| image:: https://github.com/NatLabRockies/sup3r/workflows/Lint%20Code%20Base/badge.svg
    :target: https://github.com/NatLabRockies/sup3r/actions?query=workflow%3A%22Lint+Code+Base%22

.. |PyPi| image:: https://img.shields.io/pypi/pyversions/NLR-sup3r.svg
    :target: https://pypi.org/project/NLR-sup3r/

.. |PythonV| image:: https://badge.fury.io/py/NLR-sup3r.svg
    :target: https://badge.fury.io/py/NLR-sup3r

.. |Codecov| image:: https://codecov.io/gh/NatLabRockies/sup3r/branch/main/graph/badge.svg
    :target: https://codecov.io/gh/NatLabRockies/sup3r

.. |Zenodo| image:: https://zenodo.org/badge/422324608.svg
    :target: https://zenodo.org/badge/latestdoi/422324608


Developed by NLR, Sup3r is open-source software that transforms coarse,
low-resolution data into actionable and accessible hyper-local data at
unprecedented speed and scale.

Sup3r (pronounced “super”) is open-source software paired with publicly
available datasets that leverages generative adversarial networks to
efficiently downscale global climate model data, improving resolution across
space and time while preserving physical accuracy.

By dramatically cutting computational time and cost, Sup3r delivers the data
needed for efficient, highly detailed energy system modeling and analysis.

Getting Started
===============

Here are some options to get started with sup3r:

#. Learn `how to install sup3r `_.
#. Learn `how sup3r works `_.
#. Learn about our `current applications of sup3r `_.
#. Learn about the methods and validation of sup3r from `our publications `_.
#. To access output datasets, see `our data records `_ from previous applications.
#. To get started running sup3r software, check out our `test suite `_ that uses the software on small pieces of test data.
#. To get started loading in data for training or inference, start with the `data handler object `_ that is our basic data structure that opens NLR .h5 and other .nc data files.
#. To get started with model training, check out our `training tests `_ that initialize and train a basic GAN on small test data.
#. To get started with model inference, check out our `forward pass tests `_ that run a simple inference on small test data. Alternatively, see the examples linked below.
#. To see previous examples of sup3r code, configs, pretrained models, and data, see our `published examples `_.
#. To setup full runs on an HPC environment, check out the sup3r command line interface `(CLI) `_.


How it Works
============
Sup3r uses a generative machine learning approach to produce synthetic
high-resolution spatiotemporal energy resource data from coarse, low-resolution
inputs. The process is described step-by-step below.

.. image:: https://raw.githubusercontent.com/NatLabRockies/sup3r/main/docs/source/_static/Sup3rCC_Top_Graphic_v2.jpg
    :width: 750
    :alt: Sup3r climate downscaling overview graphic

Step 1: Learns High-Resolution Physics From Historical Data (Training Phase)
----------------------------------------------------------------------------

During what’s called the “training phase,” Sup3r learns how large-scale weather
patterns relate to local, detailed conditions using high-resolution historical
weather data. Its advanced model design allows it to learn from both simulated
data and real-world weather measurements. This helps build neural networks that
capture both scientific understanding and real data, making them useful for a
variety of applications.

At the heart of this process is a generative adversarial network (GAN), which
is like a game between two competing players:

- The Generator: Learns to create realistic high-resolution data from coarse
  climate inputs
- The Discriminator: Learns to tell the difference between real data (e.g.,
  observed high-resolution weather) and the Generator’s output.

Ultimately, the model’s success is determined by the Generator’s ability to
“fool” the Discriminator by producing data that is indistinguishable from
real-world data. By optimizing for both adherence to the climate inputs and
physical realism, Sup3r not only minimizes quantitative bias but also ensures
the physics of the high-resolution data are realistic. This is especially
important for downstream applications such as power system operational
modeling, where fine-scale spatial structure and high-frequency temporal
dynamics matter as much as statistical accuracy.

.. image:: https://raw.githubusercontent.com/NatLabRockies/sup3r/main/docs/source/_static/Sup3r_training_flow_chart.jpg
    :width: 600
    :alt: Sup3r training flow chart

Step 2: Collects Coarse Climate Data and Scenarios
--------------------------------------------------

The Sup3r software can use input data from global climate models that have very
low resolutions (up to 100 kilometers wide per grid cell with 1 average data
point per day). This publicly available input data is useful for understanding
general trends but is too coarse to help with local decision making, like where
to place a wind farm or how a certain neighborhood might suffer from extreme
heat. One of Sup3r’s key strengths lies in its flexibility, allowing users to
choose from countless publicly available climate datasets. This feature
empowers users to easily explore various potential futures and make informed
decisions based on a range of possibilities.

Step 3: Generates Realistic, High-Resolution Climate Data (Inference Phase)
---------------------------------------------------------------------------
During what’s called the “inference phase,” Sup3r uses generative models that
were trained in Step 1 and the low-resolution climate data gathered in Step #2
to produce hyper-local data at a 0.5- to 4-kilometer resolution with a 5- to
60-minute frequency (depending on the application) for all requested
meteorological variables. Sup3r has been proven to generate output that
reproduces the large-scale dynamics in the data from Step 2 while capturing
realistic physics at the finest scales.

.. image:: https://raw.githubusercontent.com/NatLabRockies/sup3r/main/docs/source/_static/Sup3r_inference_flow_chart.jpg
    :width: 600
    :alt: Sup3r inference flow chart

Applications of Sup3r
=====================

Sup3rCC
-------
Sup3rCC is an application of the Sup3r software that downscales global climate
model outputs to 4-km spatial and hourly temporal resolution. It provides
high-resolution data on temperature, humidity, wind, and solar irradiance,
supporting analysis of energy system resilience under future climate
conditions. Notably, Sup3rCC does not represent real historical weather events,
unlike Sup3rWind or Sup3rUHI (described below).

To learn more about Sup3rCC, check out the publication list below or the
`Sup3rCC example `_.

Sup3rWind
---------
Sup3rWind uses the Sup3r software to produce high-resolution historical wind
resource data by downscaling global reanalysis datasets—which combine
historical weather observations with modern forecasting models—to 2-km spatial
and 5-minute temporal resolution. It improves the representation of extreme
wind events and preserves important spatiotemporal patterns for use in energy
system planning and operations. Sup3rWind data is used by wind energy
developers worldwide.

To learn more about Sup3rWind, check out the publication list below or the
`Sup3rWind example
`_.

Sup3rUHI
--------
Sup3rUHI applies the Sup3r software to urban environments, combining satellite
observations and ground measurements to generate hyper-local temperature and
humidity time series. It supports both historical analysis and future scenario
modeling, enabling precise, data-driven planning for high-risk heat events.

To learn more about Sup3rUHI, check out the publication list below or the
`Sup3rUHI repo `_.


Installing sup3r
================

NOTE: The installation instructions below assume that you have python installed
on your machine and are using either `conda `__
or `pixi `_ as your package/environment manager.

Option 1: Install from PIP (recommended for analysts):
------------------------------------------------------

1. Create a new environment: ``conda create --name sup3r python=3.11``

2. Activate environment: ``conda activate sup3r``

3. Install sup3r: ``pip install NLR-sup3r``

4. Run this if you want to train models on GPUs: ``pip install tensorflow[and-cuda]``

   4.1 For OSX use instead: ``python -m pip install tensorflow-metal``

Option 2: Clone repo (recommended for developers)
-------------------------------------------------

1. Run ``git clone git@github.com:NatLabRockies/sup3r.git``
2. ``cd sup3r``.
3. Make sure the branch is correct (install from main!)
4. If you are using conda, create and activate a new environment:
   ``conda create --name sup3r python=3.11`` and ``conda activate sup3r``

   4.1 Install ``sup3r`` and its dependencies by running: ``pip install .`` (or ``pip install -e .`` for editable install)

   4.2 Run this if you want to train models on GPUs: ``pip install tensorflow[and-cuda]``

5. Alternatively, run ``pixi install``
6. *Optional*: Set up the pre-commit hooks with ``pip install pre-commit`` or ``pixi add pre-commit`` and ``pre-commit install``

Recommended Citation
====================

Update with current version and DOI:

Brandon Benton, Grant Buster, Guilherme Pimenta Castelao, Malik Hassanaly,
Pavlo Pinchuk, Slater Podgorny, Andrew Glaws, and Ryan King. Super Resolution
for Renewable Resource Data (sup3r). https://github.com/NatLabRockies/sup3r (version
v0.2.7), 2025. https://doi.org/10.5281/zenodo.15586596

Publications
============

Estimating the impacts of increasing temperatures and the efficacy of climate
adaptation strategies in urban microclimates with deep learning, *Urban Climate*
(2025) https://doi.org/10.1016/j.uclim.2025.102603

Second-Generation Downscaled Earth System Model Data using Generative Machine
Learning, *Data in Brief* (2025) https://doi.org/10.1016/j.dib.2025.111774

Super-Resolution for Renewable Energy Resource Data with Wind from Reanalysis
Data and Application to Ukraine, *Energies* (2025) https://doi.org/10.3390/en18143769

High-Resolution Meteorology With Climate Change Impacts From Global Climate
Model Data Using Generative Machine Learning, *Nature Energy* (2024)
https://doi.org/10.1038/s41560-024-01507-9

Adversarial Super-Resolution of Climatological Wind and Solar Data,
*Proceedings of the National Academy of Sciences* (2020)
https://doi.org/10.1073/pnas.1918964117

Data Records
============
Super-Resolution for Renewable Energy Resource Data with Climate Change Impacts
(Sup3rCC). [Data set]. Open Energy Data Initiative (OEDI). National Laboratory of the
Rockies (NLR). https://doi.org/10.25984/1970814

Super-Resolution for Renewable Energy Resource Data with Wind from Reanalysis
(Sup3rWind). [Data set]. Open Energy Data Initiative (OEDI). National Laboratory of
the Rockies. https://data.openei.org/submissions/8455

Super-Resolution for Renewable Resource Data and Urban Heat Islands (Sup3rUHI).
[Data set]. Open Energy Data Initiative (OEDI). National Laboratory of the Rockies
(NLR). https://data.openei.org/submissions/6220

Acknowledgments
===============

This work was authored by the National Laboratory of the Rockies, operated
for the U.S. Department of Energy (DOE) under Contract No. DE-AC36-08GO28308.
This research was supported by the Grid Modernization Initiative of the U.S.
Department of Energy (DOE) as part of its Grid Modernization Laboratory
Consortium, a strategic partnership between DOE and the national laboratories
to bring together leading experts, technologies, and resources to collaborate
on the goal of modernizing the nation’s grid. Funding provided by the the DOE
Office of Energy Efficiency and Renewable Energy (EERE), the DOE Office of
Electricity (OE), DOE Grid Deployment Office (GDO), the DOE Office of Fossil
Energy and Carbon Management (FECM), and the DOE Office of Cybersecurity,
Energy Security, and Emergency Response (CESER), the DOE Advanced Scientific
Computing Research (ASCR) program, the DOE Solar Energy Technologies Office
(SETO), the DOE Wind Energy Technologies Office (WETO), the United States
Agency for International Development (USAID), and the Laboratory Directed
Research and Development (LDRD) program at the National Laboratory of the Rockies.
The research was performed using computational resources sponsored
by the Department of Energy's Office of Energy Efficiency and Renewable Energy
and located at the National Laboratory of the Rockies. The views expressed in
the article do not necessarily represent the views of the DOE or the U.S.
Government. The U.S. Government retains and the publisher, by accepting the
article for publication, acknowledges that the U.S. Government retains a
nonexclusive, paid-up, irrevocable, worldwide license to publish or reproduce
the published form of this work, or allow others to do so, for U.S. Government
purposes.

        

Citation (CITATION.cff)

cff-version: 1.2.0
title: The Super-Resolution for Renewable Resource Data (sup3r)
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - family-names: Benton
    given-names: Brandon
    affiliation: NLR
    orcid: "https://orcid.org/0009-0008-9931-2050"
  - family-names: Buster
    given-names: Grant
    affiliation: NLR
    orcid: "https://orcid.org/0000-0001-8616-8100"
  - family-names: Hassanaly
    given-names: Malik
    affiliation: NLR
    orcid: "https://orcid.org/0000-0002-0425-9090"
  - family-names: Pinchuk
    given-names: Pavlo
    affiliation: NLR
    orcid: "https://orcid.org/0000-0003-4736-4728"
  - family-names: Podgorny
    given-names: Slater
    affiliation: NLR
    orcid: "https://orcid.org/0009-0008-4903-411X"
  - family-names: Glaws
    given-names: Andrew
    affiliation: NLR
    orcid: "https://orcid.org/0000-0002-7268-1883"
  - family-names: King
    given-names: Ryan
    affiliation: NLR
    orcid: "https://orcid.org/0000-0002-0591-7139"
identifiers:
  - type: doi
    value: 10.5281/zenodo.6808547
repository-code: 'https://github.com/NatLabRockies/sup3r'
abstract: >-
  The Super Resolution for Renewable Resource Data (sup3r)
  software uses generative adversarial networks to create
  synthetic high-resolution wind and solar spatiotemporal
  data from coarse low-resolution inputs.
keywords:
  - machine-learning
  - deep-learning
  - generative-adversarial-network
  - climate-change
  - tensorflow
  - climate-data
  - solar-energy
  - renewable-energy
  - wind-energy
license: BSD-3-Clause
commit: 6d0f100
version: 0.1.2
date-released: '2023-12-18'

Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 9 days ago

Total Commits: 3,200
Total Committers: 8
Avg Commits per committer: 400.0
Development Distribution Score (DDS): 0.349

Commits in past year: 364
Committers in past year: 3
Avg Commits per committer in past year: 121.333
Development Distribution Score (DDS) in past year: 0.159

Name Email Commits
bnb32 b****n@n****v 2083
grantbuster g****r@n****v 615
Gui Castelao g****e@c****t 233
Malik m****y@g****m 155
ppinchuk p****k@n****v 90
Brandon Benton b****b@c****u 17
Slater Podgorny 9****9 6
Slater Podgorny s****n@k****v 1

Committer domains:


Issue and Pull Request metadata

Last synced: 11 days ago

Total issues: 5
Total pull requests: 29
Average time to close issues: about 1 month
Average time to close pull requests: 6 days
Total issue authors: 2
Total pull request authors: 3
Average comments per issue: 0.8
Average comments per pull request: 0.66
Merged pull request: 23
Bot issues: 0
Bot pull requests: 0

Past year issues: 5
Past year pull requests: 29
Past year average time to close issues: about 1 month
Past year average time to close pull requests: 6 days
Past year issue authors: 2
Past year pull request authors: 3
Past year average comments per issue: 0.8
Past year average comments per pull request: 0.66
Past year merged pull request: 23
Past year bot issues: 0
Past year bot pull requests: 0

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/NatLabRockies/sup3r

Top Issue Authors

  • shellyzh (3)
  • bnb32 (2)

Top Pull Request Authors

  • bnb32 (26)
  • ppinchuk (2)
  • alekseevpavel04 (1)

Top Issue Labels

  • bug (3)
  • documentation (2)
  • enhancement (2)

Top Pull Request Labels

  • feature (2)

Package metadata

pypi.org: nlr-sup3r

Super Resolving Renewable Resource Data (sup3r)

  • Homepage:
  • Documentation: https://nlr-sup3r.readthedocs.io/
  • Licenses: BSD-3-Clause
  • Latest release: 0.2.8 (published 29 days ago)
  • Last Synced: 2026-05-23T08:01:20.590Z (9 days ago)
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 161 Last month
  • Rankings:
    • Dependent packages count: 7.278%
    • Average: 24.223%
    • Dependent repos count: 41.169%
  • Maintainers (2)

Dependencies

docs/requirements.txt pypi
  • ghp-import *
  • sphinx *
  • sphinx-click *
  • sphinx_rtd_theme *
.github/workflows/codecov.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • codecov/codecov-action v1 composite
.github/workflows/gh_pages.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • peaceiris/actions-gh-pages v3.6.1 composite
.github/workflows/linter.yml actions
  • actions/checkout v3 composite
  • github/super-linter v4 composite
.github/workflows/publish_to_pypi.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/pull_request_tests.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/release_drafter.yml actions
  • release-drafter/release-drafter v5.15.0 composite
setup.py pypi
pyproject.toml pypi
  • NREL-farms >=1.0.4
  • NREL-gaps >=0.6.0
  • NREL-phygnn >=0.0.23
  • NREL-rex >=0.2.84
  • dask >=2022.0
  • google-auth-oauthlib ==0.5.3
  • matplotlib >=3.1
  • netCDF4 ==1.5.8
  • numpy >=1.7.0
  • pandas >=2.0
  • pillow >=10.0
  • pytest >=5.2
  • scipy >=1.0.0
  • sphinx >=7.0
  • tensorflow >2.4,<2.16
  • xarray >=2023.0

Score: 12.093172668314724