{"id":34246,"name":"SpiceEV","description":"Simulation Program for Individual Charging Events of Electric Vehicles.","url":"https://github.com/rl-institut/spice_ev","last_synced_at":"2026-04-07T14:30:22.853Z","repository":{"id":37857007,"uuid":"364596791","full_name":"rl-institut/spice_ev","owner":"rl-institut","description":"Simulation Program for Individual Charging Events of Electric Vehicles","archived":false,"fork":false,"pushed_at":"2026-02-02T11:45:50.000Z","size":2658,"stargazers_count":30,"open_issues_count":21,"forks_count":11,"subscribers_count":7,"default_branch":"dev","last_synced_at":"2026-03-21T19:54:28.849Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rl-institut.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2021-05-05T14:04:45.000Z","updated_at":"2026-02-02T11:45:51.000Z","dependencies_parsed_at":"2026-02-28T20:01:56.349Z","dependency_job_id":null,"html_url":"https://github.com/rl-institut/spice_ev","commit_stats":{"total_commits":1278,"total_committers":14,"mean_commits":91.28571428571429,"dds":0.5618153364632238,"last_synced_commit":"774069f5b19d889fd5cb10eb79378600195719de"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/rl-institut/spice_ev","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rl-institut%2Fspice_ev","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rl-institut%2Fspice_ev/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rl-institut%2Fspice_ev/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rl-institut%2Fspice_ev/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rl-institut","download_url":"https://codeload.github.com/rl-institut/spice_ev/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rl-institut%2Fspice_ev/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31232577,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-31T09:14:28.471Z","status":"ssl_error","status_checked_at":"2026-03-31T09:14:19.506Z","response_time":111,"last_error":"SSL_read: 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":"rl-institut","name":"Reiner Lemoine Institut","uuid":"18393972","kind":"organization","description":"","email":null,"website":"http://www.reiner-lemoine-institut.de","location":"Berlin/Germany","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/18393972?v=4","repositories_count":78,"last_synced_at":"2024-04-16T01:19:33.863Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/rl-institut","funding_links":[],"total_stars":186,"followers":32,"following":0,"created_at":"2022-11-11T20:55:21.162Z","updated_at":"2024-04-16T01:20:11.996Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rl-institut","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rl-institut/repositories"},"packages":[],"commits":{"id":1345422,"full_name":"rl-institut/spice_ev","default_branch":"dev","total_commits":1293,"total_committers":16,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":80.8125,"dds":0.5576179427687549,"past_year_total_commits":12,"past_year_total_committers":3,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":4.0,"past_year_dds":0.25,"last_synced_at":"2026-04-06T08:43:00.544Z","last_synced_commit":"69b08106a8b6c18e0815dcc21c647fe2989026f5","created_at":"2023-09-12T09:45:38.677Z","updated_at":"2026-04-06T08:42:55.362Z","committers":[{"name":"stefan.schirmeister","email":"stefan.schirmeister@localiser.de","login":null,"count":572},{"name":"Piranias","email":"inia.steinbach@rl-institut.de","login":"Piranias","count":220},{"name":"Jakob Gemassmer","email":"Jakob.Gemassmer@rl-institut.de","login":"jakobgemassmer","count":144},{"name":"Paul Boehnke","email":"paul.boehnke@rl-institut.de","login":"paulboehnke","count":135},{"name":"TabeaMaria","email":"tabea.katerbau@googlemail.com","login":"TabeaMaria","count":78},{"name":"Johannes Hofmann","email":"mail@b-r-u.org","login":"b-r-u","count":56},{"name":"jtm91","email":"jtm91@mailbox.tu-berlin.de","login":"j-ti","count":35},{"name":"Moritz Schiel","email":"moritz.schiel@gmx.net","login":"mosc5","count":24},{"name":"nesnoj","email":"jonathan.amme@rl-institut.de","login":"nesnoj","count":13},{"name":"leon-rli","email":"leonard.hilfrich@rl-institut.de","login":"leon-rli","count":5},{"name":"Paul Böhnke","email":"RL-INSTITUT\\paul.boehnke@rli-nb-34.rl-institut.local","login":null,"count":3},{"name":"stefansc1","email":"35683628+stefansc1","login":"stefansc1","count":2},{"name":"paul.scheer","email":"Paul.Scheer@rl-institut.de","login":"PaulScheerRLI","count":2},{"name":"Bedirhan Köse","email":"Bedirhan.Koese@rl-institut.de","login":null,"count":2},{"name":"Julian Brendel","email":"Julian.Brendel@rl-institut.de","login":"j-brendel","count":1},{"name":"Paul","email":"paulboehnke@onlinehome.de","login":null,"count":1}],"past_year_committers":[{"name":"stefansc1","email":"stefan.schirmeister@localiser.de","login":null,"count":9},{"name":"Bedirhan Köse","email":"Bedirhan.Koese@rl-institut.de","login":null,"count":2},{"name":"Julian Brendel","email":"Julian.Brendel@rl-institut.de","login":"j-brendel","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/rl-institut%2Fspice_ev/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-06T00:00:08.903Z","repositories_count":6211229,"commits_count":921932100,"contributors_count":35687158,"owners_count":1143388,"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":"rl-institut/spice_ev","html_url":"https://github.com/rl-institut/spice_ev","last_synced_at":"2026-02-28T20:01:31.290Z","status":"active","issues_count":50,"pull_requests_count":101,"avg_time_to_close_issue":11492614.529411765,"avg_time_to_close_pull_request":1517731.3260869565,"issues_closed_count":34,"pull_requests_closed_count":92,"pull_request_authors_count":9,"issue_authors_count":8,"avg_comments_per_issue":0.7,"avg_comments_per_pull_request":0.18811881188118812,"merged_pull_requests_count":89,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":2,"past_year_avg_time_to_close_issue":517911.0,"past_year_avg_time_to_close_pull_request":2369002.5,"past_year_issues_closed_count":1,"past_year_pull_requests_closed_count":2,"past_year_pull_request_authors_count":2,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":1.0,"past_year_avg_comments_per_pull_request":0.5,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":2,"created_at":"2023-09-12T09:46:11.931Z","updated_at":"2026-02-28T20:01:31.291Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/rl-institut%2Fspice_ev","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/rl-institut%2Fspice_ev/issues","issue_labels_count":{"enhancement":23,"low prio":8,"invalid":8,"high prio":7,"question":6,"documentation":3,"nice to have":3,"wontfix":2,"bug":1,"testing":1},"pull_request_labels_count":{"enhancement":5,"documentation":3},"issue_author_associations_count":{"COLLABORATOR":48,"MEMBER":2},"pull_request_author_associations_count":{"COLLABORATOR":99,"MEMBER":2},"issue_authors":{"jakobgemassmer":24,"Piranias":13,"j-ti":6,"j-brendel":2,"stefansc1":2,"mosc5":1,"nesnoj":1,"paulboehnke":1},"pull_request_authors":{"stefansc1":62,"jakobgemassmer":12,"j-ti":7,"TabeaMaria":6,"paulboehnke":5,"Piranias":4,"mosc5":2,"PaulScheerRLI":2,"bedirhankose":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-06T00:00:09.270Z","repositories_count":14101833,"issues_count":34422643,"pull_requests_count":112354408,"authors_count":11227327,"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":{"COLLABORATOR":1},"past_year_pull_request_author_associations_count":{"COLLABORATOR":2},"past_year_issue_authors":{"stefansc1":1},"past_year_pull_request_authors":{"bedirhankose":1,"stefansc1":1},"maintainers":[{"login":"stefansc1","count":64,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/stefansc1"},{"login":"jakobgemassmer","count":36,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jakobgemassmer"},{"login":"Piranias","count":17,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Piranias"},{"login":"j-ti","count":13,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/j-ti"},{"login":"paulboehnke","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/paulboehnke"},{"login":"TabeaMaria","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/TabeaMaria"},{"login":"mosc5","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mosc5"},{"login":"j-brendel","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/j-brendel"},{"login":"PaulScheerRLI","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/PaulScheerRLI"},{"login":"bedirhankose","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/bedirhankose"},{"login":"nesnoj","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nesnoj"}],"active_maintainers":[{"login":"stefansc1","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/stefansc1"},{"login":"bedirhankose","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/bedirhankose"}]},"events":{"total":{"DeleteEvent":4,"PullRequestEvent":2,"IssuesEvent":1,"WatchEvent":2,"IssueCommentEvent":1,"PushEvent":18,"PullRequestReviewEvent":3,"CreateEvent":3},"last_year":{"DeleteEvent":1,"IssuesEvent":1,"WatchEvent":1,"PushEvent":7,"CreateEvent":1}},"keywords":[],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/pythonpackage.yaml","sha":null,"kind":"manifest","created_at":"2023-02-18T09:15:20.021Z","updated_at":"2023-02-18T09:15:20.021Z","repository_link":"https://github.com/rl-institut/spice_ev/blob/dev/.github/workflows/pythonpackage.yaml","dependencies":[{"id":7758429511,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7758429519,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"pypi","filepath":"doc/requirements.txt","sha":null,"kind":"manifest","created_at":"2023-02-18T09:15:20.173Z","updated_at":"2023-02-18T09:15:20.173Z","repository_link":"https://github.com/rl-institut/spice_ev/blob/dev/doc/requirements.txt","dependencies":[{"id":7758429581,"package_name":"sphinx","ecosystem":"pypi","requirements":"\u003e=1.4.3","direct":true,"kind":"runtime","optional":false},{"id":7758429582,"package_name":"sphinx_rtd_theme","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"setup.py","sha":null,"kind":"manifest","created_at":"2023-09-21T19:28:30.429Z","updated_at":"2023-09-21T19:28:30.429Z","repository_link":"https://github.com/rl-institut/spice_ev/blob/dev/setup.py","dependencies":[]}],"score":6.704414354964107,"created_at":"2023-09-12T07:45:32.895Z","updated_at":"2026-04-07T14:30:22.854Z","avatar_url":"https://github.com/rl-institut.png","language":"Python","category":"Consumption","sub_category":"Mobility and Transportation","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"# SpiceEV - Simulation Program for Individual Charging Events of Electric Vehicles\n\n**Simulation program to generate scenarios of electric vehicle fleets and simulate different charging strategies.**\n\n[![Build Status](https://github.com/rl-institut/spice_ev/actions/workflows/pythonpackage.yaml/badge.svg?branch=dev)](https://github.com/rl-institut/spice_ev/actions/workflows/pythonpackage.yaml) [![Documentation Status](https://readthedocs.org/projects/spice-ev/badge/?version=latest)](https://spice-ev.readthedocs.io/en/latest/?badge=latest)\n\n# Introduction\n\nSpiceEV is a program to simulate different charging strategies for a defined set of vehicles and corresponding trips to and from charging stations. The output shows load profiles of the vehicle battery, the corresponding charging station, the grid connector as well as the electricity price and, if applicable, stationary batteries. Each vehicle is by default connected to a separate charging station. All charging stations of one location can be connected to one grid connector with a defined maximum power. Some charging strategies only allow for one grid connector, please check [charging strategies](https://spice-ev.readthedocs.io/en/latest/charging_strategies_incentives.html#charging-strategies) for more information.\n\nThe first step of SpiceEV is to generate a `scenario.json`. The `scenario.json` contains information about the vehicles and their specific attributes (e.g. battery capacity, charging curve, etc.) as well as their trips from and to a specific charging station (so-called vehicle events). Further, the charging stations attributes, such as its maximum power, the attached grid connector and the according electricity price are defined. Depending on the scenario, a certain foresight can be applied for grid operator signals. If applicable, stationary batteries with according capacities and c_rates can be defined and fixed load profiles or local generation time series attached to a grid connector can be imported from CSV files. The input `scenario.json` can be generated by one of the [generate scripts](https://spice-ev.readthedocs.io/en/latest/code.html#generate-modules).\n\n# Documentation\n\nThe full documentation can be found [here](https://spice-ev.readthedocs.io/en/latest/index.html)\n\n# Installation\n\nClone this repository. SpiceEV just has an optional dependency on\nMatplotlib. Everything else uses the Python (\u003e= 3.6) standard library.\n\nTo install `spice_ev` as a package run:\n```sh\npip install -e .\n```\n\n# Run Examples\n\nIn order to run a simulation with `simulate.py` a scenario JSON has to be generated first using `generate.py`.\nFor this three modes are available: \n\n* `statistics` Generate a scenario JSON with trips from statistical input parameters.\n* `csv` Generate a scenario JSON with trips listed in a CSV.\n* `simbev` Generate a scenario JSON from SimBEV results.\n\nShow all command line options:\n```sh\npython generate.py -h\npython simulate.py -h\n```\n\n## Quick Start\nGenerate a scenario and store it in a JSON. By default, the mode `statistics` is used.\n```sh\npython generate.py --output scenario.json\n```\n\nRun a simulation of this scenario using the `greedy` charging strategy and show\nplots of the results:\n```sh\npython simulate.py scenario.json --strategy greedy --visual\n```\n\n## Using Configuration Files\nThere are example configuration files in the folder **examples**. The required input/output must still be specified manually:\n```sh\npython generate.py --config examples/configs/generate.cfg\npython simulate.py --config examples/configs/simulate.cfg\n```\n\n## Generating Scenarios\nGenerate a 7-day scenario with 10 vehicles of different types and 15 minute timesteps:\n```sh\npython generate.py --days 7 --vehicles 6 golf --vehicles 4 sprinter --interval 15 --output scenario.json\n```\n\n## Including external Timeseries\nInclude a fixed load in the scenario:\n```sh\npython generate.py --include-fixed-load-csv fixed_load.csv --output scenario.json\n```\n\nPlease note that included file paths are relative to the scenario file location. Consider this directory structure:\n```sh\n├── scenarios\n│   ├── price\n│   │   ├── price.csv\n│   ├── my_scenario\n│   │   ├── fixed_load.csv\n│   │   ├── scenario.json\n```\n\nThe file `fixed_load.csv` is in the same directory as the `scenario.json`, hence no relative path is specified.\nTo include the price and fixed load timeseries:\n```sh\npython generate.py --include-price-csv ../price/price.csv --include-fixed-load-csv fixed_load.csv --output scenario.json\n```\n\n## Adding a Schedule to a Scenario\nCalculate and include schedule:\n```sh\npython generate_schedule.py --scenario scenario.json --input examples/data/grid_situation.csv --output schedules/schedule_example.csv\n```\n\n# Integrating SimBEV\nSpiceEV supports scenarios generated by the [SimBEV](https://github.com/rl-institut/simbev) tool. Convert SimBEV output files to a SpiceEV scenario: \n```sh\npython generate.py simbev --simbev /path/to/simbev/output/ --output scenario.json\n```\n\n# License\nSpiceEV is licensed under the MIT License as described in the file [LICENSE](https://github.com/rl-institut/spice_ev/blob/dev/LICENSE)\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["oemof","energy-system","modelling-framework"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/34246","html_url":"https://ost.ecosyste.ms/projects/34246"}