flood-adapt 1.1.1__tar.gz → 1.1.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 (128) hide show
  1. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/PKG-INFO +1 -1
  2. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/__init__.py +1 -1
  3. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/adapter/sfincs_adapter.py +26 -20
  4. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/database_builder/__init__.py +17 -0
  5. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/database_builder/database_builder.py +252 -172
  6. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/database_builder/metrics_utils.py +18 -28
  7. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/dbs_classes/database.py +1 -1
  8. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/objects/forcing/tide_gauge.py +2 -1
  9. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt.egg-info/PKG-INFO +1 -1
  10. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/LICENSE +0 -0
  11. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/README.md +0 -0
  12. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/adapter/__init__.py +0 -0
  13. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/adapter/fiat_adapter.py +0 -0
  14. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/adapter/interface/__init__.py +0 -0
  15. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/adapter/interface/hazard_adapter.py +0 -0
  16. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/adapter/interface/impact_adapter.py +0 -0
  17. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/adapter/interface/model_adapter.py +0 -0
  18. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/adapter/interface/offshore.py +0 -0
  19. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/adapter/sfincs_offshore.py +0 -0
  20. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/config/__init__.py +0 -0
  21. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/config/config.py +0 -0
  22. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/config/fiat.py +0 -0
  23. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/config/gui.py +0 -0
  24. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/config/hazard.py +0 -0
  25. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/config/impacts.py +0 -0
  26. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/config/sfincs.py +0 -0
  27. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/config/site.py +0 -0
  28. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/database_builder/templates/default_units/imperial.toml +0 -0
  29. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/database_builder/templates/default_units/metric.toml +0 -0
  30. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/database_builder/templates/green_infra_table/green_infra_lookup_table.csv +0 -0
  31. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/database_builder/templates/icons/black_down_48x48.png +0 -0
  32. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/database_builder/templates/icons/black_left_48x48.png +0 -0
  33. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/database_builder/templates/icons/black_right_48x48.png +0 -0
  34. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/database_builder/templates/icons/black_up_48x48.png +0 -0
  35. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-16_white_down.png +0 -0
  36. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-16_white_left.png +0 -0
  37. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-16_white_right.png +0 -0
  38. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-16_white_up.png +0 -0
  39. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_black_down.png +0 -0
  40. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_black_left.png +0 -0
  41. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_black_right.png +0 -0
  42. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_black_up.png +0 -0
  43. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_white_left.png +0 -0
  44. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_white_right.png +0 -0
  45. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/database_builder/templates/icons/white_down_48x48.png +0 -0
  46. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/database_builder/templates/icons/white_left_48x48.png +0 -0
  47. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/database_builder/templates/icons/white_right_48x48.png +0 -0
  48. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/database_builder/templates/icons/white_up_48x48.png +0 -0
  49. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/database_builder/templates/infographics/images/ambulance.png +0 -0
  50. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/database_builder/templates/infographics/images/car.png +0 -0
  51. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/database_builder/templates/infographics/images/cart.png +0 -0
  52. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/database_builder/templates/infographics/images/firetruck.png +0 -0
  53. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/database_builder/templates/infographics/images/hospital.png +0 -0
  54. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/database_builder/templates/infographics/images/house.png +0 -0
  55. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/database_builder/templates/infographics/images/info.png +0 -0
  56. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/database_builder/templates/infographics/images/money.png +0 -0
  57. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/database_builder/templates/infographics/images/person.png +0 -0
  58. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/database_builder/templates/infographics/images/school.png +0 -0
  59. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/database_builder/templates/infographics/images/truck.png +0 -0
  60. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/database_builder/templates/infographics/images/walking_person.png +0 -0
  61. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/database_builder/templates/infographics/styles.css +0 -0
  62. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/database_builder/templates/output_layers/bin_colors.toml +0 -0
  63. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/dbs_classes/__init__.py +0 -0
  64. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/dbs_classes/dbs_benefit.py +0 -0
  65. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/dbs_classes/dbs_event.py +0 -0
  66. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/dbs_classes/dbs_measure.py +0 -0
  67. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/dbs_classes/dbs_projection.py +0 -0
  68. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/dbs_classes/dbs_scenario.py +0 -0
  69. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/dbs_classes/dbs_static.py +0 -0
  70. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/dbs_classes/dbs_strategy.py +0 -0
  71. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/dbs_classes/dbs_template.py +0 -0
  72. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/dbs_classes/interface/database.py +0 -0
  73. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/dbs_classes/interface/element.py +0 -0
  74. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/dbs_classes/interface/static.py +0 -0
  75. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/flood_adapt.py +0 -0
  76. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/misc/__init__.py +0 -0
  77. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/misc/database_user.py +0 -0
  78. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/misc/debug_timer.py +0 -0
  79. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/misc/exceptions.py +0 -0
  80. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/misc/log.py +0 -0
  81. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/misc/path_builder.py +0 -0
  82. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/misc/utils.py +0 -0
  83. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/objects/__init__.py +0 -0
  84. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/objects/benefits/__init__.py +0 -0
  85. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/objects/benefits/benefits.py +0 -0
  86. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/objects/events/__init__.py +0 -0
  87. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/objects/events/event_factory.py +0 -0
  88. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/objects/events/event_set.py +0 -0
  89. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/objects/events/events.py +0 -0
  90. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/objects/events/historical.py +0 -0
  91. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/objects/events/hurricane.py +0 -0
  92. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/objects/events/synthetic.py +0 -0
  93. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/objects/forcing/__init__.py +0 -0
  94. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/objects/forcing/csv.py +0 -0
  95. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/objects/forcing/discharge.py +0 -0
  96. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/objects/forcing/forcing.py +0 -0
  97. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/objects/forcing/forcing_factory.py +0 -0
  98. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/objects/forcing/meteo_handler.py +0 -0
  99. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/objects/forcing/netcdf.py +0 -0
  100. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/objects/forcing/plotting.py +0 -0
  101. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/objects/forcing/rainfall.py +0 -0
  102. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/objects/forcing/time_frame.py +0 -0
  103. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/objects/forcing/timeseries.py +0 -0
  104. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/objects/forcing/unit_system.py +0 -0
  105. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/objects/forcing/waterlevels.py +0 -0
  106. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/objects/forcing/wind.py +0 -0
  107. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/objects/measures/__init__.py +0 -0
  108. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/objects/measures/measure_factory.py +0 -0
  109. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/objects/measures/measures.py +0 -0
  110. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/objects/object_model.py +0 -0
  111. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/objects/output/floodmap.py +0 -0
  112. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/objects/projections/__init__.py +0 -0
  113. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/objects/projections/projections.py +0 -0
  114. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/objects/scenarios/__init__.py +0 -0
  115. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/objects/scenarios/scenarios.py +0 -0
  116. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/objects/strategies/__init__.py +0 -0
  117. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/objects/strategies/strategies.py +0 -0
  118. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/workflows/__init__.py +0 -0
  119. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/workflows/benefit_runner.py +0 -0
  120. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt/workflows/scenario_runner.py +0 -0
  121. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt.egg-info/SOURCES.txt +0 -0
  122. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt.egg-info/dependency_links.txt +0 -0
  123. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt.egg-info/not-zip-safe +0 -0
  124. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt.egg-info/requires.txt +0 -0
  125. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/flood_adapt.egg-info/top_level.txt +0 -0
  126. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/pyproject.toml +0 -0
  127. {flood_adapt-1.1.1 → flood_adapt-1.1.3}/setup.cfg +0 -0
  128. {flood_adapt-1.1.1 → flood_adapt-1.1.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.1.1
3
+ Version: 1.1.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.1.1"
2
+ __version__ = "1.1.3"
3
3
 
4
4
  from flood_adapt import adapter, database_builder, dbs_classes, objects
5
5
  from flood_adapt.config.config import Settings
@@ -677,23 +677,20 @@ class SfincsAdapter(IHazardAdapter):
677
677
 
678
678
  def add_obs_points(self):
679
679
  """Add observation points provided in the site toml to SFINCS model."""
680
- if self.settings.obs_point is None:
680
+ obs_points = self.settings.obs_point
681
+ if not obs_points:
681
682
  return
682
- logger.info("Adding observation points to the overland flood model")
683
683
 
684
- obs_points = self.settings.obs_point
685
- names = []
686
- lat = []
687
- lon = []
688
- for pt in obs_points:
689
- names.append(pt.name)
690
- lat.append(pt.lat)
691
- lon.append(pt.lon)
692
-
693
- # create GeoDataFrame from obs_points in site file
684
+ names = [pt.name for pt in obs_points]
685
+ lat = [pt.lat for pt in obs_points]
686
+ lon = [pt.lon for pt in obs_points]
687
+
688
+ logger.info("Adding observation points to the overland flood model")
694
689
  df = pd.DataFrame({"name": names})
695
690
  gdf = gpd.GeoDataFrame(
696
- df, geometry=gpd.points_from_xy(lon, lat), crs="EPSG:4326"
691
+ df,
692
+ geometry=gpd.points_from_xy(lon, lat),
693
+ crs="EPSG:4326",
697
694
  )
698
695
 
699
696
  # Add locations to SFINCS file
@@ -1310,10 +1307,14 @@ class SfincsAdapter(IHazardAdapter):
1310
1307
  )
1311
1308
  return
1312
1309
 
1310
+ model_rivers = self._read_river_locations()
1311
+ if model_rivers.empty:
1312
+ logger.warning(
1313
+ "Cannot add discharge forcing: No rivers defined in the sfincs model."
1314
+ )
1315
+ return
1313
1316
  logger.info(f"Setting discharge forcing for river: {discharge.river.name}")
1314
-
1315
1317
  time_frame = self.get_model_time()
1316
- model_rivers = self._read_river_locations()
1317
1318
 
1318
1319
  # Check that the river is defined in the model and that the coordinates match
1319
1320
  river_loc = shapely.Point(
@@ -1711,17 +1712,22 @@ class SfincsAdapter(IHazardAdapter):
1711
1712
 
1712
1713
  def _read_river_locations(self) -> gpd.GeoDataFrame:
1713
1714
  path = self.get_model_root() / "sfincs.src"
1714
-
1715
- with open(path) as f:
1716
- lines = f.readlines()
1715
+ lines = []
1716
+ if path.exists():
1717
+ with open(path) as f:
1718
+ lines = f.readlines()
1717
1719
  coords = [(float(line.split()[0]), float(line.split()[1])) for line in lines]
1718
1720
  points = [shapely.Point(coord) for coord in coords]
1719
1721
 
1720
1722
  return gpd.GeoDataFrame({"geometry": points}, crs=self._model.crs)
1721
1723
 
1722
1724
  def _read_waterlevel_boundary_locations(self) -> gpd.GeoDataFrame:
1723
- with open(self.get_model_root() / "sfincs.bnd") as f:
1724
- lines = f.readlines()
1725
+ path = self.get_model_root() / "sfincs.bnd"
1726
+ lines = []
1727
+ if path.exists():
1728
+ with open(path) as f:
1729
+ lines = f.readlines()
1730
+
1725
1731
  coords = [(float(line.split()[0]), float(line.split()[1])) for line in lines]
1726
1732
  points = [shapely.Point(coord) for coord in coords]
1727
1733
 
@@ -10,6 +10,16 @@ from flood_adapt.database_builder.database_builder import (
10
10
  create_database,
11
11
  )
12
12
 
13
+ from .metrics_utils import (
14
+ BuildingsInfographicModel,
15
+ EventInfographicModel,
16
+ HomesInfographicModel,
17
+ ImpactCategoriesModel,
18
+ MetricModel,
19
+ RiskInfographicModel,
20
+ RoadsInfographicModel,
21
+ )
22
+
13
23
  __all__ = [
14
24
  "Basins",
15
25
  "ConfigModel",
@@ -20,4 +30,11 @@ __all__ = [
20
30
  "TideGaugeConfigModel",
21
31
  "UnitSystems",
22
32
  "create_database",
33
+ "BuildingsInfographicModel",
34
+ "EventInfographicModel",
35
+ "HomesInfographicModel",
36
+ "MetricModel",
37
+ "RiskInfographicModel",
38
+ "RoadsInfographicModel",
39
+ "ImpactCategoriesModel",
23
40
  ]