|
4 | 4 |  |
5 | 5 | [](https://pypi.python.org/pypi/H2Integrate) |
6 | 6 | [](https://opensource.org/licenses/BSD-3-Clause) |
7 | | -[](https://zenodo.org/records/17903149) |
| 7 | +[](https://zenodo.org/records/17903150) |
8 | 8 |
|
9 | | -[)](https://iopscience.iop.org/article/10.1088/1742-6596/2767/8/082019/pdf) |
10 | | -[)](https://iopscience.iop.org/article/10.1088/1742-6596/2767/6/062017/pdf) |
11 | | -[)](https://assets-eu.researchsquare.com/files/rs-4326648/v1_covered_338a5071-b74b-4ecd-9d2a-859e8d988b5c.pdf?c=1716199726) |
| 9 | +H2Integrate (H2I) is an open-source Python package for hybrid energy systems engineering design and technoeconomic analysis. |
| 10 | +It models hybrid systems, especially hybrid energy plants that produce electricity, hydrogen, ammonia, steel, and other products, to perform optimization and scenario analysis. |
12 | 11 |
|
13 | | -H2Integrate is an open-source Python package for modeling and designing hybrid energy systems producing electricity, hydrogen, ammonia, steel, and other products. |
| 12 | +## Installation |
14 | 13 |
|
15 | | -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. |
| 14 | +The recommended installation method is via pip from PyPI, which will install the latest stable release of H2Integrate and its dependencies: |
| 15 | + |
| 16 | +```bash |
| 17 | +pip install h2integrate |
| 18 | +``` |
| 19 | + |
| 20 | +For installing from source, development setup, and additional installation options, see the [full installation instructions](https://h2integrate.readthedocs.io/en/latest/getting_started/install.html). |
| 21 | + |
| 22 | +## What H2Integrate Does |
| 23 | + |
| 24 | +H2Integrate is both a **hybrid systems engineering design tool** and a **technoeconomic analysis (TEA) tool**. It significantly expands beyond generalized tools by offering: |
| 25 | + |
| 26 | +- **Detailed equipment-level modeling** with a wide range of subsystem variation options |
| 27 | +- **High-resolution, location-specific resource data** for site-dependent performance modeling |
| 28 | +- **Cost inputs settable by the user** with examples based on the [Annual Technology Baseline (ATB)](https://atb.nlr.gov/) |
| 29 | +- **Optimization and scenario analysis** to explore design trade-offs across hybrid plant configurations |
| 30 | + |
| 31 | +### Available Technologies |
| 32 | + |
| 33 | +H2I includes models for a broad set of energy generation, conversion, and storage technologies. |
| 34 | +This is a non-exhaustive list, and the library of available technologies is actively expanding: |
| 35 | + |
| 36 | +- **Electricity generation**: solar PV, wind, wave, tidal, natural gas combined cycle (NGCC), natural gas combustion turbines (NGCT), nuclear, grid |
| 37 | +- **Hydrogen production**: PEM electrolysis, NG-SMR |
| 38 | +- **Energy storage**: Li-ion batteries, long-duration energy storage (LDES), pumped storage hydropower (PSH) |
| 39 | +- **Fuel cells**: H2 PEM fuel cells |
| 40 | +- **Industrial processes**: ammonia synthesis, iron ore reduction, steel production, and more |
| 41 | + |
| 42 | +## Getting Started |
| 43 | + |
| 44 | +See the [Getting Started guide](https://h2integrate.readthedocs.io/en/latest/intro.html) for an introduction to H2Integrate. |
| 45 | +The [Examples folder](./examples/) contain Jupyter notebooks, Python scripts, and sample YAML files for common usage scenarios. |
| 46 | + |
| 47 | +## Publications |
| 48 | + |
| 49 | +For a full list of publications, see the [Publications section in the documentation](https://h2integrate.readthedocs.io/en/latest/intro.html#publications). |
| 50 | +Note: H2Integrate was previously known as GreenHEART, and some publications may refer to it by that name. |
16 | 51 |
|
17 | 52 | ## Software Citation |
18 | 53 |
|
| 54 | +If you use H2I or any of its components in your work, please cite this in your publications using the following BibTeX: |
| 55 | + |
19 | 56 | ```bibtex |
20 | 57 | @software{brunik_2025_17903150, |
21 | 58 | author = {Brunik, Kaitlin and |
@@ -50,197 +87,6 @@ Note: The current version of H2Integrate is under active development and may be |
50 | 87 | } |
51 | 88 | ``` |
52 | 89 |
|
53 | | -## Publications where H2Integrate has been used |
54 | | - |
55 | | -For more context about H2Integrate and to see analyses that have been performed using the tool, please see some of these publications. |
56 | | -PDFs are available in the linked titles. |
57 | | - |
58 | | -### Nationwide techno-economic analysis of clean hydrogen production powered by a hybrid renewable energy plant for over 50,000 locations in the United States. |
59 | | - |
60 | | -The levelized cost of hydrogen is calculated for varying technology costs, and tax credits to |
61 | | -explore cost sensitivities independent of plant design, performance, and site selection. Our |
62 | | -findings suggest that strategies for cost reduction include selecting sites with abundant wind |
63 | | -resources, complementary wind and solar resources, and optimizing the sizing of wind and solar |
64 | | -assets to maximize the hybrid plant capacity factor. |
65 | | - |
66 | | -Grant, E., et al. "[Hybrid power plant design for low-carbon hydrogen in the United States.](https://iopscience.iop.org/article/10.1088/1742-6596/2767/8/082019/pdf)" Journal of Physics: Conference Series. Vol. 2767. No. 8. IOP Publishing, 2024. |
67 | | - |
68 | | -### 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. |
69 | | - |
70 | | -Conducting a regional techno-economic analysis at four U.S. coastal sites, the study evaluates two |
71 | | -energy transmission configurations and examines associated costs for the years 2025, 2030, and 2035. |
72 | | -The results highlight that locations using fixed-bottom technology may achieve cost-competitive |
73 | | -water electrolysis hydrogen production by 2030 through leveraging geologic hydrogen storage and |
74 | | -federal policy incentives. |
75 | | - |
76 | | -Brunik, K., et al. "[Potential for large-scale deployment of offshore wind-to-hydrogen systems in the United States.](https://iopscience.iop.org/article/10.1088/1742-6596/2767/6/062017/pdf)" Journal of Physics: Conference Series. Vol. 2767. No. 6. IOP Publishing, 2024. |
77 | | - |
78 | | -### 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. |
79 | | - |
80 | | -Modeling results suggest that the levelized cost of storage is highly spatially heterogeneous, with |
81 | | -minor impact on the cost of H2 in the Midwest, and potentially significant impact in areas with |
82 | | -emerging H2 economies such as Central California and the Southeast. While TOL/MCH may be the |
83 | | -cheapest aboveground bulk storage solution evaluated, upfront capital costs, modest energy |
84 | | -efficiency, reliance on critical materials, and greenhouse gas emissions from heating remain |
85 | | -concerns. |
86 | | - |
87 | | -Breunig, Hanna, et al. "[Hydrogen Storage Materials Could Meet Requirements for GW-Scale Seasonal Storage and Green Steel.](https://assets-eu.researchsquare.com/files/rs-4326648/v1_covered_338a5071-b74b-4ecd-9d2a-859e8d988b5c.pdf?c=1716199726)" (2024). |
88 | | - |
89 | | -### DOE Hydrogen Program review presentation of H2Integrate |
90 | | - |
91 | | -King, J. and Hammond, S. "[Integrated Modeling, TEA, and Reference Design for Renewable Hydrogen to Green Steel and Ammonia - GreenHEART](https://www.hydrogen.energy.gov/docs/hydrogenprogramlibraries/pdfs/review24/sdi001_king_2024_o.pdf?sfvrsn=a800ca84_3)" (2024). |
92 | | - |
93 | | -## Software requirements |
94 | | - |
95 | | -- Python version 3.11, 3.12 64-bit |
96 | | -- Other versions may still work, but have not been extensively tested at this time |
97 | | - |
98 | | -## Installing from Package Repositories |
99 | | - |
100 | | -```bash |
101 | | -pip install h2integrate |
102 | | -``` |
103 | | - |
104 | | -> [!NOTE] |
105 | | -> If using the Ard models `h2integrate[ard]`, see the source installation instructions (item 3) for |
106 | | -> creating a conda environment with WISDEM installed through conda, not pip as it can cause issues |
107 | | -> on some machines. |
108 | | -
|
109 | | -## Installing from Source |
110 | | - |
111 | | -### Easiest approach (recommended) |
112 | | - |
113 | | -1. Using Git, navigate to a local target directory and clone repository: |
114 | | - |
115 | | - ```bash |
116 | | - git clone https://github.com/NatLabRockies/H2Integrate.git |
117 | | - ``` |
118 | | - |
119 | | -2. Navigate to `H2Integrate` |
120 | | - |
121 | | - ```bash |
122 | | - cd H2Integrate |
123 | | - ``` |
124 | | - |
125 | | -3. Create a conda environment and install H2Integrate and all its dependencies. Please read the |
126 | | - following two notes about modified installation steps. |
127 | | - |
128 | | - 1. If on a Unix machine, uncomment line 8 in `environment.yml` to install Cbc. Windows |
129 | | - users will need to manually install from <https://github.com/coin-or/Cbc>. |
130 | | - 2. If you plan to use Ard, you may need to uncomment line 9 in `environment.yml` to ensure WISDEM (an Ard |
131 | | - dependency) is installed from conda to avoid installation issues with some systems. |
132 | | - |
133 | | - ```bash |
134 | | - conda env create -f environment.yml |
135 | | - ``` |
136 | | - |
137 | | -An additional step can be added if additional dependencies are required, or you plan to use this |
138 | | -environment for development work. |
139 | | - |
140 | | -- Pass `-e` for an editable developer install |
141 | | -- Use one of the extra flags as needed: |
142 | | - - `gis`: adds the iron mapping tools. |
143 | | - - `ard`: adds the Ard-based wind models. |
144 | | - - `extras`: installs all extra analysis tool dependencies, e.g., `ard` or `gis`. |
145 | | - - `develop`: adds developer and documentation tools. |
146 | | - - `examples`: allows you to use the Jupyter Notebooks and all examples (includes `ard` and `gis`). |
147 | | - - `all` simplifies adding all the dependencies. |
148 | | - |
149 | | -This looks like the following for a developer installation: |
150 | | - |
151 | | -```bash |
152 | | -pip install -e ".[all]" |
153 | | -``` |
154 | | - |
155 | | -### Customizable |
156 | | - |
157 | | -1. Using Git, navigate to a local target directory and clone repository: |
158 | | - |
159 | | - ```bash |
160 | | - git clone https://github.com/NatLabRockies/H2Integrate.git |
161 | | - ``` |
162 | | - |
163 | | -2. Navigate to `H2Integrate` |
164 | | - |
165 | | - ```bash |
166 | | - cd H2Integrate |
167 | | - ``` |
168 | | - |
169 | | -3. Create a new virtual environment and change to it. Using Conda Python 3.11 (choose your favorite |
170 | | - supported version) and naming it 'h2integrate' (choose your desired name): |
171 | | - |
172 | | - ```bash |
173 | | - conda create --name h2integrate python=3.11 -y |
174 | | - conda activate h2integrate |
175 | | - ``` |
176 | | - |
177 | | -4. Install H2Integrate and its dependencies: |
178 | | - |
179 | | - ```bash |
180 | | - conda install -y -c conda-forge glpk coin-or-cbc>=2.10.12 |
181 | | - ``` |
182 | | - |
183 | | - - If you want to just use H2Integrate: |
184 | | - |
185 | | - ```bash |
186 | | - pip install . |
187 | | - ``` |
188 | | - |
189 | | - - If you want to work with the examples: |
190 | | - |
191 | | - ```bash |
192 | | - pip install ".[examples]" |
193 | | - ``` |
194 | | - |
195 | | - - If you also want development dependencies for running tests and building docs: |
196 | | - |
197 | | - ```bash |
198 | | - pip install -e ".[develop]" |
199 | | - ``` |
200 | | - |
201 | | - Please be sure to also install the pre-commit hooks if contributing code back to the main |
202 | | - repository via the following. This enables a series of automated formatting and code linting |
203 | | - (style and correctness checking) to ensure the code is stylistically consistent. |
204 | | - |
205 | | - ```bash |
206 | | - pre-commit install |
207 | | - ``` |
208 | | - |
209 | | - If a check (or multiple) fails (commit is blocked), and reformatting was done, then restage |
210 | | - (`git add`) your files and commit them again to see if all issues were resolved without user |
211 | | - intervention. If changes are required follow the suggested fix, or resolve the stated |
212 | | - issue(s). Restaging and committing may take multiple attempts steps if errors are unaddressed |
213 | | - or insufficiently addressed. Please see [pre-commit](https://pre-commit.com/), |
214 | | - [ruff](https://docs.astral.sh/ruff/), or [isort](https://pycqa.github.io/isort/) for more |
215 | | - information. |
216 | | - |
217 | | - - In one step, all dependencies can be installed as: |
218 | | - |
219 | | - ```bash |
220 | | - pip install -e ".[all]" |
221 | | - ``` |
222 | | - |
223 | | -5. The functions which download resource data require an NLR API key. Obtain a key from: |
224 | | - |
225 | | - [https://developer.nlr.gov/signup/](https://developer.nlr.gov/signup/) |
226 | | - |
227 | | -6. To set up the `NLR_API_KEY` and `NLR_API_EMAIL` required for resource downloads, follow the steps |
228 | | - outlined in [this doc page](https://h2integrate.readthedocs.io/en/latest/getting_started/environment_variables.html). |
229 | | - |
230 | | -7. Verify setup by running tests: |
231 | | - |
232 | | - ```bash |
233 | | - pytest |
234 | | - ``` |
235 | | - |
236 | | -## Getting Started |
237 | | - |
238 | | -The [Examples](./examples/) contain Jupyter notebooks and sample YAML files for common usage |
239 | | -scenarios in H2Integrate. These are actively maintained and updated to demonstrate H2Integrate's |
240 | | -capabilities. For full details on simulation options and other features, documentation is |
241 | | -forthcoming. |
242 | | -
|
243 | 90 | ## Contributing |
244 | 91 |
|
245 | | -Interested in improving H2Integrate? Please see the [Contributor's Guide](./docs/CONTRIBUTING.md) |
246 | | -section for more information. |
| 92 | +Interested in improving H2Integrate? Please see the [Contributor's Guide](./docs/CONTRIBUTING.md) for more information. |
0 commit comments