{"id":342318,"name":"CELAVI","description":"The Circular Economy Lifecycle Assessment and VIsualization framework allows stakeholders to quantify and visualize potential regional and sectoral transfers of impacts that could result from transitioning to a circular economy, with particular focus on energy material.","url":"https://github.com/natlabrockies/celavi","last_synced_at":"2026-05-26T09:30:21.434Z","repository":{"id":38215294,"uuid":"389780463","full_name":"NatLabRockies/celavi","owner":"NatLabRockies","description":"Codebase for the Circular Economy Lifecycle Assessment and VIsualization (CELAVI) modeling framework.","archived":false,"fork":false,"pushed_at":"2026-04-29T22:12:00.000Z","size":10822,"stargazers_count":17,"open_issues_count":8,"forks_count":16,"subscribers_count":3,"default_branch":"master","last_synced_at":"2026-05-08T11:27:00.920Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://nrel.github.io/celavi/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NatLabRockies.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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":"2021-07-26T22:08:39.000Z","updated_at":"2025-12-06T09:18:37.000Z","dependencies_parsed_at":"2026-04-04T01:01:32.554Z","dependency_job_id":null,"html_url":"https://github.com/NatLabRockies/celavi","commit_stats":null,"previous_names":["natlabrockies/celavi"],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/NatLabRockies/celavi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NatLabRockies%2Fcelavi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NatLabRockies%2Fcelavi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NatLabRockies%2Fcelavi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NatLabRockies%2Fcelavi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NatLabRockies","download_url":"https://codeload.github.com/NatLabRockies/celavi/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NatLabRockies%2Fcelavi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32965783,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-12T23:30:32.555Z","status":"online","status_checked_at":"2026-05-13T02:00:07.132Z","response_time":115,"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":"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":11615456,"full_name":"natlabrockies/celavi","default_branch":"master","total_commits":1201,"total_committers":8,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":150.125,"dds":0.5378850957535387,"past_year_total_commits":0,"past_year_total_committers":0,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":0.0,"past_year_dds":0.0,"last_synced_at":"2026-05-23T08:02:13.830Z","last_synced_commit":"bf5408fb4cb0b532bc710cbb54f3971c185d9fb0","created_at":"2026-01-30T02:02:42.241Z","updated_at":"2026-05-23T08:01:32.152Z","committers":[{"name":"rjhanes","email":"rebecca.hanes@nrel.gov","login":"rjhanes","count":555},{"name":"Alicia Key","email":"akey7","login":"akey7","count":488},{"name":"Ghosh, Tapajyoti","email":"tapajyotighosh007@gmail.com","login":"tjlca","count":64},{"name":"Annika Eberle","email":"annika.eberle@nrel.gov","login":"eberlea","count":36},{"name":"Ghosh, Tapajyoti","email":"Tapajyoti.Ghosh@nrel.gov","login":"tghoshnrel","count":32},{"name":"“Tapajyoti","email":"tghosh@nrel.gov","login":null,"count":13},{"name":"jwalzberg","email":"julien.walzberg@nrel.gov","login":"jwalzberg","count":12},{"name":"Alicia Key","email":"akey@nrel.gov","login":null,"count":1}],"past_year_committers":[],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/natlabrockies%2Fcelavi/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-05-25T00:00:11.816Z","repositories_count":6241381,"commits_count":883235538,"contributors_count":34915112,"owners_count":1157368,"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/celavi","html_url":"https://github.com/NatLabRockies/celavi","last_synced_at":"2026-05-17T05:00:55.805Z","status":"active","issues_count":0,"pull_requests_count":6,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":923807.0,"issues_closed_count":0,"pull_requests_closed_count":6,"pull_request_authors_count":2,"issue_authors_count":0,"avg_comments_per_issue":null,"avg_comments_per_pull_request":0.6666666666666666,"merged_pull_requests_count":6,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":6,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":923807.0,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":6,"past_year_pull_request_authors_count":2,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":0.6666666666666666,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":6,"created_at":"2026-02-03T00:00:12.022Z","updated_at":"2026-05-17T05:00:55.805Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/NatLabRockies%2Fcelavi","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/NatLabRockies%2Fcelavi/issues","issue_labels_count":{},"pull_request_labels_count":{},"issue_author_associations_count":{},"pull_request_author_associations_count":{"COLLABORATOR":6},"issue_authors":{},"pull_request_authors":{"rjhanes":5,"jwalzberg":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-05-23T00:00:30.079Z","repositories_count":14670723,"issues_count":34114325,"pull_requests_count":111622490,"authors_count":11270516,"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":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{},"past_year_pull_request_author_associations_count":{"COLLABORATOR":6},"past_year_issue_authors":{},"past_year_pull_request_authors":{"rjhanes":5,"jwalzberg":1},"maintainers":[{"login":"rjhanes","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/rjhanes"},{"login":"jwalzberg","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jwalzberg"}],"active_maintainers":[{"login":"rjhanes","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/rjhanes"},{"login":"jwalzberg","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jwalzberg"}]},"events":{"total":{"PullRequestEvent":1,"IssuesEvent":2,"IssueCommentEvent":3,"PushEvent":11,"PullRequestReviewEvent":6,"PullRequestReviewCommentEvent":4,"CreateEvent":2},"last_year":{"PullRequestEvent":1,"IssuesEvent":2,"IssueCommentEvent":3,"PushEvent":11,"PullRequestReviewEvent":6,"PullRequestReviewCommentEvent":4,"CreateEvent":2}},"keywords":[],"dependencies":[{"ecosystem":"pypi","filepath":"setup.py","sha":null,"kind":"manifest","created_at":"2022-08-09T00:15:43.446Z","updated_at":"2022-08-09T00:15:43.446Z","repository_link":"https://github.com/NatLabRockies/celavi/blob/master/setup.py","dependencies":[{"id":707482021,"package_name":"pytest","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":707482022,"package_name":"mypy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":707482023,"package_name":"black","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":707482024,"package_name":"sphinx","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":707482025,"package_name":"pandas","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":707482026,"package_name":"matplotlib","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":707482027,"package_name":"numpy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":707482028,"package_name":"pysd","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":707482029,"package_name":"networkx","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":707482030,"package_name":"graphviz","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":707482031,"package_name":"simpy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":707482032,"package_name":"networkx-query","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":707482033,"package_name":"olca-ipc","ecosystem":"pypi","requirements":"==0.0.10","direct":true,"kind":"runtime","optional":false},{"id":707482034,"package_name":"pyutilib","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":707482035,"package_name":"joblib","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":707482036,"package_name":"plotly","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":707482037,"package_name":"kaleido","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":707482038,"package_name":"scikit-learn","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":707482039,"package_name":"PyYAML","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":707482040,"package_name":"sphinx-rtd-theme","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2024-04-18T19:27:54.129Z","updated_at":"2024-04-18T19:27:54.129Z","repository_link":"https://github.com/NatLabRockies/celavi/blob/master/pyproject.toml","dependencies":[]}],"score":5.298317366548036,"created_at":"2026-01-22T00:07:41.288Z","updated_at":"2026-05-26T09:30:21.447Z","avatar_url":"https://github.com/NatLabRockies.png","language":"Python","category":"Industrial Ecology","sub_category":"Life Cycle Assessment","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"# CELAVI and Circularity Futures\nA circular economy emphasizes the efficient use of all resources (e.g., materials, land, water). Despite anticipated overall benefits to society, the transition to a circular economy is likely to create regional differences in impacts. Current tools are unable to fully evaluate these potential externalities, which will be important for informing research prioritization and regional decision making. \n\nThe Circular Economy Lifecycle Assessment and VIsualization (CELAVI) framework allows stakeholders to quantify and visualize potential regional and sectoral transfers of impacts that could result from transitioning to a circular economy, with particular focus on energy materials. The framework uses system dynamics to model material flows for multiple circular economy pathways and decisions are based on learning-by-doing and are implemented via cost and strategic value of different circular economy pathways. It uses network theory to track the spatial and sectoral flow of functional units across a graph and discrete event simulation to to step through time and evaluate lifecycle assessment data at each time step. The framework is designed to be flexible and scalable to accommodate multiple energy materials and multiple energy technologies. The primary goal of CELAVI is to help answer questions about how material flows and environmental and economic impacts of energy systems might change if the circularity of energy systems increases. \n\n## Branch Structure and Management\n\nThis repo contains code development for the CELAVI codebase (local cost minimization determines material flows) and the Circularity Futures codebase (material flows determine local and system costs). Our long-term goal is to merge these two decision-making functionalities into a single unified model, but for now please consider these two codebases as separate.\n\n* For CELAVI development, see `master`, `develop`, and `doc-pages`, as well as any issue or bug fix branches off of these. Releases up through v1.3.2 correspond to CELAVI.\n* For Circularity Futures develpment, see `dev-circfutures` and issue/bug fix branches off of this branch ONLY. DO NOT merge any Circularity Futures development, issue, or bug fix branches back into `master`, as this will overwrite the latest working version of CELAVI.\n\nPlease maintain good repo hygiene by creating one branch per Git issue, using consistent branch naming schemes, tagging issues in commit messages, and writing explanatory commit messages.\n\n## macOS and Windows\n\nOn macOS, use Terminal to type the commands. On Windows, use the Anaconda Prompt. To start typing the commands, you will need to use the `cd` command (which does the same thing on macOS and Windows) to navigate to the root of the cloned repository. Most of the commands work the same on macOS or Windows. Where they differ, this documentation will call those difference out.\n\n## Installation\n\nThis installation assumes you are using `conda` to create virtual environments. CELAVI requires packages from `pip` and `conda`, so there are two steps to the installation. These installation commands only need to be executed once before CELAAVI can be executed.\n\n### Installation step 1: pip install\nFrom the command prompt with the folder of your cloned repository, execute the following commands (these only need to be ran once at installation time):\n\n```\nconda create -n celavi python=3.8\nconda activate celavi\npip install -e .\n```\n\n## Running the package\n\nFrom the root of the repo, type a command similar to the following. This will execute the costgraph. Note that the paths to the files will need to be changed for your particular folder structure.\n\n```\npython -m celavi --data [your path to the CELAVI data folder] --config [your path to the config file(yaml) in the CELAVI data folder]\n```\n\n## Guide for development\n\n### Code formatting and type checking\n\nTo ensure code consistency, we use MyPy for type checking and Black for code formatting. This table lists some information on these packages and how they are set up:\n\nPackage | What it does | Configuration File | URL for more information |\n---|---|---|---\nMyPy | Creates optional type checking for variables in the code to reduce errors that arise from type mismatches | `mypy.ini` | [http://mypy-lang.org/](http://mypy-lang.org/)\nBlack | Ensures code is consistently formatted | `pyproject.toml` | [https://black.readthedocs.io/en/stable/](https://black.readthedocs.io/en/stable/)\n\n### Manually executing code formatting and type checking\n\nFrom the root of the repo, run the following commands\n\n```\nmypy celavi\nblack celavi --exclude sd_model.py\n```\n\n(Note: The `--exclude` option will ignore the automatically generated SD model from PySD)\n\nIf all passes, you will get status messages that look similar to the following:\n\nThe message from MyPy:\n\n```\nSuccess: no issues found in 1 source file\n```\n\nThe message from Black:\n\n```\nAll done! ✨ 🍰 ✨\n1 file left unchanged.\n```\n\nBlack has the useful feature that, if it finds a non-compliant file, it will fail with an error but will also reformat the file for you.\n\nThe first time you run MyPy can be slow since it needs to parse the files and put them into a cache for faster type checking.\n\n### Docstrings\n\nTo build the documentation from the docstrings in the code, type the following commands from the root of the repo:\n\nOn macOS, from the root of the repo, type the following command:\n\n``` \ncd docs\nmake html\n```\n\nOn Windows, from the root of the repo, type the following command:\n\n``` \ncd docs\nmake.bat html\n```\n\nAfter these commands, these documentation can be found at `docs/_build/html/index.html`\n\n### Testing\n\nThis project uses `pytest` as the testing framework. To run all the tests, execute the following command from the root of the repo.\n\n``` \npytest celavi/tests\n```\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://ost.ecosyste.ms/api/v1/projects/342318","html_url":"https://ost.ecosyste.ms/projects/342318"}