CityLearn 2.4.2__tar.gz → 2.5.0__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 (71) hide show
  1. {CityLearn-2.4.2/CityLearn.egg-info → citylearn-2.5.0}/PKG-INFO +17 -2
  2. {CityLearn-2.4.2 → citylearn-2.5.0}/README.md +16 -1
  3. citylearn-2.5.0/citylearn/__init__.py +1 -0
  4. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/agents/rbc.py +32 -3
  5. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/building.py +367 -43
  6. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/citylearn.py +668 -172
  7. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/data.py +12 -25
  8. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/energy_model.py +30 -24
  9. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/reward_function.py +76 -45
  10. {CityLearn-2.4.2 → citylearn-2.5.0/citylearn.egg-info}/PKG-INFO +17 -2
  11. {CityLearn-2.4.2/CityLearn.egg-info → citylearn-2.5.0/citylearn.egg-info}/SOURCES.txt +7 -14
  12. {CityLearn-2.4.2/CityLearn.egg-info → citylearn-2.5.0/citylearn.egg-info}/requires.txt +1 -1
  13. {CityLearn-2.4.2 → citylearn-2.5.0}/setup.py +2 -2
  14. CityLearn-2.4.2/citylearn/__init__.py +0 -1
  15. CityLearn-2.4.2/citylearn/tests/__init__.py +0 -1
  16. CityLearn-2.4.2/citylearn/tests/test_battery.py +0 -324
  17. CityLearn-2.4.2/citylearn/tests/test_electric_vehicle.py +0 -104
  18. CityLearn-2.4.2/citylearn/tests/test_electric_vehicle_charger.py +0 -430
  19. CityLearn-2.4.2/citylearn/tests/test_pv.py +0 -136
  20. CityLearn-2.4.2/citylearn/tests/test_washing_machine.py +0 -113
  21. CityLearn-2.4.2/citylearn/tests/test_weather.py +0 -57
  22. {CityLearn-2.4.2 → citylearn-2.5.0}/LICENSE +0 -0
  23. {CityLearn-2.4.2 → citylearn-2.5.0}/MANIFEST.in +0 -0
  24. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/__main__.py +0 -0
  25. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/agents/__init__.py +0 -0
  26. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/agents/base.py +0 -0
  27. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/agents/marlisa.py +0 -0
  28. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/agents/q_learning.py +0 -0
  29. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/agents/rlc.py +0 -0
  30. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/agents/sac.py +0 -0
  31. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/assets/building-0-charge-0.png +0 -0
  32. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/assets/building-0-charge-1.png +0 -0
  33. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/assets/building-0-charge-2.png +0 -0
  34. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/assets/building-0-charge-3.png +0 -0
  35. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/assets/building-1-charge-0.png +0 -0
  36. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/assets/building-1-charge-1.png +0 -0
  37. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/assets/building-1-charge-2.png +0 -0
  38. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/assets/building-1-charge-3.png +0 -0
  39. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/assets/glow.png +0 -0
  40. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/assets/grid.png +0 -0
  41. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/base.py +0 -0
  42. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/cost_function.py +0 -0
  43. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/dynamics.py +0 -0
  44. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/electric_vehicle.py +0 -0
  45. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/electric_vehicle_charger.py +0 -0
  46. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/end_use_load_profiles/__init__.py +0 -0
  47. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/end_use_load_profiles/clustering.py +0 -0
  48. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/end_use_load_profiles/lstm_model/__init__.py +0 -0
  49. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/end_use_load_profiles/lstm_model/model.py +0 -0
  50. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/end_use_load_profiles/lstm_model/model_generation.py +0 -0
  51. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/end_use_load_profiles/lstm_model/model_generation_wrapper.py +0 -0
  52. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/end_use_load_profiles/lstm_model/preprocessing.py +0 -0
  53. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/end_use_load_profiles/neighborhood.py +0 -0
  54. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/end_use_load_profiles/simulate.py +0 -0
  55. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/misc/queries/create_zone_metadata.sql +0 -0
  56. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/misc/queries/select_citylearn_energy_simulation.sql +0 -0
  57. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/misc/queries/select_citylearn_weather.sql +0 -0
  58. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/misc/queries/select_ideal_loads.sql +0 -0
  59. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/misc/queries/select_lstm_training_data.sql +0 -0
  60. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/misc/queries/select_zone_conditioning_metadata.sql +0 -0
  61. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/misc/settings.yaml +0 -0
  62. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/occupant.py +0 -0
  63. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/power_outage.py +0 -0
  64. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/preprocessing.py +0 -0
  65. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/rl.py +0 -0
  66. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/utilities.py +0 -0
  67. {CityLearn-2.4.2 → citylearn-2.5.0}/citylearn/wrappers.py +0 -0
  68. {CityLearn-2.4.2/CityLearn.egg-info → citylearn-2.5.0/citylearn.egg-info}/dependency_links.txt +0 -0
  69. {CityLearn-2.4.2/CityLearn.egg-info → citylearn-2.5.0/citylearn.egg-info}/entry_points.txt +0 -0
  70. {CityLearn-2.4.2/CityLearn.egg-info → citylearn-2.5.0/citylearn.egg-info}/top_level.txt +0 -0
  71. {CityLearn-2.4.2 → citylearn-2.5.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
- Name: CityLearn
3
- Version: 2.4.2
2
+ Name: citylearn
3
+ Version: 2.5.0
4
4
  Summary: An open source Farama Foundation Gymnasium environment for benchmarking distributed energy resource control algorithms to provide energy flexibility in a district of buildings.
5
5
  Home-page: https://github.com/intelligent-environments-lab/CityLearn
6
6
  Author: Jose Ramon Vazquez-Canteli, Kingsley Nweye, Zoltan Nagy
@@ -31,3 +31,18 @@ pip install CityLearn
31
31
 
32
32
  ## Documentation
33
33
  Refer to the [docs](https://intelligent-environments-lab.github.io/CityLearn/).
34
+
35
+ ## CityLearn UI
36
+
37
+ CityLearn UI is a visual dashboard for exploring simulation data generated by the CityLearn framework. It was developed to simplify the analysis of results from smart energy communities, district energy coordination, demand response (among other applications), allowing users to visually inspect building-level components, compare simulation KPIs, and create simulation schemas with ease.
38
+
39
+ The interface is available in two options:
40
+
41
+ * Web app: https://citylearnui.netlify.app/ (free hosted version — not recommended for sensitive/personal data)
42
+ * Open-source code: https://github.com/Soft-CPS-Research-Group/citylearn-ui
43
+
44
+ You can check a tutorial at the official CityLearn [website](https://intelligent-environments-lab.github.io/CityLearn/ui.html), in the CityLearn UI repository [README](https://github.com/Soft-CPS-Research-Group/citylearn-ui), or at the help [tooltip of the oficial webapp](https://citylearn-ui.netlify.app/admin/help).
45
+
46
+ **Compatibility:** This version of the UI currently supports CityLearn v2.5.0 simulation data.
47
+
48
+ **Developed by:** José, a member of the [SoftCPS](https://www2.isep.ipp.pt/softcps/), Software for Cyber-Physical Systems research group (ISEP, Portugal) in collaboration with the Intelligent Environments Lab, University of Texas at Austin.
@@ -16,4 +16,19 @@ pip install CityLearn
16
16
  ```
17
17
 
18
18
  ## Documentation
19
- Refer to the [docs](https://intelligent-environments-lab.github.io/CityLearn/).
19
+ Refer to the [docs](https://intelligent-environments-lab.github.io/CityLearn/).
20
+
21
+ ## CityLearn UI
22
+
23
+ CityLearn UI is a visual dashboard for exploring simulation data generated by the CityLearn framework. It was developed to simplify the analysis of results from smart energy communities, district energy coordination, demand response (among other applications), allowing users to visually inspect building-level components, compare simulation KPIs, and create simulation schemas with ease.
24
+
25
+ The interface is available in two options:
26
+
27
+ * Web app: https://citylearnui.netlify.app/ (free hosted version — not recommended for sensitive/personal data)
28
+ * Open-source code: https://github.com/Soft-CPS-Research-Group/citylearn-ui
29
+
30
+ You can check a tutorial at the official CityLearn [website](https://intelligent-environments-lab.github.io/CityLearn/ui.html), in the CityLearn UI repository [README](https://github.com/Soft-CPS-Research-Group/citylearn-ui), or at the help [tooltip of the oficial webapp](https://citylearn-ui.netlify.app/admin/help).
31
+
32
+ **Compatibility:** This version of the UI currently supports CityLearn v2.5.0 simulation data.
33
+
34
+ **Developed by:** José, a member of the [SoftCPS](https://www2.isep.ipp.pt/softcps/), Software for Cyber-Physical Systems research group (ISEP, Portugal) in collaboration with the Intelligent Environments Lab, University of Texas at Austin.
@@ -0,0 +1 @@
1
+ __version__ = '2.5.0'
@@ -100,11 +100,26 @@ class HourRBC(RBC):
100
100
 
101
101
  else:
102
102
  for m, a, n, o in zip(self.action_map, self.action_names, self.observation_names, observations):
103
- hour = o[n.index('hour')]
103
+ hour_observation = o[n.index('hour')]
104
+ hour = int(round(hour_observation))
105
+ # Support both 0-23 and 1-24 hour encodings.
106
+ hour_candidates = []
107
+
108
+ for candidate in (hour, hour % 24, ((hour - 1) % 24) + 1):
109
+ if candidate not in hour_candidates:
110
+ hour_candidates.append(candidate)
111
+
104
112
  actions_ = []
105
113
 
106
114
  for a_ in a:
107
- actions_.append(m[a_][hour])
115
+ for candidate in hour_candidates:
116
+ hour_map = m[a_]
117
+
118
+ if candidate in hour_map:
119
+ actions_.append(hour_map[candidate])
120
+ break
121
+ else:
122
+ raise KeyError(f'Hour {hour_observation} not defined in action map for action {a_}.')
108
123
 
109
124
  actions.append(actions_)
110
125
 
@@ -467,7 +482,21 @@ class BasicElectricVehicleRBC_ReferenceController(BasicRBC): #change the name
467
482
 
468
483
  elif "electric_vehicle" in n:
469
484
  for hour in Building.get_periodic_observation_metadata()['hour']:
470
- value = 1
485
+ if hour < 7:
486
+ value = 0.4
487
+
488
+ elif hour < 10:
489
+ value = 1
490
+
491
+ elif hour < 15:
492
+ value = -1
493
+
494
+ elif hour < 20:
495
+ value = -0.6
496
+
497
+ else:
498
+ value = 0.8
499
+
471
500
  action_map[n][hour] = value
472
501
 
473
502
  elif "dhw_storage" in n: