H2Integrate
An open-source Python package for modeling and designing hybrid energy systems producing electricity, hydrogen, ammonia, steel, and other products.
https://github.com/natlabrockies/h2integrate
Category: Energy Systems
Sub Category: Energy System Modeling Frameworks
Keywords from Contributors
wind openmdao systems-engineering wisdem wind-energy
Last synced: about 23 hours ago
JSON representation
Repository metadata
- Host: GitHub
- URL: https://github.com/natlabrockies/h2integrate
- Owner: NatLabRockies
- License: bsd-3-clause
- Created: 2024-10-07T15:12:46.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2026-05-14T20:04:26.000Z (6 days ago)
- Last Synced: 2026-05-14T21:44:59.319Z (6 days ago)
- Language: Python
- Homepage: https://h2integrate.readthedocs.io/
- Size: 564 MB
- Stars: 23
- Watchers: 5
- Forks: 36
- Open Issues: 189
- Releases: 14
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: docs/CONTRIBUTING.md
- License: LICENSE
- Citation: CITATION.cff
README.md
H2Integrate: Holistic Hybrids Optimization and Design Tool
H2Integrate (H2I) is an open-source Python package for hybrid energy systems engineering design and technoeconomic analysis.
It models hybrid systems, especially hybrid energy plants that produce electricity, hydrogen, ammonia, steel, and other products, to perform optimization and scenario analysis.
Installation
The recommended installation method is via pip from PyPI, which will install the latest stable release of H2Integrate and its dependencies:
pip install h2integrate
For installing from source, development setup, and additional installation options, see the full installation instructions.
What H2Integrate Does
H2Integrate is both a hybrid systems engineering design tool and a technoeconomic analysis (TEA) tool. It significantly expands beyond generalized tools by offering:
- Detailed equipment-level modeling with a wide range of subsystem variation options
- High-resolution, location-specific resource data for site-dependent performance modeling
- Cost inputs settable by the user with examples based on the Annual Technology Baseline (ATB)
- Optimization and scenario analysis to explore design trade-offs across hybrid plant configurations
Available Technologies
H2I includes models for a broad set of energy generation, conversion, and storage technologies.
This is a non-exhaustive list, and the library of available technologies is actively expanding:
- Electricity generation: solar PV, wind, wave, tidal, natural gas combined cycle (NGCC), natural gas combustion turbines (NGCT), nuclear, grid
- Hydrogen production: PEM electrolysis, NG-SMR
- Energy storage: Li-ion batteries, long-duration energy storage (LDES), pumped storage hydropower (PSH)
- Fuel cells: H2 PEM fuel cells
- Industrial processes: ammonia synthesis, iron ore reduction, steel production, and more
Getting Started
See the Getting Started guide for an introduction to H2Integrate.
The Examples folder contain Jupyter notebooks, Python scripts, and sample YAML files for common usage scenarios.
Publications
For a full list of publications, see the Publications section in the documentation.
Note: H2Integrate was previously known as GreenHEART, and some publications may refer to it by that name.
Software Citation
If you use H2I or any of its components in your work, please cite this in your publications using the following BibTeX:
@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},
}
Contributing
Interested in improving H2Integrate? Please see the Contributor's Guide for more information.
Citation (CITATION.cff)
abstract: <p>H2Integrate is an open-source Python package for modeling and designing hybrid energy systems producing electricity, hydrogen, ammonia, steel, and other products.</p> authors: - family-names: Brunik given-names: Kaitlin orcid: 0009-0006-8764-2672 - affiliation: National Renewable Energy Laboratory family-names: Grant given-names: Elenya orcid: 0000-0003-1939-011X - affiliation: National Renewable Energy Laboratory family-names: Thomas given-names: Jared orcid: 0000-0001-6668-2276 - affiliation: National Renewable Energy Laboratory family-names: Starke given-names: Genevieve M orcid: 0000-0001-9554-8455 - affiliation: National Renewable Energy Laboratory family-names: Martin given-names: Jonathan orcid: 0000-0002-1239-6300 - affiliation: National Renewable Energy Laboratory family-names: Ramos given-names: Dakota orcid: 0000-0003-1258-7681 - affiliation: National Renewable Energy Laboratory family-names: Koleva given-names: Mariya orcid: 0000-0003-1387-6477 - affiliation: National Renewable Energy Laboratory family-names: Reznicek given-names: Evan orcid: 0000-0002-7456-1199 - affiliation: National Renewable Energy Laboratory family-names: Hammond given-names: Rob orcid: 0000-0003-4476-6406 - affiliation: National Renewable Energy Laboratory family-names: Stanislawski given-names: Brooke orcid: 0000-0003-3146-0053 - family-names: Kiefer given-names: Charlie - family-names: Irmas given-names: Cameron - affiliation: National Renewable Energy Laboratory family-names: Vijayshankar given-names: Sanjana orcid: 0009-0009-6867-5075 - affiliation: National Renewable Energy Laboratory family-names: Riccobono given-names: Nicholas - affiliation: National Renewable Energy Laboratory family-names: Frontin given-names: Cory orcid: 0000-0002-9375-7488 - family-names: Clark given-names: Caitlyn orcid: 0000-0002-5203-7329 - family-names: Barker given-names: Aaron orcid: 0000-0003-3570-1424 - affiliation: National Renewable Energy Laboratory family-names: Gupta given-names: Abhineet orcid: 0000-0003-3383-3490 - affiliation: National Renewable Energy Laboratory family-names: Kee given-names: Benjamin (Jamie) orcid: 0000-0003-0852-8582 - affiliation: National Renewable Energy Laboratory family-names: King given-names: Jennifer orcid: 0000-0001-6219-0098 - affiliation: National Renewable Energy Laboratory family-names: Jasa given-names: John orcid: 0000-0001-5442-2792 - affiliation: National Renewable Energy Laboratory family-names: Bay given-names: Christopher orcid: 0000-0002-2658-5559 - affiliation: National Renewable Energy Laboratory family-names: Jasa given-names: John orcid: 0000-0001-5442-2792 - affiliation: National Renewable Energy Laboratory family-names: King given-names: Jennifer orcid: 0000-0001-6219-0098 - affiliation: National Renewable Energy Laboratory family-names: Bay given-names: Christopher orcid: 0000-0002-2658-5559 - affiliation: National Renewable Energy Laboratory family-names: Brunik given-names: Kaitlin orcid: 0009-0006-8764-2672 - affiliation: National Renewable Energy Laboratory family-names: Grant given-names: Elenya orcid: 0000-0003-1939-011X - affiliation: National Renewable Energy Laboratory family-names: Starke given-names: Genevieve M orcid: 0000-0001-9554-8455 - affiliation: National Renewable Energy Laboratory family-names: Martin given-names: Jonathan orcid: 0000-0002-1239-6300 - affiliation: National Renewable Energy Laboratory family-names: Ramos given-names: Dakota orcid: 0000-0003-1258-7681 - affiliation: National Renewable Energy Laboratory family-names: Thomas given-names: Jared orcid: 0000-0001-6668-2276 - affiliation: National Renewable Energy Laboratory family-names: Reznicek given-names: Evan orcid: 0000-0002-7456-1199 - affiliation: National Renewable Energy Laboratory family-names: Hammond given-names: Rob orcid: 0000-0003-4476-6406 - affiliation: National Renewable Energy Laboratory family-names: Stanislawski given-names: Brooke orcid: 0000-0003-3146-0053 - affiliation: National Renewable Energy Laboratory family-names: Kiefer given-names: Charlie - family-names: Irmas given-names: Cameron - affiliation: National Renewable Energy Laboratory family-names: Vijayshankar given-names: Sanjana orcid: 0009-0009-6867-5075 - affiliation: National Renewable Energy Laboratory family-names: Riccobono given-names: Nicholas - affiliation: National Renewable Energy Laboratory family-names: Frontin given-names: Cory orcid: 0000-0002-9375-7488 - affiliation: National Renewable Energy Laboratory family-names: Clark given-names: Caitlyn orcid: 0000-0002-5203-7329 - family-names: Barker given-names: Aaron orcid: 0000-0003-3570-1424 - affiliation: National Renewable Energy Laboratory family-names: Gupta given-names: Abhineet orcid: 0000-0003-3383-3490 - affiliation: National Renewable Energy Laboratory family-names: Kee given-names: Benjamin (Jamie) orcid: 0000-0003-0852-8582 - affiliation: National Renewable Energy Laboratory family-names: Koleva given-names: Mariya orcid: 0000-0003-1387-6477 cff-version: 1.2.0 date-released: '2025-12-11' doi: 10.5281/zenodo.17903150 keywords: - euroscivoc:1169 - Renewable energy - euroscivoc:1691 - Hydrogen energy - gemet:concept/7842 - Software - gemet:concept/14894 - Software development - euroscivoc:1687 - Hybrid energy - gemet:concept/9335 - Wind power - euroscivoc:1695 - Wind power - gemet:concept/7906 - Solar energy - energy generation - gemet:concept/2744 - Energy storage - euroscivoc:1171 - Energy conversion - energy dispatch - design optimization license: - bsd-3-clause message: If you use this software, please cite it using the metadata from this file. title: 'H2Integrate: Holistic Hybrids Optimization and Design Tool' type: software version: 0.4.0
Owner metadata
- Name: National Laboratory of the Rockies
- Login: NatLabRockies
- Email:
- Kind: organization
- Description:
- Website: http://www.nrel.gov
- Location: Golden, CO
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/1906800?v=4
- Repositories: 599
- Last ynced at: 2026-01-22T09:57:55.744Z
- Profile URL: https://github.com/NatLabRockies
GitHub Events
Total
- Release event: 3
- Delete event: 1
- Pull request event: 72
- Issues event: 60
- Watch event: 1
- Issue comment event: 38
- Push event: 91
- Pull request review event: 193
- Pull request review comment event: 261
- Create event: 1
Last Year
- Release event: 3
- Delete event: 1
- Pull request event: 72
- Issues event: 60
- Watch event: 1
- Issue comment event: 38
- Push event: 91
- Pull request review event: 193
- Pull request review comment event: 261
- Create event: 1
Committers metadata
Last synced: 4 days ago
Total Commits: 1,975
Total Committers: 33
Avg Commits per committer: 59.848
Development Distribution Score (DDS): 0.822
Commits in past year: 374
Committers in past year: 9
Avg Commits per committer in past year: 41.556
Development Distribution Score (DDS) in past year: 0.663
| Name | Commits | |
|---|---|---|
| Jared Thomas | j****8@g****m | 351 |
| kbrunik | k****k@g****m | 266 |
| elenya-grant | 1****t | 204 |
| John Jasa | j****1@g****m | 157 |
| dguittet | d****t@n****v | 148 |
| Evan | E****k@n****v | 129 |
| bayc | c****y@g****m | 108 |
| jmartin4 | j****n@n****v | 106 |
| Aaron Barker | b****9@g****m | 103 |
| RHammond2 | 1****2 | 100 |
| Cameron Irmas | c****s@p****m | 51 |
| Masha | m****a@n****v | 45 |
| Genevieve Starke | G****e@n****v | 32 |
| nriccobo | N****o@n****v | 32 |
| Cory Frontin | c****n@n****v | 28 |
| WHamilt2 | w****n@n****v | 24 |
| King | j****g@n****v | 18 |
| Matthew Boyd | m****d@g****m | 17 |
| PJ Stanley | a****y@n****v | 13 |
| Bhaskar | p****r@n****v | 9 |
| svijaysh | s****h@n****v | 6 |
| Jamie | J****e@n****v | 6 |
| AbhineetGupta | a****a@n****v | 5 |
| Dakota Sky Ramos | 8****s | 3 |
| jlcox119 | j****x@m****u | 3 |
| Kiefer | c****r@n****v | 3 |
| Jonathan Martin | 9****u | 2 |
| Caitlyn E. Clark, PhD | c****k@n****v | 1 |
| Charles Kiefer | 1****4 | 1 |
| Jamie | j****e@g****m | 1 |
| and 3 more... | ||
Committer domains:
- nrel.gov: 16
- .nrel.gov: 1
- jannoni-31697s.nrel.gov: 1
- mines.edu: 1
Issue and Pull Request metadata
Last synced: 4 days ago
Total issues: 49
Total pull requests: 55
Average time to close issues: 2 months
Average time to close pull requests: 9 days
Total issue authors: 8
Total pull request authors: 8
Average comments per issue: 0.71
Average comments per pull request: 0.65
Merged pull request: 21
Bot issues: 0
Bot pull requests: 0
Past year issues: 49
Past year pull requests: 55
Past year average time to close issues: 2 months
Past year average time to close pull requests: 9 days
Past year issue authors: 8
Past year pull request authors: 8
Past year average comments per issue: 0.71
Past year average comments per pull request: 0.65
Past year merged pull request: 21
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
- johnjasa (14)
- genevievestarke (12)
- elenya-grant (10)
- jaredthomas68 (6)
- vijay092 (3)
- kbrunik (2)
- jmartin4u (1)
- bayc (1)
Top Pull Request Authors
- elenya-grant (23)
- RHammond2 (8)
- johnjasa (7)
- kbrunik (6)
- jaredthomas68 (5)
- jmartin4u (2)
- vijay092 (2)
- genevievestarke (2)
Top Issue Labels
- enhancement (6)
- framework (3)
- in progress (2)
- iron (2)
- dispatch (2)
- finance (1)
- geoh2 (1)
Top Pull Request Labels
- ready for review (31)
- dispatch (8)
- code cleanup (6)
- enhancement (6)
- framework (3)
- in progress (2)
- on hold (2)
- finance (2)
- geoh2 (2)
- nationwide sweeps (1)
- ammonia (1)
- infrastructure (1)
- needs modifications (1)
- documentation (1)
Package metadata
- Total packages: 1
-
Total downloads:
- pypi: 444 last-month
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 10
- Total maintainers: 3
pypi.org: h2integrate
Holistic Hybrids Optimization and Design Tool
- Homepage:
- Documentation: https://h2integrate.readthedocs.io/
- Licenses: BSD 3-Clause License Copyright (c) 2024, Alliance for Sustainable Energy, LLC All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- Latest release: 0.8.0 (published about 1 month ago)
- Last Synced: 2026-05-17T05:00:55.456Z (4 days ago)
- Versions: 10
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 444 Last month
-
Rankings:
- Dependent packages count: 9.338%
- Average: 30.969%
- Dependent repos count: 52.6%
- Maintainers (3)
Dependencies
- actions/checkout v3 composite
- actions/setup-python v3 composite
- actions/checkout v4 composite
- actions/setup-python v5 composite
- pypa/gh-action-pypi-publish release/v1 composite
- actions/checkout v4 composite
- actions/setup-python v5 composite
- pypa/gh-action-pypi-publish release/v1 composite
- CoolProp *
- Cython *
- HOPP >=3.0
- NREL-PySAM ==4.2.0
- Pillow *
- Plotly *
- Pyomo >=6.1.2
- attrs *
- diskcache *
- fastkml *
- floris *
- future *
- global_land_mask *
- humpday *
- hybridbosse *
- lcoe *
- lxml *
- matplotlib *
- multiprocessing-on-dill *
- nevergrad *
- numpy *
- numpy-financial *
- openmdao [all]
- openpyxl *
- optuna *
- orbit-nrel >=1.1
- pandas >=2.0.3
- pint *
- plotly *
- pvmismatch *
- pyDOE2 *
- pymoo *
- pyproj *
- pysolar *
- pysot *
- python-dotenv *
- python-rapidjson *
- pytz *
- rainflow *
- requests *
- scikit-learn *
- scikit-optimize *
- scipy *
- setuptools *
- shapely *
- timezonefinder *
- urllib3 *
- utm *
- glpk
- pip
- python 3.11
- actions/checkout v4 composite
- actions/setup-python v5 composite
- pre-commit/action v3.0.1 composite
Score: 14.955652430752062