{"id":514,"name":"Electricity Life Cycle Inventory","description":"A Python package that uses standardized facility release and generation data to create regionalized life cycle inventory (LCI) models for the generation, mix of generation, mix of consumption, and distribution of electricity to end users for the US, with embedded system processes of upstream fuel production and infrastructure.","url":"https://github.com/NETL-RIC/ElectricityLCI","last_synced_at":"2026-04-12T05:30:16.671Z","repository":{"id":22315814,"uuid":"95246689","full_name":"NETL-RIC/ElectricityLCI","owner":"NETL-RIC","description":null,"archived":false,"fork":false,"pushed_at":"2025-12-10T16:53:24.000Z","size":297119,"stargazers_count":29,"open_issues_count":61,"forks_count":18,"subscribers_count":10,"default_branch":"master","last_synced_at":"2026-04-05T02:09:16.802Z","etag":null,"topics":["ord"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NETL-RIC.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"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":"2017-06-23T18:37:55.000Z","updated_at":"2026-03-28T01:46:58.000Z","dependencies_parsed_at":"2023-09-21T19:09:11.826Z","dependency_job_id":"2b3590d4-d7d9-40ea-b24b-3d9e638e3fb1","html_url":"https://github.com/NETL-RIC/ElectricityLCI","commit_stats":{"total_commits":826,"total_committers":14,"mean_commits":59.0,"dds":0.665859564164649,"last_synced_commit":"2232c41f2cb4fd333ad59c8710aa55906e6a7ed3"},"previous_names":["netl-ric/electricitylci","usepa/electricitylci"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/NETL-RIC/ElectricityLCI","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NETL-RIC%2FElectricityLCI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NETL-RIC%2FElectricityLCI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NETL-RIC%2FElectricityLCI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NETL-RIC%2FElectricityLCI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NETL-RIC","download_url":"https://codeload.github.com/NETL-RIC/ElectricityLCI/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NETL-RIC%2FElectricityLCI/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31584816,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"online","status_checked_at":"2026-04-09T02:00:06.848Z","response_time":112,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":"NETL-RIC","name":"National Energy Technology Laboratory Research \u0026 Innovation Center","uuid":"28026492","kind":"organization","description":"","email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/28026492?v=4","repositories_count":9,"last_synced_at":"2023-09-14T18:56:30.530Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/NETL-RIC","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2023-02-24T14:47:28.160Z","updated_at":"2023-09-14T18:56:30.570Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NETL-RIC","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NETL-RIC/repositories"},"packages":[],"commits":{"id":10445529,"full_name":"NETL-RIC/ElectricityLCI","default_branch":"master","total_commits":1376,"total_committers":17,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":80.94117647058823,"dds":0.7129360465116279,"past_year_total_commits":51,"past_year_total_committers":2,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":25.5,"past_year_dds":0.23529411764705888,"last_synced_at":"2026-04-09T04:39:14.253Z","last_synced_commit":"71a3f6dd20ed36bfcea3ff64b5e27d117ca7adc5","created_at":"2025-06-23T19:03:51.038Z","updated_at":"2026-04-09T04:38:08.380Z","committers":[{"name":"dt-woods","email":"davisler@gmail.com","login":"dt-woods","count":395},{"name":"Matt Jamieson","email":"matthew.jamieson@netl.doe.gov","login":"m-jamieson","count":364},{"name":"WesIngwersen","email":"ingwersen.wesley@epa.gov","login":"WesIngwersen","count":231},{"name":"Greg Schivley","email":"greg.schivley@gmail.com","login":"gschivley","count":86},{"name":"Ben Young","email":"44471635+bl-young","login":"bl-young","count":49},{"name":"ERG\\TGhosh","email":"Tapajyoti.Ghosh@erg.com","login":null,"count":45},{"name":"Tapajyoti Ghosh","email":"tapajyotighosh007@gmail.com","login":"tjlca","count":45},{"name":"Matt Jamieson","email":"38529788+jump2conclusionsmatt","login":"jump2conclusionsmatt","count":27},{"name":"Jamieson","email":"jamiesom","login":null,"count":27},{"name":"Cooney","email":"Gregory.Cooney@netl.doe.gov","login":null,"count":25},{"name":"Jing","email":"98781786+jingjli1","login":"jingjli1","count":24},{"name":"ssamkl","email":"shirley.sam@keylogic.com","login":"ssamkl","count":18},{"name":"Daniel L. Young, Ph.D","email":"youngd62@outlook.com","login":"dyoung11","count":14},{"name":"Ghosh, Tapajyoti","email":"Tapajyoti.Ghosh@nrel.gov","login":"tghoshnrel","count":12},{"name":"msrocka","email":"michael.srocka@gmail.com","login":"msrocka","count":10},{"name":"TAHottle","email":"troy.hottle@erg.com","login":null,"count":3},{"name":"rwashing523","email":"washington.reggie@epa.gov","login":"rwashing523","count":1}],"past_year_committers":[{"name":"dt-woods","email":"davisler@gmail.com","login":"dt-woods","count":39},{"name":"Matt Jamieson","email":"jump2conclusionsmatt@gmail.com","login":"m-jamieson","count":12}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/NETL-RIC%2FElectricityLCI/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-09T00:00:23.197Z","repositories_count":6212592,"commits_count":905832275,"contributors_count":34964641,"owners_count":1143569,"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":"NETL-RIC/ElectricityLCI","html_url":"https://github.com/NETL-RIC/ElectricityLCI","last_synced_at":"2026-03-28T04:03:31.202Z","status":null,"issues_count":29,"pull_requests_count":5,"avg_time_to_close_issue":44032860.625,"avg_time_to_close_pull_request":2032533.0,"issues_closed_count":8,"pull_requests_closed_count":5,"pull_request_authors_count":3,"issue_authors_count":7,"avg_comments_per_issue":4.379310344827586,"avg_comments_per_pull_request":0.4,"merged_pull_requests_count":4,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":18,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":8647315.0,"past_year_avg_time_to_close_pull_request":86142.0,"past_year_issues_closed_count":1,"past_year_pull_requests_closed_count":1,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":4,"past_year_avg_comments_per_issue":3.944444444444444,"past_year_avg_comments_per_pull_request":0.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":1,"created_at":"2025-06-23T19:03:51.469Z","updated_at":"2026-03-28T04:03:31.203Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/NETL-RIC%2FElectricityLCI","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/NETL-RIC%2FElectricityLCI/issues","issue_labels_count":{"in v2.1":7,"data":6,"enhancement":6,"in v2":5,"bug":2,"invalid":1,"question":1,"wontfix":1,"help wanted":1,"metadata":1},"pull_request_labels_count":{"in v2":1},"issue_author_associations_count":{"COLLABORATOR":25,"NONE":3,"CONTRIBUTOR":1},"pull_request_author_associations_count":{"COLLABORATOR":4,"CONTRIBUTOR":1},"issue_authors":{"dt-woods":17,"bl-young":5,"m-jamieson":3,"balzubair":1,"fchichorro":1,"i-sayuh":1,"WesIngwersen":1},"pull_request_authors":{"dt-woods":3,"ssamkl":1,"bl-young":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-05T00:00:08.668Z","repositories_count":14078427,"issues_count":34459917,"pull_requests_count":112453351,"authors_count":11225674,"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":{"in v2.1":7,"data":5,"enhancement":5,"bug":2,"help wanted":1,"metadata":1},"past_year_pull_request_labels_count":{"in v2":1},"past_year_issue_author_associations_count":{"COLLABORATOR":17,"CONTRIBUTOR":1},"past_year_pull_request_author_associations_count":{"COLLABORATOR":1},"past_year_issue_authors":{"dt-woods":9,"bl-young":5,"m-jamieson":3,"WesIngwersen":1},"past_year_pull_request_authors":{"dt-woods":1},"maintainers":[{"login":"dt-woods","count":20,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/dt-woods"},{"login":"bl-young","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/bl-young"},{"login":"m-jamieson","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/m-jamieson"}],"active_maintainers":[{"login":"dt-woods","count":10,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/dt-woods"},{"login":"bl-young","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/bl-young"},{"login":"m-jamieson","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/m-jamieson"}]},"events":{"total":{"PullRequestEvent":1,"IssuesEvent":12,"IssueCommentEvent":38,"PushEvent":4},"last_year":{"PullRequestEvent":1,"IssuesEvent":12,"IssueCommentEvent":38,"PushEvent":4}},"keywords":["ord"],"dependencies":[{"ecosystem":"pypi","filepath":"requirements.txt","sha":null,"kind":"manifest","created_at":"2022-09-18T12:40:59.540Z","updated_at":"2022-09-18T12:40:59.540Z","repository_link":"https://github.com/NETL-RIC/ElectricityLCI/blob/master/requirements.txt","dependencies":[{"id":5272856010,"package_name":"fedelemflowlist","ecosystem":"pypi","requirements":"v1.0.2","direct":true,"kind":"runtime","optional":false},{"id":5272856011,"package_name":"StEWI","ecosystem":"pypi","requirements":"v0.9.3","direct":true,"kind":"runtime","optional":false},{"id":5272856012,"package_name":"numpy","ecosystem":"pypi","requirements":"\u003e=1.1","direct":true,"kind":"runtime","optional":false},{"id":5272856013,"package_name":"pandas","ecosystem":"pypi","requirements":"\u003e=0.24","direct":true,"kind":"runtime","optional":false},{"id":5272856014,"package_name":"olca-ipc","ecosystem":"pypi","requirements":"\u003e=0.0.6","direct":true,"kind":"runtime","optional":false},{"id":5272856015,"package_name":"openpyxl","ecosystem":"pypi","requirements":"\u003e=2.5","direct":true,"kind":"runtime","optional":false},{"id":5272856016,"package_name":"matplotlib","ecosystem":"pypi","requirements":"\u003e=2.2","direct":true,"kind":"runtime","optional":false},{"id":5272856017,"package_name":"seaborn","ecosystem":"pypi","requirements":"\u003e=0.9","direct":true,"kind":"runtime","optional":false},{"id":5272856018,"package_name":"sympy","ecosystem":"pypi","requirements":"\u003e=1.2","direct":true,"kind":"runtime","optional":false},{"id":5272856019,"package_name":"xlrd","ecosystem":"pypi","requirements":"\u003e=1.1","direct":true,"kind":"runtime","optional":false},{"id":5272856020,"package_name":"pyyaml","ecosystem":"pypi","requirements":"\u003e=5.1","direct":true,"kind":"runtime","optional":false},{"id":5272856021,"package_name":"pycodestyle","ecosystem":"pypi","requirements":"\u003e=2.6.0","direct":true,"kind":"runtime","optional":false},{"id":5272856022,"package_name":"pydocstyle","ecosystem":"pypi","requirements":"\u003e=5.0.2","direct":true,"kind":"runtime","optional":false},{"id":5272856023,"package_name":"requests","ecosystem":"pypi","requirements":"\u003e=2.2","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"setup.py","sha":null,"kind":"manifest","created_at":"2022-09-18T12:40:59.781Z","updated_at":"2022-09-18T12:40:59.781Z","repository_link":"https://github.com/NETL-RIC/ElectricityLCI/blob/master/setup.py","dependencies":[{"id":5272859191,"package_name":"fedelemflowlist","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":5272859192,"package_name":"StEWI","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":5272859193,"package_name":"numpy","ecosystem":"pypi","requirements":"\u003e=1.14","direct":true,"kind":"runtime","optional":false},{"id":5272859194,"package_name":"pandas","ecosystem":"pypi","requirements":"\u003e=0.24","direct":true,"kind":"runtime","optional":false},{"id":5272859195,"package_name":"olca-ipc","ecosystem":"pypi","requirements":"\u003e=0.0.6","direct":true,"kind":"runtime","optional":false},{"id":5272859196,"package_name":"openpyxl","ecosystem":"pypi","requirements":"\u003e=2.5","direct":true,"kind":"runtime","optional":false},{"id":5272859197,"package_name":"matplotlib","ecosystem":"pypi","requirements":"\u003e=2.2","direct":true,"kind":"runtime","optional":false},{"id":5272859198,"package_name":"seaborn","ecosystem":"pypi","requirements":"\u003e=0.9","direct":true,"kind":"runtime","optional":false},{"id":5272859199,"package_name":"sympy","ecosystem":"pypi","requirements":"\u003e=1.2","direct":true,"kind":"runtime","optional":false},{"id":5272859200,"package_name":"xlrd","ecosystem":"pypi","requirements":"\u003e=1.1","direct":true,"kind":"runtime","optional":false},{"id":5272859201,"package_name":"pyyaml","ecosystem":"pypi","requirements":"\u003e=5.1","direct":true,"kind":"runtime","optional":false},{"id":5272859202,"package_name":"requests","ecosystem":"pypi","requirements":"\u003e=2.2","direct":true,"kind":"runtime","optional":false}]}],"score":7.333023014386481,"created_at":"2023-09-11T11:54:34.944Z","updated_at":"2026-04-12T05:30:16.675Z","avatar_url":"https://github.com/NETL-RIC.png","language":"Python","category":"Industrial Ecology","sub_category":"Life Cycle Assessment","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"# Electricity Life Cycle Inventory\n\nA Python package that uses standardized facility releases and generation data to create regionalized life cycle inventory (LCI) models for the generation, mix of generation, mix of consumption, and distribution of electricity to end users for the US, with embedded system processes of upstream fuel production and infrastructure.\nPre-configured model specifications are included (in the modelconfig directory of the package install: electricitylci/modelconfig) or users can specify their own models by creating new configuration YAML files in the modelconfig directory.\nThe created LCI models are exported for use in standard life cycle assessment software (i.e., in JSON-LD format using the openLCA v2.0 schema).\n\nThis code was created as part of a collaboration between US EPA Office of Research and Development (USEPA) and the National Energy Technology Laboratory (NETL) with contributions from the National Renewable Energy Laboratory (NREL) and support from Eastern Research Group (ERG).\nMore information on this effort can be found in the [Framework for an Open-Source Life Cycle Baseline for Electricity Consumption in the United States](https://netl.doe.gov/energy-analysis/details?id=4004).\n\n## Disclaimer\n\n    This United States Environmental Protection Agency (EPA) and National Energy\n    Technology Laboratory (NETL) GitHub project code is provided on an \"as is\"\n    basis and the user assumes responsibility for its use. EPA and NETL have\n    relinquished control of the information and no longer has responsibility to\n    protect the integrity, confidentiality, or availability of the information.\n    Any reference to specific commercial products, processes, or services by\n    service mark, trademark, manufacturer, or otherwise, does not constitute or\n    imply their endorsement, recommendation or favoring by EPA or NETL.\n\n# Setup\nA Python virtual environment (recommended v3.12) is required with the following packages installed, which were recorded in February 2025.\n_Note that Python 3.14 is not supported (yet)._\n\n+ `pip install git+https://github.com/USEPA/Federal-LCA-Commons-Elementary-Flow-List#egg=fedelemflowlist`\n    * Successfully installs:\n        + appdirs-1.4.4\n        + boto3-1.36.18\n        + botocore-1.36.18\n        + certifi-2025.1.31\n        + charset-normalizer-3.4.1\n        + esupy-0.4.0\n        + fedelemflowlist-1.3.0\n        + idna-3.10\n        + jmespath-1.0.1\n        + numpy-2.2.2\n        + olca-schema-2.4.0\n        + pandas-2.2.3\n        + pyarrow-19.0.0\n        + python-dateutil-2.9.0\n        + pytz-2025.1\n        + PyYAML-6.0.2\n        + requests-2.32.3\n        + s3transfer-0.11.2\n        + six-1.17.0\n        + tzdata-2025.1\n        + urllib3-2.3.0\n+ `pip install git+https://github.com/USEPA/standardizedinventories#egg=StEWI`\n    * Successfully installed:\n        + StEWI-1.1.4\n        + beautifulsoup4-4.12.3\n        + et-xmlfile-2.0.0\n        + openpyxl-3.1.5\n        + soupsieve-2.5\n        + xlrd-2.0.1\n+ `pip install scipy`\n    * Successfully installs:\n        + scipy-1.15.1\n\n# API\nIn the latest version of ElectricityLCI, there is a dependency on three external datasets that require the use of an application programming interface (API) key.\nThese keys are free to request and assist their governing agencies with reporting and justifying their data service.\n\nThe EPA's Continuous Emissions Monitors (CEMs) background data are provided by the Clean Air Markets API Portal.\nRequest a free API key (a long string of numbers used to unlock data access) at the following site.\nKeep your API key secret, as it links you to the their data.\n\n- https://www.epa.gov/power-sector/cam-api-portal#/api-key-signup\n\nThe EIA's bulk U.S. Electric System Operating Data (EBA) is provided by their Open Data API (v2).\nRequest a free API key by registering at the following address.\n\n- https://www.eia.gov/opendata/.\n\nNETL's coal transportation inventory update is provided through a public URL on [EDX](https://edx.netl.doe.gov), found within the [Life Cycle Analysis](https://edx.netl.doe.gov/group/life-cycle-analysis) group.\nAn automated download of the Excel workbook will trigger a request for an EDX API key.\nAPI keys require registration.\n\n- https://edx.netl.doe.gov/user/register\n\nNon-government users are required to list a point of contact for registration.\nPlease raise as an issue on this GitHub repository to request this additional information.\n\nBe careful when the ElectricityLCI prompts you for an API key, as there are three you need to keep track of (EDX, EPA and EIA).\nFor convenience, the API keys may be stored in the configuration YAML files in the `epa_cam_api`, `eia_api`, and `edx_api` parameters.\nMake sure you paste the right ones!\n\n# Use\nCheck which eLCI model configuration you want to use, or create a new configuration.\nTo show the location of the YAML files, run the following:\n\n```py\n\u003e\u003e\u003e from electricitylci.globals import get_config_dir\n\u003e\u003e\u003e get_config_dir()\n'~/ElectricityLCI/electricitylci/modelconfig'\n```\n\nThe output string may be copied to File Explorer or Finder address bar.\n\nTo run the installed package from the terminal/command line:\n\n```sh\n$ python -m electricitylci.main\n```\n\nTo run in a Python interpreter from within a cloned repository:\n\n```py\n\u003e\u003e\u003e exec(open(\"electricitylci/main.py\").read())\n```\n\nThe `main()` method has four steps:\n\n1. `build_model_config()`\n    - Prompts the user to select one of the model configurations.\n    - The 2016 baseline configurations are:\n        * ELCI_1\n        * ELCI_2\n        * ELCI_3\n    - Version 2 baselines include:\n        * ELCI_2020\n        * ELCI_2021\n        * ELCI_2022\n    - These configurations statically change the module, model_config.py, which is an object read by other modules.\n    - To change configuration values, edit the YAML before running the code.\n2. `run_generation()`\n    - Pulls upstream inventories for coal, natural gas, petroleum, nuclear, and plant construction\n    - Creates generation processes\n        * Optionally includes renewables (e.g., geothermal, wind, solar PV, solar thermal, and hydroelectric)\n        * Optionally includes plant water use\n        * Adds Canadian mixes\n        * Aggregates to regions of interest (e.g., balancing authority areas or FERC regions)\n3. `run_distribution(gen_data, gen_dict)`\n    - Creates the at-grid generation mix processes\n    - Creates the at-grid consumption mix processes (following one of two trade models)\n    - Creates the at-user consumption mix processes (based on calculated transmission and distribution losses)\n4. `run_post_processes()`\n    - Cleans the JSON-LD files (e.g., removing zero-value product flows, removing untracked flows, correcting flow categories, and creating consecutive internal exchange IDs)\n    - Builds the product systems for balancing authority areas, FERC regions, and US.\n\n# Known Issues\nSee Appendix A in [this discussion](https://github.com/USEPA/ElectricityLCI/discussions/288) for an overview of unresolved issues in version 2.\n\n# Troubleshooting\nIf you receive a TypeError in `write_jsonld`, got unexpected keyword argument 'zw', then it's likely you have an outdated version of [fedelemflowlist](https://github.com/USEPA/fedelemflowlist).\nPlease ensure these USEPA packages are up-to-date:\n\n- esupy\n- fedelemflowlist\n- stewi\n\nIf GitHub-hosted packages fail to clone and install, manually downloading the zip files, extracting them, and running the pip install command within package folder also works (see snippet below for example for older version of fedelemflowlist).\n\n```bash\n# Download the correct version of the repo\nwget https://github.com/USEPA/Federal-LCA-Commons-Elementary-Flow-List/archive/refs/tags/v1.1.2.zip\nunzip v1.1.2.zip\ncd cd Federal-LCA-Commons-Elementary-Flow-List-1.1.2/\npip install .\n```\n\n# Data Store\nThis package downloads a significant amount of background and inventory data (\u003e2.5 GB) in order to process electricity baselines.\n\nThe data store for ElectricityLCI is built from the USEPA's [esupy](https://github.com/USEPA/esupy) package (i.e., processed_data_mgmt.py), which uses the definition of a user's non-roaming data directory from [appdirs](https://github.com/ActiveState/appdirs).\n\nTo see where the data store folder is located on your machine, try running the following in a Python interpreter:\n\n```python\n\u003e\u003e\u003e from electricitylci.globals import get_datastore_dir\n\u003e\u003e\u003e print(get_datastore_dir())\n```\n\nTo see what files you have in your data store, you can call the following function and loop through its dictionaries' lists.\n\n```python\n\u003e\u003e\u003e from electricitylci.utils import _build_data_store\n\u003e\u003e\u003e ds = _build_data_store()\n\u003e\u003e\u003e for file_name in ds['electricitylci']['files']:\n...     print(file_name)\n```\n\nThe application folder for this package is 'electricitylci'.\n\nInventory data is provided by USEPA's Standardized Emission and Waste Inventories ([StEWI](https://github.com/USEPA/standardizedinventories)) package (via stewicombo).\nThe inventory data associated with StEWI are stored in the application folders, 'stewi' and 'stewicombo'.\n\nFlow mapping is handled using USEPA's Federal Elementary Flow List Python package and is saved in the application folder 'fedelemflowlist'.\n\nThe following is an example of the 181 data files downloaded from running the 2020 configuration file (updated in May 2025).\nEIA Form 860 Excel workbooks have worksheets that are summarized into CSV files for speed.\nNote that once downloaded, these files are referenced (and not downloaded again) unless a different year of data is referenced in a configuration file.\n\n    users_data_dir/                \u003c- Folder as defined by appdirs\n    ├── electricitylci/            \u003c- Support data (183 MB) and outputs (80 MB)\n    │   ├── bulk_data/\n    │   │   ├── eia_bulk_demand_2020.json (0.5 MB)\n    │   │   ├── eia_bulk_id_2020.json (2.6 MB)\n    │   │   └── eia_bulk_netgen_2020.json (0.6 MB)\n    │   │\n    │   ├── cer_rer/\n    │   │   └── electricity-trade-summary-resume-echanges-commerciaux-electricite.xlsx (100 KB)\n    │   │\n    │   ├── eia860_2016/\n    │   │   ├── 1___Utility_Y2016.xlsx (0.4 MB)\n    │   │   ├── 2___Plant_Y2016.csv (2.6 MB)\n    │   │   ├── 2___Plant_Y2016.xlsx (2.5 MB)\n    │   │   ├── 3_1_Generator_Y2016.xlsx (7.8 MB)\n    │   │   ├── 3_2_Wind_Y2016.xlsx (0.2 MB)\n    │   │   ├── 3_3_Solar_Y2016.xlsx (0.5 MB)\n    │   │   ├── 3_4_Energy_Storage_Y2016.xlsx (28 KB)\n    │   │   ├── 3_5_Multifuel_Y2016.xlsx (0.7 MB)\n    │   │   ├── 4___Owner_Y2016.xlsx (0.4 MB)\n    │   │   ├── 6_1_EnviroAssoc_Y2016.xlsx (1.2 MB)\n    │   │   ├── 6_2_EnviroEquip_Y2016.xlsx (2.9 MB)\n    │   │   ├── Form EIA-860 (2016).pdf (0.8 MB)\n    │   │   ├── Form EIA-860 Insturctions (2016).pdf (0.4 MB)\n    │   │   └── LayoutY2016.xlsx (0.2 MB)\n    │   │\n    │   ├── eia860_2019/\n    │   │   ├── 1___Utility_Y2019.xlsx (0.4 MB)\n    │   │   ├── 2___Plant_Y2019.csv (3.2 MB)\n    │   │   ├── 2___Plant_Y2019.xlsx (3.1 MB)\n    │   │   ├── 3_1_Generator_Y2019.xlsx (8.7 MB)\n    │   │   ├── 3_2_Wind_Y2019.xlsx (0.2 MB)\n    │   │   ├── 3_3_Solar_Y2019.xlsx (0.8 MB)\n    │   │   ├── 3_4_Energy_Storage_Y2019.xlsx (48 KB)\n    │   │   ├── 3_5_Multifuel_Y2019.xlsx (0.7 MB)\n    │   │   ├── 4___Owner_Y2019.xlsx (0.4 MB)\n    │   │   ├── 6_1_EnviroAssoc_Y2019.xlsx (1.2 MB)\n    │   │   ├── 6_2_EnviroEquip_Y2019.xlsx (2.9 MB)\n    │   │   ├── EIA-860 Form.xlsx (3.1 MB)\n    │   │   ├── EIA-860 instruction.pdf (0.6 MB)\n    │   │   └── LayoutY2019.xlsx (0.2 MB)\n    │   │\n    │   ├── eia860_2020/\n    │   │   ├── 1___Utility_Y2020.xlsx (0.4 MB)\n    │   │   ├── 2___Plant_Y2020.csv (3.4 MB)\n    │   │   ├── 2___Plant_Y2020.xlsx (3.3 MB)\n    │   │   ├── 3_1_Generator_Y2020.xlsx (9.0 MB)\n    │   │   ├── 3_1_Generator_Y2020_generator_operable.csv (5.2 MB)\n    │   │   ├── 3_2_Wind_Y2020.xlsx (0.2 MB)\n    │   │   ├── 3_3_Solar_Y2020.xlsx (1.0 MB)\n    │   │   ├── 3_4_Energy_Storage_Y2020.xlsx (60 KB)\n    │   │   ├── 3_5_Multifuel_Y2020.xlsx (0.7 MB)\n    │   │   ├── 4___Owner_Y2020.xlsx (0.4 MB)\n    │   │   ├── 6_1_EnviroAssoc_Y2020.xlsx (1.2 MB)\n    │   │   ├── 6_1_EnviroAssoc_Y2020_boiler_nox.csv (0.1 MB)\n    │   │   ├── 6_1_EnviroAssoc_Y2020_boiler_so2.csv (64 KB)\n    │   │   ├── 6_2_EnviroEquip_Y2020.xlsx (2.9 MB)\n    │   │   ├── 6_2_EnviroEquip_Y2020_boiler_info.csv (0.6 MB)\n    │   │   ├── EIA-860 Form.xlsx (3.1 MB)\n    │   │   ├── EIA-860 Instructions.pdf (0.8 MB)\n    │   │   └── LayoutY2020.xlsx (0.2 MB)\n    │   │\n    │   ├── eia930/\n    │   │   └── EIA930_Reference_Tables.xlsx (43 KB)\n    │   │\n    │   ├── energyfutures/\n    │   │   └── electricity-generation-2023.csv (1.0 MB)\n    │   │\n    │   ├── epacems2020/                     \u003c- 48 lower states + D.C. (0.1 MB)\n    │   │   ├── epacems2020al.zip (2 KB)\n    │   │   ├── epacems2020ar.zip (2 KB)\n    │   │   ├── ...\n    │   │   └── epacems2020wy.zip (1 KB)\n    │   │\n    │   ├── f7a_2020/\n    │   │   └── coalpublic2020.xls (0.2 MB)\n    │   │\n    │   ├── f923_2016/\n    │   │   ├── EIA923_Schedule_8_Annual_Environmental_Information_\\\n    │   │   │     2016_Final_Revision.xlsx (3.1 MB)\n    │   │   ├── EIA923_Schedules_2_3_4_5_M_12_2016_Final_Revision.xlsx (16 MB)\n    │   │   ├── EIA923_Schedules_2_3_4_5_M_12_2016_Final_\\\n    │   │   │     Revisionpage_1.csv (7.1 MB)\n    │   │   └── EIA923_Schedules_6_7_NU_SourceNDisposition_\\\n    │   │         2016_Final_Revision.xlsx (0.7 MB)\n    │   │\n    │   ├── f923_2019/\n    │   │   ├── EIA923_Schedule_8_Annual_Environmental_Information_\\\n    │   │   │     2019_Final_Revision.xlsx (3.1 MB)\n    │   │   ├── EIA923_Schedules_2_3_4_5_M_12_2019_Final_Revision.xlsx (19 MB)\n    │   │   ├── EIA923_Schedules_2_3_4_5_M_12_2019_Final_\\\n    │   │   │     Revisionpage_1.csv (8.1 MB)\n    │   │   └── EIA923_Schedules_6_7_NU_SourceNDisposition_\\\n    │   │         2019_Final_Revision.xlsx (0.9 MB)\n    │   │\n    │   ├── f923_2020/\n    │   │   ├── EIA923_Schedule_8_Annual_Environmental_Information_\\\n    │   │   │     2020_Final_Revision.xlsx (3.0 MB)\n    │   │   ├── EIA923_Schedule_8_Annual_Environmental_Information_\\\n    │   │   │     2020_Final_Revision_page_8c.csv (0.6 MB)\n    │   │   ├── EIA923_Schedules_2_3_4_5_M_12_2020_Final_Revision.xlsx (18 MB)\n    │   │   ├── EIA923_Schedules_2_3_4_5_M_12_\\\n    │   │   │     2020_Final_Revision_page_1.csv (8.4 MB)\n    │   │   ├── EIA923_Schedules_2_3_4_5_M_12_\\\n    │   │   │     2020_Final_Revision_page_3.csv (3.2 MB)\n    │   │   ├── EIA923_Schedules_2_3_4_5_M_12_\\\n    │   │   │     2020_Final_Revision_page_5_reduced.csv (2.3 MB)\n    │   │   └── EIA923_Schedules_6_7_NU_SourceNDisposition_\\\n    │   │         2020_Final_Revision.xlsx (1.0 MB)\n    │   │\n    │   ├── fedcommons/\n    │   │   ├── dq_sources.json (0.5 KB)\n    │   │   ├── dq_systems.json (6 KB)\n    │   │   ├── flow_properties.json (12 KB)\n    │   │   └── unit_groups.json (36 KB)\n    │   │\n    │   ├── FRS_bridges/\n    │   │   └── NEI_2020_RCRAInfo_2019_TRI_2020_eGRID_2020.csv (0.3 MB)\n    │   │\n    │   ├── netl/\n    │   │   └── Transportation_Inventories_02262025.xlsx (0.5 MB)\n    │   │\n    │   ├── output/                              \u003c- ELCI model results\n    │   │   ├── BAA_final_trade_2020.csv (69 KB)\n    │   │   ├── elci.log (0 KB)\n    │   │   ├── elci.log.1 (112 MB)\n    │   │   ├── ELCI_2020_jsonld_20250528_142931.zip (23 MB)\n    │   │   └── ferc_final_trade_2020.csv (18 KB)\n    │   │\n    │   └── t_and_d_2020/                         \u003c- 50 states (4.3 MB)\n    │       ├── ak.xlsx (84 KB)\n    │       ├── al.xlsx (89 KB)\n    │       ├── ...\n    │       └── wy.xlsx (83 KB)\n    │\n    ├── fedelemflowlist/                 \u003c- Flow mapping data (14 MB)\n    │   └── FedElemFlowListMaster_v1.2.0_e57a542.parquet (14 MB)\n    │\n    ├── stewi/                           \u003c- Inventory data / metadata (45 MB)\n    │   ├── facility/\n    │   │   ├── eGRID_2020_v1.1.3_6710a0f.parquet (0.7 MB)\n    │   │   ├── NEI_2020_v1.1.0_084a311.parquet (6.0 MB)\n    │   │   ├── RCRAInfo_2019_v1.0.5_f40a6aa.parquet (1.3 MB)\n    │   │   └── TRI_2020_v1.1.0_084a311.parquet (1.8 MB)\n    │   │\n    │   ├── flowbyfacility/\n    │   │   ├── eGRID_2020_v1.1.3_6710a0f.parquet (0.5 MB)\n    │   │   ├── NEI_2020_v1.1.0_084a311.parquet (31 MB)\n    │   │   ├── RCRAInfo_2019_v1.0.5_f40a6aa.parquet (2.1 MB)\n    │   │   └── TRI_2020_v1.1.0_084a311.parquet (1.2 MB)\n    │   │\n    │   ├── eGRID_2020_v1.1.3_6710a0f_metadata.json (1 KB)\n    │   ├── NEI_2020_v1.1.0_084a311_metadata.json (3 KB)\n    │   ├── RCRAInfo_2019_v1.0.5_f40a6aa_metadata.json (1 KB)\n    │   └── TRI_2020_v1.1.0_084a311_metadata.json (1 KB)\n    │\n    └── stewicombo/      \u003c- Data / metadata generated by stewicombo\n        ├── ELCI_2020_v1.1.2.parquet (2.2 MB)\n        └── ELCI_2020_v1.1.2_metadata.json (7 KB)\n\n# Developer's Corner\n\nTo install the dependencies for this package without installing the package itself, put the following in a text file, called requirements.txt\n\n    fedelemflowlist @ git+https://github.com/USEPA/Federal-LCA-Commons-Elementary-Flow-List#egg=fedelemflowlist\n    StEWI @ git+https://github.com/USEPA/standardizedinventories#egg=StEWI\n    scipy\u003e=1.10\n\n\nTo checkout a pull request locally for testing:\n\n- Open the pull request in GitHub and find the number associated with it (e.g., [PR\\#14](https://github.com/KeyLogicLCA/ElectricityLCI/pull/14)); it should be next to the title.\n- Create a new branch (e.g., pr14) and pull the repository changes to your local machine (e.g., `git fetch origin pull/14/head:pr14`)\n- Switch to new branch (e.g., `git checkout pr14` or `git switch pr14`)\n\nTo see all branches:\n\n- Both local and remote branches are listed using: `git branch -a`\n\nTo see changes between two branches:\n\n- See what files are different between your two branches (e.g., `git diff --name-only dev pr14` or simply `git diff --name-only pr14`)\n- You can also see who made the changes (e.g. `git log dev..pr14`)\n- You can also see differences in a specific file by passing the file path (e.g., `git diff dev pr14 README.md`)\n\nTo merge one branch with another:\n\n- With two branches (e.g., 'dev' and 'pr14'), you can merge the changes from one branch into another using the `git merge` command.\n- Checkout the branch you want to merge changes in to (e.g., `git checkout dev`)\n- Merge all new changes from one branch into the active branch (e.g., `git merge pr14`)\n- Or you can merge a single file (e.g., `git checkout pr14 electricitylci/file.py`); note that this copies the file between branches making the local copy look like it does on the other branch.\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["ghg"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/514","html_url":"https://ost.ecosyste.ms/projects/514"}