ChaProEV 1.2.7__tar.gz → 1.2.8__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {chaproev-1.2.7 → chaproev-1.2.8}/.gitignore +1 -0
- {chaproev-1.2.7/src/ChaProEV.egg-info → chaproev-1.2.8}/PKG-INFO +2 -3
- chaproev-1.2.8/README.md +160 -0
- chaproev-1.2.8/docs/define.md +183 -0
- chaproev-1.2.8/docs/general_parameters.md +153 -0
- chaproev-1.2.8/docs/index.md +1 -0
- chaproev-1.2.8/docs/mobility.md +4 -0
- chaproev-1.2.8/docs/scenario.md +280 -0
- chaproev-1.2.8/docs/using.md +32 -0
- chaproev-1.2.8/docs/variants.md +4 -0
- chaproev-1.2.8/mkdocs.yml +27 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/pyproject.toml +2 -2
- chaproev-1.2.8/scenarios/Mopo/XX_car.toml +756 -0
- chaproev-1.2.8/scenarios/Mopo/XX_truck.toml +437 -0
- chaproev-1.2.8/scenarios/Mopo/XX_van.toml +452 -0
- chaproev-1.2.8/scenarios/bus_test/XX_bus.toml +572 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/src/ChaProEV/ChaProEV.py +5 -6
- chaproev-1.2.8/src/ChaProEV/__init__.py +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/src/ChaProEV/charging.py +1 -1
- {chaproev-1.2.7 → chaproev-1.2.8}/src/ChaProEV/define.py +320 -321
- {chaproev-1.2.7 → chaproev-1.2.8}/src/ChaProEV/non_road.py +8 -8
- chaproev-1.2.8/src/ChaProEV/py.typed +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8/src/ChaProEV.egg-info}/PKG-INFO +2 -3
- {chaproev-1.2.7 → chaproev-1.2.8}/src/ChaProEV.egg-info/SOURCES.txt +15 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/.flake8 +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/.vscode/ltex.dictionary.en-US.txt +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/.vscode/settings.json +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/ChaProEV.pptx +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/ChaProEV.toml +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/ChaProEV_test_case_configuration_files.zip +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/Gemfile +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/LICENCE +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/MOPO_logo_chaproev on wht.svg +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/MOPO_logo_chaproev.png +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/MOPO_logo_chaproev.svg +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/MOPO_logo_main.svg +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/MOPO_logo_main_onwhite.svg +0 -0
- /chaproev-1.2.7/README.md → /chaproev-1.2.8/README-PC-28624.md +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/comparisons/comparison_template.toml +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/docs/ChaProEV_workflow.png +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/docs/Legs.png +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/docs/Locations.png +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/docs/Makefile +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/docs/Trips.png +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/docs/Vehicle_Temperature_correction_factor.svg +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/docs/_config.yml +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/docs/build/doctrees/environment.pickle +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/docs/build/doctrees/index.doctree +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/docs/build/html/.buildinfo +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/docs/build/html/_sources/index.rst.txt +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/docs/build/html/_static/alabaster.css +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/docs/build/html/_static/basic.css +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/docs/build/html/_static/custom.css +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/docs/build/html/_static/doctools.js +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/docs/build/html/_static/documentation_options.js +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/docs/build/html/_static/file.png +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/docs/build/html/_static/language_data.js +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/docs/build/html/_static/minus.png +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/docs/build/html/_static/plus.png +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/docs/build/html/_static/pygments.css +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/docs/build/html/_static/searchtools.js +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/docs/build/html/_static/sphinx_highlight.js +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/docs/build/html/genindex.html +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/docs/build/html/index.html +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/docs/build/html/objects.inv +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/docs/build/html/search.html +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/docs/build/html/searchindex.js +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/docs/charging.md +0 -0
- /chaproev-1.2.7/docs/consumption.md → /chaproev-1.2.8/docs/consumption-PC-28624.md +0 -0
- /chaproev-1.2.7/docs/make_variants.md → /chaproev-1.2.8/docs/consumption.md +0 -0
- /chaproev-1.2.7/docs/define.md → /chaproev-1.2.8/docs/define-PC-28624.md +0 -0
- /chaproev-1.2.7/docs/general_parameters.md → /chaproev-1.2.8/docs/general_parameters-PC-28624.md +0 -0
- /chaproev-1.2.7/docs/index.md → /chaproev-1.2.8/docs/index-PC-28624.md +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/docs/input.md +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/docs/make.bat +0 -0
- /chaproev-1.2.7/docs/outputs.md → /chaproev-1.2.8/docs/make_variants.md +0 -0
- /chaproev-1.2.7/docs/mobility.md → /chaproev-1.2.8/docs/mobility-PC-28624.md +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/docs/multiprocessing.md +0 -0
- /chaproev-1.2.7/docs/run_time.md → /chaproev-1.2.8/docs/outputs.md +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/docs/profiles.md +0 -0
- /chaproev-1.2.7/docs/writing.md → /chaproev-1.2.8/docs/run_time.md +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/docs/running_model.md +0 -0
- /chaproev-1.2.7/docs/scenario.md → /chaproev-1.2.8/docs/scenario-PC-28624.md +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/docs/scenarios_module.md +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/docs/source/index.rst +0 -0
- /chaproev-1.2.7/docs/using.md → /chaproev-1.2.8/docs/using-PC-28624.md +0 -0
- /chaproev-1.2.7/docs/variants.md → /chaproev-1.2.8/docs/variants-PC-28624.md +0 -0
- /chaproev-1.2.7/docs/weather.md → /chaproev-1.2.8/docs/weather-PC-28624.md +0 -0
- /chaproev-1.2.7/requirements_obsolete.txt → /chaproev-1.2.8/docs/weather.md +0 -0
- /chaproev-1.2.7/src/ChaProEV/__init__.py → /chaproev-1.2.8/docs/writing.md +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/eu-emblem-low-res.jpg +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/input/Mopo/car_own_driveway_percentage.csv +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/input/Mopo/fleets.csv +0 -0
- /chaproev-1.2.7/mkdocs.yml → /chaproev-1.2.8/mkdocs-PC-28624.yml +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/non-road/Mopo/NL_domestic-aviation_2040_Aviation gasoline.toml +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/non-road/Mopo/NL_domestic-aviation_2050_Aviation gasoline.toml +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/non-road/Mopo/scenario_demands.csv +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/non-road.toml +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/requirements.txt +0 -0
- /chaproev-1.2.7/src/ChaProEV/py.typed → /chaproev-1.2.8/requirements_obsolete.txt +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/scenarios/Mopo/Latvia_car_own_driveway_2050.toml +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/scenarios/Mopo/Switzerland_car_own_driveway_2050.toml +0 -0
- /chaproev-1.2.7/scenarios/Mopo/XX_bus.toml → /chaproev-1.2.8/scenarios/Mopo/XX_bus-PC-28624.toml +0 -0
- {chaproev-1.2.7/scenarios/bus_test → chaproev-1.2.8/scenarios/Mopo}/XX_bus.toml +0 -0
- /chaproev-1.2.7/scenarios/Mopo/XX_car.toml → /chaproev-1.2.8/scenarios/Mopo/XX_car-PC-28624.toml +0 -0
- /chaproev-1.2.7/scenarios/Mopo/XX_truck.toml → /chaproev-1.2.8/scenarios/Mopo/XX_truck-PC-28624.toml +0 -0
- /chaproev-1.2.7/scenarios/Mopo/XX_van.toml → /chaproev-1.2.8/scenarios/Mopo/XX_van-PC-28624.toml +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/scenarios/local_impact_BEVs/baseline.toml +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/setup.cfg +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/siec.csv +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/src/ChaProEV/consumption.py +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/src/ChaProEV/make_variants.py +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/src/ChaProEV/mobility.py +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/src/ChaProEV/profiles.py +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/src/ChaProEV/run_time.py +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/src/ChaProEV/scenarios_module.py +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/src/ChaProEV/weather.py +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/src/ChaProEV/writing.py +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/src/ChaProEV.egg-info/PKG-INFO-PC-28624 +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/src/ChaProEV.egg-info/PKG-INFO-PC-28624-2 +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/src/ChaProEV.egg-info/SOURCES-PC-28624-2.txt +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/src/ChaProEV.egg-info/SOURCES-PC-28624.txt +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/src/ChaProEV.egg-info/dependency_links.txt +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/src/ChaProEV.egg-info/requires-PC-28624-2.txt +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/src/ChaProEV.egg-info/requires-PC-28624.txt +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/src/ChaProEV.egg-info/requires.txt +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/src/ChaProEV.egg-info/top_level.txt +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/test_bus_moility_matrices/bus_weekday_in_holiday_week.csv +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/test_bus_moility_matrices/bus_weekday_in_workweek.csv +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/test_bus_moility_matrices/bus_weekend_in_holiday_week.csv +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/test_bus_moility_matrices/bus_weekend_in_workweek.csv +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/tests/test_battery_space.py +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/tests/test_charge_and_consumption.py +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/tests/test_empty_values.py +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/tests/test_same_output.py +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/todo.txt +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/variants/Mopo/XX_car.csv +0 -0
- {chaproev-1.2.7 → chaproev-1.2.8}/variants/Mopo.toml +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ChaProEV
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.8
|
|
4
4
|
Summary: ChaProEV: Charging Profiles of Electric Vehicles
|
|
5
5
|
Author-email: Omar Usmani <Omar.Usmani@TNO.nl>
|
|
6
6
|
Project-URL: Homepage, https://github.com/TNO/ChaProEV
|
|
@@ -37,8 +37,7 @@ This repository contains the ChaProEV (Charging Profiles of Electric Vehicles)
|
|
|
37
37
|
model.
|
|
38
38
|
|
|
39
39
|
## Status
|
|
40
|
-
The ChaProEV model is
|
|
41
|
-
has been used in projects and can be used in future projects.
|
|
40
|
+
The ChaProEV model is under construction and not yet ready for use.
|
|
42
41
|
Please contact the authors below if you have questions or requests to get
|
|
43
42
|
model runs at some point.
|
|
44
43
|
|
chaproev-1.2.8/README.md
ADDED
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
# **ChaProEV**
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
<center>
|
|
7
|
+
<img src=MOPO_logo_chaproev.svg>
|
|
8
|
+
</center>
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
This repository contains the ChaProEV (Charging Profiles of Electric Vehicles)
|
|
13
|
+
model.
|
|
14
|
+
|
|
15
|
+
## Status
|
|
16
|
+
The ChaProEV model is under construction and not yet ready for use.
|
|
17
|
+
Please contact the authors below if you have questions or requests to get
|
|
18
|
+
model runs at some point.
|
|
19
|
+
|
|
20
|
+
## Authors and contact
|
|
21
|
+
Omar Usmani (Omar.Usmani@TNO.nl)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
## Licence
|
|
25
|
+
|
|
26
|
+
ChaProEV is released under the Apache 2.0 license.
|
|
27
|
+
All accompanying documentation and manual are released under the
|
|
28
|
+
Creative Commons BY-SA 4.0 license.
|
|
29
|
+
|
|
30
|
+
## Requirements
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
(See requirements.txt file for versions (corresponding to Python 3.11.1, which
|
|
34
|
+
is the version used for developing and testing the model))
|
|
35
|
+
|
|
36
|
+
## Installation and use
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
You can install ChaProEV with pip:
|
|
40
|
+
```
|
|
41
|
+
pip install ChaProEV
|
|
42
|
+
```
|
|
43
|
+
And then import ChaProEV in your code.
|
|
44
|
+
You can of course use the various functions of ChaProEV, but the general
|
|
45
|
+
use case is to run the model and focus on defining your case through the
|
|
46
|
+
scenarios and their variants.
|
|
47
|
+
In that case, the only piece of code you need is as follows (you just need
|
|
48
|
+
to put the name of the folder where you put your case scenarios instead of the
|
|
49
|
+
'Mopo' example).
|
|
50
|
+
```python
|
|
51
|
+
from ChaProEV import ChaProEV
|
|
52
|
+
|
|
53
|
+
if __name__ == '__main__':
|
|
54
|
+
case_name: str = 'Mopo'
|
|
55
|
+
ChaProEV.run_ChaProEV(case_name)
|
|
56
|
+
```
|
|
57
|
+
If you installed ChaProEV with pip, then the requirements
|
|
58
|
+
should be installed as well (see requirements.txt file if you have issues
|
|
59
|
+
or use the contact below).
|
|
60
|
+
To run the model, you need to put a ChaProEV.toml configuration
|
|
61
|
+
in the folder where you run your model. You also need to have at least one scenario in your scenario/case_name (e.g. scenario/Mopo) folder. A
|
|
62
|
+
If you want to create varaints, then you need to add a case.toml (e.g. Mopo.toml) file in the variants folder and put a variant file in the variants/case (e.g. variants/Mopo) folder.
|
|
63
|
+
If you want to compute fleet-level values and/or do a car owndriveway/street charging split, you need to put some files in the input/case (e.g. input/Mopo) folder.
|
|
64
|
+
You can use the examples provided in this repository. You can also
|
|
65
|
+
unzip [this file](https://github.com/TNO/ChaProEV/blob/main/ChaProEV_test_case_configuration_files.zip)
|
|
66
|
+
into your working folder and use 'test_case' as your case name:
|
|
67
|
+
```python
|
|
68
|
+
from ChaProEV import ChaProEV
|
|
69
|
+
|
|
70
|
+
if __name__ == '__main__':
|
|
71
|
+
case_name: str = 'test_case'
|
|
72
|
+
ChaProEV.run_ChaProEV(case_name)
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
For examples of running ChaProEV and more configuration files,
|
|
78
|
+
you can visit the [ChaProEV runs repository](https://github.com/TNO/ChaProEV_runs).
|
|
79
|
+
|
|
80
|
+
## General approach and structure
|
|
81
|
+
- Split into scenarios, modules/computations, output profiles
|
|
82
|
+
- USer can define a case (series of scenarios) without having to do anything
|
|
83
|
+
with the code. They just need to edit/add scenarios and variants.
|
|
84
|
+
<center>
|
|
85
|
+
<img src=ChaProEV_workflow.png>
|
|
86
|
+
</center>
|
|
87
|
+
|
|
88
|
+
## Documentation
|
|
89
|
+
|
|
90
|
+
The docmentation can be found [here](https://tno.github.io/ChaProEV/)
|
|
91
|
+
## **Context, goals, and future developments**
|
|
92
|
+
|
|
93
|
+
### **Driver**
|
|
94
|
+
The primary driver for the publication and development of ChaProEV in this
|
|
95
|
+
repository is the participation in the
|
|
96
|
+
[Mopo](https://www.tools-for-energy-system-modelling.org/) project (funded from
|
|
97
|
+
European Climate,
|
|
98
|
+
Infrastructure and Environment Executive Agency under the European Union’s
|
|
99
|
+
HORIZON Research and Innovation Actions under grant agreement N°101095998).
|
|
100
|
+
|
|
101
|
+
### **Goal**
|
|
102
|
+
The main goal of providing this repository is transparency regarding the
|
|
103
|
+
assumptions and computations of the ChaProEV model.
|
|
104
|
+
|
|
105
|
+
### **Uses outside Mopo**
|
|
106
|
+
|
|
107
|
+
#### **Prior to Mopo**
|
|
108
|
+
|
|
109
|
+
1. [Afspraken maken:
|
|
110
|
+
Van data tot
|
|
111
|
+
informatie
|
|
112
|
+
Informatiebehoeften, datastandaarden en
|
|
113
|
+
protocollen voor provinciale
|
|
114
|
+
systeemstudies – Deel II technische
|
|
115
|
+
rapportage. Nina Voulis, Joeri Vendrik, Reinier van der Veen, Alexander Wirtz, Michiel Haan, Charlotte von Meijenfeldt,
|
|
116
|
+
Edwin Matthijssen, Sebastiaan Hers, Ewoud Werkman (CE Delft, TNO, Quintel), April 2021](https://cedelft.eu/wp-content/uploads/sites/2/2021/07/CE_Delft_200227_Afspraken_maken_Van_data_tot_informatie_Deel-2.pdf) where a previous version of ChaProEV was used to provide charging profiles of electric vehicles at the province level (for the Dutch proivinces of North Holland and Limburg)
|
|
117
|
+
|
|
118
|
+
2. [Elektrisch rijden personenauto's & logistiek: Trends en impact op het elektriciteitssyteem. Hein de Wilde, Charlotte Smit, Omar Usmani, Sebastiaan Hers (TNO), Marieke Nauta (PBL), August 2022](https://publications.tno.nl/publication/34640002/AVDCKb/TNO-2022-P11511.pdf) where a previous version of ChaProEV was used to identify potential moments where charging electric cars could result in local (i.e. neighbourhood/transformer level) network issues and see if these issues could be solved.
|
|
119
|
+
|
|
120
|
+
3. [Verlagen van lokale impact laden elektrisch vervoer: De waarde en haalbarheid van potentiële oplossingen, Charlotte Smit, Hein de Wilde, Richard Westerga, Omar Usmani, Sebastiaan Hers, TNO M12721, December 2022](https://energy.nl/wp-content/uploads/kip-local-impact-ev-charging-final-1.2.pdf) where a previous version of ChaProEV was used to identify and quantify potential solutions to potential local (i.e. neighbourhood/transformer level) issues due to a possible large-scale adoption of electric cars (with illustrative examples for neighbourhoods in ihe cities of Amsterdam and Lelystad).
|
|
121
|
+
|
|
122
|
+
4. [TRADE-RES](https://traderes.eu/). A previous version of ChaProEV was used to generate reference charging profiles for a number of European countries, based on statistical differences per country.
|
|
123
|
+
Results are in the [TRADE-RES scenario database](https://zenodo.org/records/10829706)
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
#### **After/during Mopo**
|
|
128
|
+
1. I.S. Jimenez, D. Ribó-Pérez, M. Cvetkovic, J. Kochems, C. Schimeczek,
|
|
129
|
+
L. de Vries,[Can an energy only market enable resource ade-
|
|
130
|
+
quacy in a decarbonized power system? a co-simulation with
|
|
131
|
+
two agent-based-models](https://www.sciencedirect.com/science/article/pii/S0306261924000783)
|
|
132
|
+
Applied Energy 360 (2024) 122695
|
|
133
|
+
2. S. Johanndeiter, N. Helistö, J. Kiviluoma, V. Bertsch, [Price formation
|
|
134
|
+
and intersectoral distributional eects in a fully decarbonised european
|
|
135
|
+
electricity market](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=48874423)
|
|
136
|
+
3. Sanchez Jimenez, Ingrid and Johanndeiter, Silke and de Vries, Laurens, Capacity Remuneration Mechanisms for Power Systems in Transition. Available at SSRN: https://ssrn.com/abstract=5196543 or http://dx.doi.org/10.2139/ssrn.5196543
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
#### **Future**
|
|
140
|
+
The ChaProEV will be used in other projects that will be listed here, if deemed
|
|
141
|
+
relevant and apprpriate within the context of these projects.
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
## Acknowledgments
|
|
146
|
+
|
|
147
|
+
<hr>
|
|
148
|
+
<center>
|
|
149
|
+
<table width=500px frame="none">
|
|
150
|
+
<tr>
|
|
151
|
+
<td valign="middle" width=100px>
|
|
152
|
+
<img src=eu-emblem-low-res.jpg alt="EU emblem" width=100%></td>
|
|
153
|
+
<img src=MOPO_logo_main.svg width = 25%>
|
|
154
|
+
<td valign="middle">This project was partly develop under funding from the
|
|
155
|
+
European Climate,
|
|
156
|
+
Infrastructure and Environment Executive Agency under the European Union’s
|
|
157
|
+
HORIZON Research and Innovation Actions under grant agreement N°101095998.</td>
|
|
158
|
+
<tr>
|
|
159
|
+
</table>
|
|
160
|
+
</center>
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
|
|
2
|
+
# Classes
|
|
3
|
+
|
|
4
|
+
## Leg
|
|
5
|
+
This class defines the legs and their properties, from a scenario
|
|
6
|
+
file that contains a list of instances and their properties.
|
|
7
|
+
Legs are point-to-point vehicle movements (i.e. movements where
|
|
8
|
+
the vehicle goes from a start location and ends/stops at an end location).
|
|
9
|
+
|
|
10
|
+
### Parameters
|
|
11
|
+
The parameters of a leg are:
|
|
12
|
+
|
|
13
|
+
1. **Name:** The name of the leg
|
|
14
|
+
2. **Vehicle:** The vehicle that runs the leg. If this does not correspond
|
|
15
|
+
to the [scenario vehicle name](scenario.md#vehicle-name), then the leg is not
|
|
16
|
+
declared. Note that when running a
|
|
17
|
+
scenario, you select one vehicle, so this is in principle not necessary.
|
|
18
|
+
The reason for having this is to allow the user to copy the baseline file
|
|
19
|
+
and keep the location definitions that are not used for this scenario but
|
|
20
|
+
might be so for another, thereby reducing the need for changes between
|
|
21
|
+
scenarios.
|
|
22
|
+
3. **Distance:** The distance driven during the leg (in kilometers)
|
|
23
|
+
4. **Duration:** How long it takes to drive the leg (in hours)
|
|
24
|
+
5. **Hour in day factors:** These factors add a correction to the vehicle
|
|
25
|
+
consumption that depend on the hour in day (the first is for 00:00 to 00:59,
|
|
26
|
+
last for 23:00 to 23:59). Note that these are actual hours,
|
|
27
|
+
not hours in the user day (which can start and end at other moments than
|
|
28
|
+
midnight). This is used to take into account things like traffic jams.
|
|
29
|
+
The default value is 1. ***This factor is a placeholder and is currently not
|
|
30
|
+
in use.***
|
|
31
|
+
|
|
32
|
+
## Location
|
|
33
|
+
This class defines the locations where the vehicles are
|
|
34
|
+
and their properties, from a scenario
|
|
35
|
+
file that contains a list of instances and their proper.
|
|
36
|
+
|
|
37
|
+
### Parameters
|
|
38
|
+
|
|
39
|
+
The parameters of a location are:
|
|
40
|
+
|
|
41
|
+
1. **Name**: The name of the location.
|
|
42
|
+
2. **Vehicle:** The vehicle that uses the location. If this does not correspond
|
|
43
|
+
to the [scenario vehicle name](scenario.md#vehicle-name), then the trip is not
|
|
44
|
+
declared. Note that when running a
|
|
45
|
+
scenario, you select one vehicle, so this is in principle not necessary.
|
|
46
|
+
The reason for having this is to allow the user to copy the baseline file
|
|
47
|
+
and keep the location definitions that are not used for this scenario but
|
|
48
|
+
might be so for another, thereby reducing the need for changes between
|
|
49
|
+
scenarios.
|
|
50
|
+
3. **Connectivity:** A value between 0 and 1 (0% to 100%) that tells the
|
|
51
|
+
probability that a vehicle parked at this location is connected to a
|
|
52
|
+
charger.
|
|
53
|
+
4. **Charging power:** The (peak) charging power of the charger at this
|
|
54
|
+
location (in kW).
|
|
55
|
+
5. **Charger efficiency:** A value between 0 and 1 (0% to 100%) that tells how
|
|
56
|
+
much of the power drawn from the network is delivered to the battery of the
|
|
57
|
+
vehicle.
|
|
58
|
+
6. **Latitude:** The latitude of the location. ***This factor is a placeholder
|
|
59
|
+
and is currently not in use.***
|
|
60
|
+
7. **Longitude:** The longitude of the location. ***This factor is a
|
|
61
|
+
placeholder and is currently not in use.***
|
|
62
|
+
8. **Base charging price:** The base/reference (i.e. before
|
|
63
|
+
flexibility/temporal changes) charging price at this location, in €/kWh.
|
|
64
|
+
***This factor is a placeholder and is currently not in use.***
|
|
65
|
+
9. **Charging desirability:** A value between 0 and 1 (0% to 100%) that tells
|
|
66
|
+
how much the users like to charge at this location.
|
|
67
|
+
***This factor is a placeholder and is currently not in use.***
|
|
68
|
+
10. **Percentage in location at run start:** A value between 0 and 1
|
|
69
|
+
(0% to 100%) that tells which percentage of the vehicles start the run there.
|
|
70
|
+
This is used if we will that in directly instead of computing it. The decision
|
|
71
|
+
t use this is controlled by the compute_start_location_split parameter in
|
|
72
|
+
the [mobility](mobility.md#module-parameters) module.
|
|
73
|
+
|
|
74
|
+
## Trip
|
|
75
|
+
|
|
76
|
+
This class defines the trips and their properties, from a scenario
|
|
77
|
+
file that contains a list of instances and their properties.
|
|
78
|
+
Trips are collections of legs that take place on a given day.
|
|
79
|
+
Note that this day does not necessarily start (and end) at midnight,
|
|
80
|
+
but can start (and end) at an hour that is more logical/significant for the
|
|
81
|
+
vehicle user (it could for example be 05:00 for car drivers).
|
|
82
|
+
This [day start hour](scenario.md#day_start_hour)
|
|
83
|
+
parameter is universal for all trips
|
|
84
|
+
This value is set in the scenario files.
|
|
85
|
+
|
|
86
|
+
### Parameters
|
|
87
|
+
1. **Name**: The name of the trip.
|
|
88
|
+
2. **Vehicle:** The vehicle that does the trip. If this does not correspond
|
|
89
|
+
to the [scenario vehicle name](scenario.md#vehicle-name), then the trip is not
|
|
90
|
+
declared. Note that when running
|
|
91
|
+
a scenario, you select one vehicle, so this is in principle not necessary.
|
|
92
|
+
The reason for having this is to allow the user to copy the baseline file
|
|
93
|
+
and keep the trip definitions that are not used for this scenario but
|
|
94
|
+
might be so for another, thereby reducing the need for changes between
|
|
95
|
+
scenarios.
|
|
96
|
+
3. **Legs:** A list of the legs in the trip.
|
|
97
|
+
4. **Time between legs:** A list of the time spent at the arrival locations
|
|
98
|
+
between each leg (in hours).
|
|
99
|
+
5. **Percentage station users:**A value between 0 and 1
|
|
100
|
+
(0% to 100%) that tells us which percentage of users use fast charging
|
|
101
|
+
stations.
|
|
102
|
+
***This factor is a placeholder and is currently not in use.***
|
|
103
|
+
6. **Start probabilities:** A list of values between 0 and 1 (0%-100%) adding
|
|
104
|
+
up to 1/100% that tells us what the probability of starting the trip is at
|
|
105
|
+
a given hour. Note that the hours start at
|
|
106
|
+
[day start hour](scenario.md#day_start_hour), not at
|
|
107
|
+
midnight.
|
|
108
|
+
7. **Repeated sequence:** A list of repeated legs
|
|
109
|
+
(which should follow each other) that form a repeated sequence.
|
|
110
|
+
8. **Repetition amounts:** How often
|
|
111
|
+
the repeated sequence is repeated. This is a list, with one value per leg
|
|
112
|
+
repetition (the nth element corresponds to the nth appearance of
|
|
113
|
+
the sequence in the leg list).
|
|
114
|
+
9. **Time between repetitions:** The time between repetitions of each
|
|
115
|
+
repeated sequence (in hours). This is a list, with one value per leg
|
|
116
|
+
repetition (the nth element corresponds to the nth appearance of
|
|
117
|
+
the sequence in the leg list).
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
### Mobility matrix
|
|
121
|
+
|
|
122
|
+
The main aim of the trip initialization/declaration is to create a mobility
|
|
123
|
+
matrix for the trip.
|
|
124
|
+
This mobility matrix has, for all combinations of possible start and end
|
|
125
|
+
locations (i.e.
|
|
126
|
+
locations connected by a leg in the trip) and for each hour in day number
|
|
127
|
+
(starting at the [day start hour](scenario.md#day_start_hour)), the following
|
|
128
|
+
quantities:
|
|
129
|
+
1. **Duration:** The duration (in hours) of a leg between the start location
|
|
130
|
+
and the end location.
|
|
131
|
+
2. **Distance:** The distance (in kilometers) of a leg between the start
|
|
132
|
+
location.
|
|
133
|
+
3. **Weighted distance:** The weighted distance (in kilometers) of a leg
|
|
134
|
+
between the start location and the end location. This corresponds to using
|
|
135
|
+
different [road types](scenario.md#road_types), with given
|
|
136
|
+
[weights](scenario.md#weights) and given [mixes](scenario.md#mix) to account
|
|
137
|
+
for the fact that vehicles consume more on some road types.
|
|
138
|
+
4. **Departures amount**: The chance that a vehicle, in a given hour, leaves
|
|
139
|
+
the start location,
|
|
140
|
+
going to the end location (amount and chance are equivalent
|
|
141
|
+
here, as we compute on an individual vehicle basis).
|
|
142
|
+
5. **Departures kilometers:** The kilometers driven by vehicles leaving the
|
|
143
|
+
start location at a given hour and going to the end location. This is given
|
|
144
|
+
by the departures amount times the distance.
|
|
145
|
+
6. **Departures weighted kilometers:** The weighted (by road type) kilometers
|
|
146
|
+
driven by vehicles leaving the start location at a given hour and going to the
|
|
147
|
+
end location. This is given
|
|
148
|
+
by the departures amount times the weighted distance.
|
|
149
|
+
7. **Arrivals amount**: The chance that a vehicle, in a given hour,
|
|
150
|
+
arrives to the end
|
|
151
|
+
location,
|
|
152
|
+
having started the start location (amount and chance are equivalent
|
|
153
|
+
here, as we compute on an individual vehicle basis).
|
|
154
|
+
8. **Arrivals kilometers:** The kilometers driven by vehicles arriving to the
|
|
155
|
+
end location at a given hour, having started at the start location.
|
|
156
|
+
This is given
|
|
157
|
+
by the arrivals amount times the distance.
|
|
158
|
+
9. **Arrivals weighted kilometers:** The weighted (by road type) kilometers
|
|
159
|
+
driven by vehicles arriving to the end location at a given hour, having
|
|
160
|
+
started at the start location. This is given
|
|
161
|
+
by the arrivals amount times the weighted distance.
|
|
162
|
+
|
|
163
|
+
The model also produces a version of this mobility matrix for the whole
|
|
164
|
+
run (which is essentially a copy of the above matrix). This run
|
|
165
|
+
mobility matrix is the mobility matrix if the trip had a probability of 1
|
|
166
|
+
for the whole run.
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
#### Leg repetitions
|
|
172
|
+
|
|
173
|
+
Is repeat of leg or two legs????
|
|
174
|
+
[0, 5, 5, 0]
|
|
175
|
+
If next leg is also repeated/still has repeats left, then it is repeated after the leg
|
|
176
|
+
in question
|
|
177
|
+
so when putting a leg, check if it is repeated. If so, check if the next is repeated,
|
|
178
|
+
until you have no repeats (or end the list). Add on of each repeated legs
|
|
179
|
+
then number of repeats goes down by one and redo
|
|
180
|
+
Have one trip per day type for non-cars
|
|
181
|
+
|
|
182
|
+
Reference to day start hour
|
|
183
|
+
cross-links with scenario
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
# Purpose
|
|
2
|
+
The purpose of the ChaProEV.toml file is to set parameters
|
|
3
|
+
that are common for all your scenarios.
|
|
4
|
+
This page describes the various parameters.
|
|
5
|
+
You can use the navigation bar on the left to go directly to a group
|
|
6
|
+
of parameters (or a given parameter).
|
|
7
|
+
|
|
8
|
+
## variants
|
|
9
|
+
The variants section of the configuration file sets parameters
|
|
10
|
+
to create scenario [variants](variants.md) (see that page for
|
|
11
|
+
details).
|
|
12
|
+
|
|
13
|
+
### use_variants
|
|
14
|
+
Setting the use_variants parameters to true creates variants,
|
|
15
|
+
while setting it to false skips variant creation althogether.
|
|
16
|
+
|
|
17
|
+
### csv_version
|
|
18
|
+
|
|
19
|
+
Setting the csv_version to true parameters makes you use csv files
|
|
20
|
+
to define your variants (in a folder within the variants folder: this
|
|
21
|
+
folder needs to have the same name as your case). Setting it to false makes you use a toml file in the variants folder (case_name.toml).
|
|
22
|
+
|
|
23
|
+
### use_years_in_profiles
|
|
24
|
+
|
|
25
|
+
This is used to create different variants per year when doing
|
|
26
|
+
[car home own driveway and street parking splits](car_home_own_driveway_splits.md)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
## parallel_processing
|
|
32
|
+
This parallel processing section of the configuration file sets parameters to manage the [parallel processing/multiprocessing](multiprocessing.md) of the model (which reduces the model run time, see link for details).
|
|
33
|
+
|
|
34
|
+
### set_amount_of_processes
|
|
35
|
+
|
|
36
|
+
Set this as false if you want the amount of parallel processes to be determined by the model (via the [multiprocessing standard library of Python](https://docs.python.org/3/library/multiprocessing.html)). Set this to true if you want to set the amount of processes yourself.
|
|
37
|
+
|
|
38
|
+
### amount_for_scenarios
|
|
39
|
+
|
|
40
|
+
If you put true in set_amount_of_processes, provide a number of parallel processes here to run scenarios in parallel.
|
|
41
|
+
|
|
42
|
+
### amount_for_pickle_saves
|
|
43
|
+
If you put true in set_amount_of_processes, provide a number of parallel processes here to save the pickle output saves to other formats in parallel (see [writing module](writing.md) for details).
|
|
44
|
+
|
|
45
|
+
## interim_files
|
|
46
|
+
This concerns parameters for saving intermediary results to files.
|
|
47
|
+
|
|
48
|
+
### pickle
|
|
49
|
+
Set this to true to save interim results to pickle files.
|
|
50
|
+
Set this to false not to do this.
|
|
51
|
+
### consumption_tables_frequencies
|
|
52
|
+
Provide a list of consumption
|
|
53
|
+
tables frequencies (see [consumption module](consumption.md)). The default is the following list ['hourly', 'daily', 'weekly', 'monthly', 'yearly']
|
|
54
|
+
### save_consumption_table
|
|
55
|
+
Provide a list of booleans (true or false) to save a given frequency to file (this list needs to have the same length as the above list): true save a file for that frequency and false does not.
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
## profile_dataframe
|
|
61
|
+
|
|
62
|
+
### headers
|
|
63
|
+
### fleet_headers
|
|
64
|
+
### do_fleet_tables
|
|
65
|
+
### fleet_file_name
|
|
66
|
+
|
|
67
|
+
## sessions_dataframe
|
|
68
|
+
|
|
69
|
+
### properties
|
|
70
|
+
### dataframe_headers
|
|
71
|
+
### run_dataframe_headers
|
|
72
|
+
### display_dataframe_headers
|
|
73
|
+
### display_dataframe_index
|
|
74
|
+
### fleet_display_dataframe_headers
|
|
75
|
+
|
|
76
|
+
## plots
|
|
77
|
+
### vehicle_temperature_efficiency
|
|
78
|
+
#### style
|
|
79
|
+
#### source_data_folder
|
|
80
|
+
#### source_data_file
|
|
81
|
+
#### fit_color
|
|
82
|
+
#### fit_line_size
|
|
83
|
+
#### geotab_data_color
|
|
84
|
+
#### geotab_data_size
|
|
85
|
+
#### title_size
|
|
86
|
+
|
|
87
|
+
## files
|
|
88
|
+
### input_root
|
|
89
|
+
### output_root
|
|
90
|
+
### groupfile_root
|
|
91
|
+
|
|
92
|
+
### figures
|
|
93
|
+
#### dpi
|
|
94
|
+
#### outputs
|
|
95
|
+
|
|
96
|
+
### dataframe_outputs
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
## maps
|
|
100
|
+
## map_data_folder
|
|
101
|
+
## area_data_file_name
|
|
102
|
+
## general_exclusion_codes
|
|
103
|
+
## border_data_file_prefix
|
|
104
|
+
## border_data_file_suffix
|
|
105
|
+
## points_data_file_prefix
|
|
106
|
+
## points_data_file_suffix
|
|
107
|
+
## country_code_header
|
|
108
|
+
## country_code_header_in_map_data
|
|
109
|
+
## heat_bar_map
|
|
110
|
+
|
|
111
|
+
## colors
|
|
112
|
+
|
|
113
|
+
## color_bars
|
|
114
|
+
|
|
115
|
+
## unit_conversions
|
|
116
|
+
|
|
117
|
+
## numbers
|
|
118
|
+
|
|
119
|
+
## consumption
|
|
120
|
+
### energy_carriers
|
|
121
|
+
### consumption_table_name
|
|
122
|
+
### time_header
|
|
123
|
+
### distance_header
|
|
124
|
+
### fleet_distance_header
|
|
125
|
+
### energy_carriers_consumption_names
|
|
126
|
+
### fleet_energy_carriers_consumption_names
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
## home_type
|
|
130
|
+
### do_car_home_type_split
|
|
131
|
+
### percentages_file
|
|
132
|
+
### index_name
|
|
133
|
+
### own_driveway_name
|
|
134
|
+
### on_street_name
|
|
135
|
+
### profiles_index
|
|
136
|
+
### sessions_index
|
|
137
|
+
### sessions_values_columns
|
|
138
|
+
|
|
139
|
+
## sessions
|
|
140
|
+
### produce
|
|
141
|
+
### generate_profiles
|
|
142
|
+
## standard_profiles
|
|
143
|
+
### produce
|
|
144
|
+
|
|
145
|
+
## progress_bars
|
|
146
|
+
### display_scenario_run
|
|
147
|
+
### scenario_run_description
|
|
148
|
+
### display_saving_pool_run
|
|
149
|
+
### saving_pool_run_description
|
|
150
|
+
|
|
151
|
+
## discharge
|
|
152
|
+
### no_discharge_efficiency_output
|
|
153
|
+
### no_charge_efficiency_output
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# ChaProEV
|