{"id":342300,"name":"H2Integrate","description":"An open-source Python package for modeling and designing hybrid energy systems producing electricity, hydrogen, ammonia, steel, and other products.","url":"https://github.com/natlabrockies/h2integrate","last_synced_at":"2026-04-10T00:30:18.354Z","repository":{"id":258441094,"uuid":"869013342","full_name":"NatLabRockies/H2Integrate","owner":"NatLabRockies","description":null,"archived":false,"fork":false,"pushed_at":"2026-03-20T17:24:56.000Z","size":586423,"stargazers_count":19,"open_issues_count":142,"forks_count":30,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-03-22T13:02:46.918Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://h2integrate.readthedocs.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NatLabRockies.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"docs/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-10-07T15:12:46.000Z","updated_at":"2026-03-13T22:06:09.000Z","dependencies_parsed_at":"2026-02-26T04:16:52.752Z","dependency_job_id":null,"html_url":"https://github.com/NatLabRockies/H2Integrate","commit_stats":null,"previous_names":["nrel/greenheart","nrel/h2integrate","natlabrockies/h2integrate"],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/NatLabRockies/H2Integrate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NatLabRockies%2FH2Integrate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NatLabRockies%2FH2Integrate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NatLabRockies%2FH2Integrate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NatLabRockies%2FH2Integrate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NatLabRockies","download_url":"https://codeload.github.com/NatLabRockies/H2Integrate/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NatLabRockies%2FH2Integrate/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30949548,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-26T02:38:33.265Z","status":"ssl_error","status_checked_at":"2026-03-26T02:36:10.435Z","response_time":114,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"NatLabRockies","name":"National Laboratory of the Rockies","uuid":"1906800","kind":"organization","description":"","email":null,"website":"http://www.nrel.gov","location":"Golden, CO","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/1906800?v=4","repositories_count":599,"last_synced_at":"2026-01-22T09:57:55.744Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/NatLabRockies","funding_links":[],"total_stars":9633,"followers":1309,"following":0,"created_at":"2022-11-02T20:42:15.539Z","updated_at":"2026-01-22T09:57:55.745Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NatLabRockies","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NatLabRockies/repositories"},"packages":[],"commits":{"id":11615476,"full_name":"natlabrockies/h2integrate","default_branch":"master","total_commits":1927,"total_committers":33,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":58.39393939393939,"dds":0.8204462895692787,"past_year_total_commits":398,"past_year_total_committers":10,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":39.8,"past_year_dds":0.7236180904522613,"last_synced_at":"2026-04-01T07:04:14.255Z","last_synced_commit":"004e6254eea378413fa0143607c1d6432c4c664a","created_at":"2026-02-02T02:01:01.648Z","updated_at":"2026-04-01T07:02:00.553Z","committers":[{"name":"Jared Thomas","email":"jaredthomas68@gmail.com","login":"jaredthomas68","count":346},{"name":"kbrunik","email":"kbrunik@gmail.com","login":"kbrunik","count":262},{"name":"elenya-grant","email":"116225007+elenya-grant","login":"elenya-grant","count":187},{"name":"dguittet","email":"dguittet@nrel.gov","login":"dguittet","count":148},{"name":"John Jasa","email":"johnjasa11@gmail.com","login":"johnjasa","count":146},{"name":"Evan","email":"Evan.Reznicek@nrel.gov","login":"ereznicek","count":129},{"name":"bayc","email":"christopher.j.bay@gmail.com","login":"bayc","count":108},{"name":"jmartin4","email":"jonathan.martin@nrel.gov","login":"jmartin4nrel","count":106},{"name":"Aaron Barker","email":"barker59@gmail.com","login":"barker59","count":103},{"name":"RHammond2","email":"13874373+RHammond2","login":"RHammond2","count":91},{"name":"Cameron Irmas","email":"cirmas@protonmail.com","login":"camirmas","count":51},{"name":"Masha","email":"mkoleva@nrel.gov","login":"mariya-koleva","count":45},{"name":"nriccobo","email":"Nicholas.Riccobono@nrel.gov","login":"nRiccobo","count":32},{"name":"Genevieve Starke","email":"Genevieve.Starke@nrel.gov","login":"genevievestarke","count":30},{"name":"Cory Frontin","email":"cory.frontin@nrel.gov","login":"cfrontin","count":28},{"name":"WHamilt2","email":"william.hamilton@nrel.gov","login":"qualand","count":24},{"name":"King","email":"jennifer.king@nrel.gov","login":null,"count":18},{"name":"Matthew Boyd","email":"mr.matthew.boyd@gmail.com","login":"Matthew-Boyd","count":17},{"name":"PJ Stanley","email":"astanley@nrel.gov","login":null,"count":13},{"name":"Bhaskar","email":"parangat.bhaskar@nrel.gov","login":null,"count":9},{"name":"svijaysh","email":"svijaysh@nrel.gov","login":"vijay092","count":6},{"name":"Jamie","email":"Jamie.Kee@nrel.gov","login":null,"count":6},{"name":"AbhineetGupta","email":"abhineet.gupta@nrel.gov","login":"abhineet-gupta","count":5},{"name":"Dakota Sky Ramos","email":"85905407+dakotaramos","login":"dakotaramos","count":3},{"name":"jlcox119","email":"jlcox@mines.edu","login":null,"count":3},{"name":"Kiefer","email":"ckiefer@nrel.gov","login":null,"count":3},{"name":"Jonathan Martin","email":"94018654+jmartin4u","login":"jmartin4u","count":2},{"name":"Caitlyn E. Clark, PhD","email":"caitlyn.clark@nrel.gov","login":"caitlynclark","count":1},{"name":"Charles Kiefer","email":"107942102+ckiefer14","login":"ckiefer14","count":1},{"name":"Jamie","email":"jamielkee@gmail.com","login":"benjaminkee","count":1},{"name":"King","email":"jannoni@jannoni-31697s.nrel.gov","login":null,"count":1},{"name":"Annoni","email":"jennifer.annoni@.nrel.gov","login":null,"count":1},{"name":"Michael Rossol","email":"18647211+MRossol","login":"MRossol","count":1}],"past_year_committers":[{"name":"elenya-grant","email":"116225007+elenya-grant","login":"elenya-grant","count":110},{"name":"John Jasa","email":"johnjasa11@gmail.com","login":"johnjasa","count":106},{"name":"jmartin4","email":"jonathan.martin@nrel.gov","login":"jmartin4nrel","count":89},{"name":"kbrunik","email":"102193481+kbrunik","login":"kbrunik","count":45},{"name":"Rob Hammond","email":"13874373+RHammond2","login":"RHammond2","count":20},{"name":"Jared Thomas","email":"jaredthomas68","login":"jaredthomas68","count":18},{"name":"genevievestarke","email":"103534902+genevievestarke","login":"genevievestarke","count":4},{"name":"Chris Bay","email":"12664940+bayc","login":"bayc","count":3},{"name":"Jonathan Martin","email":"94018654+jmartin4u","login":"jmartin4u","count":2},{"name":"Dakota Sky Ramos","email":"85905407+dakotaramos","login":"dakotaramos","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/natlabrockies%2Fh2integrate/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-06T00:00:08.903Z","repositories_count":6211195,"commits_count":923275597,"contributors_count":35717137,"owners_count":1143945,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"NatLabRockies/H2Integrate","html_url":"https://github.com/NatLabRockies/H2Integrate","last_synced_at":"2026-04-04T00:06:20.786Z","status":null,"issues_count":14,"pull_requests_count":31,"avg_time_to_close_issue":5178168.666666667,"avg_time_to_close_pull_request":786435.1111111111,"issues_closed_count":3,"pull_requests_closed_count":9,"pull_request_authors_count":7,"issue_authors_count":5,"avg_comments_per_issue":1.0714285714285714,"avg_comments_per_pull_request":0.4838709677419355,"merged_pull_requests_count":9,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":14,"past_year_pull_requests_count":31,"past_year_avg_time_to_close_issue":5178168.666666667,"past_year_avg_time_to_close_pull_request":786435.1111111111,"past_year_issues_closed_count":3,"past_year_pull_requests_closed_count":9,"past_year_pull_request_authors_count":7,"past_year_issue_authors_count":5,"past_year_avg_comments_per_issue":1.0714285714285714,"past_year_avg_comments_per_pull_request":0.4838709677419355,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":9,"created_at":"2026-01-22T00:00:12.951Z","updated_at":"2026-04-04T00:06:20.787Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/NatLabRockies%2FH2Integrate","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/NatLabRockies%2FH2Integrate/issues","issue_labels_count":{"iron":2,"enhancement":2,"framework":1,"dispatch":1},"pull_request_labels_count":{"ready for review":22,"dispatch":6,"code cleanup":5,"enhancement":4,"framework":3,"in progress":2,"geoh2":2,"finance":2,"ammonia":1},"issue_author_associations_count":{"COLLABORATOR":14},"pull_request_author_associations_count":{"COLLABORATOR":31},"issue_authors":{"johnjasa":5,"elenya-grant":3,"jaredthomas68":2,"kbrunik":2,"genevievestarke":2},"pull_request_authors":{"elenya-grant":14,"RHammond2":5,"kbrunik":4,"jaredthomas68":3,"johnjasa":2,"genevievestarke":2,"jmartin4u":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-06T00:00:09.270Z","repositories_count":14096967,"issues_count":34429012,"pull_requests_count":112302961,"authors_count":11226615,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{"enhancement":2,"iron":2,"dispatch":1,"framework":1},"past_year_pull_request_labels_count":{"ready for review":22,"dispatch":6,"code cleanup":5,"enhancement":4,"framework":3,"finance":2,"geoh2":2,"in progress":2,"ammonia":1},"past_year_issue_author_associations_count":{"COLLABORATOR":14},"past_year_pull_request_author_associations_count":{"COLLABORATOR":31},"past_year_issue_authors":{"johnjasa":5,"elenya-grant":3,"genevievestarke":2,"jaredthomas68":2,"kbrunik":2},"past_year_pull_request_authors":{"elenya-grant":14,"RHammond2":5,"kbrunik":4,"jaredthomas68":3,"genevievestarke":2,"johnjasa":2,"jmartin4u":1},"maintainers":[{"login":"elenya-grant","count":17,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/elenya-grant"},{"login":"johnjasa","count":7,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/johnjasa"},{"login":"kbrunik","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kbrunik"},{"login":"jaredthomas68","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jaredthomas68"},{"login":"RHammond2","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/RHammond2"},{"login":"genevievestarke","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/genevievestarke"},{"login":"jmartin4u","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jmartin4u"}],"active_maintainers":[{"login":"elenya-grant","count":17,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/elenya-grant"},{"login":"johnjasa","count":7,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/johnjasa"},{"login":"kbrunik","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/kbrunik"},{"login":"jaredthomas68","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jaredthomas68"},{"login":"RHammond2","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/RHammond2"},{"login":"genevievestarke","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/genevievestarke"},{"login":"jmartin4u","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jmartin4u"}]},"events":{"total":{"ReleaseEvent":2,"DeleteEvent":1,"PullRequestEvent":56,"IssuesEvent":47,"IssueCommentEvent":27,"PushEvent":49,"PullRequestReviewEvent":142,"PullRequestReviewCommentEvent":191,"CreateEvent":1},"last_year":{"ReleaseEvent":2,"DeleteEvent":1,"PullRequestEvent":56,"IssuesEvent":47,"IssueCommentEvent":27,"PushEvent":49,"PullRequestReviewEvent":142,"PullRequestReviewCommentEvent":191,"CreateEvent":1}},"keywords":[],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/ci.yml","sha":null,"kind":"manifest","created_at":"2024-10-19T02:26:29.058Z","updated_at":"2024-10-19T02:26:29.058Z","repository_link":"https://github.com/NatLabRockies/H2Integrate/blob/main/.github/workflows/ci.yml","dependencies":[{"id":20272969019,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":20272969020,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/publish_to_pypi.yml","sha":null,"kind":"manifest","created_at":"2024-10-19T02:26:29.115Z","updated_at":"2024-10-19T02:26:29.115Z","repository_link":"https://github.com/NatLabRockies/H2Integrate/blob/main/.github/workflows/publish_to_pypi.yml","dependencies":[{"id":20272969023,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":20272969024,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v5","direct":true,"kind":"composite","optional":false},{"id":20272969025,"package_name":"pypa/gh-action-pypi-publish","ecosystem":"actions","requirements":"release/v1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/publish_to_test_pypi.yml","sha":null,"kind":"manifest","created_at":"2024-10-19T02:26:29.126Z","updated_at":"2024-10-19T02:26:29.126Z","repository_link":"https://github.com/NatLabRockies/H2Integrate/blob/main/.github/workflows/publish_to_test_pypi.yml","dependencies":[{"id":20272969026,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":20272969027,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v5","direct":true,"kind":"composite","optional":false},{"id":20272969028,"package_name":"pypa/gh-action-pypi-publish","ecosystem":"actions","requirements":"release/v1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2024-10-19T02:26:29.140Z","updated_at":"2024-10-19T02:26:29.140Z","repository_link":"https://github.com/NatLabRockies/H2Integrate/blob/main/pyproject.toml","dependencies":[{"id":20272969029,"package_name":"Cython","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969030,"package_name":"NREL-PySAM","ecosystem":"pypi","requirements":"==4.2.0","direct":true,"kind":"runtime","optional":false},{"id":20272969047,"package_name":"Pillow","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969048,"package_name":"Plotly","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969087,"package_name":"Pyomo","ecosystem":"pypi","requirements":"\u003e=6.1.2","direct":true,"kind":"runtime","optional":false},{"id":20272969102,"package_name":"diskcache","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969103,"package_name":"fastkml","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969104,"package_name":"floris","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969641,"package_name":"future","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969642,"package_name":"global_land_mask","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969677,"package_name":"humpday","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969678,"package_name":"hybridbosse","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969680,"package_name":"lcoe","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969681,"package_name":"lxml","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969682,"package_name":"matplotlib","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969683,"package_name":"multiprocessing-on-dill","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969684,"package_name":"nevergrad","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969687,"package_name":"numpy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969688,"package_name":"numpy-financial","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969689,"package_name":"optuna","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969690,"package_name":"pandas","ecosystem":"pypi","requirements":"\u003e=2.0.3","direct":true,"kind":"runtime","optional":false},{"id":20272969691,"package_name":"pint","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969692,"package_name":"plotly","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969693,"package_name":"pvmismatch","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969694,"package_name":"pyDOE2","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969695,"package_name":"pymoo","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969702,"package_name":"pyproj","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969703,"package_name":"pysolar","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969704,"package_name":"pysot","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969723,"package_name":"python-dotenv","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969724,"package_name":"python-rapidjson","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969725,"package_name":"pytz","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969726,"package_name":"rainflow","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969748,"package_name":"requests","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969749,"package_name":"scikit-learn","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969750,"package_name":"scikit-optimize","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969751,"package_name":"scipy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969752,"package_name":"shapely","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969753,"package_name":"setuptools","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969754,"package_name":"timezonefinder","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969755,"package_name":"urllib3","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969756,"package_name":"openpyxl","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272969757,"package_name":"CoolProp","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272970853,"package_name":"attrs","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272970854,"package_name":"utm","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20272970855,"package_name":"HOPP","ecosystem":"pypi","requirements":"\u003e=3.0","direct":true,"kind":"runtime","optional":false},{"id":20272971492,"package_name":"orbit-nrel","ecosystem":"pypi","requirements":"\u003e=1.1","direct":true,"kind":"runtime","optional":false},{"id":20272971588,"package_name":"openmdao","ecosystem":"pypi","requirements":"[all]","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"conda","filepath":"environment.yml","sha":null,"kind":"manifest","created_at":"2026-01-03T08:03:54.841Z","updated_at":"2026-01-03T08:03:54.841Z","repository_link":"https://github.com/NatLabRockies/H2Integrate/blob/main/environment.yml","dependencies":[{"id":25786524140,"package_name":"python","ecosystem":"conda","requirements":"3.11","direct":true,"kind":"runtime","optional":false},{"id":25786524141,"package_name":"glpk","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25786524143,"package_name":"pip","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/pre-commit.yml","sha":null,"kind":"manifest","created_at":"2026-01-03T08:03:54.442Z","updated_at":"2026-01-03T08:03:54.442Z","repository_link":"https://github.com/NatLabRockies/H2Integrate/blob/main/.github/workflows/pre-commit.yml","dependencies":[{"id":25786524130,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":25786524131,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v5","direct":true,"kind":"composite","optional":false},{"id":25786524132,"package_name":"pre-commit/action","ecosystem":"actions","requirements":"v3.0.1","direct":true,"kind":"composite","optional":false}]}],"score":8.577911926450943,"created_at":"2026-01-22T00:03:09.081Z","updated_at":"2026-04-10T00:30:18.358Z","avatar_url":"https://github.com/NatLabRockies.png","language":"Python","category":"Energy Systems","sub_category":"Energy System Modeling Frameworks","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"# H2Integrate: Holistic Hybrids Optimization and Design Tool\n\n[![PyPI version](https://badge.fury.io/py/H2Integrate.svg)](https://badge.fury.io/py/H2Integrate)\n![CI Tests](https://github.com/NREL/H2Integrate/actions/workflows/ci.yml/badge.svg)\n[![image](https://img.shields.io/pypi/pyversions/H2Integrate.svg)](https://pypi.python.org/pypi/H2Integrate)\n[![License](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)\n[![DOI:10.5281/zenodo.17903150](https://zenodo.org/badge/DOI/10.5281/zenodo.17903149.svg)](https://zenodo.org/records/17903149)\n\n[![DOI 10.1088/1742-6596/2767/8/082019](https://img.shields.io/badge/DOI-10.1088%2F1742--6596%2F2767%2F8%2F082019-brightgreen?link=[https://doi.org/10.1088/1742-6596/2767/8/082019](https://doi.org/10.1088/1742-6596/2767/8/082019))](https://iopscience.iop.org/article/10.1088/1742-6596/2767/8/082019/pdf)\n[![DOI 10.1088/1742-6596/2767/6/062017](https://img.shields.io/badge/DOI-10.1088%2F1742--6596%2F2767%2F6%2F062017-brightgreen?link=[https://doi.org/10.1088/1742-6596/2767/6/062017](https://doi.org/10.1088/1742-6596/2767/6/062017))](https://iopscience.iop.org/article/10.1088/1742-6596/2767/6/062017/pdf)\n[![DOI 10.21203/rs.3.rs-4326648/v1](https://img.shields.io/badge/DOI-10.21203%2Frs.3.rs--4326648%2Fv1-brightgreen?link=[https://doi.org/10.21203/rs.3.rs-4326648/v1](https://doi.org/10.21203/rs.3.rs-4326648/v1))](https://assets-eu.researchsquare.com/files/rs-4326648/v1_covered_338a5071-b74b-4ecd-9d2a-859e8d988b5c.pdf?c=1716199726)\n\nH2Integrate is an open-source Python package for modeling and designing hybrid energy systems producing electricity, hydrogen, ammonia, steel, and other products.\n\nNote: 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.\n\n## Software Citation\n\n```bibtex\n@software{brunik_2025_17903150,\n  author = {Brunik, Kaitlin and\n    Grant, Elenya and\n    Thomas, Jared and\n    Starke, Genevieve M and\n    Martin, Jonathan and\n    Ramos, Dakota and\n    Koleva, Mariya and\n    Reznicek, Evan and\n    Hammond, Rob and\n    Stanislawski, Brooke and\n    Kiefer, Charlie and\n    Irmas, Cameron and\n    Vijayshankar, Sanjana and\n    Riccobono, Nicholas and\n    Frontin, Cory and\n    Clark, Caitlyn and\n    Barker, Aaron and\n    Gupta, Abhineet and\n    Kee, Benjamin (Jamie) and\n    King, Jennifer and\n    Jasa, John and\n    Bay, Christopher},\n  title = {H2Integrate: Holistic Hybrids Optimization and Design Tool},\n  month = dec,\n  year = 2025,\n  publisher = {Zenodo},\n  version = {0.4.0},\n  doi = {10.5281/zenodo.17903150},\n  url = {https://doi.org/10.5281/zenodo.17903150},\n}\n```\n\n## Publications where H2Integrate has been used\n\nFor more context about H2Integrate and to see analyses that have been performed using the tool, please see some of these publications.\nPDFs are available in the linked titles.\n\n### Nationwide techno-economic analysis of clean hydrogen production powered by a hybrid renewable energy plant for over 50,000 locations in the United States.\n\nThe levelized cost of hydrogen is calculated for varying technology costs, and tax credits to\nexplore cost sensitivities independent of plant design, performance, and site selection. Our\nfindings suggest that strategies for cost reduction include selecting sites with abundant wind\nresources, complementary wind and solar resources, and optimizing the sizing of wind and solar\nassets to maximize the hybrid plant capacity factor.\n\nGrant, 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.\n\n### 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.\n\nConducting a regional techno-economic analysis at four U.S. coastal sites, the study evaluates two\nenergy transmission configurations and examines associated costs for the years 2025, 2030, and 2035.\nThe results highlight that locations using fixed-bottom technology may achieve cost-competitive\nwater electrolysis hydrogen production by 2030 through leveraging geologic hydrogen storage and\nfederal policy incentives.\n\nBrunik, 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.\n\n### 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.\n\nModeling results suggest that the levelized cost of storage is highly spatially heterogeneous, with\nminor impact on the cost of H2 in the Midwest, and potentially significant impact in areas with\nemerging H2 economies such as Central California and the Southeast. While TOL/MCH may be the\ncheapest aboveground bulk storage solution evaluated, upfront capital costs, modest energy\nefficiency, reliance on critical materials, and greenhouse gas emissions from heating remain\nconcerns.\n\nBreunig, 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).\n\n### DOE Hydrogen Program review presentation of H2Integrate\n\nKing, 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).\n\n## Software requirements\n\n- Python version 3.11, 3.12 64-bit\n- Other versions may still work, but have not been extensively tested at this time\n\n## Installing from Package Repositories\n\n```bash\npip install h2integrate\n```\n\n\u003e [!NOTE]\n\u003e If using the Ard models `h2integrate[ard]`, see the source installation instructions (item 3) for\n\u003e creating a conda environment with WISDEM installed through conda, not pip as it can cause issues\n\u003e on some machines.\n\n## Installing from Source\n\n### Easiest approach (recommended)\n\n1. Using Git, navigate to a local target directory and clone repository:\n\n    ```bash\n    git clone https://github.com/NREL/H2Integrate.git\n    ```\n\n2. Navigate to `H2Integrate`\n\n    ```bash\n    cd H2Integrate\n    ```\n\n3. Create a conda environment and install H2Integrate and all its dependencies. Please read the\n   following two notes about modified installation steps.\n\n    1. If on a Unix machine, uncomment line 8 in `environment.yml` to install Cbc. Windows\n      users will need to manually install from \u003chttps://github.com/coin-or/Cbc\u003e.\n    2. If you plan to use Ard, please uncomment line 9 in `environment.yml` to ensure WISDEM (an Ard\n      dependency) is installed from conda to avoid installation issues with some systems.\n\n    ```bash\n    conda env create -f environment.yml\n    ```\n\nAn additional step can be added if additional dependencies are required, or you plan to use this\nenvironment for development work.\n\n- Pass `-e` for an editable developer install\n- Use one of the extra flags as needed:\n  - `gis`: adds the iron mapping tools.\n  - `ard`: adds the Ard-based wind models.\n  - `develop`: adds developer and documentation tools, plus optional analysis modifiers `gis` and `ard`.\n  - `examples`: allows you to use the Jupyter Notebooks and all examples (includes `ard` and `gis`).\n  - `all` simplifies adding all the dependencies.\n\nThis looks like the following for a developer installation:\n\n```bash\npip install -e \".[all]\"\n```\n\n### Customizable\n\n1. Using Git, navigate to a local target directory and clone repository:\n\n    ```bash\n    git clone https://github.com/NREL/H2Integrate.git\n    ```\n\n2. Navigate to `H2Integrate`\n\n    ```bash\n    cd H2Integrate\n    ```\n\n3. Create a new virtual environment and change to it. Using Conda Python 3.11 (choose your favorite\n   supported version) and naming it 'h2integrate' (choose your desired name):\n\n    ```bash\n    conda create --name h2integrate python=3.11 -y\n    conda activate h2integrate\n    ```\n\n4. Install H2Integrate and its dependencies:\n\n    ```bash\n    conda install -y -c conda-forge glpk\n    ```\n\n    Note: Unix users should install Cbc via:\n\n    ```bash\n    conda install -y -c conda-forge coin-or-cbc=2.10.8\n    ```\n\n    Windows users will have to manually install Cbc: https://github.com/coin-or/Cbc.\n\n    - If you want to just use H2Integrate:\n\n       ```bash\n       pip install .\n       ```\n\n    - If you want to work with the examples:\n\n       ```bash\n       pip install \".[examples]\"\n       ```\n\n    - If you also want development dependencies for running tests and building docs:\n\n       ```bash\n       pip install -e \".[develop]\"\n       ```\n\n       Please be sure to also install the pre-commit hooks if contributing code back to the main\n       repository via the following. This enables a series of automated formatting and code linting\n       (style and correctness checking) to ensure the code is stylistically consistent.\n\n       ```bash\n       pre-commit install\n       ```\n\n       If a check (or multiple) fails (commit is blocked), and reformatting was done, then restage\n       (`git add`) your files and commit them again to see if all issues were resolved without user\n       intervention. If changes are required follow the suggested fix, or resolve the stated\n       issue(s). Restaging and committing may take multiple attempts steps if errors are unaddressed\n       or insufficiently addressed. Please see [pre-commit](https://pre-commit.com/),\n       [ruff](https://docs.astral.sh/ruff/), or [isort](https://pycqa.github.io/isort/) for more\n       information.\n\n    - In one step, all dependencies can be installed as:\n\n      ```bash\n      pip install -e \".[all]\"\n      ```\n\n5. The functions which download resource data require an NLR API key. Obtain a key from:\n\n    [https://developer.nlr.gov/signup/](https://developer.nlr.gov/signup/)\n\n6. To set up the `NLR_API_KEY` and `NLR_API_EMAIL` required for resource downloads, follow the steps\n    outlined in [this doc page](https://h2integrate.readthedocs.io/en/latest/getting_started/environment_variables.html).\n\n7. Verify setup by running tests:\n\n    ```bash\n    pytest\n    ```\n\n## Getting Started\n\nThe [Examples](./examples/) contain Jupyter notebooks and sample YAML files for common usage\nscenarios in H2Integrate. These are actively maintained and updated to demonstrate H2Integrate's\ncapabilities. For full details on simulation options and other features, documentation is\nforthcoming.\n\n## Contributing\n\nInterested in improving H2Integrate? Please see the [Contributor's Guide](./docs/CONTRIBUTING.md)\nsection for more information.\n","funding_links":[],"readme_doi_urls":["https://doi.org/10.1088/1742-6596/2767/8/082019","https://doi.org/10.1088/1742-6596/2767/6/062017","https://doi.org/10.21203/rs.3.rs-4326648/v1","https://doi.org/10.5281/zenodo.17903150"],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["wind","openmdao","systems-engineering","wisdem","wind-energy"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/342300","html_url":"https://ost.ecosyste.ms/projects/342300"}