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" ]