flood-adapt 0.3.5__tar.gz → 0.3.7__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 (146) hide show
  1. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/PKG-INFO +2 -2
  2. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/__init__.py +1 -1
  3. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/adapter/sfincs_adapter.py +7 -11
  4. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/config/site.py +5 -0
  5. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/dbs_classes/database.py +9 -3
  6. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/dbs_classes/dbs_event.py +0 -20
  7. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/dbs_classes/dbs_projection.py +0 -21
  8. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/dbs_classes/dbs_static.py +13 -0
  9. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/dbs_classes/dbs_strategy.py +0 -20
  10. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/dbs_classes/dbs_template.py +7 -5
  11. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/flood_adapt.py +7 -0
  12. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt.egg-info/PKG-INFO +2 -2
  13. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt.egg-info/requires.txt +1 -1
  14. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/pyproject.toml +1 -1
  15. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/tests/test_flood_adapt.py +10 -0
  16. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/LICENSE +0 -0
  17. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/README.md +0 -0
  18. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/adapter/__init__.py +0 -0
  19. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/adapter/fiat_adapter.py +0 -0
  20. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/adapter/interface/__init__.py +0 -0
  21. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/adapter/interface/hazard_adapter.py +0 -0
  22. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/adapter/interface/impact_adapter.py +0 -0
  23. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/adapter/interface/model_adapter.py +0 -0
  24. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/adapter/interface/offshore.py +0 -0
  25. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/adapter/sfincs_offshore.py +0 -0
  26. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/config/__init__.py +0 -0
  27. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/config/config.py +0 -0
  28. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/config/fiat.py +0 -0
  29. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/config/gui.py +0 -0
  30. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/config/sfincs.py +0 -0
  31. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/__init__.py +0 -0
  32. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/database_builder.py +0 -0
  33. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/default_units/imperial.toml +0 -0
  34. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/default_units/metric.toml +0 -0
  35. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/green_infra_table/green_infra_lookup_table.csv +0 -0
  36. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/icons/black_down_48x48.png +0 -0
  37. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/icons/black_left_48x48.png +0 -0
  38. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/icons/black_right_48x48.png +0 -0
  39. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/icons/black_up_48x48.png +0 -0
  40. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-16_white_down.png +0 -0
  41. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-16_white_left.png +0 -0
  42. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-16_white_right.png +0 -0
  43. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-16_white_up.png +0 -0
  44. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_black_down.png +0 -0
  45. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_black_left.png +0 -0
  46. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_black_right.png +0 -0
  47. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_black_up.png +0 -0
  48. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_white_left.png +0 -0
  49. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_white_right.png +0 -0
  50. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/icons/white_down_48x48.png +0 -0
  51. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/icons/white_left_48x48.png +0 -0
  52. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/icons/white_right_48x48.png +0 -0
  53. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/icons/white_up_48x48.png +0 -0
  54. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/infographics/OSM/config_charts.toml +0 -0
  55. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/infographics/OSM/config_people.toml +0 -0
  56. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/infographics/OSM/config_risk_charts.toml +0 -0
  57. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/infographics/OSM/config_roads.toml +0 -0
  58. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/infographics/OSM/styles.css +0 -0
  59. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/infographics/US_NSI/config_charts.toml +0 -0
  60. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/infographics/US_NSI/config_people.toml +0 -0
  61. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/infographics/US_NSI/config_risk_charts.toml +0 -0
  62. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/infographics/US_NSI/config_roads.toml +0 -0
  63. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/infographics/US_NSI/styles.css +0 -0
  64. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/infographics/images/ambulance.png +0 -0
  65. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/infographics/images/car.png +0 -0
  66. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/infographics/images/cart.png +0 -0
  67. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/infographics/images/firetruck.png +0 -0
  68. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/infographics/images/hospital.png +0 -0
  69. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/infographics/images/house.png +0 -0
  70. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/infographics/images/info.png +0 -0
  71. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/infographics/images/money.png +0 -0
  72. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/infographics/images/person.png +0 -0
  73. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/infographics/images/school.png +0 -0
  74. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/infographics/images/truck.png +0 -0
  75. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/infographics/images/walking_person.png +0 -0
  76. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/infometrics/OSM/metrics_additional_risk_configs.toml +0 -0
  77. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/infometrics/OSM/with_SVI/infographic_metrics_config.toml +0 -0
  78. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/infometrics/OSM/with_SVI/infographic_metrics_config_risk.toml +0 -0
  79. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/infometrics/OSM/without_SVI/infographic_metrics_config.toml +0 -0
  80. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/infometrics/OSM/without_SVI/infographic_metrics_config_risk.toml +0 -0
  81. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/infometrics/US_NSI/metrics_additional_risk_configs.toml +0 -0
  82. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/infometrics/US_NSI/with_SVI/infographic_metrics_config.toml +0 -0
  83. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/infometrics/US_NSI/with_SVI/infographic_metrics_config_risk.toml +0 -0
  84. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/infometrics/US_NSI/without_SVI/infographic_metrics_config.toml +0 -0
  85. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/infometrics/US_NSI/without_SVI/infographic_metrics_config_risk.toml +0 -0
  86. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/infometrics/mandatory_metrics_config.toml +0 -0
  87. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/infometrics/mandatory_metrics_config_risk.toml +0 -0
  88. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder/templates/output_layers/bin_colors.toml +0 -0
  89. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/database_builder.py +0 -0
  90. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/dbs_classes/__init__.py +0 -0
  91. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/dbs_classes/dbs_benefit.py +0 -0
  92. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/dbs_classes/dbs_measure.py +0 -0
  93. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/dbs_classes/dbs_scenario.py +0 -0
  94. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/dbs_classes/interface/database.py +0 -0
  95. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/dbs_classes/interface/element.py +0 -0
  96. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/dbs_classes/interface/static.py +0 -0
  97. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/misc/__init__.py +0 -0
  98. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/misc/database_user.py +0 -0
  99. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/misc/log.py +0 -0
  100. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/misc/path_builder.py +0 -0
  101. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/misc/utils.py +0 -0
  102. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/objects/__init__.py +0 -0
  103. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/objects/benefits/__init__.py +0 -0
  104. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/objects/benefits/benefits.py +0 -0
  105. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/objects/events/__init__.py +0 -0
  106. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/objects/events/event_factory.py +0 -0
  107. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/objects/events/event_set.py +0 -0
  108. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/objects/events/events.py +0 -0
  109. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/objects/events/historical.py +0 -0
  110. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/objects/events/hurricane.py +0 -0
  111. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/objects/events/synthetic.py +0 -0
  112. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/objects/forcing/__init__.py +0 -0
  113. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/objects/forcing/csv.py +0 -0
  114. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/objects/forcing/discharge.py +0 -0
  115. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/objects/forcing/forcing.py +0 -0
  116. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/objects/forcing/forcing_factory.py +0 -0
  117. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/objects/forcing/meteo_handler.py +0 -0
  118. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/objects/forcing/netcdf.py +0 -0
  119. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/objects/forcing/plotting.py +0 -0
  120. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/objects/forcing/rainfall.py +0 -0
  121. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/objects/forcing/tide_gauge.py +0 -0
  122. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/objects/forcing/time_frame.py +0 -0
  123. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/objects/forcing/timeseries.py +0 -0
  124. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/objects/forcing/unit_system.py +0 -0
  125. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/objects/forcing/waterlevels.py +0 -0
  126. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/objects/forcing/wind.py +0 -0
  127. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/objects/measures/__init__.py +0 -0
  128. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/objects/measures/measure_factory.py +0 -0
  129. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/objects/measures/measures.py +0 -0
  130. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/objects/object_model.py +0 -0
  131. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/objects/projections/__init__.py +0 -0
  132. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/objects/projections/projections.py +0 -0
  133. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/objects/scenarios/__init__.py +0 -0
  134. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/objects/scenarios/scenarios.py +0 -0
  135. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/objects/strategies/__init__.py +0 -0
  136. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/objects/strategies/strategies.py +0 -0
  137. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/workflows/__init__.py +0 -0
  138. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/workflows/benefit_runner.py +0 -0
  139. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/workflows/floodmap.py +0 -0
  140. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/workflows/impacts_integrator.py +0 -0
  141. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt/workflows/scenario_runner.py +0 -0
  142. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt.egg-info/SOURCES.txt +0 -0
  143. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt.egg-info/dependency_links.txt +0 -0
  144. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt.egg-info/not-zip-safe +0 -0
  145. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/flood_adapt.egg-info/top_level.txt +0 -0
  146. {flood_adapt-0.3.5 → flood_adapt-0.3.7}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: flood-adapt
3
- Version: 0.3.5
3
+ Version: 0.3.7
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: GNU GENERAL PUBLIC LICENSE
@@ -695,7 +695,7 @@ Requires-Dist: fiat-toolbox==0.1.17
695
695
  Requires-Dist: fiona<2.0,>=1.0
696
696
  Requires-Dist: geojson<4.0,>=3.0
697
697
  Requires-Dist: geopandas<2.0,>=1.0
698
- Requires-Dist: hydromt-fiat==0.5.4
698
+ Requires-Dist: hydromt-fiat==0.5.5
699
699
  Requires-Dist: hydromt-sfincs==1.2.0
700
700
  Requires-Dist: numpy<2.0,>=1.0
701
701
  Requires-Dist: numpy-financial<2.0,>=1.0
@@ -1,5 +1,5 @@
1
1
  # has to be here at the start to avoid circular imports
2
- __version__ = "0.3.5"
2
+ __version__ = "0.3.7"
3
3
 
4
4
  from flood_adapt import adapter, dbs_classes, objects
5
5
  from flood_adapt.config.config import Settings
@@ -1309,15 +1309,11 @@ class SfincsAdapter(IHazardAdapter):
1309
1309
  # Make sure no multipolygons are there
1310
1310
  gdf_green_infra = gdf_green_infra.explode()
1311
1311
 
1312
- # Volume is always already calculated and is converted to m3 for SFINCS
1313
- height = None
1314
- volume = green_infrastructure.volume.convert(
1315
- us.UnitTypesVolume(us.UnitTypesVolume.m3)
1316
- )
1317
-
1318
1312
  # HydroMT function: create storage volume
1319
1313
  self._model.setup_storage_volume(
1320
- storage_locs=gdf_green_infra, volume=volume, height=height, merge=True
1314
+ storage_locs=gdf_green_infra,
1315
+ volume=green_infrastructure.volume.convert(us.UnitTypesVolume.m3),
1316
+ merge=True,
1321
1317
  )
1322
1318
 
1323
1319
  def _add_measure_pump(self, pump: Pump):
@@ -1681,10 +1677,6 @@ class SfincsAdapter(IHazardAdapter):
1681
1677
  else:
1682
1678
  return spw_file
1683
1679
 
1684
- self.logger.info(
1685
- f"Creating spiderweb file for hurricane event `{name}`. This may take a while."
1686
- )
1687
-
1688
1680
  # Initialize the tropical cyclone
1689
1681
  tc = TropicalCyclone()
1690
1682
  tc.read_track(filename=str(track_forcing.path), fmt="ddb_cyc")
@@ -1699,6 +1691,10 @@ class SfincsAdapter(IHazardAdapter):
1699
1691
  self.logger.info(f"{start} rainfall in the spiderweb file")
1700
1692
  tc.include_rainfall = include_rainfall
1701
1693
 
1694
+ self.logger.info(
1695
+ f"Creating spiderweb file for hurricane event `{name}`. This may take a while."
1696
+ )
1697
+
1702
1698
  # Create spiderweb file from the track
1703
1699
  tc.to_spiderweb(spw_file)
1704
1700
 
@@ -66,6 +66,11 @@ class Site(BaseModel):
66
66
  "description": self.description,
67
67
  "lat": self.lat,
68
68
  "lon": self.lon,
69
+ "standard_objects": {
70
+ "events": self.standard_objects.events,
71
+ "projections": self.standard_objects.projections,
72
+ "strategies": self.standard_objects.strategies,
73
+ },
69
74
  "components": {},
70
75
  }
71
76
 
@@ -123,11 +123,17 @@ class Database(IDatabase):
123
123
 
124
124
  # Initialize the different database objects
125
125
  self._static = DbsStatic(self)
126
- self._events = DbsEvent(self)
126
+ self._events = DbsEvent(
127
+ self, standard_objects=self.site.standard_objects.events
128
+ )
127
129
  self._scenarios = DbsScenario(self)
128
- self._strategies = DbsStrategy(self)
130
+ self._strategies = DbsStrategy(
131
+ self, standard_objects=self.site.standard_objects.strategies
132
+ )
129
133
  self._measures = DbsMeasure(self)
130
- self._projections = DbsProjection(self)
134
+ self._projections = DbsProjection(
135
+ self, standard_objects=self.site.standard_objects.projections
136
+ )
131
137
  self._benefits = DbsBenefit(self)
132
138
 
133
139
  # Delete any unfinished/crashed scenario output
@@ -33,26 +33,6 @@ class DbsEvent(DbsTemplate[Event]):
33
33
  # Load event
34
34
  return EventFactory.load_file(event_path)
35
35
 
36
- def _check_standard_objects(self, name: str) -> bool:
37
- """Check if an event is a standard event.
38
-
39
- Parameters
40
- ----------
41
- name : str
42
- name of the event to be checked
43
-
44
- Returns
45
- -------
46
- bool
47
- True if the event is a standard event, False otherwise
48
- """
49
- # Check if event is a standard event
50
- if self._database.site.standard_objects:
51
- if self._database.site.standard_objects.events:
52
- if name in self._database.site.standard_objects.events:
53
- return True
54
- return False
55
-
56
36
  def check_higher_level_usage(self, name: str) -> list[str]:
57
37
  """Check if an event is used in a scenario.
58
38
 
@@ -7,27 +7,6 @@ class DbsProjection(DbsTemplate[Projection]):
7
7
  display_name = "Projection"
8
8
  _object_class = Projection
9
9
 
10
- def _check_standard_objects(self, name: str) -> bool:
11
- """Check if a projection is a standard projection.
12
-
13
- Parameters
14
- ----------
15
- name : str
16
- name of the projection to be checked
17
-
18
- Raises
19
- ------
20
- ValueError
21
- Raise error if projection is a standard projection.
22
- """
23
- # Check if projection is a standard projection
24
- if self._database.site.standard_objects:
25
- if self._database.site.standard_objects.projections:
26
- if name in self._database.site.standard_objects.projections:
27
- return True
28
-
29
- return False
30
-
31
10
  def check_higher_level_usage(self, name: str) -> list[str]:
32
11
  """Check if a projection is used in a scenario.
33
12
 
@@ -39,6 +39,19 @@ class DbsStatic(IDbsStatic):
39
39
  """Initialize any necessary attributes."""
40
40
  self._database = database
41
41
 
42
+ def load_static_data(self):
43
+ """Read data into the cache.
44
+
45
+ This is used to read data from the database and store it in the cache.
46
+ """
47
+ self.get_aggregation_areas()
48
+ self.get_model_boundary()
49
+ self.get_model_grid()
50
+ self.get_obs_points()
51
+ self.get_slr_scn_names()
52
+ self.get_buildings()
53
+ self.get_property_types()
54
+
42
55
  @cache_method_wrapper
43
56
  def get_aggregation_areas(self) -> dict[str, gpd.GeoDataFrame]:
44
57
  """Get a list of the aggregation areas that are provided in the site configuration.
@@ -104,26 +104,6 @@ class DbsStrategy(DbsTemplate[Strategy]):
104
104
  counter += 1
105
105
  raise ValueError(msg)
106
106
 
107
- def _check_standard_objects(self, name: str) -> bool:
108
- """Check if a strategy is a standard strategy.
109
-
110
- Parameters
111
- ----------
112
- name : str
113
- name of the strategy to be checked
114
-
115
- Raises
116
- ------
117
- ValueError
118
- Raise error if strategy is a standard strategy.
119
- """
120
- # Check if strategy is a standard strategy
121
- if self._database.site.standard_objects:
122
- if self._database.site.standard_objects.strategies:
123
- if name in self._database.site.standard_objects.strategies:
124
- return True
125
- return False
126
-
127
107
  def check_higher_level_usage(self, name: str) -> list[str]:
128
108
  """Check if a strategy is used in a scenario.
129
109
 
@@ -1,7 +1,7 @@
1
1
  import shutil
2
2
  from datetime import datetime
3
3
  from pathlib import Path
4
- from typing import Any, TypeVar
4
+ from typing import Any, Optional, TypeVar
5
5
 
6
6
  import tomli
7
7
  import tomli_w
@@ -18,12 +18,14 @@ class DbsTemplate(AbstractDatabaseElement[T_OBJECTMODEL]):
18
18
  dir_name: str
19
19
  _object_class: type[T_OBJECTMODEL]
20
20
 
21
- def __init__(self, database: IDatabase):
21
+ def __init__(
22
+ self, database: IDatabase, standard_objects: Optional[list[str]] = None
23
+ ):
22
24
  """Initialize any necessary attributes."""
23
25
  self._database = database
24
26
  self.input_path = database.input_path / self.dir_name
25
27
  self.output_path = database.output_path / self.dir_name
26
- self.standard_objects = []
28
+ self.standard_objects = standard_objects
27
29
 
28
30
  def get(self, name: str) -> T_OBJECTMODEL:
29
31
  """Return an object of the type of the database with the given name.
@@ -188,8 +190,8 @@ class DbsTemplate(AbstractDatabaseElement[T_OBJECTMODEL]):
188
190
  bool
189
191
  True if the object is a standard object, False otherwise
190
192
  """
191
- # If this function is not implemented for the object type, it cannot be a standard object.
192
- # By default, it is not a standard object.
193
+ if self.standard_objects:
194
+ return name in self.standard_objects
193
195
  return False
194
196
 
195
197
  def check_higher_level_usage(self, name: str) -> list[str]:
@@ -923,6 +923,13 @@ class FloodAdapt:
923
923
  )
924
924
 
925
925
  # Static
926
+ def load_static_data(self):
927
+ """Read the static data into the cache.
928
+
929
+ This is used to speed up the loading of the static data.
930
+ """
931
+ self.database.static.load_static_data()
932
+
926
933
  def get_aggregation_areas(
927
934
  self,
928
935
  ) -> dict[str, gpd.GeoDataFrame]:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: flood-adapt
3
- Version: 0.3.5
3
+ Version: 0.3.7
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: GNU GENERAL PUBLIC LICENSE
@@ -695,7 +695,7 @@ Requires-Dist: fiat-toolbox==0.1.17
695
695
  Requires-Dist: fiona<2.0,>=1.0
696
696
  Requires-Dist: geojson<4.0,>=3.0
697
697
  Requires-Dist: geopandas<2.0,>=1.0
698
- Requires-Dist: hydromt-fiat==0.5.4
698
+ Requires-Dist: hydromt-fiat==0.5.5
699
699
  Requires-Dist: hydromt-sfincs==1.2.0
700
700
  Requires-Dist: numpy<2.0,>=1.0
701
701
  Requires-Dist: numpy-financial<2.0,>=1.0
@@ -8,7 +8,7 @@ fiat-toolbox==0.1.17
8
8
  fiona<2.0,>=1.0
9
9
  geojson<4.0,>=3.0
10
10
  geopandas<2.0,>=1.0
11
- hydromt-fiat==0.5.4
11
+ hydromt-fiat==0.5.5
12
12
  hydromt-sfincs==1.2.0
13
13
  numpy<2.0,>=1.0
14
14
  numpy-financial<2.0,>=1.0
@@ -36,7 +36,7 @@ dependencies = [
36
36
  "fiona >=1.0,<2.0",
37
37
  "geojson >=3.0,<4.0",
38
38
  "geopandas >=1.0,<2.0",
39
- "hydromt-fiat ==0.5.4",
39
+ "hydromt-fiat ==0.5.5",
40
40
  "hydromt-sfincs ==1.2.0",
41
41
  "numpy >=1.0,<2.0",
42
42
  "numpy-financial >=1.0,<2.0",
@@ -1,3 +1,5 @@
1
+ import platform
2
+
1
3
  import geopandas as gpd
2
4
  import numpy as np
3
5
  import pandas as pd
@@ -272,6 +274,10 @@ class TestStrategies:
272
274
  test_fa.get_strategy(strategy.name)
273
275
 
274
276
 
277
+ @pytest.mark.skipif(
278
+ platform.system() == "Linux",
279
+ reason="Skipped on Linux due to broken sfincs binary",
280
+ )
275
281
  class TestScenarios:
276
282
  @pytest.fixture()
277
283
  def setup_nearshore_scenario(self, test_fa: FloodAdapt, setup_nearshore_event):
@@ -430,6 +436,10 @@ class TestScenarios:
430
436
  test_fa.database.scenarios.summarize_objects()
431
437
 
432
438
 
439
+ @pytest.mark.skipif(
440
+ platform.system() == "Linux",
441
+ reason="Skipped on Linux due to broken sfincs binary",
442
+ )
433
443
  class TestOutput:
434
444
  @pytest.fixture(scope="class")
435
445
  def completed_scenario(self, test_fa_class: FloodAdapt):
File without changes
File without changes
File without changes