flood-adapt 1.0.1__tar.gz → 1.0.3__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.1 → flood_adapt-1.0.3}/PKG-INFO +1 -1
  2. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/__init__.py +1 -1
  3. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/adapter/sfincs_adapter.py +4 -22
  4. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/database_builder.py +1 -23
  5. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/dbs_classes/dbs_static.py +5 -0
  6. flood_adapt-1.0.3/flood_adapt/misc/debug_timer.py +26 -0
  7. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/objects/forcing/timeseries.py +8 -0
  8. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/workflows/scenario_runner.py +15 -2
  9. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt.egg-info/PKG-INFO +1 -1
  10. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt.egg-info/SOURCES.txt +1 -0
  11. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/LICENSE +0 -0
  12. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/README.md +0 -0
  13. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/adapter/__init__.py +0 -0
  14. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/adapter/fiat_adapter.py +0 -0
  15. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/adapter/interface/__init__.py +0 -0
  16. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/adapter/interface/hazard_adapter.py +0 -0
  17. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/adapter/interface/impact_adapter.py +0 -0
  18. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/adapter/interface/model_adapter.py +0 -0
  19. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/adapter/interface/offshore.py +0 -0
  20. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/adapter/sfincs_offshore.py +0 -0
  21. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/config/__init__.py +0 -0
  22. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/config/config.py +0 -0
  23. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/config/fiat.py +0 -0
  24. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/config/gui.py +0 -0
  25. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/config/hazard.py +0 -0
  26. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/config/impacts.py +0 -0
  27. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/config/sfincs.py +0 -0
  28. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/config/site.py +0 -0
  29. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/__init__.py +0 -0
  30. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/default_units/imperial.toml +0 -0
  31. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/default_units/metric.toml +0 -0
  32. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/green_infra_table/green_infra_lookup_table.csv +0 -0
  33. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/icons/black_down_48x48.png +0 -0
  34. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/icons/black_left_48x48.png +0 -0
  35. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/icons/black_right_48x48.png +0 -0
  36. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/icons/black_up_48x48.png +0 -0
  37. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-16_white_down.png +0 -0
  38. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-16_white_left.png +0 -0
  39. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-16_white_right.png +0 -0
  40. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-16_white_up.png +0 -0
  41. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_black_down.png +0 -0
  42. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_black_left.png +0 -0
  43. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_black_right.png +0 -0
  44. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_black_up.png +0 -0
  45. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_white_left.png +0 -0
  46. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_white_right.png +0 -0
  47. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/icons/white_down_48x48.png +0 -0
  48. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/icons/white_left_48x48.png +0 -0
  49. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/icons/white_right_48x48.png +0 -0
  50. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/icons/white_up_48x48.png +0 -0
  51. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/OSM/config_charts.toml +0 -0
  52. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/OSM/config_people.toml +0 -0
  53. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/OSM/config_risk_charts.toml +0 -0
  54. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/OSM/config_roads.toml +0 -0
  55. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/OSM/styles.css +0 -0
  56. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/US_NSI/config_charts.toml +0 -0
  57. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/US_NSI/config_people.toml +0 -0
  58. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/US_NSI/config_risk_charts.toml +0 -0
  59. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/US_NSI/config_roads.toml +0 -0
  60. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/US_NSI/styles.css +0 -0
  61. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/images/ambulance.png +0 -0
  62. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/images/car.png +0 -0
  63. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/images/cart.png +0 -0
  64. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/images/firetruck.png +0 -0
  65. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/images/hospital.png +0 -0
  66. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/images/house.png +0 -0
  67. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/images/info.png +0 -0
  68. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/images/money.png +0 -0
  69. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/images/person.png +0 -0
  70. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/images/school.png +0 -0
  71. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/images/truck.png +0 -0
  72. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/images/walking_person.png +0 -0
  73. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infometrics/OSM/metrics_additional_risk_configs.toml +0 -0
  74. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infometrics/OSM/with_SVI/infographic_metrics_config.toml +0 -0
  75. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infometrics/OSM/with_SVI/infographic_metrics_config_risk.toml +0 -0
  76. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infometrics/OSM/without_SVI/infographic_metrics_config.toml +0 -0
  77. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infometrics/OSM/without_SVI/infographic_metrics_config_risk.toml +0 -0
  78. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infometrics/US_NSI/metrics_additional_risk_configs.toml +0 -0
  79. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infometrics/US_NSI/with_SVI/infographic_metrics_config.toml +0 -0
  80. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infometrics/US_NSI/with_SVI/infographic_metrics_config_risk.toml +0 -0
  81. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infometrics/US_NSI/without_SVI/infographic_metrics_config.toml +0 -0
  82. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infometrics/US_NSI/without_SVI/infographic_metrics_config_risk.toml +0 -0
  83. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infometrics/mandatory_metrics_config.toml +0 -0
  84. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infometrics/mandatory_metrics_config_risk.toml +0 -0
  85. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/output_layers/bin_colors.toml +0 -0
  86. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/dbs_classes/__init__.py +0 -0
  87. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/dbs_classes/database.py +0 -0
  88. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/dbs_classes/dbs_benefit.py +0 -0
  89. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/dbs_classes/dbs_event.py +0 -0
  90. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/dbs_classes/dbs_measure.py +0 -0
  91. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/dbs_classes/dbs_projection.py +0 -0
  92. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/dbs_classes/dbs_scenario.py +0 -0
  93. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/dbs_classes/dbs_strategy.py +0 -0
  94. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/dbs_classes/dbs_template.py +0 -0
  95. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/dbs_classes/interface/database.py +0 -0
  96. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/dbs_classes/interface/element.py +0 -0
  97. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/dbs_classes/interface/static.py +0 -0
  98. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/flood_adapt.py +0 -0
  99. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/misc/__init__.py +0 -0
  100. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/misc/database_user.py +0 -0
  101. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/misc/exceptions.py +0 -0
  102. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/misc/log.py +0 -0
  103. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/misc/path_builder.py +0 -0
  104. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/misc/utils.py +0 -0
  105. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/objects/__init__.py +0 -0
  106. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/objects/benefits/__init__.py +0 -0
  107. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/objects/benefits/benefits.py +0 -0
  108. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/objects/events/__init__.py +0 -0
  109. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/objects/events/event_factory.py +0 -0
  110. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/objects/events/event_set.py +0 -0
  111. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/objects/events/events.py +0 -0
  112. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/objects/events/historical.py +0 -0
  113. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/objects/events/hurricane.py +0 -0
  114. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/objects/events/synthetic.py +0 -0
  115. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/objects/forcing/__init__.py +0 -0
  116. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/objects/forcing/csv.py +0 -0
  117. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/objects/forcing/discharge.py +0 -0
  118. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/objects/forcing/forcing.py +0 -0
  119. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/objects/forcing/forcing_factory.py +0 -0
  120. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/objects/forcing/meteo_handler.py +0 -0
  121. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/objects/forcing/netcdf.py +0 -0
  122. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/objects/forcing/plotting.py +0 -0
  123. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/objects/forcing/rainfall.py +0 -0
  124. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/objects/forcing/tide_gauge.py +0 -0
  125. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/objects/forcing/time_frame.py +0 -0
  126. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/objects/forcing/unit_system.py +0 -0
  127. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/objects/forcing/waterlevels.py +0 -0
  128. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/objects/forcing/wind.py +0 -0
  129. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/objects/measures/__init__.py +0 -0
  130. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/objects/measures/measure_factory.py +0 -0
  131. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/objects/measures/measures.py +0 -0
  132. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/objects/object_model.py +0 -0
  133. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/objects/output/floodmap.py +0 -0
  134. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/objects/projections/__init__.py +0 -0
  135. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/objects/projections/projections.py +0 -0
  136. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/objects/scenarios/__init__.py +0 -0
  137. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/objects/scenarios/scenarios.py +0 -0
  138. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/objects/strategies/__init__.py +0 -0
  139. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/objects/strategies/strategies.py +0 -0
  140. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/workflows/__init__.py +0 -0
  141. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt/workflows/benefit_runner.py +0 -0
  142. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt.egg-info/dependency_links.txt +0 -0
  143. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt.egg-info/not-zip-safe +0 -0
  144. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt.egg-info/requires.txt +0 -0
  145. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/flood_adapt.egg-info/top_level.txt +0 -0
  146. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/pyproject.toml +0 -0
  147. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/setup.cfg +0 -0
  148. {flood_adapt-1.0.1 → flood_adapt-1.0.3}/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.1
3
+ Version: 1.0.3
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.1"
2
+ __version__ = "1.0.3"
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:
@@ -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
 
@@ -227,6 +227,7 @@ class DbsStatic(IDbsStatic):
227
227
  """
228
228
  return self.get_fiat_model().get_property_types()
229
229
 
230
+ @cache_method_wrapper
230
231
  def get_hazard_models(self) -> list[IHazardAdapter]:
231
232
  """Get the hazard models from the database.
232
233
 
@@ -237,6 +238,7 @@ class DbsStatic(IDbsStatic):
237
238
  """
238
239
  return [self.get_overland_sfincs_model()]
239
240
 
241
+ @cache_method_wrapper
240
242
  def get_impact_models(self) -> list[IImpactAdapter]:
241
243
  """Get the impact models from the database.
242
244
 
@@ -247,6 +249,7 @@ class DbsStatic(IDbsStatic):
247
249
  """
248
250
  return [self.get_fiat_model()]
249
251
 
252
+ @cache_method_wrapper
250
253
  def get_overland_sfincs_model(self) -> SfincsAdapter:
251
254
  """Get the template offshore SFINCS model."""
252
255
  overland_path = (
@@ -257,6 +260,7 @@ class DbsStatic(IDbsStatic):
257
260
  with SfincsAdapter(model_root=overland_path) as overland_model:
258
261
  return overland_model
259
262
 
263
+ @cache_method_wrapper
260
264
  def get_offshore_sfincs_model(self) -> SfincsAdapter:
261
265
  """Get the template overland Sfincs model."""
262
266
  if self._database.site.sfincs.config.offshore_model is None:
@@ -270,6 +274,7 @@ class DbsStatic(IDbsStatic):
270
274
  with SfincsAdapter(model_root=offshore_path) as offshore_model:
271
275
  return offshore_model
272
276
 
277
+ @cache_method_wrapper
273
278
  def get_fiat_model(self) -> FiatAdapter:
274
279
  """Get the path to the FIAT model."""
275
280
  if self._database.site.fiat is None:
@@ -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
@@ -527,6 +527,14 @@ class TimeseriesFactory:
527
527
  fill_value=fill_value,
528
528
  )
529
529
  case ShapeType.scs:
530
+ if scs_file_name is None or scs_type is None:
531
+ from flood_adapt.dbs_classes.database import Database
532
+
533
+ scs_config = Database().site.sfincs.scs
534
+ if scs_config is None:
535
+ raise ValueError("SCS configuration not found in database.")
536
+ scs_file_name = scs_file_name or scs_config.file
537
+ scs_type = scs_type or scs_config.type
530
538
  return ScsTimeseries(
531
539
  duration=duration,
532
540
  peak_time=peak_time,
@@ -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.1
3
+ Version: 1.0.3
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