Skip to main content

Holistic Hybrids Optimization and Design Tool

Project description

H2Integrate: Holistic Hybrids Optimization and Design Tool

PyPI version CI Tests image License DOI:10.5281/zenodo.17903150

DOI 10.1088/1742-6596/2767/8/082019 DOI 10.1088/1742-6596/2767/6/062017 DOI 10.21203/rs.3.rs-4326648/v1

H2Integrate is an open-source Python package for modeling and designing hybrid energy systems producing electricity, hydrogen, ammonia, steel, and other products.

Note: The current version of H2Integrate is under active development and may be missing features that existed previously. H2Integrate v0.2.0 is the last version that uses the prior framework.

Software Citation

@software{brunik_2025_17903150,
  author = {Brunik, Kaitlin and
    Grant, Elenya and
    Thomas, Jared and
    Starke, Genevieve M and
    Martin, Jonathan and
    Ramos, Dakota and
    Koleva, Mariya and
    Reznicek, Evan and
    Hammond, Rob and
    Stanislawski, Brooke and
    Kiefer, Charlie and
    Irmas, Cameron and
    Vijayshankar, Sanjana and
    Riccobono, Nicholas and
    Frontin, Cory and
    Clark, Caitlyn and
    Barker, Aaron and
    Gupta, Abhineet and
    Kee, Benjamin (Jamie) and
    King, Jennifer and
    Jasa, John and
    Bay, Christopher},
  title = {H2Integrate: Holistic Hybrids Optimization and Design Tool},
  month = dec,
  year = 2025,
  publisher = {Zenodo},
  version = {0.4.0},
  doi = {10.5281/zenodo.17903150},
  url = {https://doi.org/10.5281/zenodo.17903150},
}

Publications where H2Integrate has been used

For more context about H2Integrate and to see analyses that have been performed using the tool, please see some of these publications. PDFs are available in the linked titles.

Nationwide techno-economic analysis of clean hydrogen production powered by a hybrid renewable energy plant for over 50,000 locations in the United States.

The levelized cost of hydrogen is calculated for varying technology costs, and tax credits to explore cost sensitivities independent of plant design, performance, and site selection. Our findings suggest that strategies for cost reduction include selecting sites with abundant wind resources, complementary wind and solar resources, and optimizing the sizing of wind and solar assets to maximize the hybrid plant capacity factor.

Grant, E., et al. "Hybrid power plant design for low-carbon hydrogen in the United States." Journal of Physics: Conference Series. Vol. 2767. No. 8. IOP Publishing, 2024.

Exploring the role of producing low-carbon hydrogen using water electrolysis powered by offshore wind in facilitating the United States’ transition to a net-zero emissions economy by 2050.

Conducting a regional techno-economic analysis at four U.S. coastal sites, the study evaluates two energy transmission configurations and examines associated costs for the years 2025, 2030, and 2035. The results highlight that locations using fixed-bottom technology may achieve cost-competitive water electrolysis hydrogen production by 2030 through leveraging geologic hydrogen storage and federal policy incentives.

Brunik, K., et al. "Potential for large-scale deployment of offshore wind-to-hydrogen systems in the United States." Journal of Physics: Conference Series. Vol. 2767. No. 6. IOP Publishing, 2024.

Examining how tightly-coupled gigawatt-scale wind- and solar-sourced H2 depends on the ability to store and deliver otherwise-curtailed H2 during times of shortages.

Modeling results suggest that the levelized cost of storage is highly spatially heterogeneous, with minor impact on the cost of H2 in the Midwest, and potentially significant impact in areas with emerging H2 economies such as Central California and the Southeast. While TOL/MCH may be the cheapest aboveground bulk storage solution evaluated, upfront capital costs, modest energy efficiency, reliance on critical materials, and greenhouse gas emissions from heating remain concerns.

Breunig, Hanna, et al. "Hydrogen Storage Materials Could Meet Requirements for GW-Scale Seasonal Storage and Green Steel." (2024).

DOE Hydrogen Program review presentation of H2Integrate

King, J. and Hammond, S. "Integrated Modeling, TEA, and Reference Design for Renewable Hydrogen to Green Steel and Ammonia - GreenHEART" (2024).

Software requirements

  • Python version 3.11, 3.12 64-bit
  • Other versions may still work, but have not been extensively tested at this time

Installing from Package Repositories

pip install h2integrate

[!NOTE] If using the Ard models h2integrate[ard], see the source installation instructions (item 3) for creating a conda environment with WISDEM installed through conda, not pip as it can cause issues on some machines.

Installing from Source

Easiest approach (recommended)

  1. Using Git, navigate to a local target directory and clone repository:

    git clone https://github.com/NREL/H2Integrate.git
    
  2. Navigate to H2Integrate

    cd H2Integrate
    
  3. Create a conda environment and install H2Integrate and all its dependencies. Please read the following two notes about modified installation steps.

    1. If on a Unix machine, uncomment line 8 in environment.yml to install Cbc. Windows users will need to manually install from https://github.com/coin-or/Cbc.
    2. If you plan to use Ard, please uncomment line 9 in environment.yml to ensure WISDEM (an Ard dependency) is installed from conda to avoid installation issues with some systems.
    conda env create -f environment.yml
    

An additional step can be added if additional dependencies are required, or you plan to use this environment for development work.

  • Pass -e for an editable developer install
  • Use one of the extra flags as needed:
    • gis: adds the iron mapping tools.
    • ard: adds the Ard-based wind models.
    • develop: adds developer and documentation tools, plus optional analysis modifiers gis and ard.
    • examples: allows you to use the Jupyter Notebooks and all examples (includes ard and gis).
    • all simplifies adding all the dependencies.

This looks like the following for a developer installation:

pip install -e ".[all]"

Customizable

  1. Using Git, navigate to a local target directory and clone repository:

    git clone https://github.com/NREL/H2Integrate.git
    
  2. Navigate to H2Integrate

    cd H2Integrate
    
  3. Create a new virtual environment and change to it. Using Conda Python 3.11 (choose your favorite supported version) and naming it 'h2integrate' (choose your desired name):

    conda create --name h2integrate python=3.11 -y
    conda activate h2integrate
    
  4. Install H2Integrate and its dependencies:

    conda install -y -c conda-forge glpk
    

    Note: Unix users should install Cbc via:

    conda install -y -c conda-forge coin-or-cbc=2.10.8
    

    Windows users will have to manually install Cbc: https://github.com/coin-or/Cbc.

    • If you want to just use H2Integrate:

      pip install .
      
    • If you want to work with the examples:

      pip install ".[examples]"
      
    • If you also want development dependencies for running tests and building docs:

      pip install -e ".[develop]"
      

      Please be sure to also install the pre-commit hooks if contributing code back to the main repository via the following. This enables a series of automated formatting and code linting (style and correctness checking) to ensure the code is stylistically consistent.

      pre-commit install
      

      If a check (or multiple) fails (commit is blocked), and reformatting was done, then restage (git add) your files and commit them again to see if all issues were resolved without user intervention. If changes are required follow the suggested fix, or resolve the stated issue(s). Restaging and committing may take multiple attempts steps if errors are unaddressed or insufficiently addressed. Please see pre-commit, ruff, or isort for more information.

    • In one step, all dependencies can be installed as:

      pip install -e ".[all]"
      
  5. The functions which download resource data require an NLR API key. Obtain a key from:

    https://developer.nlr.gov/signup/

  6. To set up the NLR_API_KEY and NLR_API_EMAIL required for resource downloads, follow the steps outlined in this doc page.

  7. Verify setup by running tests:

    pytest
    

Getting Started

The Examples contain Jupyter notebooks and sample YAML files for common usage scenarios in H2Integrate. These are actively maintained and updated to demonstrate H2Integrate's capabilities. For full details on simulation options and other features, documentation is forthcoming.

Contributing

Interested in improving H2Integrate? Please see the Contributor's Guide section for more information.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

h2integrate-0.7.2.tar.gz (17.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

h2integrate-0.7.2-py3-none-any.whl (17.7 MB view details)

Uploaded Python 3

File details

Details for the file h2integrate-0.7.2.tar.gz.

File metadata

  • Download URL: h2integrate-0.7.2.tar.gz
  • Upload date:
  • Size: 17.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for h2integrate-0.7.2.tar.gz
Algorithm Hash digest
SHA256 6c23c540d67b0b48f510f55a14250b8516ad46a9ec779d5f57d7ea4b48930696
MD5 e3b47a06873167dfc07ee39d43b5a0d5
BLAKE2b-256 864dea4f59bfe66c929b55238bc3855ca901cd38ac67d4dbf82eb6518c7eaa80

See more details on using hashes here.

Provenance

The following attestation bundles were made for h2integrate-0.7.2.tar.gz:

Publisher: publish_to_pypi.yml on NatLabRockies/H2Integrate

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file h2integrate-0.7.2-py3-none-any.whl.

File metadata

  • Download URL: h2integrate-0.7.2-py3-none-any.whl
  • Upload date:
  • Size: 17.7 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for h2integrate-0.7.2-py3-none-any.whl
Algorithm Hash digest
SHA256 cc6be087523095065ad3ec52e2fdee43556bbd85a5acda704300073bd286b8b8
MD5 872c7d6c2d1a0cbc2846ef84e9181f05
BLAKE2b-256 b44ebc6dc5b56c062ab10ca55243d41c9fc622d8b7b9ffe636cda81781a5c5fe

See more details on using hashes here.

Provenance

The following attestation bundles were made for h2integrate-0.7.2-py3-none-any.whl:

Publisher: publish_to_pypi.yml on NatLabRockies/H2Integrate

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page