ChaProEV 1.2.4__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.
Files changed (105) hide show
  1. {chaproev-1.2.4 → chaproev-1.2.6}/.gitignore +2 -1
  2. {chaproev-1.2.4 → chaproev-1.2.6}/ChaProEV.toml +1 -1
  3. {chaproev-1.2.4 → chaproev-1.2.6}/PKG-INFO +24 -3
  4. chaproev-1.2.4/src/ChaProEV.egg-info/PKG-INFO → chaproev-1.2.6/README.md +12 -15
  5. {chaproev-1.2.4 → chaproev-1.2.6}/pyproject.toml +1 -1
  6. chaproev-1.2.6/requirements.txt +10 -0
  7. chaproev-1.2.6/scenarios/Mopo/Latvia_car_own_driveway_2050.toml +405 -0
  8. chaproev-1.2.6/scenarios/bus_test/XX_bus.toml +572 -0
  9. {chaproev-1.2.4 → chaproev-1.2.6}/src/ChaProEV/ChaProEV.py +3 -3
  10. {chaproev-1.2.4 → chaproev-1.2.6}/src/ChaProEV/charging.py +51 -51
  11. {chaproev-1.2.4 → chaproev-1.2.6}/src/ChaProEV/consumption.py +2 -4
  12. {chaproev-1.2.4 → chaproev-1.2.6}/src/ChaProEV/define.py +85 -79
  13. {chaproev-1.2.4 → chaproev-1.2.6}/src/ChaProEV/make_variants.py +14 -15
  14. {chaproev-1.2.4 → chaproev-1.2.6}/src/ChaProEV/mobility.py +85 -86
  15. {chaproev-1.2.4 → chaproev-1.2.6}/src/ChaProEV/profiles.py +16 -18
  16. {chaproev-1.2.4 → chaproev-1.2.6}/src/ChaProEV/run_time.py +14 -15
  17. {chaproev-1.2.4 → chaproev-1.2.6}/src/ChaProEV/scenarios_module.py +6 -7
  18. {chaproev-1.2.4 → chaproev-1.2.6}/src/ChaProEV/weather.py +72 -81
  19. {chaproev-1.2.4 → chaproev-1.2.6}/src/ChaProEV/writing.py +6 -6
  20. chaproev-1.2.4/README.md → chaproev-1.2.6/src/ChaProEV.egg-info/PKG-INFO +36 -2
  21. {chaproev-1.2.4 → chaproev-1.2.6}/src/ChaProEV.egg-info/SOURCES.txt +8 -0
  22. chaproev-1.2.6/src/ChaProEV.egg-info/requires.txt +10 -0
  23. chaproev-1.2.6/test_bus_moility_matrices/bus_weekday_in_holiday_week.csv +97 -0
  24. chaproev-1.2.6/test_bus_moility_matrices/bus_weekday_in_workweek.csv +97 -0
  25. chaproev-1.2.6/test_bus_moility_matrices/bus_weekend_in_holiday_week.csv +97 -0
  26. chaproev-1.2.6/test_bus_moility_matrices/bus_weekend_in_workweek.csv +97 -0
  27. {chaproev-1.2.4 → chaproev-1.2.6}/.flake8 +0 -0
  28. {chaproev-1.2.4 → chaproev-1.2.6}/.vscode/ltex.dictionary.en-US.txt +0 -0
  29. {chaproev-1.2.4 → chaproev-1.2.6}/.vscode/settings.json +0 -0
  30. {chaproev-1.2.4 → chaproev-1.2.6}/ChaProEV.pptx +0 -0
  31. {chaproev-1.2.4 → chaproev-1.2.6}/Gemfile +0 -0
  32. {chaproev-1.2.4 → chaproev-1.2.6}/LICENCE +0 -0
  33. {chaproev-1.2.4 → chaproev-1.2.6}/MOPO_logo_chaproev on wht.svg +0 -0
  34. {chaproev-1.2.4 → chaproev-1.2.6}/MOPO_logo_chaproev.png +0 -0
  35. {chaproev-1.2.4 → chaproev-1.2.6}/MOPO_logo_chaproev.svg +0 -0
  36. {chaproev-1.2.4 → chaproev-1.2.6}/MOPO_logo_main.svg +0 -0
  37. {chaproev-1.2.4 → chaproev-1.2.6}/MOPO_logo_main_onwhite.svg +0 -0
  38. {chaproev-1.2.4 → chaproev-1.2.6}/comparisons/comparison_template.toml +0 -0
  39. {chaproev-1.2.4 → chaproev-1.2.6}/docs/ChaProEV_workflow.png +0 -0
  40. {chaproev-1.2.4 → chaproev-1.2.6}/docs/Legs.png +0 -0
  41. {chaproev-1.2.4 → chaproev-1.2.6}/docs/Locations.png +0 -0
  42. {chaproev-1.2.4 → chaproev-1.2.6}/docs/Makefile +0 -0
  43. {chaproev-1.2.4 → chaproev-1.2.6}/docs/README.md +0 -0
  44. {chaproev-1.2.4 → chaproev-1.2.6}/docs/Trips.png +0 -0
  45. {chaproev-1.2.4 → chaproev-1.2.6}/docs/Vehicle_Temperature_correction_factor.svg +0 -0
  46. {chaproev-1.2.4 → chaproev-1.2.6}/docs/_config.yml +0 -0
  47. {chaproev-1.2.4 → chaproev-1.2.6}/docs/build/doctrees/environment.pickle +0 -0
  48. {chaproev-1.2.4 → chaproev-1.2.6}/docs/build/doctrees/index.doctree +0 -0
  49. {chaproev-1.2.4 → chaproev-1.2.6}/docs/build/html/.buildinfo +0 -0
  50. {chaproev-1.2.4 → chaproev-1.2.6}/docs/build/html/_sources/index.rst.txt +0 -0
  51. {chaproev-1.2.4 → chaproev-1.2.6}/docs/build/html/_static/alabaster.css +0 -0
  52. {chaproev-1.2.4 → chaproev-1.2.6}/docs/build/html/_static/basic.css +0 -0
  53. {chaproev-1.2.4 → chaproev-1.2.6}/docs/build/html/_static/custom.css +0 -0
  54. {chaproev-1.2.4 → chaproev-1.2.6}/docs/build/html/_static/doctools.js +0 -0
  55. {chaproev-1.2.4 → chaproev-1.2.6}/docs/build/html/_static/documentation_options.js +0 -0
  56. {chaproev-1.2.4 → chaproev-1.2.6}/docs/build/html/_static/file.png +0 -0
  57. {chaproev-1.2.4 → chaproev-1.2.6}/docs/build/html/_static/language_data.js +0 -0
  58. {chaproev-1.2.4 → chaproev-1.2.6}/docs/build/html/_static/minus.png +0 -0
  59. {chaproev-1.2.4 → chaproev-1.2.6}/docs/build/html/_static/plus.png +0 -0
  60. {chaproev-1.2.4 → chaproev-1.2.6}/docs/build/html/_static/pygments.css +0 -0
  61. {chaproev-1.2.4 → chaproev-1.2.6}/docs/build/html/_static/searchtools.js +0 -0
  62. {chaproev-1.2.4 → chaproev-1.2.6}/docs/build/html/_static/sphinx_highlight.js +0 -0
  63. {chaproev-1.2.4 → chaproev-1.2.6}/docs/build/html/genindex.html +0 -0
  64. {chaproev-1.2.4 → chaproev-1.2.6}/docs/build/html/index.html +0 -0
  65. {chaproev-1.2.4 → chaproev-1.2.6}/docs/build/html/objects.inv +0 -0
  66. {chaproev-1.2.4 → chaproev-1.2.6}/docs/build/html/search.html +0 -0
  67. {chaproev-1.2.4 → chaproev-1.2.6}/docs/build/html/searchindex.js +0 -0
  68. {chaproev-1.2.4 → chaproev-1.2.6}/docs/charging.md +0 -0
  69. {chaproev-1.2.4 → chaproev-1.2.6}/docs/consumption.md +0 -0
  70. {chaproev-1.2.4 → chaproev-1.2.6}/docs/define.md +0 -0
  71. {chaproev-1.2.4 → chaproev-1.2.6}/docs/index.md +0 -0
  72. {chaproev-1.2.4 → chaproev-1.2.6}/docs/make.bat +0 -0
  73. {chaproev-1.2.4 → chaproev-1.2.6}/docs/mobility.md +0 -0
  74. {chaproev-1.2.4 → chaproev-1.2.6}/docs/running_model,md +0 -0
  75. {chaproev-1.2.4 → chaproev-1.2.6}/docs/scenario.md +0 -0
  76. {chaproev-1.2.4 → chaproev-1.2.6}/docs/source/index.rst +0 -0
  77. {chaproev-1.2.4 → chaproev-1.2.6}/docs/using.md +0 -0
  78. {chaproev-1.2.4 → chaproev-1.2.6}/docs/weather.md +0 -0
  79. {chaproev-1.2.4 → chaproev-1.2.6}/eu-emblem-low-res.jpg +0 -0
  80. {chaproev-1.2.4 → chaproev-1.2.6}/mkdocs.yml +0 -0
  81. /chaproev-1.2.4/requirements.txt → /chaproev-1.2.6/requirements_obsolete.txt +0 -0
  82. {chaproev-1.2.4 → chaproev-1.2.6}/scenarios/Mopo/Switzerland_car_own_driveway_2050.toml +0 -0
  83. {chaproev-1.2.4 → chaproev-1.2.6}/scenarios/Mopo/XX_bus.toml +0 -0
  84. {chaproev-1.2.4 → chaproev-1.2.6}/scenarios/Mopo/XX_car.toml +0 -0
  85. {chaproev-1.2.4 → chaproev-1.2.6}/scenarios/Mopo/XX_truck.toml +0 -0
  86. {chaproev-1.2.4 → chaproev-1.2.6}/scenarios/Mopo/XX_van.toml +0 -0
  87. {chaproev-1.2.4 → chaproev-1.2.6}/scenarios/local_impact_BEVs/baseline.toml +0 -0
  88. {chaproev-1.2.4 → chaproev-1.2.6}/setup.cfg +0 -0
  89. {chaproev-1.2.4 → chaproev-1.2.6}/src/ChaProEV/__init__.py +0 -0
  90. {chaproev-1.2.4 → chaproev-1.2.6}/src/ChaProEV/py.typed +0 -0
  91. {chaproev-1.2.4 → chaproev-1.2.6}/src/ChaProEV.egg-info/PKG-INFO-PC-28624 +0 -0
  92. {chaproev-1.2.4 → chaproev-1.2.6}/src/ChaProEV.egg-info/PKG-INFO-PC-28624-2 +0 -0
  93. {chaproev-1.2.4 → chaproev-1.2.6}/src/ChaProEV.egg-info/SOURCES-PC-28624-2.txt +0 -0
  94. {chaproev-1.2.4 → chaproev-1.2.6}/src/ChaProEV.egg-info/SOURCES-PC-28624.txt +0 -0
  95. {chaproev-1.2.4 → chaproev-1.2.6}/src/ChaProEV.egg-info/dependency_links.txt +0 -0
  96. {chaproev-1.2.4 → chaproev-1.2.6}/src/ChaProEV.egg-info/requires-PC-28624-2.txt +0 -0
  97. {chaproev-1.2.4 → chaproev-1.2.6}/src/ChaProEV.egg-info/requires-PC-28624.txt +0 -0
  98. {chaproev-1.2.4 → chaproev-1.2.6}/src/ChaProEV.egg-info/top_level.txt +0 -0
  99. {chaproev-1.2.4 → chaproev-1.2.6}/tests/test_battery_space.py +0 -0
  100. {chaproev-1.2.4 → chaproev-1.2.6}/tests/test_charge_and_consumption.py +0 -0
  101. {chaproev-1.2.4 → chaproev-1.2.6}/tests/test_empty_values.py +0 -0
  102. {chaproev-1.2.4 → chaproev-1.2.6}/tests/test_same_output.py +0 -0
  103. {chaproev-1.2.4 → chaproev-1.2.6}/todo.txt +0 -0
  104. {chaproev-1.2.4 → chaproev-1.2.6}/variants/Mopo/XX_car.csv +0 -0
  105. {chaproev-1.2.4 → chaproev-1.2.6}/variants/Mopo.toml +0 -0
@@ -1,4 +1,5 @@
1
- input/
1
+ input/*
2
+ !input/Mopo/
2
3
  output/
3
4
  devel/
4
5
  ChaProEV_env/
@@ -44,7 +44,7 @@ fleet_headers = [
44
44
  'Discharge Power to Network (MW)',
45
45
 
46
46
  ]
47
- do_fleet_tables = true
47
+ do_fleet_tables = false
48
48
  fleet_file_name = 'fleets.csv'
49
49
 
50
50
  [sessions_dataframe]
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: ChaProEV
3
- Version: 1.2.4
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
@@ -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.2
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
 
@@ -67,7 +78,16 @@ if __name__ == '__main__':
67
78
  case_name: str = 'Mopo'
68
79
  ChaProEV.run_ChaProEV(case_name)
69
80
  ```
70
- For examples of running ChaProEV,
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,
71
91
  you can visit the [ChaProEV runs repository](https://github.com/TNO/ChaProEV_runs).
72
92
 
73
93
  ## General approach and structure
@@ -126,6 +146,7 @@ Applied Energy 360 (2024) 122695
126
146
  2. S. Johanndeiter, N. Helistö, J. Kiviluoma, V. Bertsch, [Price formation
127
147
  and intersectoral distributional eects in a fully decarbonised european
128
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
129
150
 
130
151
 
131
152
  #### **Future**
@@ -1,16 +1,3 @@
1
- Metadata-Version: 2.1
2
- Name: ChaProEV
3
- Version: 1.2.4
4
- Summary: ChaProEV: Charging Profiles of Electric Vehicles
5
- Author-email: Omar Usmani <Omar.Usmani@TNO.nl>
6
- Project-URL: Homepage, https://github.com/TNO/ChaProEV
7
- Classifier: Programming Language :: Python :: 3
8
- Classifier: License :: OSI Approved :: Apache Software License
9
- Classifier: Operating System :: OS Independent
10
- Requires-Python: >=3.11
11
- Description-Content-Type: text/markdown
12
- License-File: LICENCE
13
-
14
1
  # **ChaProEV**
15
2
 
16
3
 
@@ -67,7 +54,16 @@ if __name__ == '__main__':
67
54
  case_name: str = 'Mopo'
68
55
  ChaProEV.run_ChaProEV(case_name)
69
56
  ```
70
- For examples of running ChaProEV,
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,
71
67
  you can visit the [ChaProEV runs repository](https://github.com/TNO/ChaProEV_runs).
72
68
 
73
69
  ## General approach and structure
@@ -126,6 +122,7 @@ Applied Energy 360 (2024) 122695
126
122
  2. S. Johanndeiter, N. Helistö, J. Kiviluoma, V. Bertsch, [Price formation
127
123
  and intersectoral distributional eects in a fully decarbonised european
128
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
129
126
 
130
127
 
131
128
  #### **Future**
@@ -149,4 +146,4 @@ Infrastructure and Environment Executive Agency under the European Union’s
149
146
  HORIZON Research and Innovation Actions under grant agreement N°101095998.</td>
150
147
  <tr>
151
148
  </table>
152
- </center>
149
+ </center>
@@ -4,7 +4,7 @@ build-backend = 'setuptools.build_meta'
4
4
 
5
5
  [project]
6
6
  name = 'ChaProEV'
7
- version = '1.2.4'
7
+ version = '1.2.6'
8
8
  authors = [
9
9
  { name='Omar Usmani', email='Omar.Usmani@TNO.nl' },
10
10
  ]
@@ -0,0 +1,10 @@
1
+ bs4>=0.0.2
2
+ cdsapi>=0.7.4
3
+ ETS_CookBook>=1.1.2
4
+ matplotlib>=3.9.2
5
+ numpy>=2.1.3
6
+ pandas>=2.2.3
7
+ python-box>=7.2.0
8
+ requests>=2.32.3
9
+ toml>=0.10.2
10
+ tqdm>=4.67.0
@@ -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,]