diff --git a/bin/run_ruff.bat b/bin/run_ruff.bat
index 9e8c70cb..04396d70 100644
--- a/bin/run_ruff.bat
+++ b/bin/run_ruff.bat
@@ -1,2 +1,3 @@
REM force-exclude to make sure it uses the extend-exclude from pyproject.
-python -m ruff format ../hhnk_threedi_tools/**/*.py --force-exclude
\ No newline at end of file
+python -m ruff check ../hhnk_threedi_tools --select I --fix
+python -m ruff format ../hhnk_threedi_tools --force-exclude
\ No newline at end of file
diff --git a/hhnk_threedi_tools/core/climate_scenarios/klimaatsommen_main.py b/hhnk_threedi_tools/core/climate_scenarios/klimaatsommen_main.py
index 4116f08c..8d6a42cf 100644
--- a/hhnk_threedi_tools/core/climate_scenarios/klimaatsommen_main.py
+++ b/hhnk_threedi_tools/core/climate_scenarios/klimaatsommen_main.py
@@ -1,5 +1,6 @@
# %%
# FIXME in ontwikkeling
+import importlib.resources as resources
import os
import sys
from pathlib import Path
@@ -10,6 +11,7 @@
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
+from IPython.display import display
import hhnk_threedi_tools as htt
@@ -18,18 +20,10 @@
import hhnk_threedi_tools.core.climate_scenarios.peilgebieden as peilgebieden
import hhnk_threedi_tools.core.climate_scenarios.ruimtekaart as ruimtekaart
import hhnk_threedi_tools.core.climate_scenarios.schadekaart as schadekaart
-from hhnk_threedi_tools.core.climate_scenarios.interpolate_rasters import (
- main_interpolate_rasters,
-)
-from hhnk_threedi_tools.core.climate_scenarios.klimaatsommen_prep import (
- KlimaatsommenPrep,
-)
-from hhnk_threedi_tools.core.climate_scenarios.maskerkaart_raster import (
- rasterize_maskerkaart,
-)
-from hhnk_threedi_tools.core.climate_scenarios.schadekaart_peilgebieden import (
- maak_schade_polygon,
-)
+from hhnk_threedi_tools.core.climate_scenarios.interpolate_rasters import main_interpolate_rasters
+from hhnk_threedi_tools.core.climate_scenarios.klimaatsommen_prep import KlimaatsommenPrep
+from hhnk_threedi_tools.core.climate_scenarios.maskerkaart_raster import rasterize_maskerkaart
+from hhnk_threedi_tools.core.climate_scenarios.schadekaart_peilgebieden import maak_schade_polygon
plt.ioff() # turn off inline plots, only show when asked
# Folders inladen
@@ -37,7 +31,7 @@
# Of handmatig;
# folder=Folders(r"E:\02.modellen\model_test_v2")
-folder = htt.Folders(r"C:\Users\wiets\Documents\GitHub\hhnk-threedi-tools\tests\data\model_test")
+folder = htt.Folders(r"C:\Users\wietse\Documents\GitHub\hhnk-threedi-tools\tests\data\model_test")
class KlimaatsommenSettings:
@@ -45,11 +39,18 @@ def __init__(self, caller, folder):
self.caller = caller
self.folder = folder
- self.freqs = self.load_freqs()
+ self.df_freqs_raw = self.load_freqs()
# Note that this in theory can be not the dem used in the gxg model.
self.dem = self.folder.model.schema_base.rasters.dem_50cm
+ # Peilgebieden
+ self.pgb = self.folder.source_data.peilgebieden.peilgebieden
+ # Create from datachecker if not available.
+ if not self.pgb.exists():
+ fixeddrainage = self.folder.source_data.datachecker.load("fixeddrainagelevelarea")
+ fixeddrainage.to_file(self.pgb.base)
+
# @property
# def dem(self):
"""Not used currently, but can be used to get dem used in model. """
@@ -61,7 +62,7 @@ def __init__(self, caller, folder):
@property
def batch_fd(self):
"""folder class of batch fd, needs to be selected in widget"""
- selected_batch = self.caller.widgets.output_folder_box.value
+ selected_batch = self.get_full_path(self.caller.widgets.batch_folder_box.value)
if selected_batch != "":
return self.folder.threedi_results.batch[selected_batch]
else:
@@ -90,7 +91,7 @@ def create_df_freqs(self):
df.loc[df["dl_name"] == dl_name, "depth_max"] = getattr(downloads, dl_name).depth_max.base
df.loc[df["dl_name"] == dl_name, "damage_total"] = getattr(downloads, dl_name).damage_total.base
- freqs = self.freqs[["dl_name", "freq_{}_jaar".format(self.precipitation_zone)]].copy()
+ freqs = self.df_freqs_raw[["dl_name", "freq_{}_jaar".format(self.precipitation_zone)]].copy()
freqs.rename(
{"freq_{}_jaar".format(self.precipitation_zone): "freq_jaar"},
axis=1,
@@ -98,9 +99,20 @@ def create_df_freqs(self):
)
return df.merge(freqs, on="dl_name")
- def update_settings_after_selection():
+ def update_settings_after_selection(self, val):
self.df_freqs = self.create_df_freqs()
+ def get_full_path(self, tail):
+ fullpath = Path(str(hrt.Folder(self.caller.widgets.folder_path_text.value).full_path(tail)))
+ if fullpath.exists():
+ return fullpath
+ else:
+ return tail
+
+ @property
+ def landuse(self):
+ return self.get_full_path(self.caller.widgets.wss_landuse_text.value)
+
class KlimaatsommenWidgets:
"""Widgets die helpen bij inputselectie."""
@@ -110,41 +122,76 @@ def __init__(self, caller):
self.folder = self.caller.settings.folder
# Output folder
- output_folder_options = [""] + self.folder.threedi_results.batch.revisions
- self.output_folder_label = widgets.Label(
- "Selecteer batch folder:", layout=self.item_layout(grid_area="output_folder_label")
+ self.folder_path_label = widgets.Label(
+ "Geselecteerde folder:", layout=self.item_layout(grid_area="folder_path_label")
)
- self.output_folder_box = widgets.Select(
- options=output_folder_options,
- rows=len(output_folder_options),
+ self.folder_path_text = widgets.Text(
+ self.folder.base, disabled=True, layout=self.item_layout(grid_area="folder_path_text")
+ )
+
+ batch_folder_options = [""] + [
+ hrt.File(i).view_name_with_parents(2) for i in self.folder.threedi_results.batch.revisions
+ ]
+ self.batch_folder_label = widgets.HTML(
+ "Selecteer batch folder:", layout=self.item_layout(grid_area="batch_folder_label")
+ )
+ self.batch_folder_box = widgets.Select(
+ options=batch_folder_options,
+ rows=len(batch_folder_options),
disabled=False,
- layout=self.item_layout(grid_area="output_folder_box"),
+ layout=self.item_layout(grid_area="batch_folder_box"),
)
# Neerslagzone
- self.precipitation_zone_label = widgets.Label(
- "Selecteer neerslagzone:", layout=self.item_layout(grid_area="precipitation_zone_label")
+ self.precipitation_zone_label = widgets.HTML(
+ "Selecteer neerslagzone:", layout=self.item_layout(grid_area="precipitation_zone_label")
)
self.precipitation_zone_box = widgets.Select(
options=["hevig (blauw)", "debilt (groen)"],
rows=2,
- disabled=False,
+ disabled=True,
value=None,
layout=self.item_layout(grid_area="precipitation_zone_box"),
)
- self.dem_label = widgets.Label(
- "DEM:",
- layout=self.item_layout(grid_area="dem_label"),
- )
+ self.dem_label = widgets.Label("DEM:", layout=self.item_layout(grid_area="dem_label"))
self.dem_text = widgets.Text(
- self.caller.settings.dem.view_name_with_parents(4),
+ self.caller.settings.dem.view_name_with_parents(3),
disabled=True,
layout=self.item_layout(grid_area="dem_text"),
)
+ self.pgb_label = widgets.Label("Peilgebieden:", layout=self.item_layout(grid_area="pgb_label"))
+
+ self.pgb_text = widgets.Text(
+ self.caller.settings.pgb.view_name_with_parents(2),
+ disabled=True,
+ layout=self.item_layout(grid_area="pgb_text"),
+ )
+
+ self.wss_label = widgets.HTML(
+ "Waterschadeschatter instellingen", layout=self.item_layout(grid_area="wss_label")
+ )
+
+ self.wss_cfg_label = widgets.Label(
+ "Config (default='cfg_lizard.cfg'):",
+ layout=self.item_layout(grid_area="wss_cfg_label"),
+ )
+ cfg_dropdown_options = [i.name for i in resources.files(hrt.waterschadeschatter.resources).glob("*.cfg")]
+ self.wss_cfg_dropdown = widgets.Dropdown(
+ value="cfg_lizard.cfg", options=cfg_dropdown_options, layout=self.item_layout(grid_area="wss_cfg_dropdown")
+ )
+
+ self.wss_landuse_label = widgets.Label(
+ "Landuse:",
+ layout=self.item_layout(grid_area="wss_landuse_label"),
+ )
+
+ landuse_path = folder.model.schema_base.rasters.landuse.view_name_with_parents(3)
+ self.wss_landuse_text = widgets.Text(value=landuse_path, layout=self.item_layout(grid_area="wss_landuse_text"))
+
self.precip_figure = widgets.Output(layout=self.item_layout(grid_area="precip_figure"))
self.fig = self.create_precip_figure()
@@ -158,11 +205,14 @@ def create_precip_figure(self):
package_resource=htt.resources, name="precipitation_zones_hhnk.tif"
)
precip_zones_raster = hrt.Raster(precip_zones_raster)
- neerslag_array = precip_zones_raster.get_array(band_count=3)
+
+ da_precip = precip_zones_raster.open_rxr()
+ neerslag_array = da_precip.transpose("y", "x", "band").data
fig, ax = plt.subplots(figsize=(6, 6))
- ax.imshow(neerslag_array, extent=precip_zones_raster.metadata.bounds)
+ ax.imshow(neerslag_array / 255, extent=precip_zones_raster.metadata.bounds)
polder_shape.plot(ax=ax, color="red")
+
return fig
def item_layout(self, width="95%", grid_area="", **kwargs):
@@ -174,52 +224,105 @@ def gui(self):
return widgets.GridBox(
children=[
self.precip_figure,
- self.output_folder_label,
- self.output_folder_box,
+ self.folder_path_label,
+ self.folder_path_text,
+ self.batch_folder_label,
+ self.batch_folder_box,
self.precipitation_zone_label,
self.precipitation_zone_box,
self.dem_label,
self.dem_text,
+ self.pgb_label,
+ self.pgb_text,
+ self.wss_label,
+ self.wss_cfg_label,
+ self.wss_cfg_dropdown,
+ self.wss_landuse_label,
+ self.wss_landuse_text,
],
layout=widgets.Layout(
width="100%",
grid_row_gap="200px 200px 200px 200px",
grid_template_rows="auto auto auto auto",
- grid_template_columns="20% 80%",
+ grid_template_columns="30% 70%",
grid_template_areas="""
'precip_figure precip_figure'
- 'output_folder_label .'
- 'output_folder_box output_folder_box'
+ 'folder_path_label folder_path_text'
+ 'batch_folder_label batch_folder_box'
'precipitation_zone_label precipitation_zone_box'
'dem_label dem_text'
+ 'pgb_label pgb_text'
+ 'wss_label wss_label'
+ 'wss_cfg_label wss_cfg_dropdown'
+ 'wss_landuse_label wss_landuse_text'
""",
),
)
class KlimaatsommenMain:
- def __init__(self, folder: htt.Folders):
+ def __init__(self, folder: htt.Folders, testing=False):
+ # For pytests we disable a couple loops to speed up the test.
+ self.testing = testing
+
self.settings = KlimaatsommenSettings(self, folder)
self.widgets = KlimaatsommenWidgets(self)
+ # widget Interaction
+ self.widgets.precipitation_zone_box.observe(self.settings.update_settings_after_selection, "value")
-self = KlimaatsommenMain(folder=folder)
-self.widgets.gui()
-
+ def enable_neerslagzone(val):
+ if val["new"] != "":
+ self.widgets.precipitation_zone_box.disabled = False
+ else:
+ self.widgets.precipitation_zone_box.disabled = True
-# %%
-
-# %%
+ self.widgets.batch_folder_box.observe(enable_neerslagzone, "value")
+ @property
+ def batch_fd(self):
+ return self.settings.batch_fd
-# %%
-## %% Aanmaken of laden peilgebieden polygon
-if not folder.source_data.peilgebieden.peilgebieden.exists():
- fixeddrainage = folder.source_data.datachecker.load("fixeddrainagelevelarea")
- fixeddrainage.to_file(folder.source_data.peilgebieden.peilgebieden.base)
- print(f"Peilgebieden shapefile aangemaakt: {folder.source_data.peilgebieden.peilgebieden.name}.shp")
-else:
- print(f"Peilgebieden shapefile gevonden: {folder.source_data.peilgebieden.peilgebieden.name}.shp")
-
+ def step1_maskerkaart(self):
+ maskerkaart.command(
+ path_piek=self.batch_fd.downloads.piek_ghg_T1000.netcdf.base,
+ path_blok=self.batch_fd.downloads.blok_ghg_T1000.netcdf.base,
+ path_out=self.batch_fd.output.maskerkaart.base,
+ )
-# %%
+ # Omzetten polygon in raster voor diepte en schaderaster
+ # (kan verschillen van diepte met andere resolutie)
+ for rtype, rname in zip(["depth_max", "damage_total"], ["depth", "damage"]):
+ masker = rasterize_maskerkaart(
+ input_file=self.batch_fd.output.maskerkaart.base,
+ mask_plas_raster=getattr(self.batch_fd.output, f"mask_{rname}_plas"),
+ mask_overlast_raster=getattr(self.batch_fd.output, f"mask_{rname}_overlast"),
+ meta=getattr(self.batch_fd.downloads.piek_glg_T10, rtype).metadata,
+ )
+ if self.testing:
+ break
+
+ def step2_rasterize_pgb(self):
+ """Peilgebieden rasterizen"""
+ for raster_type, raster_name in zip(["depth_max", "damage_total"], ["depth", "damage"]):
+ peilgebieden.rasterize_peilgebieden(
+ input_raster=hrt.Raster(df.iloc[0][raster_type]),
+ output_file=getattr(self.batch_fd.output.temp, f"peilgebieden_{raster_name}"),
+ input_peilgebieden=folder.source_data.peilgebieden.peilgebieden,
+ output_peilgebieden=self.batch_fd.output.temp.peilgebieden,
+ mask_file=self.batch_fd.output.maskerkaart,
+ overwrite=False,
+ )
+
+
+if __name__ == "__main__":
+ self = KlimaatsommenMain(folder=folder)
+ # %%
+ display(self.widgets.gui())
+
+ # FIXME Voor testen standaard selecteren
+ self.widgets.batch_folder_box.value = self.widgets.batch_folder_box.options[1]
+ self.widgets.precipitation_zone_box.value = self.widgets.precipitation_zone_box.options[1]
+
+
+# %% Aanmaken polygon van maskerkaart
diff --git a/hhnk_threedi_tools/core/climate_scenarios/ruimtekaart.py b/hhnk_threedi_tools/core/climate_scenarios/ruimtekaart.py
index 0c14e8af..204c1a1e 100644
--- a/hhnk_threedi_tools/core/climate_scenarios/ruimtekaart.py
+++ b/hhnk_threedi_tools/core/climate_scenarios/ruimtekaart.py
@@ -65,7 +65,7 @@ def create_ruimtekaart(pgb_file, output_path, batch_fd):
# Aggregate sum per region for each result for both the depth and damage rasters
# DEPTH
- labels_raster = batch_fd.output.temp.peilgebieden_diepte
+ labels_raster = batch_fd.output.temp.peilgebieden_depth
labels_index = pgb_gdf["index"].values
for i, fn in enumerate(SCENARIOS):
input_raster = getattr(batch_fd.downloads, fn).depth_max
@@ -77,7 +77,7 @@ def create_ruimtekaart(pgb_file, output_path, batch_fd):
volumes_m3[:, i] *= input_raster.pixelarea # take pixelsize into account.
# DAMAGE
- labels_raster = batch_fd.output.temp.peilgebieden_schade
+ labels_raster = batch_fd.output.temp.peilgebieden_damage
labels_index = pgb_gdf["index"].values
for i, fn in enumerate(SCENARIOS):
input_raster = getattr(batch_fd.downloads, fn).damage_total
diff --git a/hhnk_threedi_tools/core/folder_helpers.py b/hhnk_threedi_tools/core/folder_helpers.py
index 50b33585..e657fc56 100644
--- a/hhnk_threedi_tools/core/folder_helpers.py
+++ b/hhnk_threedi_tools/core/folder_helpers.py
@@ -88,10 +88,10 @@ def __init__(self, base, create):
self.add_file("maskerkaart_diepte_tif", "maskerkaart_diepte.tif")
self.add_file("maskerkaart_schade_tif", "maskerkaart_schade.tif")
self.add_file("geen_schade_tif", "geen_schade.tif")
- self.add_file("mask_diepte_plas", "mask_diepte_plas.tif")
- self.add_file("mask_schade_plas", "mask_schade_plas.tif")
- self.add_file("mask_diepte_overlast", "mask_diepte_overlast.tif")
- self.add_file("mask_schade_overlast", "mask_schade_overlast.tif")
+ self.add_file("mask_depth_plas", "mask_depth_plas.tif")
+ self.add_file("mask_damage_plas", "mask_damage_plas.tif")
+ self.add_file("mask_depth_overlast", "mask_depth_overlast.tif")
+ self.add_file("mask_damage_overlast", "mask_damage_overlast.tif")
self.add_file("ruimtekaart", "ruimtekaart.shp")
self.add_file("schade_peilgebied", "schade_per_peilgebied.shp")
self.add_file("schade_peilgebied_corr", "schade_per_peilgebied_correctie.shp")
@@ -133,6 +133,6 @@ class ClimateResultOutputTemp(hrt.Folder):
def __init__(self, base, create):
super().__init__(os.path.join(base, "temp"), create=create)
- self.add_file("peilgebieden_diepte", "peilgebieden_diepte.tif")
- self.add_file("peilgebieden_schade", "peilgebieden_schade.tif")
+ self.add_file("peilgebieden_depth", "peilgebieden_depth.tif")
+ self.add_file("peilgebieden_damage", "peilgebieden_damage.tif")
self.add_file("peilgebieden", "peilgebieden_clipped.shp")
diff --git a/hhnk_threedi_tools/utils/notebooks/01_calculation_gui.ipynb b/hhnk_threedi_tools/utils/notebooks/01_calculation_gui.ipynb
index e77d1088..d1fff6ac 100644
--- a/hhnk_threedi_tools/utils/notebooks/01_calculation_gui.ipynb
+++ b/hhnk_threedi_tools/utils/notebooks/01_calculation_gui.ipynb
@@ -36,7 +36,7 @@
"\n",
"# ipython imports\n",
"import ipywidgets as widgets\n",
- "from IPython.display import display, HTML\n",
+ "from IPython.display import HTML, display\n",
"\n",
"display(HTML(\"\"))\n",
"%matplotlib inline\n",
diff --git a/hhnk_threedi_tools/utils/notebooks/02_download_gui.ipynb b/hhnk_threedi_tools/utils/notebooks/02_download_gui.ipynb
index 51b99eb9..6b5ebdb8 100644
--- a/hhnk_threedi_tools/utils/notebooks/02_download_gui.ipynb
+++ b/hhnk_threedi_tools/utils/notebooks/02_download_gui.ipynb
@@ -27,7 +27,7 @@
"\n",
"notebook_data = setup_notebook()\n",
"\n",
- "from IPython.display import display, HTML\n",
+ "from IPython.display import HTML, display\n",
"\n",
"display(HTML(\"\"))\n",
"%matplotlib inline\n",
@@ -78,11 +78,11 @@
"metadata": {},
"outputs": [],
"source": [
+ "import getpass\n",
"import os\n",
"\n",
"# from threedi_scenario_downloader import downloader as dl # FIXME Zie #102\n",
"from hhnk_threedi_tools.external import downloader as dl\n",
- "import getpass\n",
"\n",
"# Change three discenario downloader\n",
"# def new_get_headers():\n",
diff --git a/hhnk_threedi_tools/utils/notebooks/03_nabewerking_klimaatsommen.ipynb b/hhnk_threedi_tools/utils/notebooks/03_nabewerking_klimaatsommen.ipynb
index d1f8e08e..c2a19cd7 100644
--- a/hhnk_threedi_tools/utils/notebooks/03_nabewerking_klimaatsommen.ipynb
+++ b/hhnk_threedi_tools/utils/notebooks/03_nabewerking_klimaatsommen.ipynb
@@ -26,61 +26,37 @@
"\n",
"notebook_data = setup_notebook()\n",
"\n",
+ "import importlib.resources as pkg_resources # Load resource from package\n",
"import os\n",
+ "import sys\n",
+ "from pathlib import Path\n",
"\n",
"import geopandas as gpd\n",
- "import pandas as pd\n",
- "\n",
+ "import hhnk_research_tools as hrt\n",
+ "import ipywidgets as widgets\n",
"import matplotlib.pyplot as plt\n",
- "\n",
"import numpy as np\n",
+ "import pandas as pd\n",
"\n",
- "from pathlib import Path\n",
- "\n",
- "import sys\n",
- "\n",
- "import importlib.resources as pkg_resources # Load resource from package\n",
- "\n",
- "import ipywidgets as widgets\n",
- "\n",
- "\n",
- "from hhnk_threedi_tools import Folders\n",
"import hhnk_threedi_tools as htt\n",
- "import hhnk_research_tools as hrt\n",
- "\n",
"\n",
"# import hhnk_threedi_tools.core.climate_scenarios as hrt_climate\n",
"import hhnk_threedi_tools.core.climate_scenarios.maskerkaart as maskerkaart\n",
- "\n",
+ "import hhnk_threedi_tools.core.climate_scenarios.peilgebieden as peilgebieden\n",
"import hhnk_threedi_tools.core.climate_scenarios.ruimtekaart as ruimtekaart\n",
- "\n",
+ "import hhnk_threedi_tools.core.climate_scenarios.schadekaart as schadekaart\n",
+ "from hhnk_threedi_tools import Folders\n",
"from hhnk_threedi_tools.core.climate_scenarios.interpolate_rasters import (\n",
" main_interpolate_rasters,\n",
")\n",
- "import hhnk_threedi_tools.core.climate_scenarios.schadekaart as schadekaart\n",
- "\n",
- "import hhnk_threedi_tools.core.climate_scenarios.peilgebieden as peilgebieden\n",
- "\n",
- "from hhnk_threedi_tools.core.climate_scenarios.schadekaart_peilgebieden import (\n",
- " maak_schade_polygon,\n",
- ")\n",
- "\n",
- "from hhnk_threedi_tools.core.climate_scenarios.maskerkaart_raster import (\n",
- " rasterize_maskerkaart,\n",
- ")\n",
- "\n",
- "from hhnk_threedi_tools.core.climate_scenarios.klimaatsommen_prep import (\n",
- " KlimaatsommenPrep,\n",
- ")\n",
- "\n",
+ "from hhnk_threedi_tools.core.climate_scenarios.klimaatsommen_prep import KlimaatsommenPrep\n",
+ "from hhnk_threedi_tools.core.climate_scenarios.maskerkaart_raster import rasterize_maskerkaart\n",
+ "from hhnk_threedi_tools.core.climate_scenarios.schadekaart_peilgebieden import maak_schade_polygon\n",
"\n",
"# Folders inladen\n",
- "\n",
"folder = Folders(notebook_data[\"polder_folder\"])\n",
"\n",
- "\n",
"# Of handmatig;\n",
- "\n",
"# folder=Folders(r\"E:\\02.modellen\\model_test_v2\")"
]
},
@@ -130,7 +106,6 @@
" layout=item_layout(grid_area=\"dem_path_dropdown\"),\n",
")\n",
"\n",
- "\n",
"# Display precipitation zones\n",
"polder_shape = folder.source_data.polder_polygon.load()\n",
"\n",
@@ -202,7 +177,6 @@
"\n",
"df = pd.DataFrame(batch_fd.downloads.names, columns=[\"dl_name\"])\n",
"for dl_name in batch_fd.downloads.names:\n",
- " df.loc[df[\"dl_name\"] == dl_name, \"wlvl_max\"] = getattr(batch_fd.downloads, dl_name).wlvl_max.base\n",
" df.loc[df[\"dl_name\"] == dl_name, \"depth_max\"] = getattr(batch_fd.downloads, dl_name).depth_max.base\n",
" df.loc[df[\"dl_name\"] == dl_name, \"damage_total\"] = getattr(batch_fd.downloads, dl_name).damage_total.base\n",
"\n",
@@ -258,7 +232,7 @@
" min_block_size=2**11, # 2048, high is faster but requires more RAM.\n",
" use_aggregate=False,\n",
" verify=True,\n",
- " old_wlvl=False, # wvg 2025-01; zet naar True om de oude (lizard) wdepth berekening te gebruiken\n",
+ " old_wlvl=True, # wvg 2025-01; zet naar True om de oude (lizard) wdepth berekening te gebruiken\n",
")\n",
"\n",
"klimaatsommen_prep.run(gridgpkg=True, wlvl_wdepth=True, create_wdepth=True, dmg=True, overwrite=False)"
@@ -290,16 +264,16 @@
"# Omzetten polygon in raster voor diepteraster\n",
"mask_depth = rasterize_maskerkaart(\n",
" input_file=batch_fd.output.maskerkaart.base,\n",
- " mask_plas_raster=batch_fd.output.mask_diepte_plas,\n",
- " mask_overlast_raster=batch_fd.output.mask_diepte_overlast,\n",
+ " mask_plas_path=batch_fd.output.mask_depth_plas,\n",
+ " mask_overlast_path=batch_fd.output.mask_depth_overlast,\n",
" meta=batch_fd.downloads.piek_glg_T10.depth_max.metadata,\n",
")\n",
"\n",
"# Omzetten polygon in raster voor schaderaster (kan verschillen van diepte met andere resolutie)\n",
"mask_damage = rasterize_maskerkaart(\n",
" input_file=batch_fd.output.maskerkaart.path,\n",
- " mask_plas_raster=batch_fd.output.mask_schade_plas,\n",
- " mask_overlast_raster=batch_fd.output.mask_schade_overlast,\n",
+ " mask_plas_path=batch_fd.output.mask_damage_plas,\n",
+ " mask_overlast_path=batch_fd.output.mask_damage_overlast,\n",
" meta=batch_fd.downloads.piek_glg_T10.damage_total.metadata,\n",
")"
]
@@ -320,7 +294,7 @@
"metadata": {},
"outputs": [],
"source": [
- "for raster_type, raster_name in zip([\"depth_max\", \"damage_total\"], [\"diepte\", \"schade\"]):\n",
+ "for raster_type, raster_name in zip([\"depth_max\", \"damage_total\"], [\"depth\", \"damage\"]):\n",
" peilgebieden.rasterize_peilgebieden(\n",
" input_raster=hrt.Raster(df.iloc[0][raster_type]),\n",
" output_file=getattr(batch_fd.output.temp, f\"peilgebieden_{raster_name}\"),\n",
@@ -350,7 +324,7 @@
"if not batch_fd.output.ruimtekaart.exists():\n",
" # if True:\n",
" ruimtekaart.create_ruimtekaart(\n",
- " pgb_file=batch_fd.output.temp.peilgebieden,\n",
+ " pgb_path=batch_fd.output.temp.peilgebieden,\n",
" output_path=batch_fd.output.ruimtekaart.base,\n",
" batch_fd=batch_fd,\n",
" )\n",
@@ -388,7 +362,6 @@
" frequenties=frequenties,\n",
" output_nodata=-9999.00,\n",
" dem_raster=dem,\n",
- " min_value=0,\n",
" extra_nodata_value=0,\n",
" )"
]
@@ -414,7 +387,7 @@
"\n",
" # Creeer masker voor plas en overlast\n",
" for mask_type in [\"plas\", \"overlast\"]:\n",
- " mask = getattr(batch_fd.output, f\"mask_diepte_{mask_type}\")\n",
+ " mask = getattr(batch_fd.output, f\"mask_depth_{mask_type}\")\n",
"\n",
" output_raster = getattr(batch_fd.output, f\"depth_T{T}_{mask_type}\")\n",
"\n",
@@ -494,7 +467,7 @@
"\n",
"# Creeer masker voor plas en overlast\n",
"for mask_type in [\"plas\", \"overlast\"]:\n",
- " mask = hrt.Raster(getattr(batch_fd.output, f\"mask_schade_{mask_type}\").path)\n",
+ " mask = hrt.Raster(getattr(batch_fd.output, f\"mask_damage_{mask_type}\").path)\n",
"\n",
" output_raster = getattr(batch_fd.output, f\"cw_schade_{mask_type}\")\n",
"\n",
@@ -534,7 +507,7 @@
"outputs": [],
"source": [
"schade_gdf = batch_fd.output.temp.peilgebieden.load()\n",
- "labels_raster = batch_fd.output.temp.peilgebieden_schade\n",
+ "labels_raster = batch_fd.output.temp.peilgebieden_damage\n",
"labels_index = schade_gdf[\"index\"].values\n",
"\n",
"output_file = batch_fd.output.schade_peilgebied\n",
@@ -607,29 +580,16 @@
"source": [
"maskerkaart2 = gpd.read_file(str(folder.source_data.peilgebieden.geen_schade)) # load maskerkaart (geen_schade.shp)\n",
"\n",
- "\n",
"maskerkaart_union = maskerkaart2.buffer(0.1).unary_union.buffer(-0.1) # make one geometry from gdf.\n",
"\n",
- "\n",
"# Rasterize polygon\n",
- "\n",
"maskerkaart_union = gpd.GeoDataFrame(geometry=[maskerkaart_union])\n",
- "\n",
"# Voeg kolom toe aan gdf, deze waarden worden in het raster gezet.\n",
- "\n",
"maskerkaart_union[\"val\"] = 1\n",
"\n",
- "\n",
"mask = hrt.gdf_to_raster(\n",
- " maskerkaart_union,\n",
- " value_field=\"val\",\n",
- " raster_out=\"\",\n",
- " nodata=0,\n",
- " metadata=damage_meta,\n",
- " epsg=28992,\n",
- " driver=\"MEM\",\n",
+ " maskerkaart_union, value_field=\"val\", raster_out=\"\", nodata=0, metadata=damage_meta, epsg=28992, driver=\"MEM\"\n",
")\n",
- "\n",
"mask = mask > 0"
]
},
@@ -659,7 +619,6 @@
" \"plas\": str(batch_fd.output.cw_schade_plas_corr),\n",
" \"overlast\": str(batch_fd.output.cw_schade_overlast_corr),\n",
"}\n",
- "\n",
"schades, schade_per_polder = maak_schade_polygon(\n",
" peilgebieden_file=folder.source_data.peilgebieden.peilgebieden,\n",
" schade_raster_file=schade_raster_corr_file,\n",
@@ -670,9 +629,8 @@
]
},
{
- "attachments": {},
"cell_type": "markdown",
- "id": "e7e7bea5",
+ "id": "e85dedab",
"metadata": {},
"source": [
"## Interpoleren waterstandrasters"
@@ -681,7 +639,7 @@
{
"cell_type": "code",
"execution_count": null,
- "id": "8c0d921c",
+ "id": "e7e7bea5",
"metadata": {},
"outputs": [],
"source": [
diff --git a/hhnk_threedi_tools/utils/notebooks/04_netcdf_naar_raster.ipynb b/hhnk_threedi_tools/utils/notebooks/04_netcdf_naar_raster.ipynb
index 0f3df07b..eb19180d 100644
--- a/hhnk_threedi_tools/utils/notebooks/04_netcdf_naar_raster.ipynb
+++ b/hhnk_threedi_tools/utils/notebooks/04_netcdf_naar_raster.ipynb
@@ -34,16 +34,15 @@
"notebook_data = setup_notebook()\n",
"\n",
"\n",
- "import xarray\n",
- "\n",
- "# import threedi_raster_edits as tre\n",
- "from hhnk_threedi_tools import Folders\n",
- "import hhnk_research_tools as hrt\n",
"import geopandas as gpd\n",
+ "import hhnk_research_tools as hrt\n",
+ "import xarray\n",
"\n",
"import hhnk_threedi_tools as htt\n",
- "from hhnk_threedi_tools.core.result_rasters.calculate_raster import GridToWaterLevel, GridToWaterDepthDepth\n",
"\n",
+ "# import threedi_raster_edits as tre\n",
+ "from hhnk_threedi_tools import Folders\n",
+ "from hhnk_threedi_tools.core.result_rasters.calculate_raster import GridToWaterDepthDepth, GridToWaterLevel\n",
"\n",
"# User input\n",
"folder_path = r\"E:\\02.modellen\\model_test_v2\"\n",
diff --git a/hhnk_threedi_tools/utils/notebooks/05_sqlite_create_grid.ipynb b/hhnk_threedi_tools/utils/notebooks/05_sqlite_create_grid.ipynb
index fe048164..2bb1f06a 100644
--- a/hhnk_threedi_tools/utils/notebooks/05_sqlite_create_grid.ipynb
+++ b/hhnk_threedi_tools/utils/notebooks/05_sqlite_create_grid.ipynb
@@ -19,17 +19,17 @@
"\n",
"notebook_data = setup_notebook()\n",
"\n",
+ "import importlib.resources as pkg_resources # Load resource from package\n",
+ "import json\n",
"import os\n",
+ "import sys\n",
+ "\n",
"import geopandas as gpd\n",
- "import pandas as pd\n",
+ "import ipywidgets as widgets\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
+ "import pandas as pd\n",
"from osgeo import gdal\n",
- "import sys\n",
- "import importlib.resources as pkg_resources # Load resource from package\n",
- "import ipywidgets as widgets\n",
- "import json\n",
- "\n",
"\n",
"from hhnk_threedi_tools import Folders, SqliteCheck"
]