ChaProEV 1.2.5__tar.gz → 1.2.6__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.5 → chaproev-1.2.6}/.gitignore +2 -1
- {chaproev-1.2.5 → chaproev-1.2.6}/ChaProEV.toml +1 -1
- {chaproev-1.2.5/src/ChaProEV.egg-info → chaproev-1.2.6}/PKG-INFO +13 -3
- {chaproev-1.2.5 → chaproev-1.2.6}/README.md +11 -1
- {chaproev-1.2.5 → chaproev-1.2.6}/pyproject.toml +1 -1
- {chaproev-1.2.5 → chaproev-1.2.6}/requirements.txt +1 -1
- chaproev-1.2.6/scenarios/bus_test/XX_bus.toml +572 -0
- chaproev-1.2.6/src/ChaProEV/py.typed +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6/src/ChaProEV.egg-info}/PKG-INFO +13 -3
- {chaproev-1.2.5 → chaproev-1.2.6}/src/ChaProEV.egg-info/SOURCES.txt +6 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/src/ChaProEV.egg-info/requires.txt +1 -1
- chaproev-1.2.6/test_bus_moility_matrices/bus_weekday_in_holiday_week.csv +97 -0
- chaproev-1.2.6/test_bus_moility_matrices/bus_weekday_in_workweek.csv +97 -0
- chaproev-1.2.6/test_bus_moility_matrices/bus_weekend_in_holiday_week.csv +97 -0
- chaproev-1.2.6/test_bus_moility_matrices/bus_weekend_in_workweek.csv +97 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/.flake8 +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/.vscode/ltex.dictionary.en-US.txt +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/.vscode/settings.json +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/ChaProEV.pptx +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/Gemfile +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/LICENCE +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/MOPO_logo_chaproev on wht.svg +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/MOPO_logo_chaproev.png +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/MOPO_logo_chaproev.svg +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/MOPO_logo_main.svg +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/MOPO_logo_main_onwhite.svg +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/comparisons/comparison_template.toml +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/ChaProEV_workflow.png +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/Legs.png +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/Locations.png +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/Makefile +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/README.md +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/Trips.png +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/Vehicle_Temperature_correction_factor.svg +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/_config.yml +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/build/doctrees/environment.pickle +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/build/doctrees/index.doctree +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/build/html/.buildinfo +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/build/html/_sources/index.rst.txt +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/build/html/_static/alabaster.css +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/build/html/_static/basic.css +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/build/html/_static/custom.css +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/build/html/_static/doctools.js +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/build/html/_static/documentation_options.js +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/build/html/_static/file.png +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/build/html/_static/language_data.js +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/build/html/_static/minus.png +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/build/html/_static/plus.png +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/build/html/_static/pygments.css +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/build/html/_static/searchtools.js +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/build/html/_static/sphinx_highlight.js +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/build/html/genindex.html +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/build/html/index.html +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/build/html/objects.inv +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/build/html/search.html +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/build/html/searchindex.js +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/charging.md +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/consumption.md +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/define.md +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/index.md +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/make.bat +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/mobility.md +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/running_model,md +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/scenario.md +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/source/index.rst +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/using.md +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/docs/weather.md +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/eu-emblem-low-res.jpg +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/mkdocs.yml +0 -0
- /chaproev-1.2.5/src/ChaProEV/__init__.py → /chaproev-1.2.6/requirements_obsolete.txt +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/scenarios/Mopo/Latvia_car_own_driveway_2050.toml +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/scenarios/Mopo/Switzerland_car_own_driveway_2050.toml +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/scenarios/Mopo/XX_bus.toml +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/scenarios/Mopo/XX_car.toml +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/scenarios/Mopo/XX_truck.toml +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/scenarios/Mopo/XX_van.toml +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/scenarios/local_impact_BEVs/baseline.toml +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/setup.cfg +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/src/ChaProEV/ChaProEV.py +0 -0
- /chaproev-1.2.5/src/ChaProEV/py.typed → /chaproev-1.2.6/src/ChaProEV/__init__.py +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/src/ChaProEV/charging.py +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/src/ChaProEV/consumption.py +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/src/ChaProEV/define.py +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/src/ChaProEV/make_variants.py +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/src/ChaProEV/mobility.py +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/src/ChaProEV/profiles.py +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/src/ChaProEV/run_time.py +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/src/ChaProEV/scenarios_module.py +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/src/ChaProEV/weather.py +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/src/ChaProEV/writing.py +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/src/ChaProEV.egg-info/PKG-INFO-PC-28624 +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/src/ChaProEV.egg-info/PKG-INFO-PC-28624-2 +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/src/ChaProEV.egg-info/SOURCES-PC-28624-2.txt +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/src/ChaProEV.egg-info/SOURCES-PC-28624.txt +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/src/ChaProEV.egg-info/dependency_links.txt +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/src/ChaProEV.egg-info/requires-PC-28624-2.txt +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/src/ChaProEV.egg-info/requires-PC-28624.txt +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/src/ChaProEV.egg-info/top_level.txt +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/tests/test_battery_space.py +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/tests/test_charge_and_consumption.py +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/tests/test_empty_values.py +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/tests/test_same_output.py +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/todo.txt +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/variants/Mopo/XX_car.csv +0 -0
- {chaproev-1.2.5 → chaproev-1.2.6}/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.6
|
|
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
|
|
@@ -12,7 +12,7 @@ Description-Content-Type: text/markdown
|
|
|
12
12
|
License-File: LICENCE
|
|
13
13
|
Requires-Dist: bs4>=0.0.2
|
|
14
14
|
Requires-Dist: cdsapi>=0.7.4
|
|
15
|
-
Requires-Dist: ETS_CookBook>=1.1.
|
|
15
|
+
Requires-Dist: ETS_CookBook>=1.1.2
|
|
16
16
|
Requires-Dist: matplotlib>=3.9.2
|
|
17
17
|
Requires-Dist: numpy>=2.1.3
|
|
18
18
|
Requires-Dist: pandas>=2.2.3
|
|
@@ -78,7 +78,16 @@ if __name__ == '__main__':
|
|
|
78
78
|
case_name: str = 'Mopo'
|
|
79
79
|
ChaProEV.run_ChaProEV(case_name)
|
|
80
80
|
```
|
|
81
|
-
|
|
81
|
+
If you installed ChaProEV with pip, then the requirements
|
|
82
|
+
should be installed as well (see requirements.txt file if you have issues
|
|
83
|
+
or use the contact below).
|
|
84
|
+
To run the model, you need to put a ChaProEV.toml configuration
|
|
85
|
+
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
|
|
86
|
+
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.
|
|
87
|
+
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.
|
|
88
|
+
You can use the examples provided in this repository.
|
|
89
|
+
|
|
90
|
+
For examples of running ChaProEV and more configuration files,
|
|
82
91
|
you can visit the [ChaProEV runs repository](https://github.com/TNO/ChaProEV_runs).
|
|
83
92
|
|
|
84
93
|
## General approach and structure
|
|
@@ -137,6 +146,7 @@ Applied Energy 360 (2024) 122695
|
|
|
137
146
|
2. S. Johanndeiter, N. Helistö, J. Kiviluoma, V. Bertsch, [Price formation
|
|
138
147
|
and intersectoral distributional eects in a fully decarbonised european
|
|
139
148
|
electricity market](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=48874423)
|
|
149
|
+
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
|
|
140
150
|
|
|
141
151
|
|
|
142
152
|
#### **Future**
|
|
@@ -54,7 +54,16 @@ if __name__ == '__main__':
|
|
|
54
54
|
case_name: str = 'Mopo'
|
|
55
55
|
ChaProEV.run_ChaProEV(case_name)
|
|
56
56
|
```
|
|
57
|
-
|
|
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.
|
|
65
|
+
|
|
66
|
+
For examples of running ChaProEV and more configuration files,
|
|
58
67
|
you can visit the [ChaProEV runs repository](https://github.com/TNO/ChaProEV_runs).
|
|
59
68
|
|
|
60
69
|
## General approach and structure
|
|
@@ -113,6 +122,7 @@ Applied Energy 360 (2024) 122695
|
|
|
113
122
|
2. S. Johanndeiter, N. Helistö, J. Kiviluoma, V. Bertsch, [Price formation
|
|
114
123
|
and intersectoral distributional eects in a fully decarbonised european
|
|
115
124
|
electricity market](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=48874423)
|
|
125
|
+
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
|
|
116
126
|
|
|
117
127
|
|
|
118
128
|
#### **Future**
|
|
@@ -0,0 +1,572 @@
|
|
|
1
|
+
# Created by Omar Usmai (Omar.Usmani@TNO.nl).
|
|
2
|
+
# This file contains configuration parameters for running a
|
|
3
|
+
# ChaProEV scenario. To add a new scenario, copy one of the existing files
|
|
4
|
+
# in a folder with the name of your case/rub inside the
|
|
5
|
+
# scenarios folder, and add/remove/modify paramters as
|
|
6
|
+
# required.
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
# Run parameters
|
|
11
|
+
[run]
|
|
12
|
+
use_day_types_in_charge_computing = true
|
|
13
|
+
[run.start]
|
|
14
|
+
year = 2017
|
|
15
|
+
month = 12
|
|
16
|
+
day = 31
|
|
17
|
+
hour = 5
|
|
18
|
+
minute = 0
|
|
19
|
+
[run.end] # This is is not included in the run time
|
|
20
|
+
year = 2019
|
|
21
|
+
month = 1
|
|
22
|
+
day = 1
|
|
23
|
+
hour = 0
|
|
24
|
+
minute = 0
|
|
25
|
+
[run.display_start]
|
|
26
|
+
year = 2018
|
|
27
|
+
month = 1
|
|
28
|
+
day = 1
|
|
29
|
+
hour = 0
|
|
30
|
+
minute = 0
|
|
31
|
+
[run.display_end] # This is is not included in the display time
|
|
32
|
+
year = 2019
|
|
33
|
+
month = 1
|
|
34
|
+
day = 1
|
|
35
|
+
hour = 0
|
|
36
|
+
minute = 0
|
|
37
|
+
[run.frequency]
|
|
38
|
+
size = 1 # Put the size of the interval here
|
|
39
|
+
type = 'h' # 'min'
|
|
40
|
+
# Put the interval type here, use 'H' for hours, 'min' for minutes,
|
|
41
|
+
# 'S' for seconds, 'D' for days. For more info and other types, see here:
|
|
42
|
+
# https://pandas.pydata.org/docs/user_guide/timeseries.html#timeseries-offset-aliases
|
|
43
|
+
[run.display_frequency]
|
|
44
|
+
size = 1 # Put the size of the interval here
|
|
45
|
+
type = 'h' # 'min'
|
|
46
|
+
# Put the interval type here, use 'H' for hours, 'min' for minutes,
|
|
47
|
+
# 'S' for seconds, 'D' for days. For more info and other types, see here:
|
|
48
|
+
# https://pandas.pydata.org/docs/user_guide/timeseries.html#timeseries-offset-aliases
|
|
49
|
+
[run.get_extra_downloads]
|
|
50
|
+
download_weather_data = false
|
|
51
|
+
# Put true if you want to download the weather data. In principle,
|
|
52
|
+
# you only to do this once, unless you add years and/or areas
|
|
53
|
+
make_weather_database = false
|
|
54
|
+
# Put true if you want to remake the weather database. In principle,
|
|
55
|
+
# you only to do this once, unless you add years and/or areas. Note
|
|
56
|
+
# that this refers to other years ans areas than the weather download.
|
|
57
|
+
download_EV_tool_data = false
|
|
58
|
+
# Put true if you want to download the data from the EV tool by geootab
|
|
59
|
+
# This should only be needed once and is independentr of the case
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
[locations]
|
|
63
|
+
# Add locations following the syntax below:
|
|
64
|
+
# [location.code] <--use the the code/alias you want for the location
|
|
65
|
+
# and put the desired properties below
|
|
66
|
+
[locations.bus_depot]
|
|
67
|
+
vehicle = 'bus'
|
|
68
|
+
connectivity = 1
|
|
69
|
+
charging_power = 600 # kW
|
|
70
|
+
charger_efficiency = 0.85
|
|
71
|
+
latitude = 52
|
|
72
|
+
longitude = 6.2
|
|
73
|
+
charging_price = 0.25 # €/kWh
|
|
74
|
+
charging_desirability = 1
|
|
75
|
+
# An indicator (0-1) of how much people like to charge at this location
|
|
76
|
+
percentage_in_location_at_run_start = 1
|
|
77
|
+
# If filling it directly instead of computing it (controlled by
|
|
78
|
+
# compute_start_location_split in mobility_module below)
|
|
79
|
+
vehicle_discharge_power = 400 # kW
|
|
80
|
+
proportion_of_discharge_to_network = 0.9
|
|
81
|
+
time_modulation_factors = [
|
|
82
|
+
1, 1, 1, 1, 1, 1, 1, 1,
|
|
83
|
+
1, 1, 1, 1, 1, 1, 1, 1,
|
|
84
|
+
1, 1, 1, 1, 1, 1, 1, 1,
|
|
85
|
+
] # Starts at midinight
|
|
86
|
+
[locations.bus_route_start]
|
|
87
|
+
vehicle = 'bus'
|
|
88
|
+
connectivity = 1
|
|
89
|
+
charging_power = 600 # kW
|
|
90
|
+
charger_efficiency = 0.85
|
|
91
|
+
latitude = 52
|
|
92
|
+
longitude = 6.2
|
|
93
|
+
charging_price = 0.25 # €/kWh
|
|
94
|
+
charging_desirability = 1
|
|
95
|
+
# An indicator (0-1) of how much people like to charge at this location
|
|
96
|
+
percentage_in_location_at_run_start = 1
|
|
97
|
+
# If filling it directly instead of computing it (controlled by
|
|
98
|
+
# compute_start_location_split in mobility_module below)
|
|
99
|
+
vehicle_discharge_power = 0 # kW
|
|
100
|
+
proportion_of_discharge_to_network = 0.9
|
|
101
|
+
time_modulation_factors = [
|
|
102
|
+
1, 1, 1, 1, 1, 1, 1, 1,
|
|
103
|
+
1, 1, 1, 1, 1, 1, 1, 1,
|
|
104
|
+
1, 1, 1, 1, 1, 1, 1, 1,
|
|
105
|
+
] # Starts at midinight
|
|
106
|
+
[locations.bus_route_end]
|
|
107
|
+
vehicle = 'bus'
|
|
108
|
+
connectivity = 1
|
|
109
|
+
charging_power = 600 # kW
|
|
110
|
+
charger_efficiency = 0.85
|
|
111
|
+
latitude = 52
|
|
112
|
+
longitude = 6.2
|
|
113
|
+
charging_price = 0.25 # €/kWh
|
|
114
|
+
charging_desirability = 1
|
|
115
|
+
# An indicator (0-1) of how much people like to charge at this location
|
|
116
|
+
percentage_in_location_at_run_start = 1
|
|
117
|
+
# If filling it directly instead of computing it (controlled by
|
|
118
|
+
# compute_start_location_split in mobility_module below)
|
|
119
|
+
vehicle_discharge_power = 0 # kW
|
|
120
|
+
proportion_of_discharge_to_network = 0.9
|
|
121
|
+
time_modulation_factors = [
|
|
122
|
+
1, 1, 1, 1, 1, 1, 1, 1,
|
|
123
|
+
1, 1, 1, 1, 1, 1, 1, 1,
|
|
124
|
+
1, 1, 1, 1, 1, 1, 1, 1,
|
|
125
|
+
] # Starts at midinight
|
|
126
|
+
|
|
127
|
+
[legs]
|
|
128
|
+
# You can add legs here by copying existing legs,
|
|
129
|
+
# changing the name of the leg (in [legs.go_to_work], go_to_work is
|
|
130
|
+
# the name of the leg) and changing the relevant values
|
|
131
|
+
# Note that you need to change the leg name in all parts where it occurs
|
|
132
|
+
# (i.e. also in [legs.go_to_work.locations],[legs.go_to_work.road_types],
|
|
133
|
+
# etc.
|
|
134
|
+
|
|
135
|
+
[legs.bus_from_depot_to_route_start]
|
|
136
|
+
vehicle = 'bus'
|
|
137
|
+
distance = 4 # km
|
|
138
|
+
duration = 0.1 # hours
|
|
139
|
+
# This factor adds a correction to the vehicle consumption that depends
|
|
140
|
+
# on the hour in day (the first is for 00:00 to 00:59,
|
|
141
|
+
# the last for 23:00 to 23:59). Note that these are actual hours,
|
|
142
|
+
# not hours in the user day (which can start and end at other moments than
|
|
143
|
+
# midnight). This is used to take into account things like traffic jams.
|
|
144
|
+
# The default value is 1.
|
|
145
|
+
hour_in_day_factors = [
|
|
146
|
+
1, 1, 1, 1, 1, 1, 1, 1,
|
|
147
|
+
1.2, 1, 1, 1, 1, 1, 1, 1,
|
|
148
|
+
1, 1, 1, 1, 1, 1, 1, 1
|
|
149
|
+
]
|
|
150
|
+
[legs.bus_from_depot_to_route_start.locations]
|
|
151
|
+
start = 'bus_depot'
|
|
152
|
+
end = 'bus_route_start'
|
|
153
|
+
[legs.bus_from_depot_to_route_start.road_type_mix]
|
|
154
|
+
# Give the road type mix
|
|
155
|
+
# We need a value for each of the road_types (see above in [transport_factors])
|
|
156
|
+
# If the road type does not occur in the leg, simply put 0
|
|
157
|
+
# Note that the total should be 1 (there are not checks to ensure this,
|
|
158
|
+
# so you need to make sure you do this correctly)
|
|
159
|
+
# road_types = ['highway', 'city']
|
|
160
|
+
mix = [0.8, 0.2]
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
[legs.bus_from_route_start_to_depot]
|
|
164
|
+
vehicle = 'bus'
|
|
165
|
+
distance = 4 # km
|
|
166
|
+
duration = 0.1 # hours
|
|
167
|
+
# This factor adds a correction to the vehicle consumption that depends
|
|
168
|
+
# on the hour in day (the first is for 00:00 to 00:59,
|
|
169
|
+
# the last for 23:00 to 23:59). Note that these are actual hours,
|
|
170
|
+
# not hours in the user day (which can start and end at other moments than
|
|
171
|
+
# midnight). This is used to take into account things like traffic jams.
|
|
172
|
+
# The default value is 1.
|
|
173
|
+
hour_in_day_factors = [
|
|
174
|
+
1, 1, 1, 1, 1, 1, 1, 1,
|
|
175
|
+
1.2, 1, 1, 1, 1, 1, 1, 1,
|
|
176
|
+
1, 1, 1, 1, 1, 1, 1, 1
|
|
177
|
+
]
|
|
178
|
+
[legs.bus_from_route_start_to_depot.locations]
|
|
179
|
+
start = 'bus_route_start'
|
|
180
|
+
end = 'bus_depot'
|
|
181
|
+
[legs.bus_from_route_start_to_depot.road_type_mix]
|
|
182
|
+
# Give the road type mix
|
|
183
|
+
# We need a value for each of the road_types (see above in [transport_factors])
|
|
184
|
+
# If the road type does not occur in the leg, simply put 0
|
|
185
|
+
# Note that the total should be 1 (there are not checks to ensure this,
|
|
186
|
+
# so you need to make sure you do this correctly)
|
|
187
|
+
# road_types = ['highway', 'city']
|
|
188
|
+
mix = [0.8, 0.2]
|
|
189
|
+
|
|
190
|
+
[legs.bus_from_route_start_to_route_end]
|
|
191
|
+
vehicle = 'bus'
|
|
192
|
+
distance = 13 # km
|
|
193
|
+
duration = 0.66 # hours
|
|
194
|
+
# Bus 28 in The Hague has a 40 minute route that is about 10-15 km (value chosen to be close to 90_000 kilometers per year)
|
|
195
|
+
# This factor adds a correction to the vehicle consumption that depends
|
|
196
|
+
# on the hour in day (the first is for 00:00 to 00:59,
|
|
197
|
+
# the last for 23:00 to 23:59). Note that these are actual hours,
|
|
198
|
+
# not hours in the user day (which can start and end at other moments than
|
|
199
|
+
# midnight). This is used to take into account things like traffic jams.
|
|
200
|
+
# The default value is 1.
|
|
201
|
+
hour_in_day_factors = [
|
|
202
|
+
1, 1, 1, 1, 1, 1, 1, 1,
|
|
203
|
+
1.2, 1, 1, 1, 1, 1, 1, 1,
|
|
204
|
+
1, 1, 1, 1, 1, 1, 1, 1
|
|
205
|
+
]
|
|
206
|
+
[legs.bus_from_route_start_to_route_end.locations]
|
|
207
|
+
start = 'bus_route_start'
|
|
208
|
+
end = 'bus_route_end'
|
|
209
|
+
[legs.bus_from_route_start_to_route_end.road_type_mix]
|
|
210
|
+
# Give the road type mix
|
|
211
|
+
# We need a value for each of the road_types (see above in [transport_factors])
|
|
212
|
+
# If the road type does not occur in the leg, simply put 0
|
|
213
|
+
# Note that the total should be 1 (there are not checks to ensure this,
|
|
214
|
+
# so you need to make sure you do this correctly)
|
|
215
|
+
# road_types = ['highway', 'city']
|
|
216
|
+
mix = [0.8, 0.2]
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
[legs.bus_from_route_end_to_route_start]
|
|
220
|
+
vehicle = 'bus'
|
|
221
|
+
distance = 13 # km
|
|
222
|
+
duration = 0.66 # hours
|
|
223
|
+
# Bus 28 in The Hague has a 40 minute route that is about 10-15 km (value chosen to be close to 90_000 kilometers per year)
|
|
224
|
+
# This factor adds a correction to the vehicle consumption that depends
|
|
225
|
+
# on the hour in day (the first is for 00:00 to 00:59,
|
|
226
|
+
# the last for 23:00 to 23:59). Note that these are actual hours,
|
|
227
|
+
# not hours in the user day (which can start and end at other moments than
|
|
228
|
+
# midnight). This is used to take into account things like traffic jams.
|
|
229
|
+
# The default value is 1.
|
|
230
|
+
hour_in_day_factors = [
|
|
231
|
+
1, 1, 1, 1, 1, 1, 1, 1,
|
|
232
|
+
1.2, 1, 1, 1, 1, 1, 1, 1,
|
|
233
|
+
1, 1, 1, 1, 1, 1, 1, 1
|
|
234
|
+
]
|
|
235
|
+
[legs.bus_from_route_end_to_route_start.locations]
|
|
236
|
+
start = 'bus_route_end'
|
|
237
|
+
end = 'bus_route_start'
|
|
238
|
+
[legs.bus_from_route_end_to_route_start.road_type_mix]
|
|
239
|
+
# Give the road type mix
|
|
240
|
+
# We need a value for each of the road_types (see above in [transport_factors])
|
|
241
|
+
# If the road type does not occur in the leg, simply put 0
|
|
242
|
+
# Note that the total should be 1 (there are not checks to ensure this,
|
|
243
|
+
# so you need to make sure you do this correctly)
|
|
244
|
+
# road_types = ['highway', 'city']
|
|
245
|
+
mix = [0.8, 0.2]
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
[vehicle]
|
|
251
|
+
name = 'bus'
|
|
252
|
+
base_location = 'bus_depot' # not relevant for cars
|
|
253
|
+
yearly_kilometrage = 90_000
|
|
254
|
+
# https://www.ebusco.com/wp-content/uploads/Website_Brochure_NL_V1-4.pdf
|
|
255
|
+
# Not relevant for cars, as it is built bottom-up
|
|
256
|
+
kilometers_column_for_consumption = 'Arrivals'
|
|
257
|
+
use_weighted = false
|
|
258
|
+
battery_capacity = 500 # kWh
|
|
259
|
+
# https://www.ebusco.com/wp-content/uploads/Website_Brochure_NL_V1-4.pdf
|
|
260
|
+
solar_panel_size_kWp = 0 # kWp
|
|
261
|
+
[vehicle.base_consumption_per_km]
|
|
262
|
+
electricity_kWh = 0.76
|
|
263
|
+
# https://www.ebusco.com/wp-content/uploads/Website_Brochure_NL_V1-4.pdf
|
|
264
|
+
# Others scaled accroding to cars
|
|
265
|
+
gasoline_litres = 0.3399
|
|
266
|
+
diesel_litres = 0.2917
|
|
267
|
+
hydrogen_kg = 0.0398
|
|
268
|
+
CNG_kg = 0.2415
|
|
269
|
+
LNG_kg = 0.2415
|
|
270
|
+
|
|
271
|
+
[trips]
|
|
272
|
+
|
|
273
|
+
[trips.bus_weekday_in_workweek]
|
|
274
|
+
vehicle = 'bus'
|
|
275
|
+
legs = [
|
|
276
|
+
'bus_from_depot_to_route_start',
|
|
277
|
+
'bus_from_route_start_to_route_end',
|
|
278
|
+
'bus_from_route_end_to_route_start',
|
|
279
|
+
'bus_from_route_start_to_depot',
|
|
280
|
+
]
|
|
281
|
+
time_between_legs = [0, 0.1, 0]
|
|
282
|
+
|
|
283
|
+
# This is the time spent at each interim location (same units as used
|
|
284
|
+
# general
|
|
285
|
+
percentage_station_users = 0
|
|
286
|
+
start_probabilities = [
|
|
287
|
+
0, 0.5, 0.5, 0, 0, 0, 0, 0,
|
|
288
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
|
289
|
+
0, 0, 0, 0, 0, 0, 0, 0
|
|
290
|
+
] # Start at day start hour
|
|
291
|
+
repeated_sequence = [
|
|
292
|
+
'bus_from_route_start_to_route_end',
|
|
293
|
+
'bus_from_route_end_to_route_start'
|
|
294
|
+
]
|
|
295
|
+
repetition_amounts = [9]
|
|
296
|
+
time_between_repetitions = [0.1] # hours
|
|
297
|
+
|
|
298
|
+
[trips.bus_weekend_in_workweek]
|
|
299
|
+
vehicle = 'bus'
|
|
300
|
+
legs = [
|
|
301
|
+
'bus_from_depot_to_route_start',
|
|
302
|
+
'bus_from_route_start_to_route_end',
|
|
303
|
+
'bus_from_route_end_to_route_start',
|
|
304
|
+
'bus_from_route_start_to_depot',
|
|
305
|
+
]
|
|
306
|
+
time_between_legs = [0, 0.1, 0]
|
|
307
|
+
|
|
308
|
+
# This is the time spent at each interim location (same units as used
|
|
309
|
+
# general
|
|
310
|
+
percentage_station_users = 0
|
|
311
|
+
start_probabilities = [
|
|
312
|
+
0, 0.25, 0.5, 0.25, 0, 0, 0, 0,
|
|
313
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
|
314
|
+
0, 0, 0, 0, 0, 0, 0, 0
|
|
315
|
+
] # Start at day start hour
|
|
316
|
+
repeated_sequence = [
|
|
317
|
+
'bus_from_route_start_to_route_end',
|
|
318
|
+
'bus_from_route_end_to_route_start'
|
|
319
|
+
]
|
|
320
|
+
repetition_amounts = [7]
|
|
321
|
+
time_between_repetitions = [0.1] # hours
|
|
322
|
+
|
|
323
|
+
|
|
324
|
+
[trips.bus_weekday_in_holiday_week]
|
|
325
|
+
vehicle = 'bus'
|
|
326
|
+
legs = [
|
|
327
|
+
'bus_from_depot_to_route_start',
|
|
328
|
+
'bus_from_route_start_to_route_end',
|
|
329
|
+
'bus_from_route_end_to_route_start',
|
|
330
|
+
'bus_from_route_start_to_depot',
|
|
331
|
+
]
|
|
332
|
+
time_between_legs = [0, 0.1, 0]
|
|
333
|
+
|
|
334
|
+
# This is the time spent at each interim location (same units as used
|
|
335
|
+
# general
|
|
336
|
+
percentage_station_users = 0
|
|
337
|
+
start_probabilities = [
|
|
338
|
+
0, 0.25, 0.75, 0, 0, 0, 0, 0,
|
|
339
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
|
340
|
+
0, 0, 0, 0, 0, 0, 0, 0
|
|
341
|
+
] # Start at day start hour
|
|
342
|
+
repeated_sequence = [
|
|
343
|
+
'bus_from_route_start_to_route_end',
|
|
344
|
+
'bus_from_route_end_to_route_start'
|
|
345
|
+
]
|
|
346
|
+
repetition_amounts = [8]
|
|
347
|
+
time_between_repetitions = [0.1] # hours
|
|
348
|
+
|
|
349
|
+
[trips.bus_weekend_in_holiday_week]
|
|
350
|
+
vehicle = 'bus'
|
|
351
|
+
legs = [
|
|
352
|
+
'bus_from_depot_to_route_start',
|
|
353
|
+
'bus_from_route_start_to_route_end',
|
|
354
|
+
'bus_from_route_end_to_route_start',
|
|
355
|
+
'bus_from_route_start_to_depot',
|
|
356
|
+
]
|
|
357
|
+
time_between_legs = [0, 0.1, 0]
|
|
358
|
+
|
|
359
|
+
# This is the time spent at each interim location (same units as used
|
|
360
|
+
# general
|
|
361
|
+
percentage_station_users = 0
|
|
362
|
+
start_probabilities = [
|
|
363
|
+
0, 0.25, 0.5, 0.25, 0, 0, 0, 0,
|
|
364
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
|
365
|
+
0, 0, 0, 0, 0, 0, 0, 0
|
|
366
|
+
] # Start at day start hour
|
|
367
|
+
repeated_sequence = [
|
|
368
|
+
'bus_from_route_start_to_route_end',
|
|
369
|
+
'bus_from_route_end_to_route_start'
|
|
370
|
+
]
|
|
371
|
+
repetition_amounts = [7]
|
|
372
|
+
time_between_repetitions = [0.1] # hours
|
|
373
|
+
|
|
374
|
+
|
|
375
|
+
# These parameters are used for the ChaProEV mobility module
|
|
376
|
+
[mobility_module]
|
|
377
|
+
day_start_hour = 5
|
|
378
|
+
# Chosen so that no travel occurs in the first hour
|
|
379
|
+
compute_start_location_split = true
|
|
380
|
+
day_types = [
|
|
381
|
+
'weekday_in_work_week', 'weekend_in_work_week',
|
|
382
|
+
'weekday_in_holiday_week', 'weekend_in_holiday_week',
|
|
383
|
+
'weekend_holiday_departures', 'weekend_holiday_returns',
|
|
384
|
+
'holiday_overlap_weekend'
|
|
385
|
+
]
|
|
386
|
+
|
|
387
|
+
mobility_quantities = [
|
|
388
|
+
'Departures amount', 'Departures kilometers',
|
|
389
|
+
'Departures weighted kilometers', 'Departures impact',
|
|
390
|
+
'Departures impact kilometers', 'Departures impact weighted kilometers',
|
|
391
|
+
'Arrivals amount', 'Arrivals kilometers',
|
|
392
|
+
'Arrivals weighted kilometers',
|
|
393
|
+
'Arrivals impact', 'Arrivals impact kilometers',
|
|
394
|
+
'Arrivals impact weighted kilometers',
|
|
395
|
+
# 'Duration (hours)', 'Distance (km)', 'Weighted distance (km)'
|
|
396
|
+
]
|
|
397
|
+
|
|
398
|
+
battery_space_shift_quantities = [
|
|
399
|
+
'departures', 'departures_weighted',
|
|
400
|
+
'departures_impact', 'departures_impact_weighted',
|
|
401
|
+
'arrivals', 'arrivals_weighted',
|
|
402
|
+
'arrivals_impact', 'arrivals_impact_weighted',
|
|
403
|
+
]
|
|
404
|
+
location_connections_headers = [
|
|
405
|
+
'Duration (hours)', 'Distance (km)', 'Weighted distance (km)']
|
|
406
|
+
|
|
407
|
+
mobility_index_names = ['From', 'To', 'Time Tag']
|
|
408
|
+
kilometers_driven_headers = [
|
|
409
|
+
'Proportion at base',
|
|
410
|
+
'Proportion idle en route',
|
|
411
|
+
'Proportion driving',
|
|
412
|
+
'Proportion of run time driving',
|
|
413
|
+
'Driven kilometers (km)'
|
|
414
|
+
]
|
|
415
|
+
|
|
416
|
+
|
|
417
|
+
|
|
418
|
+
holiday_weeks = [1, 8, 18, 28, 29, 30, 31, 32, 33, 42, 51, 52, 53]
|
|
419
|
+
# We need to provide the number of holliday weeks seprately,
|
|
420
|
+
# as counting the elements of the list above might not work, such as
|
|
421
|
+
# when the above list contains weeks 1 and 53 (which just represent
|
|
422
|
+
# the fact that years don't necessarily start and/or end at the start/end
|
|
423
|
+
# of a week).
|
|
424
|
+
number_of_holiday_weeks = 10
|
|
425
|
+
holiday_departures_in_weekend_week_numbers = [7, 17, 27, 30, 41, 50]
|
|
426
|
+
holiday_returns_in_weekend_week_numbers = [1, 8, 18, 30, 33, 42]
|
|
427
|
+
|
|
428
|
+
work_hours_in_a_work_day = 8 # hours
|
|
429
|
+
hours_worked_per_work_week = 31 # hours
|
|
430
|
+
hours_in_a_standard_work_week = 40 # hours
|
|
431
|
+
percentage_working_on_a_work_week = 1
|
|
432
|
+
worked_hours_per_year = 1434 # hours
|
|
433
|
+
|
|
434
|
+
leisure_trips_per_weekend = 1
|
|
435
|
+
leisure_trips_per_week_outside_weekends = 2
|
|
436
|
+
maximal_fill_percentage_leisure_trips_on_non_work_weekdays = 1
|
|
437
|
+
weekday_leisure_trips = 2
|
|
438
|
+
percentage_of_weekday_leisure_trips_on_a_work_day = 0.5
|
|
439
|
+
|
|
440
|
+
weekend_trips_per_year = 12
|
|
441
|
+
|
|
442
|
+
|
|
443
|
+
holiday_trips_taken = 1
|
|
444
|
+
time_spent_at_holiday_destination = 14 # days
|
|
445
|
+
# percentage_of_outward_holiday_trips_on_weekends = 0.75
|
|
446
|
+
# percentage_of_back_holiday_trips_on_weekends = 0.75
|
|
447
|
+
[mobility_module.trips_per_day_type]
|
|
448
|
+
bus = [ # for vehicles other than cars
|
|
449
|
+
'bus_weekday_in_workweek', 'bus_weekend_in_workweek',
|
|
450
|
+
'bus_weekday_in_holiday_week', 'bus_weekend_in_holiday_week',
|
|
451
|
+
'bus_weekend_in_holiday_week', 'bus_weekend_in_holiday_week',
|
|
452
|
+
'bus_weekend_in_holiday_week'
|
|
453
|
+
]
|
|
454
|
+
|
|
455
|
+
truck = [ # for vehicles other than cars
|
|
456
|
+
'truck_weekday', 'truck_weekend',
|
|
457
|
+
'truck_weekday', 'truck_weekend',
|
|
458
|
+
'truck_weekend', 'truck_weekend',
|
|
459
|
+
'truck_weekend',
|
|
460
|
+
]
|
|
461
|
+
|
|
462
|
+
van = [ # for vehicles other than cars
|
|
463
|
+
'van_weekday', 'van_weekend',
|
|
464
|
+
'van_weekday', 'van_weekend',
|
|
465
|
+
'van_weekend', 'van_weekend',
|
|
466
|
+
'van_weekend',
|
|
467
|
+
]
|
|
468
|
+
|
|
469
|
+
[transport_factors]
|
|
470
|
+
road_types = ['highway', 'city']
|
|
471
|
+
weights = [0.66, 1.6]
|
|
472
|
+
|
|
473
|
+
# Weather-related parameters
|
|
474
|
+
[weather]
|
|
475
|
+
weather_factors_table_root_name = 'weather_factors'
|
|
476
|
+
# These parameters define what we want to get from the source
|
|
477
|
+
# (CDS ERA-5)
|
|
478
|
+
[weather.source_data]
|
|
479
|
+
start_year = 2020
|
|
480
|
+
end_year = 2022
|
|
481
|
+
quantities = [
|
|
482
|
+
'2m_temperature',
|
|
483
|
+
'skin_temperature',
|
|
484
|
+
'surface_solar_radiation_downwards',
|
|
485
|
+
'total_precipitation',
|
|
486
|
+
]
|
|
487
|
+
raw_data_folder = 'input/cds_weather_data'
|
|
488
|
+
# The following define the area over which the raw weather data will be
|
|
489
|
+
# downloaded. The corresponding in the processed weather database is below.
|
|
490
|
+
latitude_min = 36
|
|
491
|
+
latitude_max = 68
|
|
492
|
+
longitude_min = -11
|
|
493
|
+
longitude_max = 60
|
|
494
|
+
|
|
495
|
+
# Those parameters are used to processed the raw weather data into
|
|
496
|
+
# data useful for the model.
|
|
497
|
+
[weather.processed_data]
|
|
498
|
+
raw_data_folder = 'input/cds_weather_data'
|
|
499
|
+
processed_folder = 'input/processed_weather_data'
|
|
500
|
+
weather_database_file_name = 'weather.sqlite3'
|
|
501
|
+
# This parameter is there to avoid issues when writing a too large DataFrame
|
|
502
|
+
# at once (instead, we split it into chunks).
|
|
503
|
+
chunk_size = 100000
|
|
504
|
+
quantities = [
|
|
505
|
+
'2m_temperature',
|
|
506
|
+
'skin_temperature',
|
|
507
|
+
'surface_solar_radiation_downwards',
|
|
508
|
+
'total_precipitation',
|
|
509
|
+
]
|
|
510
|
+
|
|
511
|
+
|
|
512
|
+
KELVIN_TO_CELSIUS = -273.15
|
|
513
|
+
quantity_tags = ['t2m', 'skt', 'ssrd', 'tp']
|
|
514
|
+
|
|
515
|
+
quantity_processed_names = [
|
|
516
|
+
'Temperature at 2 meters (°C)',
|
|
517
|
+
'Skin temperature (°C)',
|
|
518
|
+
'Surface solar radiation downwards (J/m2)',
|
|
519
|
+
'Total precipitation (m)'
|
|
520
|
+
]
|
|
521
|
+
|
|
522
|
+
cumulative_quantity_processed_names = [
|
|
523
|
+
'Surface solar radiation downwards (J/m2)',
|
|
524
|
+
'Total precipitation (m)'
|
|
525
|
+
]
|
|
526
|
+
|
|
527
|
+
cumulative_quantities = [
|
|
528
|
+
'surface_solar_radiation_downwards',
|
|
529
|
+
'total_precipitation',
|
|
530
|
+
]
|
|
531
|
+
|
|
532
|
+
queries_for_cumulative_quantities = [
|
|
533
|
+
"SELECT * FROM 'Surface solar radiation downwards (J/m2)';",
|
|
534
|
+
"SELECT * FROM 'Total precipitation (m)';"
|
|
535
|
+
]
|
|
536
|
+
|
|
537
|
+
temperature_quantities = ['2m_temperature', 'skin_temperature']
|
|
538
|
+
|
|
539
|
+
processed_index_tags = ['Timetag', 'Latitude', 'Longitude']
|
|
540
|
+
# These define the area of the processed data in the weather database
|
|
541
|
+
latitude_min = 50.6
|
|
542
|
+
latitude_max = 53.5
|
|
543
|
+
longitude_min = 3.4
|
|
544
|
+
longitude_max = 7.2
|
|
545
|
+
coordinate_step = 0.1
|
|
546
|
+
|
|
547
|
+
# Parameters for the EV tool data from geotab
|
|
548
|
+
[weather.EV_tool]
|
|
549
|
+
EV_tool_url = 'https://www.geotab.com/CMS-GeneralFiles-production/NA/EV/EVTOOL.html'
|
|
550
|
+
user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.57'
|
|
551
|
+
efficiency_curve_script_index = 2
|
|
552
|
+
data_splitter = 'Temp:'
|
|
553
|
+
file_name = 'vehicle_temperature_efficiencies'
|
|
554
|
+
groupfile_name = 'vehicle_temperature_efficiencies'
|
|
555
|
+
folder = 'input'
|
|
556
|
+
efficiency_factor_column_name = 'Vehicle Relative efficiency factor'
|
|
557
|
+
|
|
558
|
+
# Temperature efficiency fit factors
|
|
559
|
+
[weather.vehicle_temperature_efficiencies]
|
|
560
|
+
folder = 'input'
|
|
561
|
+
file_name = 'vehicle_temperature_efficiencies.pkl'
|
|
562
|
+
fitting_polynomial_order = 6
|
|
563
|
+
|
|
564
|
+
|
|
565
|
+
|
|
566
|
+
|
|
567
|
+
[charging]
|
|
568
|
+
price_reaction_exponent = 0 # 0.5
|
|
569
|
+
desirability_reaction_exponent = 0 # 1
|
|
570
|
+
|
|
571
|
+
[charging_sessions]
|
|
572
|
+
resolution = 1 # subdivisions from main unit of time
|
|
File without changes
|