flood-adapt 1.0.2__tar.gz → 1.0.4__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 (148) hide show
  1. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/PKG-INFO +1 -1
  2. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/__init__.py +1 -1
  3. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/adapter/sfincs_adapter.py +5 -23
  4. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/database_builder.py +1 -23
  5. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/flood_adapt.py +1 -1
  6. flood_adapt-1.0.4/flood_adapt/misc/debug_timer.py +26 -0
  7. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/workflows/scenario_runner.py +15 -2
  8. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt.egg-info/PKG-INFO +1 -1
  9. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt.egg-info/SOURCES.txt +1 -0
  10. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/LICENSE +0 -0
  11. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/README.md +0 -0
  12. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/adapter/__init__.py +0 -0
  13. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/adapter/fiat_adapter.py +0 -0
  14. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/adapter/interface/__init__.py +0 -0
  15. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/adapter/interface/hazard_adapter.py +0 -0
  16. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/adapter/interface/impact_adapter.py +0 -0
  17. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/adapter/interface/model_adapter.py +0 -0
  18. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/adapter/interface/offshore.py +0 -0
  19. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/adapter/sfincs_offshore.py +0 -0
  20. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/config/__init__.py +0 -0
  21. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/config/config.py +0 -0
  22. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/config/fiat.py +0 -0
  23. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/config/gui.py +0 -0
  24. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/config/hazard.py +0 -0
  25. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/config/impacts.py +0 -0
  26. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/config/sfincs.py +0 -0
  27. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/config/site.py +0 -0
  28. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/__init__.py +0 -0
  29. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/default_units/imperial.toml +0 -0
  30. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/default_units/metric.toml +0 -0
  31. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/green_infra_table/green_infra_lookup_table.csv +0 -0
  32. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/icons/black_down_48x48.png +0 -0
  33. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/icons/black_left_48x48.png +0 -0
  34. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/icons/black_right_48x48.png +0 -0
  35. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/icons/black_up_48x48.png +0 -0
  36. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-16_white_down.png +0 -0
  37. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-16_white_left.png +0 -0
  38. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-16_white_right.png +0 -0
  39. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-16_white_up.png +0 -0
  40. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_black_down.png +0 -0
  41. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_black_left.png +0 -0
  42. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_black_right.png +0 -0
  43. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_black_up.png +0 -0
  44. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_white_left.png +0 -0
  45. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_white_right.png +0 -0
  46. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/icons/white_down_48x48.png +0 -0
  47. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/icons/white_left_48x48.png +0 -0
  48. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/icons/white_right_48x48.png +0 -0
  49. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/icons/white_up_48x48.png +0 -0
  50. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/infographics/OSM/config_charts.toml +0 -0
  51. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/infographics/OSM/config_people.toml +0 -0
  52. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/infographics/OSM/config_risk_charts.toml +0 -0
  53. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/infographics/OSM/config_roads.toml +0 -0
  54. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/infographics/OSM/styles.css +0 -0
  55. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/infographics/US_NSI/config_charts.toml +0 -0
  56. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/infographics/US_NSI/config_people.toml +0 -0
  57. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/infographics/US_NSI/config_risk_charts.toml +0 -0
  58. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/infographics/US_NSI/config_roads.toml +0 -0
  59. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/infographics/US_NSI/styles.css +0 -0
  60. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/infographics/images/ambulance.png +0 -0
  61. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/infographics/images/car.png +0 -0
  62. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/infographics/images/cart.png +0 -0
  63. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/infographics/images/firetruck.png +0 -0
  64. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/infographics/images/hospital.png +0 -0
  65. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/infographics/images/house.png +0 -0
  66. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/infographics/images/info.png +0 -0
  67. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/infographics/images/money.png +0 -0
  68. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/infographics/images/person.png +0 -0
  69. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/infographics/images/school.png +0 -0
  70. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/infographics/images/truck.png +0 -0
  71. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/infographics/images/walking_person.png +0 -0
  72. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/infometrics/OSM/metrics_additional_risk_configs.toml +0 -0
  73. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/infometrics/OSM/with_SVI/infographic_metrics_config.toml +0 -0
  74. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/infometrics/OSM/with_SVI/infographic_metrics_config_risk.toml +0 -0
  75. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/infometrics/OSM/without_SVI/infographic_metrics_config.toml +0 -0
  76. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/infometrics/OSM/without_SVI/infographic_metrics_config_risk.toml +0 -0
  77. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/infometrics/US_NSI/metrics_additional_risk_configs.toml +0 -0
  78. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/infometrics/US_NSI/with_SVI/infographic_metrics_config.toml +0 -0
  79. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/infometrics/US_NSI/with_SVI/infographic_metrics_config_risk.toml +0 -0
  80. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/infometrics/US_NSI/without_SVI/infographic_metrics_config.toml +0 -0
  81. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/infometrics/US_NSI/without_SVI/infographic_metrics_config_risk.toml +0 -0
  82. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/infometrics/mandatory_metrics_config.toml +0 -0
  83. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/infometrics/mandatory_metrics_config_risk.toml +0 -0
  84. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/database_builder/templates/output_layers/bin_colors.toml +0 -0
  85. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/dbs_classes/__init__.py +0 -0
  86. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/dbs_classes/database.py +0 -0
  87. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/dbs_classes/dbs_benefit.py +0 -0
  88. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/dbs_classes/dbs_event.py +0 -0
  89. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/dbs_classes/dbs_measure.py +0 -0
  90. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/dbs_classes/dbs_projection.py +0 -0
  91. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/dbs_classes/dbs_scenario.py +0 -0
  92. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/dbs_classes/dbs_static.py +0 -0
  93. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/dbs_classes/dbs_strategy.py +0 -0
  94. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/dbs_classes/dbs_template.py +0 -0
  95. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/dbs_classes/interface/database.py +0 -0
  96. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/dbs_classes/interface/element.py +0 -0
  97. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/dbs_classes/interface/static.py +0 -0
  98. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/misc/__init__.py +0 -0
  99. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/misc/database_user.py +0 -0
  100. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/misc/exceptions.py +0 -0
  101. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/misc/log.py +0 -0
  102. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/misc/path_builder.py +0 -0
  103. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/misc/utils.py +0 -0
  104. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/objects/__init__.py +0 -0
  105. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/objects/benefits/__init__.py +0 -0
  106. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/objects/benefits/benefits.py +0 -0
  107. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/objects/events/__init__.py +0 -0
  108. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/objects/events/event_factory.py +0 -0
  109. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/objects/events/event_set.py +0 -0
  110. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/objects/events/events.py +0 -0
  111. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/objects/events/historical.py +0 -0
  112. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/objects/events/hurricane.py +0 -0
  113. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/objects/events/synthetic.py +0 -0
  114. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/objects/forcing/__init__.py +0 -0
  115. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/objects/forcing/csv.py +0 -0
  116. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/objects/forcing/discharge.py +0 -0
  117. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/objects/forcing/forcing.py +0 -0
  118. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/objects/forcing/forcing_factory.py +0 -0
  119. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/objects/forcing/meteo_handler.py +0 -0
  120. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/objects/forcing/netcdf.py +0 -0
  121. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/objects/forcing/plotting.py +0 -0
  122. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/objects/forcing/rainfall.py +0 -0
  123. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/objects/forcing/tide_gauge.py +0 -0
  124. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/objects/forcing/time_frame.py +0 -0
  125. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/objects/forcing/timeseries.py +0 -0
  126. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/objects/forcing/unit_system.py +0 -0
  127. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/objects/forcing/waterlevels.py +0 -0
  128. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/objects/forcing/wind.py +0 -0
  129. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/objects/measures/__init__.py +0 -0
  130. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/objects/measures/measure_factory.py +0 -0
  131. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/objects/measures/measures.py +0 -0
  132. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/objects/object_model.py +0 -0
  133. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/objects/output/floodmap.py +0 -0
  134. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/objects/projections/__init__.py +0 -0
  135. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/objects/projections/projections.py +0 -0
  136. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/objects/scenarios/__init__.py +0 -0
  137. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/objects/scenarios/scenarios.py +0 -0
  138. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/objects/strategies/__init__.py +0 -0
  139. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/objects/strategies/strategies.py +0 -0
  140. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/workflows/__init__.py +0 -0
  141. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt/workflows/benefit_runner.py +0 -0
  142. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt.egg-info/dependency_links.txt +0 -0
  143. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt.egg-info/not-zip-safe +0 -0
  144. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt.egg-info/requires.txt +0 -0
  145. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/flood_adapt.egg-info/top_level.txt +0 -0
  146. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/pyproject.toml +0 -0
  147. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/setup.cfg +0 -0
  148. {flood_adapt-1.0.2 → flood_adapt-1.0.4}/tests/test_flood_adapt.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: flood-adapt
3
- Version: 1.0.2
3
+ Version: 1.0.4
4
4
  Summary: A software package support system which can be used to assess the benefits and costs of flood resilience measures
5
5
  Author-email: Gundula Winter <Gundula.Winter@deltares.nl>, Panos Athanasiou <Panos.Athanasiou@deltares.nl>, Frederique de Groen <Frederique.deGroen@deltares.nl>, Tim de Wilde <Tim.deWilde@deltares.nl>, Julian Hofer <Julian.Hofer@deltares.nl>, Daley Adrichem <Daley.Adrichem@deltares.nl>, Luuk Blom <Luuk.Blom@deltares.nl>
6
6
  License: ====================================================
@@ -1,5 +1,5 @@
1
1
  # has to be here at the start to avoid circular imports
2
- __version__ = "1.0.2"
2
+ __version__ = "1.0.4"
3
3
 
4
4
  from flood_adapt import adapter, database_builder, dbs_classes, objects
5
5
  from flood_adapt.config.config import Settings
@@ -168,24 +168,7 @@ class SfincsAdapter(IHazardAdapter):
168
168
 
169
169
  def has_run(self, scenario: Scenario) -> bool:
170
170
  """Check if the model has been run."""
171
- event = self.database.events.get(scenario.event)
172
- if event.mode == Mode.risk:
173
- sim_paths = [
174
- self._get_simulation_path(scenario, sub_event=sub_event)
175
- for sub_event in event.sub_events
176
- ]
177
- if not all(sim_path.exists() for sim_path in sim_paths):
178
- # simpaths dont exist, so check if the output files are still there
179
- return self.run_completed(scenario)
180
- else:
181
- return all(self.sfincs_completed(sim_path) for sim_path in sim_paths)
182
- else:
183
- if not self._get_simulation_path(scenario).exists():
184
- # simpath doesnt exist, so check if the output files are still there
185
- return self.run_completed(scenario)
186
- else:
187
- # Check if the simulation folder exists
188
- return self.sfincs_completed(self._get_simulation_path(scenario))
171
+ return self.run_completed(scenario)
189
172
 
190
173
  def execute(self, path: Path, strict: bool = True) -> bool:
191
174
  """
@@ -513,10 +496,9 @@ class SfincsAdapter(IHazardAdapter):
513
496
  bool : True if all flood maps exist, False otherwise.
514
497
 
515
498
  """
516
- any_floodmap = len(self._get_flood_map_paths(scenario)) > 0
517
- all_exist = all(
518
- floodmap.exists() for floodmap in self._get_flood_map_paths(scenario)
519
- )
499
+ paths = self._get_flood_map_paths(scenario)
500
+ any_floodmap = len(paths) > 0
501
+ all_exist = all(floodmap.exists() for floodmap in paths)
520
502
  return any_floodmap and all_exist
521
503
 
522
504
  def sfincs_completed(self, sim_path: Path) -> bool:
@@ -1796,7 +1778,7 @@ class SfincsAdapter(IHazardAdapter):
1796
1778
  units=us.UnitTypesLength(units),
1797
1779
  )
1798
1780
 
1799
- if df_gauge is None:
1781
+ if df_gauge is None or df_gauge.empty:
1800
1782
  logger.warning(
1801
1783
  "No water level data available for the tide gauge. Could not add it to the plot."
1802
1784
  )
@@ -5,10 +5,8 @@ import math
5
5
  import os
6
6
  import re
7
7
  import shutil
8
- import time
9
8
  import warnings
10
9
  from enum import Enum
11
- from functools import wraps
12
10
  from pathlib import Path
13
11
  from typing import Optional, Union
14
12
  from urllib.request import urlretrieve
@@ -74,6 +72,7 @@ from flood_adapt.config.site import (
74
72
  StandardObjectModel,
75
73
  )
76
74
  from flood_adapt.dbs_classes.database import Database
75
+ from flood_adapt.misc.debug_timer import debug_timer
77
76
  from flood_adapt.misc.log import FloodAdaptLogging
78
77
  from flood_adapt.misc.utils import modified_environ
79
78
  from flood_adapt.objects.events.event_set import EventSet
@@ -92,27 +91,6 @@ from flood_adapt.objects.strategies.strategies import Strategy
92
91
  logger = FloodAdaptLogging.getLogger("DatabaseBuilder")
93
92
 
94
93
 
95
- def debug_timer(func):
96
- @wraps(func)
97
- def wrapper(*args, **kwargs):
98
- logger = FloodAdaptLogging.getLogger("DatabaseBuilder") # No forced log level
99
- if logger.isEnabledFor(logging.DEBUG):
100
- logger.debug(f"Started '{func.__name__}'")
101
- start_time = time.perf_counter()
102
-
103
- result = func(*args, **kwargs)
104
-
105
- end_time = time.perf_counter()
106
- elapsed = end_time - start_time
107
- logger.debug(f"Finished '{func.__name__}' in {elapsed:.4f} seconds")
108
- else:
109
- result = func(*args, **kwargs)
110
-
111
- return result
112
-
113
- return wrapper
114
-
115
-
116
94
  def path_check(str_path: str, config_path: Optional[Path] = None) -> str:
117
95
  """Check if the given path is absolute and return the absolute path.
118
96
 
@@ -883,7 +883,7 @@ class FloodAdapt:
883
883
  scenario = self.database.scenarios.get(name)
884
884
 
885
885
  # Check if the scenario has run
886
- if not ScenarioRunner(self.database, scenario=scenario).hazard_run_check():
886
+ if not ScenarioRunner(self.database, scenario=scenario).has_run_check():
887
887
  logger.info(
888
888
  f"Cannot retrieve observation point timeseries as the scenario {name} has not been run yet."
889
889
  )
@@ -0,0 +1,26 @@
1
+ import logging
2
+ import time
3
+ from functools import wraps
4
+
5
+ from flood_adapt.misc.log import FloodAdaptLogging
6
+
7
+
8
+ def debug_timer(func):
9
+ @wraps(func)
10
+ def wrapper(*args, **kwargs):
11
+ _logger = FloodAdaptLogging.getLogger() # No forced log level
12
+ if _logger.isEnabledFor(logging.DEBUG):
13
+ _logger.debug(f"Started '{func.__name__}'")
14
+ start_time = time.perf_counter()
15
+
16
+ result = func(*args, **kwargs)
17
+
18
+ end_time = time.perf_counter()
19
+ elapsed = end_time - start_time
20
+ _logger.debug(f"Finished '{func.__name__}' in {elapsed:.4f} seconds")
21
+ else:
22
+ result = func(*args, **kwargs)
23
+
24
+ return result
25
+
26
+ return wrapper
@@ -17,15 +17,28 @@ class ScenarioRunner:
17
17
  self.site_info = self._database.site
18
18
  self.results_path = self._database.scenarios.output_path / self._scenario.name
19
19
 
20
+ self._event = None
21
+ self._projection = None
22
+ self._strategy = None
23
+
24
+ self._hazard_models = None
25
+ self._impact_models = None
26
+
20
27
  @property
21
28
  def impact_models(self):
22
29
  """Return the list of impact models."""
23
- return self._database.static.get_impact_models()
30
+ if self._impact_models is not None:
31
+ return self._impact_models
32
+ self._impact_models = self._database.static.get_impact_models()
33
+ return self._impact_models
24
34
 
25
35
  @property
26
36
  def hazard_models(self):
27
37
  """Return the list of hazard models."""
28
- return self._database.static.get_hazard_models()
38
+ if self._hazard_models is not None:
39
+ return self._hazard_models
40
+ self._hazard_models = self._database.static.get_hazard_models()
41
+ return self._hazard_models
29
42
 
30
43
  def _load_objects(self, scenario: Scenario) -> None:
31
44
  """Load objects from the database."""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: flood-adapt
3
- Version: 1.0.2
3
+ Version: 1.0.4
4
4
  Summary: A software package support system which can be used to assess the benefits and costs of flood resilience measures
5
5
  Author-email: Gundula Winter <Gundula.Winter@deltares.nl>, Panos Athanasiou <Panos.Athanasiou@deltares.nl>, Frederique de Groen <Frederique.deGroen@deltares.nl>, Tim de Wilde <Tim.deWilde@deltares.nl>, Julian Hofer <Julian.Hofer@deltares.nl>, Daley Adrichem <Daley.Adrichem@deltares.nl>, Luuk Blom <Luuk.Blom@deltares.nl>
6
6
  License: ====================================================
@@ -99,6 +99,7 @@ flood_adapt/dbs_classes/interface/element.py
99
99
  flood_adapt/dbs_classes/interface/static.py
100
100
  flood_adapt/misc/__init__.py
101
101
  flood_adapt/misc/database_user.py
102
+ flood_adapt/misc/debug_timer.py
102
103
  flood_adapt/misc/exceptions.py
103
104
  flood_adapt/misc/log.py
104
105
  flood_adapt/misc/path_builder.py
File without changes
File without changes
File without changes
File without changes