flood-adapt 0.3.0__py3-none-any.whl

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 (139) hide show
  1. flood_adapt/__init__.py +22 -0
  2. flood_adapt/adapter/__init__.py +9 -0
  3. flood_adapt/adapter/fiat_adapter.py +1502 -0
  4. flood_adapt/adapter/interface/__init__.py +0 -0
  5. flood_adapt/adapter/interface/hazard_adapter.py +70 -0
  6. flood_adapt/adapter/interface/impact_adapter.py +36 -0
  7. flood_adapt/adapter/interface/model_adapter.py +89 -0
  8. flood_adapt/adapter/interface/offshore.py +19 -0
  9. flood_adapt/adapter/sfincs_adapter.py +1857 -0
  10. flood_adapt/adapter/sfincs_offshore.py +193 -0
  11. flood_adapt/config/__init__.py +0 -0
  12. flood_adapt/config/config.py +245 -0
  13. flood_adapt/config/fiat.py +219 -0
  14. flood_adapt/config/gui.py +224 -0
  15. flood_adapt/config/sfincs.py +336 -0
  16. flood_adapt/config/site.py +124 -0
  17. flood_adapt/database_builder/__init__.py +0 -0
  18. flood_adapt/database_builder/database_builder.py +2175 -0
  19. flood_adapt/database_builder/templates/default_units/imperial.toml +9 -0
  20. flood_adapt/database_builder/templates/default_units/metric.toml +9 -0
  21. flood_adapt/database_builder/templates/green_infra_table/green_infra_lookup_table.csv +10 -0
  22. flood_adapt/database_builder/templates/icons/black_down_48x48.png +0 -0
  23. flood_adapt/database_builder/templates/icons/black_left_48x48.png +0 -0
  24. flood_adapt/database_builder/templates/icons/black_right_48x48.png +0 -0
  25. flood_adapt/database_builder/templates/icons/black_up_48x48.png +0 -0
  26. flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-16_white_down.png +0 -0
  27. flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-16_white_left.png +0 -0
  28. flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-16_white_right.png +0 -0
  29. flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-16_white_up.png +0 -0
  30. flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_black_down.png +0 -0
  31. flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_black_left.png +0 -0
  32. flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_black_right.png +0 -0
  33. flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_black_up.png +0 -0
  34. flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_white_left.png +0 -0
  35. flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_white_right.png +0 -0
  36. flood_adapt/database_builder/templates/icons/white_down_48x48.png +0 -0
  37. flood_adapt/database_builder/templates/icons/white_left_48x48.png +0 -0
  38. flood_adapt/database_builder/templates/icons/white_right_48x48.png +0 -0
  39. flood_adapt/database_builder/templates/icons/white_up_48x48.png +0 -0
  40. flood_adapt/database_builder/templates/infographics/OSM/config_charts.toml +90 -0
  41. flood_adapt/database_builder/templates/infographics/OSM/config_people.toml +57 -0
  42. flood_adapt/database_builder/templates/infographics/OSM/config_risk_charts.toml +121 -0
  43. flood_adapt/database_builder/templates/infographics/OSM/config_roads.toml +65 -0
  44. flood_adapt/database_builder/templates/infographics/OSM/styles.css +45 -0
  45. flood_adapt/database_builder/templates/infographics/US_NSI/config_charts.toml +126 -0
  46. flood_adapt/database_builder/templates/infographics/US_NSI/config_people.toml +60 -0
  47. flood_adapt/database_builder/templates/infographics/US_NSI/config_risk_charts.toml +121 -0
  48. flood_adapt/database_builder/templates/infographics/US_NSI/config_roads.toml +65 -0
  49. flood_adapt/database_builder/templates/infographics/US_NSI/styles.css +45 -0
  50. flood_adapt/database_builder/templates/infographics/images/ambulance.png +0 -0
  51. flood_adapt/database_builder/templates/infographics/images/car.png +0 -0
  52. flood_adapt/database_builder/templates/infographics/images/cart.png +0 -0
  53. flood_adapt/database_builder/templates/infographics/images/firetruck.png +0 -0
  54. flood_adapt/database_builder/templates/infographics/images/hospital.png +0 -0
  55. flood_adapt/database_builder/templates/infographics/images/house.png +0 -0
  56. flood_adapt/database_builder/templates/infographics/images/info.png +0 -0
  57. flood_adapt/database_builder/templates/infographics/images/money.png +0 -0
  58. flood_adapt/database_builder/templates/infographics/images/person.png +0 -0
  59. flood_adapt/database_builder/templates/infographics/images/school.png +0 -0
  60. flood_adapt/database_builder/templates/infographics/images/truck.png +0 -0
  61. flood_adapt/database_builder/templates/infographics/images/walking_person.png +0 -0
  62. flood_adapt/database_builder/templates/infometrics/OSM/metrics_additional_risk_configs.toml +4 -0
  63. flood_adapt/database_builder/templates/infometrics/OSM/with_SVI/infographic_metrics_config.toml +143 -0
  64. flood_adapt/database_builder/templates/infometrics/OSM/with_SVI/infographic_metrics_config_risk.toml +153 -0
  65. flood_adapt/database_builder/templates/infometrics/OSM/without_SVI/infographic_metrics_config.toml +127 -0
  66. flood_adapt/database_builder/templates/infometrics/OSM/without_SVI/infographic_metrics_config_risk.toml +57 -0
  67. flood_adapt/database_builder/templates/infometrics/US_NSI/metrics_additional_risk_configs.toml +4 -0
  68. flood_adapt/database_builder/templates/infometrics/US_NSI/with_SVI/infographic_metrics_config.toml +191 -0
  69. flood_adapt/database_builder/templates/infometrics/US_NSI/with_SVI/infographic_metrics_config_risk.toml +153 -0
  70. flood_adapt/database_builder/templates/infometrics/US_NSI/without_SVI/infographic_metrics_config.toml +178 -0
  71. flood_adapt/database_builder/templates/infometrics/US_NSI/without_SVI/infographic_metrics_config_risk.toml +57 -0
  72. flood_adapt/database_builder/templates/infometrics/mandatory_metrics_config.toml +9 -0
  73. flood_adapt/database_builder/templates/infometrics/mandatory_metrics_config_risk.toml +65 -0
  74. flood_adapt/database_builder/templates/mapbox_layers/bin_colors.toml +5 -0
  75. flood_adapt/database_builder.py +16 -0
  76. flood_adapt/dbs_classes/__init__.py +21 -0
  77. flood_adapt/dbs_classes/database.py +716 -0
  78. flood_adapt/dbs_classes/dbs_benefit.py +97 -0
  79. flood_adapt/dbs_classes/dbs_event.py +91 -0
  80. flood_adapt/dbs_classes/dbs_measure.py +103 -0
  81. flood_adapt/dbs_classes/dbs_projection.py +52 -0
  82. flood_adapt/dbs_classes/dbs_scenario.py +150 -0
  83. flood_adapt/dbs_classes/dbs_static.py +261 -0
  84. flood_adapt/dbs_classes/dbs_strategy.py +147 -0
  85. flood_adapt/dbs_classes/dbs_template.py +302 -0
  86. flood_adapt/dbs_classes/interface/database.py +147 -0
  87. flood_adapt/dbs_classes/interface/element.py +137 -0
  88. flood_adapt/dbs_classes/interface/static.py +47 -0
  89. flood_adapt/flood_adapt.py +1371 -0
  90. flood_adapt/misc/__init__.py +0 -0
  91. flood_adapt/misc/database_user.py +16 -0
  92. flood_adapt/misc/log.py +183 -0
  93. flood_adapt/misc/path_builder.py +54 -0
  94. flood_adapt/misc/utils.py +185 -0
  95. flood_adapt/objects/__init__.py +59 -0
  96. flood_adapt/objects/benefits/__init__.py +0 -0
  97. flood_adapt/objects/benefits/benefits.py +61 -0
  98. flood_adapt/objects/events/__init__.py +0 -0
  99. flood_adapt/objects/events/event_factory.py +135 -0
  100. flood_adapt/objects/events/event_set.py +84 -0
  101. flood_adapt/objects/events/events.py +221 -0
  102. flood_adapt/objects/events/historical.py +55 -0
  103. flood_adapt/objects/events/hurricane.py +64 -0
  104. flood_adapt/objects/events/synthetic.py +48 -0
  105. flood_adapt/objects/forcing/__init__.py +0 -0
  106. flood_adapt/objects/forcing/csv.py +68 -0
  107. flood_adapt/objects/forcing/discharge.py +66 -0
  108. flood_adapt/objects/forcing/forcing.py +142 -0
  109. flood_adapt/objects/forcing/forcing_factory.py +182 -0
  110. flood_adapt/objects/forcing/meteo_handler.py +93 -0
  111. flood_adapt/objects/forcing/netcdf.py +40 -0
  112. flood_adapt/objects/forcing/plotting.py +428 -0
  113. flood_adapt/objects/forcing/rainfall.py +98 -0
  114. flood_adapt/objects/forcing/tide_gauge.py +191 -0
  115. flood_adapt/objects/forcing/time_frame.py +77 -0
  116. flood_adapt/objects/forcing/timeseries.py +552 -0
  117. flood_adapt/objects/forcing/unit_system.py +580 -0
  118. flood_adapt/objects/forcing/waterlevels.py +108 -0
  119. flood_adapt/objects/forcing/wind.py +124 -0
  120. flood_adapt/objects/measures/__init__.py +0 -0
  121. flood_adapt/objects/measures/measure_factory.py +92 -0
  122. flood_adapt/objects/measures/measures.py +506 -0
  123. flood_adapt/objects/object_model.py +68 -0
  124. flood_adapt/objects/projections/__init__.py +0 -0
  125. flood_adapt/objects/projections/projections.py +89 -0
  126. flood_adapt/objects/scenarios/__init__.py +0 -0
  127. flood_adapt/objects/scenarios/scenarios.py +22 -0
  128. flood_adapt/objects/strategies/__init__.py +0 -0
  129. flood_adapt/objects/strategies/strategies.py +68 -0
  130. flood_adapt/workflows/__init__.py +0 -0
  131. flood_adapt/workflows/benefit_runner.py +541 -0
  132. flood_adapt/workflows/floodmap.py +85 -0
  133. flood_adapt/workflows/impacts_integrator.py +82 -0
  134. flood_adapt/workflows/scenario_runner.py +69 -0
  135. flood_adapt-0.3.0.dist-info/LICENSE +21 -0
  136. flood_adapt-0.3.0.dist-info/METADATA +183 -0
  137. flood_adapt-0.3.0.dist-info/RECORD +139 -0
  138. flood_adapt-0.3.0.dist-info/WHEEL +5 -0
  139. flood_adapt-0.3.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,82 @@
1
+ from pathlib import Path
2
+
3
+ from flood_adapt.misc.database_user import DatabaseUser
4
+ from flood_adapt.misc.log import FloodAdaptLogging
5
+ from flood_adapt.misc.path_builder import (
6
+ ObjectDir,
7
+ TopLevelDir,
8
+ db_path,
9
+ )
10
+ from flood_adapt.objects.projections.projections import SocioEconomicChange
11
+ from flood_adapt.objects.scenarios.scenarios import Scenario
12
+ from flood_adapt.objects.strategies.strategies import Strategy
13
+ from flood_adapt.workflows.floodmap import FloodMap
14
+
15
+
16
+ class Impacts(DatabaseUser):
17
+ """All information related to the impacts of the scenario.
18
+
19
+ Includes methods to run the impact models or check if they has already been run.
20
+ """
21
+
22
+ logger = FloodAdaptLogging.getLogger("Impacts")
23
+ name: str
24
+
25
+ def __init__(self, scenario: Scenario):
26
+ self.name = scenario.name
27
+ self.scenario = scenario
28
+ self.site_info = self.database.site
29
+ self.models = [
30
+ self.database.static.get_fiat_model()
31
+ ] # for now only FIAT adapter
32
+
33
+ @property
34
+ def hazard(self) -> FloodMap:
35
+ return FloodMap(self.name)
36
+
37
+ @property
38
+ def socio_economic_change(self) -> SocioEconomicChange:
39
+ return self.database.projections.get(
40
+ self.scenario.projection
41
+ ).socio_economic_change
42
+
43
+ @property
44
+ def impact_strategy(self) -> Strategy:
45
+ return self.database.strategies.get(
46
+ self.scenario.strategy
47
+ ).get_impact_strategy()
48
+
49
+ @property
50
+ def results_path(self) -> Path:
51
+ return db_path(
52
+ TopLevelDir.output, object_dir=ObjectDir.scenario, obj_name=self.name
53
+ )
54
+
55
+ @property
56
+ def impacts_path(self) -> Path:
57
+ return self.results_path / "Impacts"
58
+
59
+ @property
60
+ def has_run(self) -> bool:
61
+ return self.has_run_check()
62
+
63
+ def run(self):
64
+ """Run the impact model(s)."""
65
+ if self.has_run:
66
+ self.logger.info("Impacts have already been run.")
67
+ return
68
+ for model in self.models:
69
+ model.run(self.scenario)
70
+
71
+ def has_run_check(self) -> bool:
72
+ """Check if the impact has been run.
73
+
74
+ Returns
75
+ -------
76
+ bool
77
+ _description_
78
+ """
79
+ checks = []
80
+ for model in self.models:
81
+ checks.append(model.has_run(self.scenario))
82
+ return all(checks)
@@ -0,0 +1,69 @@
1
+ from flood_adapt import __version__
2
+ from flood_adapt.dbs_classes.interface.database import IDatabase
3
+ from flood_adapt.misc.log import FloodAdaptLogging
4
+ from flood_adapt.misc.utils import finished_file_exists, write_finished_file
5
+ from flood_adapt.objects.scenarios.scenarios import Scenario
6
+ from flood_adapt.workflows.impacts_integrator import Impacts
7
+
8
+
9
+ class ScenarioRunner:
10
+ """class holding all information related to a scenario."""
11
+
12
+ def __init__(self, database: IDatabase, scenario: Scenario) -> None:
13
+ """Create a Scenario object."""
14
+ self.logger = FloodAdaptLogging.getLogger("ScenarioRunner")
15
+ self._database = database
16
+ self._load_objects(scenario)
17
+ self.site_info = self._database.site
18
+ self.results_path = self._database.scenarios.output_path / self._scenario.name
19
+
20
+ def _load_objects(self, scenario: Scenario) -> None:
21
+ """Load objects from the database."""
22
+ self._scenario = scenario
23
+ self._event = self._database.events.get(scenario.event)
24
+ self._projection = self._database.projections.get(scenario.projection)
25
+ self._strategy = self._database.strategies.get(scenario.strategy)
26
+
27
+ @property
28
+ def impacts(self) -> Impacts:
29
+ return Impacts(
30
+ scenario=self._scenario,
31
+ )
32
+
33
+ def run(self, scenario: Scenario) -> None:
34
+ """Run hazard and impact models for the scenario."""
35
+ self._load_objects(scenario)
36
+ self.results_path.mkdir(parents=True, exist_ok=True)
37
+
38
+ # Initiate the logger for all the integrator scripts.
39
+ log_file = self.results_path.joinpath(f"logfile_{scenario.name}.log")
40
+ with FloodAdaptLogging.to_file(file_path=log_file):
41
+ self.logger.info(f"FloodAdapt version `{__version__}`")
42
+ self.logger.info(f"Started evaluation of `{scenario.name}`")
43
+
44
+ hazard_models = [
45
+ self._database.static.get_overland_sfincs_model(),
46
+ ]
47
+ for hazard in hazard_models:
48
+ if not hazard.has_run(self._scenario):
49
+ hazard.run(self._scenario)
50
+ else:
51
+ self.logger.info(
52
+ f"Hazard for scenario '{scenario.name}' has already been run."
53
+ )
54
+
55
+ if not self.impacts.has_run:
56
+ self.impacts.run()
57
+ else:
58
+ self.logger.info(
59
+ f"Impacts for scenario `{scenario.name}` has already been run."
60
+ )
61
+
62
+ self.logger.info(f"Finished evaluation of `{scenario.name}`")
63
+
64
+ # write finished file to indicate that the scenario has been run
65
+ write_finished_file(self.results_path)
66
+
67
+ def has_run_check(self):
68
+ """Check if the scenario has been run."""
69
+ return finished_file_exists(self.results_path)
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 Deltares
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,183 @@
1
+ Metadata-Version: 2.2
2
+ Name: flood-adapt
3
+ Version: 0.3.0
4
+ Summary: A software package support system which can be used to assess the benefits and costs of flood resilience measures
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
+ Project-URL: Source, https://github.com/Deltares-research/FloodAdapt
7
+ Classifier: Intended Audience :: Science/Research
8
+ Classifier: License :: CC0 1.0 Universal (CC0 1.0) Public Domain Dedication
9
+ Classifier: Topic :: Scientific/Engineering :: Hydrology
10
+ Requires-Python: <3.13,>=3.8
11
+ Description-Content-Type: text/markdown
12
+ License-File: LICENSE
13
+ Requires-Dist: cht-cyclones==1.0.3
14
+ Requires-Dist: cht-meteo==0.3.1
15
+ Requires-Dist: cht-observations==0.2.1
16
+ Requires-Dist: cht-tide==0.1.1
17
+ Requires-Dist: dask==2024.11.2
18
+ Requires-Dist: numba_celltree==0.2.2
19
+ Requires-Dist: fiat-toolbox==0.1.17
20
+ Requires-Dist: fiona<2.0,>=1.0
21
+ Requires-Dist: geojson<4.0,>=3.0
22
+ Requires-Dist: geopandas<2.0,>=1.0
23
+ Requires-Dist: hydromt-fiat==0.5.4
24
+ Requires-Dist: hydromt-sfincs==1.2.0
25
+ Requires-Dist: numpy<2.0,>=1.0
26
+ Requires-Dist: numpy-financial<2.0,>=1.0
27
+ Requires-Dist: pandas<3.0,>=2.0
28
+ Requires-Dist: plotly<7.0,>=6.0
29
+ Requires-Dist: pydantic<3.0,>=2.0
30
+ Requires-Dist: pydantic-settings<3.0,>=2.0
31
+ Requires-Dist: pyogrio<1.0
32
+ Requires-Dist: tomli<3.0,>=2.0
33
+ Requires-Dist: tomli-w<2.0,>=1.0
34
+ Provides-Extra: dev
35
+ Requires-Dist: pytest<9.0,>=8.0; extra == "dev"
36
+ Requires-Dist: pytest-timeout<3.0,>=2.0; extra == "dev"
37
+ Requires-Dist: pytest-cov<7.0,>=6.0; extra == "dev"
38
+ Requires-Dist: pre-commit==3.8.0; extra == "dev"
39
+ Requires-Dist: ruff==0.5.5; extra == "dev"
40
+ Requires-Dist: typos==1.23.6; extra == "dev"
41
+ Provides-Extra: build
42
+ Requires-Dist: build<2.0,>=1.2; extra == "build"
43
+ Requires-Dist: twine<7.0,>=6.0; extra == "build"
44
+ Requires-Dist: pyinstaller==6.7.0; extra == "build"
45
+ Requires-Dist: pefile<2024.8.26; extra == "build"
46
+ Provides-Extra: docs
47
+ Requires-Dist: jupyter<2.0,>=1.0; extra == "docs"
48
+ Requires-Dist: jupyter-cache<2.0,>=1.0; extra == "docs"
49
+ Requires-Dist: matplotlib<4.0,>=3.0; extra == "docs"
50
+ Requires-Dist: quartodoc<1.0,>=0.9.0; extra == "docs"
51
+ Requires-Dist: sphinx<9.0,>=8.0; extra == "docs"
52
+ Requires-Dist: sphinx-rtd-theme<4.0,>=3.0; extra == "docs"
53
+ Requires-Dist: regex<2025.0,>=2024.11; extra == "docs"
54
+ Provides-Extra: all
55
+ Requires-Dist: flood-adapt[build,dev,docs]; extra == "all"
56
+
57
+ # FloodAdapt
58
+ FloodAdapt is a decision-support tool that seeks to advance and accelerate flooding-related adaptation planning. It brings rapid, physics-based compound flood and detailed impact modelling into an easy-to-use system, allowing non-expert end-users to evaluate a wide variety of compound events, future conditions, and adaptation options in minutes. FloodAdapt serves as a connector between scientific advances and practitioner needs, improving and increasing the uptake and impact of adaptation research and development.
59
+
60
+ To make decisions on flood adaptation, communities need to understand how climate and socio-economic changes will affect flood risk and the risk-reduction potential of various adaptation options. This type of information is usually costly to acquire, and models are often too slow and labor-intensive to evaluate all the scenarios required to understand the impacts and effectiveness of potential adaptation decisions. FloodAdapt addresses this by making rapid, physics-based compound flood modeling and detailed impact modeling accessible to non-expert end-users, allowing them to evaluate a wide variety of compound events, future conditions, and adaptation options in minutes.
61
+
62
+ FloodAdapt was developed as a rapid planning tool with a straightforward graphical user interface for scenario generation, simulation, and visualization of spatial flooding and flooding impacts. Decision-making needs at the community level were central to the design of FloodAdapt. Users can answer planning questions like: “How will potential adaptation options reduce flood impacts?”, “How will those options perform for different types of events, like hurricanes, king tides, or heavy rainfall?”, “Which neighborhoods will benefit most?”, “How will those options hold up in the future?”
63
+
64
+ Users specify what-if scenarios composed of historic or synthetic weather events, climate or socio-economic future projections, and adaptation measures.
65
+ The backend of FloodAdapt leverages the open-source, state-of-the-art process-based compound flood model SFINCS (https://github.com/Deltares/SFINCS) that can accurately predict compound flooding due to surge, rainfall, and river discharge, at a fraction of the computation time typically required by physics-based models. The damage model included in FloodAdapt is the Deltares-developed flood impact assessment tool Delft-FIAT (https://github.com/Deltares/Delft-FIAT). It calculates the flood damages to individual buildings and roads, and – when social vulnerability data is available – aggregates these damages over vulnerability classes.
66
+
67
+ FloodAdapt can greatly support adaptation planning by allowing users to explore many scenarios. It can be used to evaluate flooding and impacts due to compound weather events, like hurricanes, king tides, and rainfall events. Users can evaluate flooding, impacts, and risk considering user-specified projections of sea level rise, precipitation increase, storm frequency increase, population growth, and economic growth. Users can also test out adaptation options, like sea walls, levees, pumps, home elevations, buyouts and floodproofing.
68
+
69
+ Recent developments of the decision-support system include (1) simplifying and partially automating the setup of the SFINCS and Delft-FIAT models, (2) improving the user experience, (3) better supporting adaptation planning with improvements like metrics tables, infographics, better visualizations in the user interface, adding in additional adaptation options to evaluate, and calculating benefits of adaptation options, and (4) incorporating social vulnerability and equity into the evaluation of adaptation options to support equitable adaptation planning.
70
+
71
+ FloodAdapt is currently in an intensive development stage. Independent usage of the repository will be challenging prior to end-of-year 2024. FloodAdapt documentation will be expanded on throughout 2024.
72
+
73
+ # Installation
74
+
75
+ ## Setting up Pixi
76
+ To build the environment, manage dependencies and run tasks, FloodAdapt uses [Pixi](https://pixi.sh/latest/), please download and install it by following the instructions on the pixi website.
77
+
78
+ Before continuing the installation process, make sure you have access to all required private repositories by ensuring you are in the Teams `FloodAdaptUsers` in the [Deltares](https://github.com/orgs/Deltares/teams/floodadaptusers) and [Deltares-research](https://github.com/orgs/Deltares-research/teams/floodadaptusers) organizations.
79
+
80
+ ## Windows
81
+ Then run these commands to install FloodAdapt:
82
+ ```bash
83
+ git clone https://github.com/Deltares-research/FloodAdapt.git
84
+ cd FloodAdapt
85
+ pixi install
86
+ ```
87
+ ## Linux
88
+ Linux is not supported at the moment, but will be supported in the near future.
89
+
90
+ ## Configure database
91
+
92
+ #### TODO add section for the DatabaseBuilder.
93
+
94
+ FloodAdapt uses a database to store, handle and organize input files, output files and static data. This database needs to be configured the first time you want to use FloodAdapt. Which is done via `flood_adapt/misc/config.py` which contains the `Settings` class to set and validate environment variables, specific to your system.
95
+
96
+ To initialize FloodAdapt and configure the database, add the following lines to the top of your script / initialize function to validate and set the environment variables:
97
+ ```python
98
+ from pathlib import Path
99
+ from flood_adapt.misc.config import Settings
100
+
101
+ # Usually ends in `Database` and can contain multiple sites
102
+ root = Path("path/to/your/database/root")
103
+
104
+ # Specifies which site to use
105
+ name = "database_name"
106
+
107
+ # Contains the model kernels to run that perform the calculations
108
+ system_folder = Path("path/to/your/system/folder")
109
+
110
+ # Validate and set environment variables
111
+ Settings(
112
+ DATABASE_ROOT=root,
113
+ DATABASE_NAME=name,
114
+ SYSTEM_FOLDER=system_folder,
115
+ )
116
+ ```
117
+
118
+ ## Developing FloodAdapt
119
+
120
+ To contribute to FloodAdapt, you will need to install additional dependencies. To do so, clone the repository and install the development environment:
121
+
122
+ ```bash
123
+ # Install dev environment
124
+ git clone https://github.com/Deltares/FloodAdapt
125
+ cd FloodAdapt
126
+
127
+ # This will install the required environment and run the tests to verify
128
+ pixi run tests
129
+ ```
130
+
131
+ Alternatively, you can open an interactive shell and have pixi take care of activating and updating your environment.
132
+ ```bash
133
+ # `activate` the dev environment
134
+ pixi shell -e dev
135
+
136
+ # Develop
137
+ pytest tests/test_x/test_y/test_z.py
138
+ python scripts/my_script.py
139
+ ...
140
+ ```
141
+
142
+ ### Adding editable installations to your environment
143
+
144
+ To make developing easier and not have to reinstall packages after every change, editable installs exist.
145
+ Pixi supports editable installs, but not in the most intuitive way, as they need to be defined as editable in the project specification.
146
+
147
+ Example command to add the package `example_package` as an editable install to the default environment:
148
+ - go to the non-pixi sections in `pyproject.toml` and comment out the `example_package`. (`[dependencies]` or `[optional-dependencies]`)
149
+ - in the pixi section `[tool.pixi.pypi-dependencies]`: add the following line `example_package = {path = "./path/to/example_package", editable = true }`. Note that this path is relative to the root of this project.
150
+ - run `pixi update`
151
+
152
+ ## Useful pixi commands
153
+ ```bash
154
+ # Display all pixi commands and options
155
+ pixi -h
156
+
157
+ # Install a non default pixi environment defined in pyproject.toml
158
+ pixi install -e [ENV_NAME]
159
+
160
+ # Update environment(s) to the latest allowed by dependency specifications in pyproject.toml
161
+ pixi update
162
+
163
+ # List all available tasks
164
+ pixi task list
165
+
166
+ # Run a task in the default environment for that task
167
+ pixi run [TASK]
168
+
169
+ # Start a shell in the pixi environment
170
+ pixi shell -e [ENV_NAME]
171
+
172
+ # Add a package to the dependencies
173
+ pixi add [PACKAGE]
174
+
175
+ # Run a task in a specific environment
176
+ pixi run -e [ENV_NAME] [TASK]
177
+ ```
178
+
179
+ ### Generating the documentation
180
+
181
+ We use `quartodoc` to generate our API documentation automatically. If you have the `docs` optional dependency group installed.
182
+ you can do this by running `quartodoc build` from the `docs` directory, and it will create the documentation for you.
183
+ After this is done, if you wish, you can build and view the documentation locally by running `quarto preview` from the `docs` directory
@@ -0,0 +1,139 @@
1
+ flood_adapt/__init__.py,sha256=qr2n76U7FJKoIQRAha8u1esAPHPpP3yEWXkbE1GWAKI,596
2
+ flood_adapt/database_builder.py,sha256=eq_LAqaGpV-KJkLNBVvXjyjFRDQaBFA5ubANiuVsZWU,420
3
+ flood_adapt/flood_adapt.py,sha256=9_JJtB96QWF9GEYTzs4WEAScYPYwt8Ye3VnCD5UHMAU,39229
4
+ flood_adapt/adapter/__init__.py,sha256=C6XBZK8x4MHe3beeKa9rPbXn0-gBHPEPnTKn14C-5gI,249
5
+ flood_adapt/adapter/fiat_adapter.py,sha256=MTAE_eaJ64PPOyCYuFTXI1LJ56q4PNOzqwZN0gyCrK8,55850
6
+ flood_adapt/adapter/sfincs_adapter.py,sha256=fHew5cmY4Ni87tIyJbqWKUsVyfTYoGVbxLtoPRy_vU0,73119
7
+ flood_adapt/adapter/sfincs_offshore.py,sha256=BBdeCYKKDweFla05aE1Q9Fr-eXY1VzxQEfE_74lR7B8,7600
8
+ flood_adapt/adapter/interface/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
+ flood_adapt/adapter/interface/hazard_adapter.py,sha256=1yZUNTrT3dtrD_PTJfczVkjNVB9JcQr64Y4xYRtR-sc,2758
10
+ flood_adapt/adapter/interface/impact_adapter.py,sha256=5KMUzUqT18pfjzVS2QT2PSnDJDjXLMFvlLJjAK_UIgc,1387
11
+ flood_adapt/adapter/interface/model_adapter.py,sha256=i39fEsZ2gm1Q4PQ1vRX6CZ-1RwVSXVyPmppj1w6TfAE,2693
12
+ flood_adapt/adapter/interface/offshore.py,sha256=hSsXKkU6rWPZH9wtquWkYsEvFSPuuU1l1MFZZ32qD20,462
13
+ flood_adapt/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
+ flood_adapt/config/config.py,sha256=A06tXcNbHZ5X_0pAnACiRUBYzlqx92K8_zjkHxtmb7U,8706
15
+ flood_adapt/config/fiat.py,sha256=a7k2ZaucnfsKXPEXdgLUri9RblOoOKet8r3_9V5583E,5956
16
+ flood_adapt/config/gui.py,sha256=7VeUk7pQEouTgdVjkfm9suSSQiDDKNPUXRmqMsUudiE,8070
17
+ flood_adapt/config/sfincs.py,sha256=WHPPPtT9vxStsulElB_I8Hbtk3WNJs3Zqy-bfcy68fA,11279
18
+ flood_adapt/config/site.py,sha256=tMWdnT1Su4PE9wjBOEKOLEGYUsbrqCMolNiqOPKujCQ,3960
19
+ flood_adapt/database_builder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
+ flood_adapt/database_builder/database_builder.py,sha256=anWwa_uPgVs4-1h697MmnlIyVCLekb0qlm-s3DnGx-s,86120
21
+ flood_adapt/database_builder/templates/default_units/imperial.toml,sha256=EYR0i4T_1fuoDe8R509pTd5fMKWCIaMo-pa6XdqANkA,286
22
+ flood_adapt/database_builder/templates/default_units/metric.toml,sha256=eE54FdlUtnc6VNTE-U9n18rN0TN9_sTzsCokf2I8Sik,293
23
+ flood_adapt/database_builder/templates/green_infra_table/green_infra_lookup_table.csv,sha256=T3CW2WmWjlrlDVurPTcAX6-DTH0EJdLIt0f_5r1ox-U,456
24
+ flood_adapt/database_builder/templates/icons/black_down_48x48.png,sha256=6UbxUBIuWqvW8fCNwjRJdz6nE0zwQWay7AegL95WaGU,1137
25
+ flood_adapt/database_builder/templates/icons/black_left_48x48.png,sha256=MFxvek85EVzUDgpzJi9_lPQ00h_TYuwW4WgGKw3VBSo,1185
26
+ flood_adapt/database_builder/templates/icons/black_right_48x48.png,sha256=3Q-HiXBp_W5s_jSd-54Jiw6l_oN6MqIXo7wVQ2ryMzc,1100
27
+ flood_adapt/database_builder/templates/icons/black_up_48x48.png,sha256=8wNqgrwnqp6EjX2A9BtxlcEudaxhe0-6_v0PF354Nak,1174
28
+ flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-16_white_down.png,sha256=5xWFCB5xT5N6Fu-SFsEGNPq5wBcl4eVqNUIf_EFwdvM,285
29
+ flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-16_white_left.png,sha256=OqPB8CceBuuhU-vdA7nipOfC8zqVddnEG9KdPhV5zaw,287
30
+ flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-16_white_right.png,sha256=Momu1KIT4TTkQVaVPkqKWs-SQZxi50hTnf20mvZyYk8,271
31
+ flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-16_white_up.png,sha256=YAwvoAQxQ1Mifi-zPipMIzLha5jyX4QKyWCTvv6KwpU,280
32
+ flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_black_down.png,sha256=eqodd76XKsUuItRfQDmrb_hkBM5g5rerH3jOjsFgOe8,326
33
+ flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_black_left.png,sha256=4dlE6aIIKHHUqG9rtpx5C8ck3kQqpdmRdX_rz-lZRrg,340
34
+ flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_black_right.png,sha256=DBcMHh-C2ftycQfFNkioLJe2OwHX72aL7T8hxxT0sLU,340
35
+ flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_black_up.png,sha256=33UvQKt203NoZVIC8ke1pWenxRMVSyKoIlThUOhuohc,326
36
+ flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_white_left.png,sha256=863EY7w2Fi5UQSUrlFX6CpeiJf8THkNjiNtX6ZdA3AI,273
37
+ flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_white_right.png,sha256=wGnZLzF6KqsrCcWg5JJ28YlP6d7vPgOKO7OS9MrXedI,265
38
+ flood_adapt/database_builder/templates/icons/white_down_48x48.png,sha256=ZxXz4WK3Mn0yBvsrFkM-v4o8KCIYsk9UYTqRy03fTxw,779
39
+ flood_adapt/database_builder/templates/icons/white_left_48x48.png,sha256=mLjrGhsMo79EyaeEK9Ykmym-knv2LHk92JTMWaAfaw0,738
40
+ flood_adapt/database_builder/templates/icons/white_right_48x48.png,sha256=dxYJT-zTp8KXLcjRkd4toZjkPrFCjDwBbSmqPspw9Qk,753
41
+ flood_adapt/database_builder/templates/icons/white_up_48x48.png,sha256=eahYlRiknCFlIfA26BJQl__o74cqwuKTRRZ35SgCXcY,733
42
+ flood_adapt/database_builder/templates/infographics/OSM/config_charts.toml,sha256=HCdfSc3ihR0kAVNzaqro9pBVk_1s5rJqD1cGomzjBjY,2518
43
+ flood_adapt/database_builder/templates/infographics/OSM/config_people.toml,sha256=EOJ77e-eV7NewPpNRZ2It_HDeVlt7SrBkxW0ogqy_2I,1697
44
+ flood_adapt/database_builder/templates/infographics/OSM/config_risk_charts.toml,sha256=NnPfkJjDp3pm7IDeJtF1p12axVUN8P2fS72q3WrIIAY,3683
45
+ flood_adapt/database_builder/templates/infographics/OSM/config_roads.toml,sha256=okGvMs8XfQMJeWQ09WBCrZ4WGe_n6Y6919dIi_nMSew,1825
46
+ flood_adapt/database_builder/templates/infographics/OSM/styles.css,sha256=c_vkmzFZEdOLJFyl2gsqfcOsAZ4SXK0ihmbeuXxisWo,717
47
+ flood_adapt/database_builder/templates/infographics/US_NSI/config_charts.toml,sha256=BicfPkHVT01Rs91s038Cy77cpIfZRHUoAYCPsECfrtU,3636
48
+ flood_adapt/database_builder/templates/infographics/US_NSI/config_people.toml,sha256=3d5hIyCLhahhR3r3-QBYdMeZufcd_0UwLBBT_q07puA,1832
49
+ flood_adapt/database_builder/templates/infographics/US_NSI/config_risk_charts.toml,sha256=NnPfkJjDp3pm7IDeJtF1p12axVUN8P2fS72q3WrIIAY,3683
50
+ flood_adapt/database_builder/templates/infographics/US_NSI/config_roads.toml,sha256=zT2tksO_xO5wwsTChG_yYeJ94FElCm9CclD51wp5kBk,1824
51
+ flood_adapt/database_builder/templates/infographics/US_NSI/styles.css,sha256=c_vkmzFZEdOLJFyl2gsqfcOsAZ4SXK0ihmbeuXxisWo,717
52
+ flood_adapt/database_builder/templates/infographics/images/ambulance.png,sha256=dw5vcU_kRePrBA3Zl4_aQFz1Rc93x26y8PelY2MJ_Lo,7757
53
+ flood_adapt/database_builder/templates/infographics/images/car.png,sha256=PFED6xR31G2P15ZGM14CyJeca7zfUlwQe2348bpPCxM,6600
54
+ flood_adapt/database_builder/templates/infographics/images/cart.png,sha256=hLknRSLm7YCSw5kmDP_JysAN6cLiNCVKkqhfsaoT_8c,27453
55
+ flood_adapt/database_builder/templates/infographics/images/firetruck.png,sha256=muo4nwzR6id0TToPvAFtCBjzdYNQ3zSWSBHqtrZzThM,16261
56
+ flood_adapt/database_builder/templates/infographics/images/hospital.png,sha256=GkAeoQLoWQfyBo4_GKWoeHB65qFJe6S8HMMqPu3ekyU,2318
57
+ flood_adapt/database_builder/templates/infographics/images/house.png,sha256=GPfszAtur8PH5FRlMyIM6Ebiq9VTL_1lNHenPZ-bcqM,10651
58
+ flood_adapt/database_builder/templates/infographics/images/info.png,sha256=64lVx2T67DbfnL6cLVgxowBJxpuvQdhAXJx51-NlB2c,12547
59
+ flood_adapt/database_builder/templates/infographics/images/money.png,sha256=U2pD4OuikcjmVmFaZ5jlrJwoBWXWGfgD4rPUooaIxLQ,6598
60
+ flood_adapt/database_builder/templates/infographics/images/person.png,sha256=ipzWI5hU37NNZqZCq-xN7ST8Pwu0c3kvmZN_20FPHow,10116
61
+ flood_adapt/database_builder/templates/infographics/images/school.png,sha256=7N6EkuNxHKyFuBVSRDQVN3wZkX7O-eXrcvjJeyOb8w8,7554
62
+ flood_adapt/database_builder/templates/infographics/images/truck.png,sha256=0IhvYYvmfAPvFiA5ipwTz3VnvlFe5vyfNrejPinrlOo,9492
63
+ flood_adapt/database_builder/templates/infographics/images/walking_person.png,sha256=vaxO4oGejK5Q4KyGXuew2YgpGPabpnwLyxTFH1WMbmo,11080
64
+ flood_adapt/database_builder/templates/infometrics/mandatory_metrics_config.toml,sha256=gvR2i0X0nNMqGJbl7ILjM5EkljeugLoRPmk9Oh1cqIM,202
65
+ flood_adapt/database_builder/templates/infometrics/mandatory_metrics_config_risk.toml,sha256=jGOIHDko-PfZLXZ7KXbL_pgyI9e8sbw00TMZQj-SLPk,1694
66
+ flood_adapt/database_builder/templates/infometrics/OSM/metrics_additional_risk_configs.toml,sha256=y21xRI9G8-STCXSTZnrH25abT_-fCGpiB7tVTTfM-YE,76
67
+ flood_adapt/database_builder/templates/infometrics/OSM/with_SVI/infographic_metrics_config.toml,sha256=Gvoyd-OGhVz_5P-gRQeypXDW-3c37dPLujMrG-lSoD8,5314
68
+ flood_adapt/database_builder/templates/infometrics/OSM/with_SVI/infographic_metrics_config_risk.toml,sha256=Vrx1kjOahAeU1j8BnX9h_dL8sn7FrQvFW0JHHvG-T9w,6283
69
+ flood_adapt/database_builder/templates/infometrics/OSM/without_SVI/infographic_metrics_config.toml,sha256=I1oCFDNx1hIBaBa0vaJJqAKXnAYgWG7-hhNZZVt34wg,4499
70
+ flood_adapt/database_builder/templates/infometrics/OSM/without_SVI/infographic_metrics_config_risk.toml,sha256=0dCjbYfR0o0XSS7Fgzs2cRur07h6MHAnm7LdUihZX1s,2039
71
+ flood_adapt/database_builder/templates/infometrics/US_NSI/metrics_additional_risk_configs.toml,sha256=6EXjIjDjn9VXH8Q0PE3j00L0XHnVrYi7Nog4HodecuE,75
72
+ flood_adapt/database_builder/templates/infometrics/US_NSI/with_SVI/infographic_metrics_config.toml,sha256=NGk5COekIySYrL_7wxM-ZF4YcbL4DElPi1yrA7vN9iI,7245
73
+ flood_adapt/database_builder/templates/infometrics/US_NSI/with_SVI/infographic_metrics_config_risk.toml,sha256=I5D-JAQ3c84OklohQMgBapr5Gf305sbwVpp-yRrBSOQ,6148
74
+ flood_adapt/database_builder/templates/infometrics/US_NSI/without_SVI/infographic_metrics_config.toml,sha256=zYHQj9AZv_zKotGDu78uBxEMWgUOxC2LJdL0vq6pYvo,6453
75
+ flood_adapt/database_builder/templates/infometrics/US_NSI/without_SVI/infographic_metrics_config_risk.toml,sha256=ayNiJHEMdRk82nhfV1srRNavUtxpQEWX71fJf9nsxu4,1988
76
+ flood_adapt/database_builder/templates/mapbox_layers/bin_colors.toml,sha256=OXlAdFfu3S99qrxFqn_Xu6ZIZMvk-0_LQhdsj5q_rZk,412
77
+ flood_adapt/dbs_classes/__init__.py,sha256=_8DX6dK62U1RjRKz0zOgM0yR-kiBlBxz2dLkCWylmXc,710
78
+ flood_adapt/dbs_classes/database.py,sha256=RBwC_fEFAp48fxiyNay6am1rGGb55LL48UBWrT3YWlw,25332
79
+ flood_adapt/dbs_classes/dbs_benefit.py,sha256=Fzm0eCWOPFLorKkk86Qzt4Wq0ZGJTh1vwJ5I6vm-6zQ,3096
80
+ flood_adapt/dbs_classes/dbs_event.py,sha256=5khfCMn05TPe4mA1o6ApAvtIPMmlLrT_uLe_40M-r_k,2702
81
+ flood_adapt/dbs_classes/dbs_measure.py,sha256=oOOkSPuaq2seG3l2c2nZ_eMi9SrH-c7EZnC2ijTXI1Q,3613
82
+ flood_adapt/dbs_classes/dbs_projection.py,sha256=wVtcP8grBbQ-Y2_Rvjp9Rw8ae2uZoLeGRutiuf0aJrg,1575
83
+ flood_adapt/dbs_classes/dbs_scenario.py,sha256=P7yyLSYt-W1TgNbsNyF9XvB6UNv-9qVR5DXfq6G4UaQ,5138
84
+ flood_adapt/dbs_classes/dbs_static.py,sha256=LKBDrqoRcLUZmkT4683kB61kbgHp5atVE5qq6U9dpig,9099
85
+ flood_adapt/dbs_classes/dbs_strategy.py,sha256=kgqbnUyG9_IMS1oIsqgZkiMgrDuhV_Hw0pfFQcJDMjc,5284
86
+ flood_adapt/dbs_classes/dbs_template.py,sha256=mii9PpngbEtFUO4Y0Xj_AtFcXn_HO2H7kW1eGmf0AbI,11118
87
+ flood_adapt/dbs_classes/interface/database.py,sha256=HcJWAQP3mx5rKWvdHeqG8id-AqzYgOXGIrIAR7WhkmA,3510
88
+ flood_adapt/dbs_classes/interface/element.py,sha256=gKFtE-a0cnkMpXrAwrYFWSvzhePSbDqFxwz6ChS0O6E,3772
89
+ flood_adapt/dbs_classes/interface/static.py,sha256=3kLaWabSWKe7h8-SiBTJlr09sO8Ykbk4NIE5mrMoCp0,1225
90
+ flood_adapt/misc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
91
+ flood_adapt/misc/database_user.py,sha256=FUCjJSDW4oF1kcmXJkhRbGcHj896OztWFfkB7-bufiM,530
92
+ flood_adapt/misc/log.py,sha256=qqcqXGHPAt2Xz4tLTMDgmJS8gNqX6sGYj5_04KK0rwY,6548
93
+ flood_adapt/misc/path_builder.py,sha256=nZvo3DUktINTrFUDOWfKgnUEu27hLAHhI3f12Pq6Uhs,1342
94
+ flood_adapt/misc/utils.py,sha256=AyRsK4DYoN2JGXE7BK6KBgiECIbMYTI_pP5wLxYoQIw,5403
95
+ flood_adapt/objects/__init__.py,sha256=d3LOdMpwy5x0Z9yXFwaiwUe-u7oFwZ3mjVrwGBsMkF4,1313
96
+ flood_adapt/objects/object_model.py,sha256=AISWI7uvq0_4g88DSwJ9eEP2_1uwICIclTIvrWqqQMw,2008
97
+ flood_adapt/objects/benefits/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
98
+ flood_adapt/objects/benefits/benefits.py,sha256=Jk-PsHM3sxp6pUoT28tMuxF-IsONVNH5p4R6Z22HaY0,1833
99
+ flood_adapt/objects/events/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
100
+ flood_adapt/objects/events/event_factory.py,sha256=sGBNyFijKXT-Ltx7vEyiJpnSnBOoSLnYyuI6NC7ZtuM,4068
101
+ flood_adapt/objects/events/event_set.py,sha256=NqaP1TA4pXWtjDG0bfIflT2E6aPPqULClenWLqNsG4A,2584
102
+ flood_adapt/objects/events/events.py,sha256=g1PrdBJostlVN6DFiJoyCf8LJ8pjcCNwOnvnK78z8PM,8118
103
+ flood_adapt/objects/events/historical.py,sha256=AvafuI8Pc8SWie7e7p0yxLM7IXJ7WJnpSF90iJacJGI,1679
104
+ flood_adapt/objects/events/hurricane.py,sha256=QwnXQ2jXAqDHP82ANVAJZlZQ2umoJLA401Bx6X6KT4I,2093
105
+ flood_adapt/objects/events/synthetic.py,sha256=kJy2DN9JqXsBqhW7nzgBwTltscHTnoKpbE0jH7u4BmA,1380
106
+ flood_adapt/objects/forcing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
107
+ flood_adapt/objects/forcing/csv.py,sha256=PWXe8VuGNvGcnwAmnmLPhoQRdBD5Biyomh2OOjvTvzI,1959
108
+ flood_adapt/objects/forcing/discharge.py,sha256=kTm2a5FB-nV1BJEQRxJ0iBqmz37_-LBinwQtM8b1y28,1991
109
+ flood_adapt/objects/forcing/forcing.py,sha256=zluBnlsIzYaQSTk0nyh_G70LKaluHP1RNfPll-URDlE,4092
110
+ flood_adapt/objects/forcing/forcing_factory.py,sha256=Iq1vmX6JhWEkBE9Tj8EjrmwWxXDwX7s1u8-qjufdPq8,5783
111
+ flood_adapt/objects/forcing/meteo_handler.py,sha256=ynlXSckCjbVmRnPHVKZPTZ_NFpfr8g6SIJ70hcEoUIE,3287
112
+ flood_adapt/objects/forcing/netcdf.py,sha256=adSOnSgoxvk1f3lB3Bk-P3HJFljeLGapyNxF1NVJjng,1348
113
+ flood_adapt/objects/forcing/plotting.py,sha256=dfhSY6_IfJzG1N0ivGTWjCMtiBj-4UAyG5JsRoKmDJ4,14305
114
+ flood_adapt/objects/forcing/rainfall.py,sha256=ndR1T-Zi-m7eek-7w1VGJC3xPlDq97yGvgqKctz647c,3184
115
+ flood_adapt/objects/forcing/tide_gauge.py,sha256=T6XLOAuFvUjThbg0PcSbMs1_m-SpZ9W2pQ-4q48HdNk,6996
116
+ flood_adapt/objects/forcing/time_frame.py,sha256=u1slwo2aJHG3lK7QWNMY1yL84adpW7yfrlMlZO1sgbs,2415
117
+ flood_adapt/objects/forcing/timeseries.py,sha256=NR0jR9j5HQEtUZlCc0eFhsREVZArl9Mg2TSD9RrQR5Q,18641
118
+ flood_adapt/objects/forcing/unit_system.py,sha256=oYk09TC0ksyeqHmT2CkA2fPkKYFR2YeT-ymvnXAAbJM,15922
119
+ flood_adapt/objects/forcing/waterlevels.py,sha256=oKVKXA0SMbOPujCFn53agpJpqXuC7cawF8wfHbxUSgA,3329
120
+ flood_adapt/objects/forcing/wind.py,sha256=VtbopiBGyi2T6Id0fnRKYLTzfRt9f_QxupyxIyFZQKI,3801
121
+ flood_adapt/objects/measures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
122
+ flood_adapt/objects/measures/measure_factory.py,sha256=v0eiFlsW47UpM2DQUKGu3Qio3s3JE4nB20W9T_9JAuA,2636
123
+ flood_adapt/objects/measures/measures.py,sha256=0bZKkFbo4d81wxyKYBSh1rxnrS0yqd-baWT51axG4rw,17233
124
+ flood_adapt/objects/projections/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
125
+ flood_adapt/objects/projections/projections.py,sha256=qmyv124vlf90EVuQ2vSrmbbgrKkj-_Dks5ehWNN2zUw,3276
126
+ flood_adapt/objects/scenarios/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
127
+ flood_adapt/objects/scenarios/scenarios.py,sha256=Io2qUSiUggpIbVV4kxd7F46WYUJHyFL62RWq_2rFmsM,528
128
+ flood_adapt/objects/strategies/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
129
+ flood_adapt/objects/strategies/strategies.py,sha256=nvyVQjJ2tetbGg8xQ1-0yIJN_eOew9wXwi5_lCj-6Z8,2143
130
+ flood_adapt/workflows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
131
+ flood_adapt/workflows/benefit_runner.py,sha256=nLmWqbzBsXJOikCnm7S6tSbJ9Ex1zjkVLHk8vx0mppk,19888
132
+ flood_adapt/workflows/floodmap.py,sha256=6XatakhiZDkIi82VpRDb5dWtWAs-aSho8_iaCGph1_c,2932
133
+ flood_adapt/workflows/impacts_integrator.py,sha256=Iq8namwu90SP_BTazUsDqROqOrJk7rGEyR6nA1Q7Vho,2330
134
+ flood_adapt/workflows/scenario_runner.py,sha256=6d1ypkHNdFgL7WMEXiM3scBs43IfLFqueGqL4LI9emQ,2833
135
+ flood_adapt-0.3.0.dist-info/LICENSE,sha256=K5036N4YhOu7BzQ4o2tQbe1NBYOqI-WF3ahlmdm5PlU,1065
136
+ flood_adapt-0.3.0.dist-info/METADATA,sha256=dGVGJfUuA-I3wTikKwVeyFJfsQcvM8q6UJ7Sriv173I,10801
137
+ flood_adapt-0.3.0.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
138
+ flood_adapt-0.3.0.dist-info/top_level.txt,sha256=JvzMi6cTcQPEThCfpgMEeVny3ghI1urSH0CCgVIqSzw,12
139
+ flood_adapt-0.3.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (75.8.2)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1 @@
1
+ flood_adapt