flood-adapt 1.0.2__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.
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/PKG-INFO +1 -1
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/__init__.py +1 -1
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/adapter/sfincs_adapter.py +4 -22
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/database_builder.py +1 -23
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/dbs_classes/dbs_static.py +5 -0
- flood_adapt-1.0.3/flood_adapt/misc/debug_timer.py +26 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/workflows/scenario_runner.py +15 -2
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt.egg-info/PKG-INFO +1 -1
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt.egg-info/SOURCES.txt +1 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/LICENSE +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/README.md +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/adapter/__init__.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/adapter/fiat_adapter.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/adapter/interface/__init__.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/adapter/interface/hazard_adapter.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/adapter/interface/impact_adapter.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/adapter/interface/model_adapter.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/adapter/interface/offshore.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/adapter/sfincs_offshore.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/config/__init__.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/config/config.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/config/fiat.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/config/gui.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/config/hazard.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/config/impacts.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/config/sfincs.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/config/site.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/__init__.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/default_units/imperial.toml +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/default_units/metric.toml +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/green_infra_table/green_infra_lookup_table.csv +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/icons/black_down_48x48.png +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/icons/black_left_48x48.png +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/icons/black_right_48x48.png +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/icons/black_up_48x48.png +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-16_white_down.png +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-16_white_left.png +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-16_white_right.png +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-16_white_up.png +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_black_down.png +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_black_left.png +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_black_right.png +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_black_up.png +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_white_left.png +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/icons/icons8-triangle-arrow-24_white_right.png +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/icons/white_down_48x48.png +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/icons/white_left_48x48.png +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/icons/white_right_48x48.png +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/icons/white_up_48x48.png +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/OSM/config_charts.toml +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/OSM/config_people.toml +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/OSM/config_risk_charts.toml +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/OSM/config_roads.toml +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/OSM/styles.css +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/US_NSI/config_charts.toml +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/US_NSI/config_people.toml +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/US_NSI/config_risk_charts.toml +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/US_NSI/config_roads.toml +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/US_NSI/styles.css +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/images/ambulance.png +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/images/car.png +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/images/cart.png +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/images/firetruck.png +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/images/hospital.png +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/images/house.png +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/images/info.png +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/images/money.png +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/images/person.png +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/images/school.png +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/images/truck.png +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infographics/images/walking_person.png +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infometrics/OSM/metrics_additional_risk_configs.toml +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infometrics/OSM/with_SVI/infographic_metrics_config.toml +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infometrics/OSM/with_SVI/infographic_metrics_config_risk.toml +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infometrics/OSM/without_SVI/infographic_metrics_config.toml +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infometrics/OSM/without_SVI/infographic_metrics_config_risk.toml +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infometrics/US_NSI/metrics_additional_risk_configs.toml +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infometrics/US_NSI/with_SVI/infographic_metrics_config.toml +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infometrics/US_NSI/with_SVI/infographic_metrics_config_risk.toml +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infometrics/US_NSI/without_SVI/infographic_metrics_config.toml +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infometrics/US_NSI/without_SVI/infographic_metrics_config_risk.toml +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infometrics/mandatory_metrics_config.toml +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/infometrics/mandatory_metrics_config_risk.toml +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/database_builder/templates/output_layers/bin_colors.toml +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/dbs_classes/__init__.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/dbs_classes/database.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/dbs_classes/dbs_benefit.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/dbs_classes/dbs_event.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/dbs_classes/dbs_measure.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/dbs_classes/dbs_projection.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/dbs_classes/dbs_scenario.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/dbs_classes/dbs_strategy.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/dbs_classes/dbs_template.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/dbs_classes/interface/database.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/dbs_classes/interface/element.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/dbs_classes/interface/static.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/flood_adapt.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/misc/__init__.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/misc/database_user.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/misc/exceptions.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/misc/log.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/misc/path_builder.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/misc/utils.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/objects/__init__.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/objects/benefits/__init__.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/objects/benefits/benefits.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/objects/events/__init__.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/objects/events/event_factory.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/objects/events/event_set.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/objects/events/events.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/objects/events/historical.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/objects/events/hurricane.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/objects/events/synthetic.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/objects/forcing/__init__.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/objects/forcing/csv.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/objects/forcing/discharge.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/objects/forcing/forcing.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/objects/forcing/forcing_factory.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/objects/forcing/meteo_handler.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/objects/forcing/netcdf.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/objects/forcing/plotting.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/objects/forcing/rainfall.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/objects/forcing/tide_gauge.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/objects/forcing/time_frame.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/objects/forcing/timeseries.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/objects/forcing/unit_system.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/objects/forcing/waterlevels.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/objects/forcing/wind.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/objects/measures/__init__.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/objects/measures/measure_factory.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/objects/measures/measures.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/objects/object_model.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/objects/output/floodmap.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/objects/projections/__init__.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/objects/projections/projections.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/objects/scenarios/__init__.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/objects/scenarios/scenarios.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/objects/strategies/__init__.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/objects/strategies/strategies.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/workflows/__init__.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt/workflows/benefit_runner.py +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt.egg-info/dependency_links.txt +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt.egg-info/not-zip-safe +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt.egg-info/requires.txt +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/flood_adapt.egg-info/top_level.txt +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/pyproject.toml +0 -0
- {flood_adapt-1.0.2 → flood_adapt-1.0.3}/setup.cfg +0 -0
- {flood_adapt-1.0.2 → 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.
|
|
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: ====================================================
|
|
@@ -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
|
-
|
|
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
|
-
|
|
517
|
-
|
|
518
|
-
|
|
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
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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.
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|