ChaProEV 1.2.4__tar.gz → 1.2.5__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.4/src/ChaProEV.egg-info → chaproev-1.2.5}/PKG-INFO +13 -2
- {chaproev-1.2.4 → chaproev-1.2.5}/pyproject.toml +1 -1
- chaproev-1.2.5/requirements.txt +10 -0
- chaproev-1.2.5/scenarios/Mopo/Latvia_car_own_driveway_2050.toml +405 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/src/ChaProEV/ChaProEV.py +3 -3
- {chaproev-1.2.4 → chaproev-1.2.5}/src/ChaProEV/charging.py +51 -51
- {chaproev-1.2.4 → chaproev-1.2.5}/src/ChaProEV/consumption.py +2 -4
- {chaproev-1.2.4 → chaproev-1.2.5}/src/ChaProEV/define.py +85 -79
- {chaproev-1.2.4 → chaproev-1.2.5}/src/ChaProEV/make_variants.py +14 -15
- {chaproev-1.2.4 → chaproev-1.2.5}/src/ChaProEV/mobility.py +85 -86
- {chaproev-1.2.4 → chaproev-1.2.5}/src/ChaProEV/profiles.py +16 -18
- {chaproev-1.2.4 → chaproev-1.2.5}/src/ChaProEV/run_time.py +14 -15
- {chaproev-1.2.4 → chaproev-1.2.5}/src/ChaProEV/scenarios_module.py +6 -7
- {chaproev-1.2.4 → chaproev-1.2.5}/src/ChaProEV/weather.py +72 -81
- {chaproev-1.2.4 → chaproev-1.2.5}/src/ChaProEV/writing.py +6 -6
- {chaproev-1.2.4 → chaproev-1.2.5/src/ChaProEV.egg-info}/PKG-INFO +13 -2
- {chaproev-1.2.4 → chaproev-1.2.5}/src/ChaProEV.egg-info/SOURCES.txt +2 -0
- chaproev-1.2.5/src/ChaProEV.egg-info/requires.txt +10 -0
- chaproev-1.2.4/requirements.txt +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/.flake8 +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/.gitignore +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/.vscode/ltex.dictionary.en-US.txt +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/.vscode/settings.json +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/ChaProEV.pptx +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/ChaProEV.toml +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/Gemfile +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/LICENCE +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/MOPO_logo_chaproev on wht.svg +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/MOPO_logo_chaproev.png +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/MOPO_logo_chaproev.svg +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/MOPO_logo_main.svg +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/MOPO_logo_main_onwhite.svg +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/README.md +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/comparisons/comparison_template.toml +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/ChaProEV_workflow.png +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/Legs.png +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/Locations.png +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/Makefile +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/README.md +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/Trips.png +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/Vehicle_Temperature_correction_factor.svg +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/_config.yml +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/build/doctrees/environment.pickle +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/build/doctrees/index.doctree +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/build/html/.buildinfo +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/build/html/_sources/index.rst.txt +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/build/html/_static/alabaster.css +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/build/html/_static/basic.css +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/build/html/_static/custom.css +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/build/html/_static/doctools.js +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/build/html/_static/documentation_options.js +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/build/html/_static/file.png +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/build/html/_static/language_data.js +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/build/html/_static/minus.png +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/build/html/_static/plus.png +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/build/html/_static/pygments.css +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/build/html/_static/searchtools.js +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/build/html/_static/sphinx_highlight.js +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/build/html/genindex.html +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/build/html/index.html +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/build/html/objects.inv +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/build/html/search.html +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/build/html/searchindex.js +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/charging.md +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/consumption.md +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/define.md +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/index.md +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/make.bat +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/mobility.md +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/running_model,md +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/scenario.md +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/source/index.rst +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/using.md +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/docs/weather.md +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/eu-emblem-low-res.jpg +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/mkdocs.yml +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/scenarios/Mopo/Switzerland_car_own_driveway_2050.toml +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/scenarios/Mopo/XX_bus.toml +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/scenarios/Mopo/XX_car.toml +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/scenarios/Mopo/XX_truck.toml +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/scenarios/Mopo/XX_van.toml +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/scenarios/local_impact_BEVs/baseline.toml +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/setup.cfg +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/src/ChaProEV/__init__.py +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/src/ChaProEV/py.typed +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/src/ChaProEV.egg-info/PKG-INFO-PC-28624 +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/src/ChaProEV.egg-info/PKG-INFO-PC-28624-2 +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/src/ChaProEV.egg-info/SOURCES-PC-28624-2.txt +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/src/ChaProEV.egg-info/SOURCES-PC-28624.txt +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/src/ChaProEV.egg-info/dependency_links.txt +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/src/ChaProEV.egg-info/requires-PC-28624-2.txt +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/src/ChaProEV.egg-info/requires-PC-28624.txt +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/src/ChaProEV.egg-info/top_level.txt +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/tests/test_battery_space.py +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/tests/test_charge_and_consumption.py +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/tests/test_empty_values.py +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/tests/test_same_output.py +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/todo.txt +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/variants/Mopo/XX_car.csv +0 -0
- {chaproev-1.2.4 → chaproev-1.2.5}/variants/Mopo.toml +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: ChaProEV
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.5
|
|
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
|
|
@@ -10,6 +10,17 @@ Classifier: Operating System :: OS Independent
|
|
|
10
10
|
Requires-Python: >=3.11
|
|
11
11
|
Description-Content-Type: text/markdown
|
|
12
12
|
License-File: LICENCE
|
|
13
|
+
Requires-Dist: bs4>=0.0.2
|
|
14
|
+
Requires-Dist: cdsapi>=0.7.4
|
|
15
|
+
Requires-Dist: ETS_CookBook>=1.1.1
|
|
16
|
+
Requires-Dist: matplotlib>=3.9.2
|
|
17
|
+
Requires-Dist: numpy>=2.1.3
|
|
18
|
+
Requires-Dist: pandas>=2.2.3
|
|
19
|
+
Requires-Dist: python-box>=7.2.0
|
|
20
|
+
Requires-Dist: requests>=2.32.3
|
|
21
|
+
Requires-Dist: toml>=0.10.2
|
|
22
|
+
Requires-Dist: tqdm>=4.67.0
|
|
23
|
+
Dynamic: license-file
|
|
13
24
|
|
|
14
25
|
# **ChaProEV**
|
|
15
26
|
|
|
@@ -0,0 +1,405 @@
|
|
|
1
|
+
[run]
|
|
2
|
+
use_day_types_in_charge_computing = true
|
|
3
|
+
|
|
4
|
+
[vehicle]
|
|
5
|
+
name = "car"
|
|
6
|
+
base_location = "home"
|
|
7
|
+
yearly_kilometrage = 17036.55556
|
|
8
|
+
kilometers_column_for_consumption = "Arrivals"
|
|
9
|
+
use_weighted = false
|
|
10
|
+
battery_capacity = 65.72924767
|
|
11
|
+
solar_panel_size_kWp = 0
|
|
12
|
+
|
|
13
|
+
[mobility_module]
|
|
14
|
+
day_start_hour = 4.0
|
|
15
|
+
compute_start_location_split = true
|
|
16
|
+
day_types = [ "weekday_in_work_week", "weekend_in_work_week", "weekday_in_holiday_week", "weekend_in_holiday_week", "weekend_holiday_departures", "weekend_holiday_returns", "holiday_overlap_weekend",]
|
|
17
|
+
mobility_quantities = [ "Departures amount", "Departures kilometers", "Departures weighted kilometers", "Departures impact", "Departures impact kilometers", "Departures impact weighted kilometers", "Arrivals amount", "Arrivals kilometers", "Arrivals weighted kilometers", "Arrivals impact", "Arrivals impact kilometers", "Arrivals impact weighted kilometers",]
|
|
18
|
+
battery_space_shift_quantities = [ "departures", "departures_weighted", "departures_impact", "departures_impact_weighted", "arrivals", "arrivals_weighted", "arrivals_impact", "arrivals_impact_weighted",]
|
|
19
|
+
location_connections_headers = [ "Duration (hours)", "Distance (km)", "Weighted distance (km)",]
|
|
20
|
+
mobility_index_names = [ "From", "To", "Time Tag",]
|
|
21
|
+
kilometers_driven_headers = [ "Proportion at base", "Proportion idle en route", "Proportion driving", "Proportion of run time driving", "Driven kilometers (km)",]
|
|
22
|
+
holiday_weeks = [ 1, 8, 18, 28, 29, 30, 31, 32, 33, 42, 51, 52, 53,]
|
|
23
|
+
number_of_holiday_weeks = 10
|
|
24
|
+
holiday_departures_in_weekend_week_numbers = [ 7, 17, 27, 30, 41, 50,]
|
|
25
|
+
holiday_returns_in_weekend_week_numbers = [ 1, 8, 18, 30, 33, 42,]
|
|
26
|
+
work_hours_in_a_work_day = 8
|
|
27
|
+
hours_worked_per_work_week = 38.4
|
|
28
|
+
hours_in_a_standard_work_week = 40
|
|
29
|
+
percentage_working_on_a_work_week = 1
|
|
30
|
+
worked_hours_per_year = 1671.950311
|
|
31
|
+
leisure_trips_per_weekend = 1
|
|
32
|
+
leisure_trips_per_week_outside_weekends = 2
|
|
33
|
+
maximal_fill_percentage_leisure_trips_on_non_work_weekdays = 1
|
|
34
|
+
weekday_leisure_trips = 2
|
|
35
|
+
percentage_of_weekday_leisure_trips_on_a_work_day = 0.5
|
|
36
|
+
weekend_trips_per_year = 12
|
|
37
|
+
holiday_trips_taken = 1
|
|
38
|
+
time_spent_at_holiday_destination = 14
|
|
39
|
+
|
|
40
|
+
[transport_factors]
|
|
41
|
+
road_types = [ "highway", "city",]
|
|
42
|
+
weights = [ 0.66, 1.6,]
|
|
43
|
+
|
|
44
|
+
[weather]
|
|
45
|
+
weather_factors_table_root_name = "weather_factors"
|
|
46
|
+
|
|
47
|
+
[charging]
|
|
48
|
+
price_reaction_exponent = 0
|
|
49
|
+
desirability_reaction_exponent = 0
|
|
50
|
+
|
|
51
|
+
[charging_sessions]
|
|
52
|
+
resolution = 1
|
|
53
|
+
|
|
54
|
+
[run.start]
|
|
55
|
+
year = 2017
|
|
56
|
+
month = 12
|
|
57
|
+
day = 31
|
|
58
|
+
hour = 4.0
|
|
59
|
+
minute = 0
|
|
60
|
+
|
|
61
|
+
[run.end]
|
|
62
|
+
year = 2019
|
|
63
|
+
month = 1
|
|
64
|
+
day = 1
|
|
65
|
+
hour = 0
|
|
66
|
+
minute = 0
|
|
67
|
+
|
|
68
|
+
[run.display_start]
|
|
69
|
+
year = 2018
|
|
70
|
+
month = 1
|
|
71
|
+
day = 1
|
|
72
|
+
hour = 0
|
|
73
|
+
minute = 0
|
|
74
|
+
|
|
75
|
+
[run.display_end]
|
|
76
|
+
year = 2019
|
|
77
|
+
month = 1
|
|
78
|
+
day = 1
|
|
79
|
+
hour = 0
|
|
80
|
+
minute = 0
|
|
81
|
+
|
|
82
|
+
[run.frequency]
|
|
83
|
+
size = 1
|
|
84
|
+
type = "h"
|
|
85
|
+
|
|
86
|
+
[run.display_frequency]
|
|
87
|
+
size = 1
|
|
88
|
+
type = "h"
|
|
89
|
+
|
|
90
|
+
[run.get_extra_downloads]
|
|
91
|
+
download_weather_data = false
|
|
92
|
+
make_weather_database = false
|
|
93
|
+
download_EV_tool_data = false
|
|
94
|
+
|
|
95
|
+
[locations.home]
|
|
96
|
+
vehicle = "car"
|
|
97
|
+
connectivity = 1
|
|
98
|
+
charging_power = 7.4
|
|
99
|
+
charger_efficiency = 0.87
|
|
100
|
+
latitude = 52
|
|
101
|
+
longitude = 6.2
|
|
102
|
+
charging_price = 0.25
|
|
103
|
+
charging_desirability = 1
|
|
104
|
+
percentage_in_location_at_run_start = 1
|
|
105
|
+
vehicle_discharge_power = 7.4
|
|
106
|
+
proportion_of_discharge_to_network = 0.87
|
|
107
|
+
time_modulation_factors = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,]
|
|
108
|
+
|
|
109
|
+
[locations.work]
|
|
110
|
+
vehicle = "car"
|
|
111
|
+
connectivity = 0.75
|
|
112
|
+
charging_power = 22.0
|
|
113
|
+
charger_efficiency = 0.92
|
|
114
|
+
latitude = 52.1
|
|
115
|
+
longitude = 5.8
|
|
116
|
+
charging_price = 0
|
|
117
|
+
charging_desirability = 1
|
|
118
|
+
percentage_in_location_at_run_start = 0
|
|
119
|
+
vehicle_discharge_power = 22.0
|
|
120
|
+
proportion_of_discharge_to_network = 0.92
|
|
121
|
+
time_modulation_factors = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,]
|
|
122
|
+
|
|
123
|
+
[locations.leisure]
|
|
124
|
+
vehicle = "car"
|
|
125
|
+
connectivity = 0.75
|
|
126
|
+
charging_power = 22.0
|
|
127
|
+
charger_efficiency = 0.92
|
|
128
|
+
latitude = 52.1
|
|
129
|
+
longitude = 6.2
|
|
130
|
+
charging_price = 0.35
|
|
131
|
+
charging_desirability = 0.25
|
|
132
|
+
percentage_in_location_at_run_start = 0
|
|
133
|
+
vehicle_discharge_power = 22.0
|
|
134
|
+
proportion_of_discharge_to_network = 0.92
|
|
135
|
+
time_modulation_factors = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,]
|
|
136
|
+
|
|
137
|
+
[locations.weekend]
|
|
138
|
+
vehicle = "car"
|
|
139
|
+
connectivity = 0.375
|
|
140
|
+
charging_power = 22.0
|
|
141
|
+
charger_efficiency = 0.92
|
|
142
|
+
latitude = 51.8
|
|
143
|
+
longitude = 6.2
|
|
144
|
+
charging_price = 0.35
|
|
145
|
+
charging_desirability = 0.1
|
|
146
|
+
percentage_in_location_at_run_start = 0
|
|
147
|
+
vehicle_discharge_power = 22.0
|
|
148
|
+
proportion_of_discharge_to_network = 0.92
|
|
149
|
+
time_modulation_factors = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,]
|
|
150
|
+
|
|
151
|
+
[locations.holiday]
|
|
152
|
+
vehicle = "car"
|
|
153
|
+
connectivity = 1
|
|
154
|
+
charging_power = 22.0
|
|
155
|
+
charger_efficiency = 0.92
|
|
156
|
+
latitude = 53.0
|
|
157
|
+
longitude = 6.2
|
|
158
|
+
charging_price = 0.35
|
|
159
|
+
charging_desirability = 0.2
|
|
160
|
+
percentage_in_location_at_run_start = 0
|
|
161
|
+
vehicle_discharge_power = 22.0
|
|
162
|
+
proportion_of_discharge_to_network = 0.92
|
|
163
|
+
time_modulation_factors = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,]
|
|
164
|
+
|
|
165
|
+
[legs.go_to_work]
|
|
166
|
+
vehicle = "car"
|
|
167
|
+
distance = 26.88888889
|
|
168
|
+
duration = 0.55
|
|
169
|
+
hour_in_day_factors = [ 1, 1, 1, 1, 1, 1, 1, 1, 1.2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,]
|
|
170
|
+
|
|
171
|
+
[legs.come_from_work]
|
|
172
|
+
vehicle = "car"
|
|
173
|
+
distance = 26.88888889
|
|
174
|
+
duration = 0.55
|
|
175
|
+
hour_in_day_factors = [ 1, 1, 1, 1, 1, 1, 1, 1, 1.2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,]
|
|
176
|
+
|
|
177
|
+
[legs.home_to_leisure]
|
|
178
|
+
vehicle = "car"
|
|
179
|
+
distance = 7.333333333
|
|
180
|
+
duration = 0.15
|
|
181
|
+
hour_in_day_factors = [ 1, 1, 1, 1, 1, 1, 1, 1, 1.2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,]
|
|
182
|
+
|
|
183
|
+
[legs.leisure_to_home]
|
|
184
|
+
vehicle = "car"
|
|
185
|
+
distance = 7.333333333
|
|
186
|
+
duration = 0.15
|
|
187
|
+
hour_in_day_factors = [ 1, 1, 1, 1, 1, 1, 1, 1, 1.2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,]
|
|
188
|
+
|
|
189
|
+
[legs.home_to_weekend]
|
|
190
|
+
vehicle = "car"
|
|
191
|
+
distance = 122.2222222
|
|
192
|
+
duration = 1.222222222
|
|
193
|
+
hour_in_day_factors = [ 1, 1, 1, 1, 1, 1, 1, 1, 1.2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,]
|
|
194
|
+
|
|
195
|
+
[legs.weekend_to_home]
|
|
196
|
+
vehicle = "car"
|
|
197
|
+
distance = 122.2222222
|
|
198
|
+
duration = 1.222222222
|
|
199
|
+
hour_in_day_factors = [ 1, 1, 1, 1, 1, 1, 1, 1, 1.2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,]
|
|
200
|
+
|
|
201
|
+
[legs.home_to_holiday]
|
|
202
|
+
vehicle = "car"
|
|
203
|
+
distance = 488.8888889
|
|
204
|
+
duration = 4.888888889
|
|
205
|
+
hour_in_day_factors = [ 1, 1, 1, 1, 1, 1, 1, 1, 1.2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,]
|
|
206
|
+
|
|
207
|
+
[legs.holiday_to_home]
|
|
208
|
+
vehicle = "car"
|
|
209
|
+
distance = 488.8888889
|
|
210
|
+
duration = 4.888888889
|
|
211
|
+
hour_in_day_factors = [ 1, 1, 1, 1, 1, 1, 1, 1, 1.2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,]
|
|
212
|
+
|
|
213
|
+
[vehicle.base_consumption_per_km]
|
|
214
|
+
electricity_kWh = 0.158955231
|
|
215
|
+
gasoline_litres = 0.071097136
|
|
216
|
+
diesel_litres = 0.061018652
|
|
217
|
+
hydrogen_kg = 0.008325705
|
|
218
|
+
LPG_litres = 0.100784846
|
|
219
|
+
CNG_kg = 0.050501972
|
|
220
|
+
|
|
221
|
+
[trips.commute_to_work]
|
|
222
|
+
vehicle = "car"
|
|
223
|
+
legs = [ "go_to_work", "come_from_work",]
|
|
224
|
+
time_between_legs = [ 9,]
|
|
225
|
+
percentage_station_users = 0
|
|
226
|
+
start_probabilities = [ 0, 0, 0.25, 0.5, 0.25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,]
|
|
227
|
+
repeated_sequence = []
|
|
228
|
+
repetition_amounts = [ 0,]
|
|
229
|
+
time_between_repetitions = [ 0,]
|
|
230
|
+
|
|
231
|
+
[trips.commute_to_work_and_leisure]
|
|
232
|
+
vehicle = "car"
|
|
233
|
+
legs = [ "go_to_work", "come_from_work", "home_to_leisure", "leisure_to_home",]
|
|
234
|
+
time_between_legs = [ 9, 2, 3,]
|
|
235
|
+
percentage_station_users = 0
|
|
236
|
+
start_probabilities = [ 0, 0, 0.25, 0.5, 0.25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,]
|
|
237
|
+
repeated_sequence = []
|
|
238
|
+
repetition_amounts = [ 0,]
|
|
239
|
+
time_between_repetitions = [ 0,]
|
|
240
|
+
|
|
241
|
+
[trips.leisure_only]
|
|
242
|
+
vehicle = "car"
|
|
243
|
+
legs = [ "home_to_leisure", "leisure_to_home",]
|
|
244
|
+
time_between_legs = [ 2,]
|
|
245
|
+
percentage_station_users = 0
|
|
246
|
+
start_probabilities = [ 0, 0.083333333, 0.083333333, 0.083333333, 0.0625, 0.0625, 0.0625, 0.0625, 0.0625, 0.0625, 0.0625, 0.0625, 0.0625, 0.0625, 0.0625, 0.0625, 0, 0, 0, 0, 0, 0, 0, 0,]
|
|
247
|
+
repeated_sequence = []
|
|
248
|
+
repetition_amounts = [ 0,]
|
|
249
|
+
time_between_repetitions = [ 0,]
|
|
250
|
+
|
|
251
|
+
[trips.weekend_trip]
|
|
252
|
+
vehicle = "car"
|
|
253
|
+
legs = [ "home_to_weekend", "weekend_to_home",]
|
|
254
|
+
time_between_legs = [ 4,]
|
|
255
|
+
percentage_station_users = 0
|
|
256
|
+
start_probabilities = [ 0, 0.083333333, 0.083333333, 0.083333333, 0.0625, 0.0625, 0.0625, 0.0625, 0.0625, 0.0625, 0.0625, 0.0625, 0.0625, 0.0625, 0.0625, 0.0625, 0, 0, 0, 0, 0, 0, 0, 0,]
|
|
257
|
+
repeated_sequence = []
|
|
258
|
+
repetition_amounts = [ 0,]
|
|
259
|
+
time_between_repetitions = [ 0,]
|
|
260
|
+
|
|
261
|
+
[trips.holiday_outward]
|
|
262
|
+
vehicle = "car"
|
|
263
|
+
legs = [ "home_to_holiday",]
|
|
264
|
+
time_between_legs = []
|
|
265
|
+
percentage_station_users = 0
|
|
266
|
+
start_probabilities = [ 0, 0.03125, 0.03125, 0.03125, 0.09375, 0.09375, 0.09375, 0.09375, 0.09375, 0.09375, 0.09375, 0.09375, 0.03125, 0.03125, 0.03125, 0.03125, 0.03125, 0, 0, 0, 0, 0, 0, 0,]
|
|
267
|
+
repeated_sequence = []
|
|
268
|
+
repetition_amounts = [ 0,]
|
|
269
|
+
time_between_repetitions = [ 0,]
|
|
270
|
+
|
|
271
|
+
[trips.holiday_back]
|
|
272
|
+
vehicle = "car"
|
|
273
|
+
legs = [ "holiday_to_home",]
|
|
274
|
+
time_between_legs = []
|
|
275
|
+
percentage_station_users = 0
|
|
276
|
+
start_probabilities = [ 0, 0.03125, 0.03125, 0.03125, 0.09375, 0.09375, 0.09375, 0.09375, 0.09375, 0.09375, 0.09375, 0.09375, 0.03125, 0.03125, 0.03125, 0.03125, 0.03125, 0, 0, 0, 0, 0, 0, 0,]
|
|
277
|
+
repeated_sequence = []
|
|
278
|
+
repetition_amounts = [ 0,]
|
|
279
|
+
time_between_repetitions = [ 0,]
|
|
280
|
+
|
|
281
|
+
[trips.stay_put_home]
|
|
282
|
+
vehicle = "car"
|
|
283
|
+
legs = []
|
|
284
|
+
time_between_legs = []
|
|
285
|
+
percentage_station_users = 0
|
|
286
|
+
start_probabilities = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,]
|
|
287
|
+
repeated_sequence = []
|
|
288
|
+
repetition_amounts = [ 0,]
|
|
289
|
+
time_between_repetitions = [ 0,]
|
|
290
|
+
|
|
291
|
+
[trips.stay_put_holiday]
|
|
292
|
+
vehicle = "car"
|
|
293
|
+
legs = []
|
|
294
|
+
time_between_legs = []
|
|
295
|
+
percentage_station_users = 0
|
|
296
|
+
start_probabilities = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,]
|
|
297
|
+
repeated_sequence = []
|
|
298
|
+
repetition_amounts = [ 0,]
|
|
299
|
+
time_between_repetitions = [ 0,]
|
|
300
|
+
|
|
301
|
+
[mobility_module.trips_per_day_type]
|
|
302
|
+
bus = [ "bus_weekday_in_workweek", "bus_weekend_in_workweek", "bus_weekday_in_holiday_week", "bus_weekend_in_holiday_week", "bus_weekend_in_holiday_week", "bus_weekend_in_holiday_week", "bus_weekend_in_holiday_week",]
|
|
303
|
+
truck = [ "truck_weekday", "truck_weekend", "truck_weekday", "truck_weekend", "truck_weekend", "truck_weekend", "truck_weekend",]
|
|
304
|
+
van = [ "van_weekday", "van_weekend", "van_weekday", "van_weekend", "van_weekend", "van_weekend", "van_weekend",]
|
|
305
|
+
|
|
306
|
+
[weather.source_data]
|
|
307
|
+
start_year = 2020
|
|
308
|
+
end_year = 2022
|
|
309
|
+
quantities = [ "2m_temperature", "skin_temperature", "surface_solar_radiation_downwards", "total_precipitation",]
|
|
310
|
+
raw_data_folder = "input/cds_weather_data"
|
|
311
|
+
latitude_min = 36
|
|
312
|
+
latitude_max = 68
|
|
313
|
+
longitude_min = -11
|
|
314
|
+
longitude_max = 60
|
|
315
|
+
|
|
316
|
+
[weather.processed_data]
|
|
317
|
+
raw_data_folder = "input/cds_weather_data"
|
|
318
|
+
processed_folder = "input/processed_weather_data"
|
|
319
|
+
weather_database_file_name = "weather.sqlite3"
|
|
320
|
+
chunk_size = 100000
|
|
321
|
+
quantities = [ "2m_temperature", "skin_temperature", "surface_solar_radiation_downwards", "total_precipitation",]
|
|
322
|
+
KELVIN_TO_CELSIUS = -273.15
|
|
323
|
+
quantity_tags = [ "t2m", "skt", "ssrd", "tp",]
|
|
324
|
+
quantity_processed_names = [ "Temperature at 2 meters (°C)", "Skin temperature (°C)", "Surface solar radiation downwards (J/m2)", "Total precipitation (m)",]
|
|
325
|
+
cumulative_quantity_processed_names = [ "Surface solar radiation downwards (J/m2)", "Total precipitation (m)",]
|
|
326
|
+
cumulative_quantities = [ "surface_solar_radiation_downwards", "total_precipitation",]
|
|
327
|
+
queries_for_cumulative_quantities = [ "SELECT * FROM 'Surface solar radiation downwards (J/m2)';", "SELECT * FROM 'Total precipitation (m)';",]
|
|
328
|
+
temperature_quantities = [ "2m_temperature", "skin_temperature",]
|
|
329
|
+
processed_index_tags = [ "Timetag", "Latitude", "Longitude",]
|
|
330
|
+
latitude_min = 50.6
|
|
331
|
+
latitude_max = 53.5
|
|
332
|
+
longitude_min = 3.4
|
|
333
|
+
longitude_max = 7.2
|
|
334
|
+
coordinate_step = 0.1
|
|
335
|
+
|
|
336
|
+
[weather.EV_tool]
|
|
337
|
+
EV_tool_url = "https://www.geotab.com/CMS-GeneralFiles-production/NA/EV/EVTOOL.html"
|
|
338
|
+
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"
|
|
339
|
+
efficiency_curve_script_index = 2
|
|
340
|
+
data_splitter = "Temp:"
|
|
341
|
+
file_name = "vehicle_temperature_efficiencies"
|
|
342
|
+
groupfile_name = "vehicle_temperature_efficiencies"
|
|
343
|
+
folder = "input"
|
|
344
|
+
efficiency_factor_column_name = "Vehicle Relative efficiency factor"
|
|
345
|
+
|
|
346
|
+
[weather.vehicle_temperature_efficiencies]
|
|
347
|
+
folder = "input"
|
|
348
|
+
file_name = "vehicle_temperature_efficiencies.pkl"
|
|
349
|
+
fitting_polynomial_order = 6
|
|
350
|
+
|
|
351
|
+
[legs.go_to_work.locations]
|
|
352
|
+
start = "home"
|
|
353
|
+
end = "work"
|
|
354
|
+
|
|
355
|
+
[legs.go_to_work.road_type_mix]
|
|
356
|
+
mix = [ 0.8, 0.2,]
|
|
357
|
+
|
|
358
|
+
[legs.come_from_work.locations]
|
|
359
|
+
start = "work"
|
|
360
|
+
end = "home"
|
|
361
|
+
|
|
362
|
+
[legs.come_from_work.road_type_mix]
|
|
363
|
+
mix = [ 0.8, 0.2,]
|
|
364
|
+
|
|
365
|
+
[legs.home_to_leisure.locations]
|
|
366
|
+
start = "home"
|
|
367
|
+
end = "leisure"
|
|
368
|
+
|
|
369
|
+
[legs.home_to_leisure.road_type_mix]
|
|
370
|
+
mix = [ 0.8, 0.2,]
|
|
371
|
+
|
|
372
|
+
[legs.leisure_to_home.locations]
|
|
373
|
+
start = "leisure"
|
|
374
|
+
end = "home"
|
|
375
|
+
|
|
376
|
+
[legs.leisure_to_home.road_type_mix]
|
|
377
|
+
mix = [ 0.8, 0.2,]
|
|
378
|
+
|
|
379
|
+
[legs.home_to_weekend.locations]
|
|
380
|
+
start = "home"
|
|
381
|
+
end = "weekend"
|
|
382
|
+
|
|
383
|
+
[legs.home_to_weekend.road_type_mix]
|
|
384
|
+
mix = [ 0.8, 0.2,]
|
|
385
|
+
|
|
386
|
+
[legs.weekend_to_home.locations]
|
|
387
|
+
start = "weekend"
|
|
388
|
+
end = "home"
|
|
389
|
+
|
|
390
|
+
[legs.weekend_to_home.road_type_mix]
|
|
391
|
+
mix = [ 0.8, 0.2,]
|
|
392
|
+
|
|
393
|
+
[legs.home_to_holiday.locations]
|
|
394
|
+
start = "home"
|
|
395
|
+
end = "holiday"
|
|
396
|
+
|
|
397
|
+
[legs.home_to_holiday.road_type_mix]
|
|
398
|
+
mix = [ 0.8, 0.2,]
|
|
399
|
+
|
|
400
|
+
[legs.holiday_to_home.locations]
|
|
401
|
+
start = "holiday"
|
|
402
|
+
end = "home"
|
|
403
|
+
|
|
404
|
+
[legs.holiday_to_home.road_type_mix]
|
|
405
|
+
mix = [ 0.8, 0.2,]
|
|
@@ -80,7 +80,7 @@ def run_ChaProEV(case_name: str) -> None:
|
|
|
80
80
|
csv_version: bool = variant_parameters.csv_version
|
|
81
81
|
make_variants.make_variants(case_name, csv_version)
|
|
82
82
|
|
|
83
|
-
scenarios:
|
|
83
|
+
scenarios: list[Box] = scenarios_module.load_scenarios(case_name)
|
|
84
84
|
|
|
85
85
|
set_amount_of_processes: bool = (
|
|
86
86
|
general_parameters.parallel_processing.set_amount_of_processes
|
|
@@ -92,7 +92,7 @@ def run_ChaProEV(case_name: str) -> None:
|
|
|
92
92
|
general_parameters.parallel_processing.amount_for_scenarios
|
|
93
93
|
)
|
|
94
94
|
|
|
95
|
-
pool_inputs: ty.Iterator[
|
|
95
|
+
pool_inputs: ty.Iterator[tuple[Box, str, Box]] | ty.Any = zip(
|
|
96
96
|
scenarios, repeat(case_name), repeat(general_parameters)
|
|
97
97
|
)
|
|
98
98
|
# the ty.Any alternative is there because transforming it with the
|
|
@@ -124,7 +124,7 @@ def run_ChaProEV(case_name: str) -> None:
|
|
|
124
124
|
if __name__ == '__main__':
|
|
125
125
|
# This is a case name, which is the grouping of all your scenarios.
|
|
126
126
|
# This is principally used to label your output files.
|
|
127
|
-
case_name = '
|
|
127
|
+
case_name = 'bus_test'
|
|
128
128
|
|
|
129
129
|
run_ChaProEV(case_name)
|
|
130
130
|
|