{ "cells": [ { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "view-in-github" }, "source": [ "# Fluvial flood inundation mapping detailed workflow\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/passah2o/pygeoflood/blob/master/doc/examples/fim_workflow_combined.ipynb)\n", "\n", "On Google Colab, run the following command to install pygeoflood:\n", "\n", "```bash\n", "%pip install git+https://github.com/passah2o/pygeoflood\n", "```\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Import libraries\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from pathlib import Path\n", "from pygeoflood import PyGeoFlood" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Instantiate **pygeoflood** model class\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "pgf = PyGeoFlood(dem_path=\"data/OC1mTest.tif\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Set paths to input datasets\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "pgf.flowline_path = \"data/Flowline.shp\"\n", "pgf.catchment_path = \"data/Catchment.shp\"\n", "\n", "# # we are not using these datasets for this example\n", "# pgf.streamflow_forecast_path = \"data/prod_nwm.t00z.analysis_assim.channel_rt.tm00.conus.nc\"\n", "# pgf.custom_flowline_path = Path(data_dir, \"NHDPlus_H_1209_HU4_GDB.gdb\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Download input datasets if necessary\n" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# make data directory if it doesn't exist\n", "if not Path(\"data\").is_dir():\n", " Path(\"data\").mkdir()\n", "# download input datasets if they doesn't exist\n", "# DEM from USGS 3DEP\n", "if not pgf.dem_path.is_file():\n", " !curl https://utexas.box.com/shared/static/id0in7w8yn38o59sexa50aqunsr7mzk0.tif -Lso data/OC1mTest.tif\n", "# flowlines and catchments from NFIE (NHD MR) dataset\n", "# https://www.arcgis.com/home/webmap/viewer.html?webmap=9766a82973b34f18b43dafa20c5ef535\n", "if not pgf.flowline_path.is_file():\n", " !curl -sL https://utexas.box.com/shared/static/s1vlnymonbidnhul52oja7s83ky1212j.tgz | tar -xz -C data\n", "if not pgf.catchment_path.is_file():\n", " !curl -sL https://utexas.box.com/shared/static/jzawwvmb2tjl4yqtnitgvfjcc4ho4tg5.tgz | tar -xz -C data" ] }, { "cell_type": "markdown", "metadata": { "id": "Bs031yHfIwQK" }, "source": [ "### Fluvial inundation mapping steps\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running apply_nonlinear_filter with parameters:\n", " custom_dem = None\n", " custom_path = None\n", " method = PeronaMalik2\n", " smoothing_quantile = 0.9\n", " time_increment = 0.1\n", " n_iter = 50\n", " sigma_squared = 0.05\n", "Computing slope of raw DTM\n", "DEM slope array shape: (3378, 4750)\n", "Computing lambda = q-q-based nonlinear filtering threshold\n", "DEM smoothing Quantile: 0.9\n", "Edge Threshold Value: 0.34356024861335754\n", "Filtered DEM written to data/OC1mTest_filtered.tif\n", "apply_nonlinear_filter completed in 10.6132 seconds\n", "\n" ] } ], "source": [ "# apply nonlinear filter to DEM\n", "pgf.apply_nonlinear_filter()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running calculate_slope with parameters:\n", " custom_filtered_dem = None\n", " custom_path = None\n", " slope statistics\n", " min angle: 0.0\n", " max angle: 54.8638\n", " mean slope: 0.13960592\n", " stdev slope: 0.15432632\n", "Slope raster written to data/OC1mTest_slope.tif\n", "calculate_slope completed in 1.6471 seconds\n", "\n" ] } ], "source": [ "# calculate slope\n", "pgf.calculate_slope()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running calculate_curvature with parameters:\n", " custom_filtered_dem = None\n", " custom_path = None\n", " method = geometric\n", " using geometric curvature\n", " curvature statistics\n", " non-nan curvature cell number: 16045500\n", " non-nan finite curvature cell number: mean: -0.00031314598\n", " standard deviation: 0.112147875\n", "Curvature raster written to data/OC1mTest_curvature.tif\n", "calculate_curvature completed in 1.8044 seconds\n", "\n" ] } ], "source": [ "# calculate curvature\n", "pgf.calculate_curvature()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running fill_depressions with parameters:\n", " custom_filtered_dem = None\n", " custom_path = None\n", "./whitebox_tools --run=\"FillDepressions\" --dem='/Users/markwang/repos/pygeoflood/doc/examples/data/OC1mTest_filtered.tif' --output='/Users/markwang/repos/pygeoflood/doc/examples/data/OC1mTest_filled.tif' --fix_flats -v --compress_rasters=True\n", "\n", "******************************\n", "* Welcome to FillDepressions *\n", "* Powered by WhiteboxTools *\n", "* www.whiteboxgeo.com *\n", "******************************\n", "Reading data...\n", "Fixing flow on flats...\n", "Flats increment value: 0.000002\n", "Saving data...\n", "Output file written\n", "Elapsed Time (excluding I/O): 0.188s\n", "Filled DEM written to data/OC1mTest_filled.tif\n", "fill_depressions completed in 11.2731 seconds\n", "\n" ] } ], "source": [ "# fill depressions on filtered DEM\n", "pgf.fill_depressions()" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running calculate_mfd_flow_accumulation with parameters:\n", " custom_filled_dem = None\n", " custom_path = None\n", "./whitebox_tools --run=\"QuinnFlowAccumulation\" --dem='/Users/markwang/repos/pygeoflood/doc/examples/data/OC1mTest_filled.tif' --output='/Users/markwang/repos/pygeoflood/doc/examples/data/OC1mTest_mfd_fac.tif' --out_type=cells --exponent=1.0 -v --compress_rasters=True\n", "\n", "************************************\n", "* Welcome to QuinnFlowAccumulation *\n", "* Powered by WhiteboxTools *\n", "* www.whiteboxgeo.com *\n", "************************************\n", "Saving data...\n", "Output file written\n", "\n", "Elapsed Time (Including I/O): 4.602s\n", "MFD flow accumulation raster written to data/OC1mTest_mfd_fac.tif\n", "calculate_mfd_flow_accumulation completed in 4.6753 seconds\n", "\n" ] } ], "source": [ "# calculate MFD flow accumulation\n", "pgf.calculate_mfd_flow_accumulation()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running calculate_d8_flow_direction with parameters:\n", " custom_filled_dem = None\n", " custom_filtered_dem = None\n", " custom_path = None\n", "./whitebox_tools --run=\"D8Pointer\" --dem='/Users/markwang/repos/pygeoflood/doc/examples/data/OC1mTest_filled.tif' --output='/Users/markwang/repos/pygeoflood/doc/examples/data/OC1mTest_d8_fdr.tif' -v --compress_rasters=True\n", "\n", "****************************\n", "* Welcome to D8Pointer *\n", "* Powered by WhiteboxTools *\n", "* www.whiteboxgeo.com *\n", "****************************\n", "Reading data...\n", "Saving data...\n", "Output file written\n", "Elapsed Time (excluding I/O): 0.158s\n", "D8 flow direction raster written to data/OC1mTest_d8_fdr.tif\n", "calculate_d8_flow_direction completed in 2.2877 seconds\n", "\n" ] } ], "source": [ "# calculate D8 flow directions\n", "pgf.calculate_d8_flow_direction()" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running find_outlets with parameters:\n", " custom_d8_fdr = None\n", " custom_path = None\n", "Outlets raster written to data/OC1mTest_outlets.tif\n", "find_outlets completed in 0.3229 seconds\n", "\n" ] } ], "source": [ "# calculate outlets\n", "pgf.find_outlets()" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running delineate_basins with parameters:\n", " custom_d8_fdr = None\n", " custom_path = None\n", "./whitebox_tools --run=\"Basins\" --d8_pntr='/Users/markwang/repos/pygeoflood/doc/examples/data/OC1mTest_d8_fdr.tif' --output='/Users/markwang/repos/pygeoflood/doc/examples/data/OC1mTest_basins.tif' -v --compress_rasters=True\n", "\n", "****************************\n", "* Welcome to Basins *\n", "* Powered by WhiteboxTools *\n", "* www.whiteboxgeo.com *\n", "****************************\n", "Reading data...\n", "Saving data...\n", "Output file written\n", "Elapsed Time (excluding I/O): 0.459s\n", "Basins raster written to data/OC1mTest_basins.tif\n", "delineate_basins completed in 1.1284 seconds\n", "\n" ] } ], "source": [ "# delineate basins\n", "pgf.delineate_basins()" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running define_skeleton with parameters:\n", " custom_curvature = None\n", " custom_mfd_fac = None\n", " custom_path = None\n", " fac_threshold = 3000\n", " write_flow_skeleton = False\n", " write_curvature_skeleton = False\n", "Curvature mean: -0.00031413726\n", "Curvature standard deviation: 0.11232527\n", "Curvature Projection: EPSG:6343\n", "Mean upstream flow: 2617.36\n", "Combined skeleton written to data/OC1mTest_combined_skeleton.tif\n", "define_skeleton completed in 1.2861 seconds\n", "\n" ] } ], "source": [ "# define channel skeletons\n", "pgf.define_skeleton()" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "# geodesic distance (not needed for GeoFlood workflow)\n", "# pgf.calculate_geodesic_distance(write_cost_function=True) # uncomment this if identifying channel heads" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "# get channel heads (not needed for GeoFlood workflow)\n", "# pgf.identify_channel_heads() # uncomment this if identifying channel heads" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running find_endpoints with parameters:\n", " custom_flowline = None\n", " custom_path = None\n", "Endpoints csv written to data/OC1mTest_endpoints.csv\n", "find_endpoints completed in 0.1257 seconds\n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/Users/markwang/micromamba/envs/test-env/lib/python3.12/site-packages/pyogrio/raw.py:198: UserWarning: Measured (M) geometry types are not supported. Original type 'Measured 3D LineString' is converted to 'LineString Z'\n", " return ogr_read(\n" ] } ], "source": [ "# get flowline endpoints\n", "pgf.find_endpoints()" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running calculate_binary_hand with parameters:\n", " custom_dem = None\n", " custom_flowline = None\n", " custom_path = None\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/Users/markwang/micromamba/envs/test-env/lib/python3.12/site-packages/pyogrio/raw.py:198: UserWarning: Measured (M) geometry types are not supported. Original type 'Measured 3D LineString' is converted to 'LineString Z'\n", " return ogr_read(\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Binary HAND raster written to data/OC1mTest_binary_hand.tif\n", "calculate_binary_hand completed in 6.7015 seconds\n", "\n" ] } ], "source": [ "# get binary HAND array\n", "pgf.calculate_binary_hand()" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "# # get custom flowline from NHD HR dataset (optional)\n", "# pgf.rasterize_custom_flowline(layer=\"NHDFlowline\")" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running extract_channel_network with parameters:\n", " custom_flowline = None\n", " custom_curvature = None\n", " custom_mfd_fac = None\n", " custom_endpoints = None\n", " custom_binary_hand = None\n", " custom_path = None\n", " retrace_flowline = True\n", " vector_extension = shp\n", " write_cost_function = False\n", " use_custom_flowline = False\n", " no_flowline = False\n", " custom_weight_curvature = None\n", " custom_weight_mfd_fac = None\n", " custom_weight_binary_hand = None\n", " custom_weight_custom_flowline = None\n", "Retracing flowline...\n", "Cost function weights:\n", "curvature 0.2520 (mean flow accumulation)\n", "mfd_fac 1.0000\n", "binary_hand 0.7500\n", "custom_flowline 0.0000\n", "0.25195235 1 0.75 0\n", "Cost min: 0.5028838188775905\n", "Cost max: inf\n", "cost shape: (3378, 4750)\n", "Creating path 1/1: RAM usage: 10.95/16.00 GB (68.5%)\n", "Number of endpoints: 1\n", "Channel network raster written to data/OC1mTest_channel_network_raster.tif\n", "Channel network vector written to data/OC1mTest_channel_network.shp\n", "extract_channel_network completed in 2.7061 seconds\n", "\n" ] } ], "source": [ "# extract channel network\n", "pgf.extract_channel_network()" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running calculate_hand with parameters:\n", " custom_filled_dem = None\n", " custom_channel_network_raster = None\n", " custom_path = None\n", "./whitebox_tools --run=\"ElevationAboveStream\" --dem='/Users/markwang/repos/pygeoflood/doc/examples/data/OC1mTest_filled.tif' --streams='/Users/markwang/repos/pygeoflood/doc/examples/data/OC1mTest_channel_network_raster.tif' --output='/Users/markwang/repos/pygeoflood/doc/examples/data/OC1mTest_HAND.tif' -v --compress_rasters=True\n", "\n", "***********************************\n", "* Welcome to ElevationAboveStream *\n", "* Powered by WhiteboxTools *\n", "* www.whiteboxgeo.com *\n", "***********************************\n", "Reading DEM data...\n", "Reading streams data...\n", "Saving data...\n", "Output file written\n", "Elapsed Time (excluding I/O): 0.658s\n", "**********************************************************************************\n", "WARNING: Interior pit cells were found within the input DEM. It is likely that the\n", "DEM needs to be processed to remove topographic depressions and flats prior to\n", "running this tool.\n", "**********************************************************************************\n", "HAND raster written to data/OC1mTest_HAND.tif\n", "calculate_hand completed in 7.1866 seconds\n", "\n" ] } ], "source": [ "# calculate HAND\n", "pgf.calculate_hand()" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running segment_channel_network with parameters:\n", " custom_channel_network_vector = None\n", " custom_path = None\n", " vector_extension = shp\n", " segment_length = 1000\n", "Segmented channel network written to data/OC1mTest_segmented_channel_network.shp\n", "segment_channel_network completed in 1.1774 seconds\n", "\n" ] } ], "source": [ "# segment flowline\n", "pgf.segment_channel_network()" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running delineate_segment_catchments with parameters:\n", " custom_segmented_channel_network = None\n", " custom_d8_fdr = None\n", " custom_path = None\n", "./whitebox_tools --run=\"Watershed\" --d8_pntr='/Users/markwang/repos/pygeoflood/doc/examples/data/OC1mTest_d8_fdr.tif' --pour_pts='/Users/markwang/repos/pygeoflood/doc/examples/data/OC1mTest_segmented_channel_network_raster.tif' --output='/Users/markwang/repos/pygeoflood/doc/examples/data/OC1mTest_segment_catchments.tif' -v --compress_rasters=True\n", "\n", "****************************\n", "* Welcome to Watershed *\n", "* Powered by WhiteboxTools *\n", "* www.whiteboxgeo.com *\n", "****************************\n", "Reading data...\n", "Saving data...\n", "Output file written\n", "Elapsed Time (excluding I/O): 0.914s\n", "Segment catchments written to data/OC1mTest_segment_catchments.tif\n", "delineate_segment_catchments completed in 1.8000 seconds\n", "\n" ] } ], "source": [ "# delineate channel network segment catchments\n", "pgf.delineate_segment_catchments()" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running calculate_src with parameters:\n", " custom_dem = None\n", " custom_segmented_channel_network = None\n", " custom_segment_catchments_raster = None\n", " custom_catchments = None\n", " custom_hand = None\n", " custom_path = None\n", " min_slope = 1e-06\n", " max_stage = 20\n", " incr_stage = 0.1\n", " custom_roughness_path = None\n", "River attributes written to data/OC1mTest_river_attributes.csv\n", "Synthetic rating curves written to data/OC1mTest_src.csv\n", "calculate_src completed in 4.7793 seconds\n", "\n" ] } ], "source": [ "# calculate synthetic rating curves table\n", "pgf.calculate_src()" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running calculate_flood_stage with parameters:\n", " custom_src = None\n", " custom_streamflow_forecast_path = None\n", " custom_path = None\n", " custom_Q = 500\n", "Applying custom streamflow to each segment: 500 cms\n", "Flood stages written to data/OC1mTest_flood_stage.csv\n", "calculate_flood_stage completed in 0.0102 seconds\n", "\n" ] } ], "source": [ "# calculate flood stage from synthetic rating curves\n", "# pgf.streamflow_forecast_path must be set or custom_Q must be provided\n", "pgf.calculate_flood_stage(custom_Q=500)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running inundate with parameters:\n", " custom_hand = None\n", " custom_flood_stage = None\n", " custom_segment_catchments_raster = None\n", " custom_path = None\n", "Flood inundation raster written to data/OC1mTest_fim.tif\n", "inundate completed in 1.4405 seconds\n", "\n" ] } ], "source": [ "# create flood depth grid (FIM)\n", "pgf.inundate()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plot flood inundation map\n" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "image/png": "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xZg7dy6vv/76iDT9/f1ccsklJBIJampquOKKK8hkMiPSrFmzhve9731Eo1Ha2tq46aabDvatldzy5cs544wzqKqqoqmpiY9+9KNs2LBhRBrLsli8eDH19fVUVlZy8cUX093dPSLN9u3bWbhwIfF4nKamJr7yla/ged6INI899hinnnoqkUiEY445Zr/ncZ9IbrnlFubMmVOcNbCjo4M//vGPxePyLA/cjTfeiKZpXH311cV98jzLSxunPyWnDjN33nmnCofD6he/+IVat26d+vznP69qampUd3d3uYtWVvfff7/6+7//e/Xb3/5WAeruu+8ecfzGG29U1dXV6p577lEvvfSS+j//5/+o6dOnq3w+X0xz0UUXqZNOOkk9/fTT6n//93/VMcccoz796U8XjyeTSdXc3KwuueQStXbtWvXrX/9axWIx9ZOf/KRUt1kS8+fPV7fddptau3atWr16tfrgBz+o2tvbVSaTKaa58sorVVtbm3rkkUfU888/r84++2z1nve8p3jc8zx1wgknqLlz56oXX3xR3X///aqhoUEtW7asmGbz5s0qHo+rpUuXqvXr16sf/ehHyjAM9cADD5T0fg+23//+9+q+++5Tr732mtqwYYP6u7/7OxUKhdTatWuVUvIsD9Szzz6rpk2bpubMmaO+9KUvFffL8yyPZDKpAPXa9l7VOeiMaXtte68CVDKZLFn5D7tg4cwzz1SLFy8ufvZ9X7W2tqrly5eXsVSHlrcGC0EQqJaWFvWd73ynuG9wcFBFIhH161//Wiml1Pr16xWgnnvuuWKaP/7xj0rTNLVr1y6llFI//vGPVW1trbJtu5jm2muvVTNmzDjId1RePT09ClCPP/64Uqrw7EKhkPrNb35TTPPKK68oQK1cuVIpVQjedF1XXV1dxTS33HKLSiQSxef31a9+Vc2ePXvEtT75yU+q+fPnH+xbKrva2lr1s5/9TJ7lAUqn0+rYY49VK1asUO9///uLwYI8z/IpBgs7elVn0hnT9tqO0gcLh1UzhOM4rFq1irlz5xb36brO3LlzWblyZRlLdmjbsmULXV1dI55bdXU1Z511VvG5rVy5kpqaGk4//fRimrlz56LrOs8880wxzbnnnks4HC6mmT9/Phs2bGBgYKBEd1N6yWQSeGOl01WrVuG67ojnOXPmTNrb20c8zxNPPJHm5uZimvnz55NKpVi3bl0xzZvzGE5zOP9b9n2fO++8k2w2S0dHhzzLA7R48WIWLlz4tnuW51l+2jhtpXZYdXDs7e3F9/0R/8gBmpubefXVV8tUqkNfV1cXwF6f2/Cxrq4umpqaRhw3TZO6uroRaaZPn/62PIaP1dbWHpTyl1MQBFx99dWcc845nHDCCUDhXsPhMDU1NSPSvvV57u15Dx/bV5pUKkU+nycWix2MWyqLl19+mY6ODizLorKykrvvvptZs2axevVqeZajdOedd/LCCy/w3HPPve2Y/NsUB+qwChaEKLXFixezdu1annzyyXIXZUKbMWMGq1evJplM8t///d8sWrSIxx9/vNzFmnB27NjBl770JVasWEE0Gi13ccReyGiIQ0BDQwOGYbytZ293dzctLS1lKtWhb/jZ7Ou5tbS00NPTM+K453n09/ePSLO3PN58jcPJkiVLuPfee/nTn/7ElClTivtbWlpwHIfBwcER6d/6PN/tWb1TmkQicdh9cwuHwxxzzDGcdtppLF++nJNOOokf/OAH8ixHadWqVfT09HDqqadimiamafL444/zwx/+ENM0aW5uludZZhN1NMRhFSyEw2FOO+00HnnkkeK+IAh45JFH6OjoKGPJDm3Tp0+npaVlxHNLpVI888wzxefW0dHB4OAgq1atKqZ59NFHCYKAs846q5jmiSeewHXdYpoVK1YwY8aMw6oJQinFkiVLuPvuu3n00Uff1vRy2mmnEQqFRjzPDRs2sH379hHP8+WXXx4RgK1YsYJEIsGsWbOKad6cx3CaI+HfchAE2LYtz3KULrzwQl5++WVWr15d3E4//XQuueSS4s/yPMtsonZaKFlXyhK58847VSQSUbfffrtav369+sIXvqBqampG9Ow9EqXTafXiiy+qF198UQHqu9/9rnrxxRfVtm3blFKFoZM1NTXqd7/7nVqzZo36yEc+stehk6eccop65pln1JNPPqmOPfbYEUMnBwcHVXNzs7r00kvV2rVr1Z133qni8fhhN3TyqquuUtXV1eqxxx5TnZ2dxS2XyxXTXHnllaq9vV09+uij6vnnn1cdHR2qo6OjeHx4eNq8efPU6tWr1QMPPKAaGxv3OjztK1/5inrllVfUzTfffFgOT/vbv/1b9fjjj6stW7aoNWvWqL/9279Vmqaphx56SCklz3Ks3jwaQil5nuUyPBpi064+1ZN2x7Rt2tUnQyfHw49+9CPV3t6uwuGwOvPMM9XTTz9d7iKV3Z/+9CcFvG1btGiRUqowfPIf/uEfVHNzs4pEIurCCy9UGzZsGJFHX1+f+vSnP60qKytVIpFQn/3sZ1U6nR6R5qWXXlLvfe97VSQSUZMnT1Y33nhjqW6xZPb2HAF12223FdPk83n1//7f/1O1tbUqHo+rv/iLv1CdnZ0j8tm6datasGCBisViqqGhQX35y19WruuOSPOnP/1JnXzyySocDqujjjpqxDUOF5dffrmaOnWqCofDqrGxUV144YXFQEEpeZZj9dZgQZ5neQwHC5t39ak9aXdM2+YyBAuaUkqVvj5DCCGEOHKkUimqq6vZsruPqkRiTHmlUymmt9aTTCZJjDGv/XVY9VkQQgghxPiToZNCCCFEyYzHaIbS93CUYEEIIYQoEZlnQQghhBCHJQkWhBBCCLFP0gwhhBBClIg0QwghhBDisCQ1C0IIIUSJjMfaDuVYG0KCBSGEEKJEJmozhAQLQgghRImMxzpQ5VhHSvosCCGEEGKfpGZBCCGEKJUJWrUgwYIQQghRIhO1g6M0QwghhBBin6RmQQghhCgRGQ0hhBBCiH2aoF0WpBlCCCGEEPsmNQtCCCFEqUzQqgUJFoQQQogSkdEQQgghhDgsSc2CEEIIUSLpdGrMoxnS6dT4FGYUJFgQQgghDrJwOExLSwvHTm8bl/xaWloIh8Pjktf+0JRSqmRXE0IIIY5QlmXhOM645BUOh4lGo+OS1/6QYEEIIYQQ+yQdHIUQQgixTxIsCCGEEGKfJFgQQgghxD5JsCCEEEKIfZJgQQghhBD7JMGCEEIIIfZJggUhhBBC7NP/D+dkQs5i4jMSAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import rasterio as rio\n", "\n", "with rio.open(pgf.fim_path) as ds:\n", " fim = ds.read(1)\n", " fim[fim == ds.nodata] = np.nan\n", "\n", "plt.imshow(fim, cmap=\"Blues\")\n", "plt.colorbar()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Paths written to data/paths.txt\n" ] } ], "source": [ "# save output data file paths we can load our PyGeoFlood instance later with\n", "# pgf = PyGeoFlood.from_paths(\"data/paths.txt\")\n", "pgf.to_paths(\"data/paths.txt\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Temporary workaround to obtain Dinf HAND (optional)\n", "- Dinf HAND creates more realistic FIM than D8 HAND\n", "- The previous workflow uses D8 HAND as input to the FIM step\n", "- Dinf HAND is not yet supported in pygeoflood (coming soon)\n", "- This is a workaround to use TauDEM to obtain Dinf HAND\n", "\n", "**Note**: TauDEM must be installed on your system for the following steps to work." ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "vscode": { "languageId": "shellscript" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "PitRemove version 5.3.9\n", "Input file data/OC1mTest.tif has projected coordinate system.\n", "Nodata value input to create partition from file: -340282346638528859811704183484516925440.000000\n", "Nodata value recast to float used in partition raster: -340282346638528859811704183484516925440.000000\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "This run may take on the order of 1 minutes to complete.\n", "This estimate is very approximate. \n", "Run time is highly uncertain as it depends on the complexity of the input data \n", "and speed and memory of the computer. This estimate is based on our testing on \n", "a dual quad core Dell Xeon E5405 2.0GHz PC with 16GB RAM.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Processes: 8\n", "Header read time: 0.144063\n", "Data read time: 0.022310\n", "Compute time: 1.109974\n", "Write time: 0.450810\n", "Total time: 1.727157\n", "DinfFlowDir version 5.3.9\n", "Input file data/OC1mTest_fel.tif has projected coordinate system.\n", "Nodata value input to create partition from file: -300000000549775575777803994281145270272.000000\n", "Nodata value recast to float used in partition raster: -300000000549775575777803994281145270272.000000\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "This run may take on the order of 3 minutes to complete.\n", "This estimate is very approximate. \n", "Run time is highly uncertain as it depends on the complexity of the input data \n", "and speed and memory of the computer. This estimate is based on our testing on \n", "a dual quad core Dell Xeon E5405 2.0GHz PC with 16GB RAM.\n", "All slopes evaluated. 539517 flats to resolve.\n", "Draining flats towards lower adjacent terrain\n", "..................................................................................................................................................................................................................................................................................................................................................................................................................\n", "Draining flats away from higher adjacent terrain\n", ".....................................................\n", "Setting directions\n", "Iteration complete. Number of flats remaining: 13592\n", "Draining flats towards lower adjacent terrain\n", "...................................\n", "Draining flats away from higher adjacent terrain\n", ".........\n", "Setting directions\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Processors: 8\n", "Header read time: 0.019067\n", "Data read time: 0.047244\n", "Compute Slope time: 1.134700\n", "Write Slope time: 0.411829\n", "Resolve Flat time: 9.764547\n", "Write Flat time: 0.463723\n", "Total time: 11.841111\n", "DinfDistDown -v version 5.3.9\n", "Input file data/OC1mTest_ang.tif has projected coordinate system.\n", "Nodata value input to create partition from file: -340282346638528859811704183484516925440.000000\n", "Nodata value recast to float used in partition raster: -340282346638528859811704183484516925440.000000\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "This run may take on the order of 1 minutes to complete.\n", "This estimate is very approximate. \n", "Run time is highly uncertain as it depends on the complexity of the input data \n", "and speed and memory of the computer. This estimate is based on our testing on \n", "a dual quad core Dell Xeon E5405 2.0GHz PC with 16GB RAM.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Input file data/OC1mTest_fel.tif has projected coordinate system.\n", "Nodata value input to create partition from file: -300000000549775575777803994281145270272.000000\n", "Nodata value recast to float used in partition raster: -300000000549775575777803994281145270272.000000\n", "Input file data/OC1mTest_channel_network.tif has projected coordinate system.\n", "Nodata value input to create partition from file: -32768.000000\n", "Nodata value recast to int16_t used in partition raster: -32768\n", "Processors: 8\n", "Read time: 0.106575\n", "Compute time: 4.125068\n", "Write time: 0.363995\n", "Total time: 4.595638\n" ] } ], "source": [ "%%bash\n", "\n", "# bash script to generate Dinf HAND with TauDEM\n", "\n", "# Notes before running this cell:\n", "# - Open taudem_hand.sh and update the first two blocks as necessary\n", "# - Ensure the TauDEM executables pitremove, dinfflowdir, and dinfdistdown are on your path\n", "\n", "bash taudem_hand.sh" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running inundate with parameters:\n", " custom_hand = data/OC1mTest_HAND_taudem.tif\n", " custom_flood_stage = None\n", " custom_segment_catchments_raster = None\n", " custom_path = data/OC1mTest_HAND_taudem_fim\n", "Flood inundation raster written to data/OC1mTest_HAND_taudem_fim.tif\n", "inundate completed in 1.3339 seconds\n", "\n" ] } ], "source": [ "# create FIM with Dinf HAND written in previous step\n", "pgf.inundate(\n", " custom_hand=\"data/OC1mTest_HAND_taudem.tif\",\n", " custom_path=\"data/OC1mTest_HAND_taudem_fim\", # output FIM path\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plot flood inundation map (Dinf HAND based)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "image/png": "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oSnHGBgYYMOGDaRSKbq6uvjkJz9JEART9rn//vt505vehOM4LF26lFtvvfXw36EQQghxrNCmaZthhxQszJ8/ny9+8Yts3ryZxx57jLe//e387u/+Lk899RQAn/jEJ/iP//gPvve97/HAAw+we/du3vve9zafH4YhGzZswPM8fvnLX/LNb36TW2+9lc985jPNfbZv386GDRu48MILefzxx7nmmmv44z/+Y+6+++5pestCCCGEOBSaOsK1K9va2vjrv/5rfv/3f5/Ozk5uu+02fv/3fx+AZ599lpUrV7Jp0ybOPfdcfvzjH/Pbv/3b7N69m+7ubgBuvvlmrrvuOvbu3Ytt21x33XXceeedbNmypfka73//+5mYmOCuu+466PMqFovk83mGRgvkcrkjeYtCCCGOc8Vike72PIXC0blmTF6THnxyJ5nskR2/XCpy/mnzj9q57s9hJziGYch3vvMdKpUKa9euZfPmzfi+z7p165r7rFixggULFrBp0yYANm3axGmnndYMFADWr19PsVhsjk5s2rRpyjEm95k8xutxXZdisThlE0IIIY4lk9UQR7rNtEMOFp588kkymQyO43DllVfygx/8gFWrVjE4OIht27S0tEzZv7u7m8HBQQAGBwenBAqTj08+dqB9isUitVrtdc/rxhtvJJ/PN7f+/v5DfWtCCCHEUTVHUxYOPVhYvnw5jz/+OA8//DBXXXUVl19+OU8//fTROLdDcv3111MoFJrbjh07ZvuUhBBCiOPCIZdO2rbN0qVLATjrrLN49NFH+cpXvsL73vc+PM9jYmJiyujC0NAQPT09APT09PDII49MOd5ktcQr93l1BcXQ0BC5XI5kMvm65+U4Do7jHOrbEUIIIWbOHK2dPOKmTFEU4bouZ511FpZlcd999zUf27p1KwMDA6xduxaAtWvX8uSTTzI8PNzc55577iGXy7Fq1armPq88xuQ+k8cQQggh5iptmn7NtEMaWbj++uu5+OKLWbBgAaVSidtuu43777+fu+++m3w+zxVXXMG1115LW1sbuVyOP/mTP2Ht2rWce+65AFx00UWsWrWKD37wg3zpS19icHCQT3/602zcuLE5KnDllVfyv/7X/+JTn/oUH/3oR/npT3/Kd7/7Xe68887pf/dCCCGEeEOHFCwMDw/zoQ99iD179pDP51m9ejV3330373znOwH48pe/jK7rXHrppbiuy/r16/na177WfL5hGNxxxx1cddVVrF27lnQ6zeWXX87nP//55j6LFy/mzjvv5BOf+ARf+cpXmD9/Pv/yL//C+vXrp+ktCyGEELNjrq4NccR9Fo5V0mdBCCHEwZqpPgubnt41LX0W1q6aNzf6LAghhBDixCALSQkhhBAzZY5WQ0iwIIQQQsyQ6ahmmI1qCJmGEEIIIcQByciCEEIIMUPmajWEBAtCCCHEDJmjKQsSLAghhBAzZo5GC5KzIIQQQogDkpEFIYQQYobM1WoICRaEEEKIGTJXExxlGkIIIYQQByQjC0IIIcQMmaP5jRIsCCGEEDNmjkYLMg0hhBBCiAOSkQUhhBBihszVaggZWRBCCCFmiravIuJwt0ONFR588EHe85730NfXh6Zp3H777Yd82hIsCCGEEMexSqXC6aefzle/+tXDPoZMQwghhBAzZDbyGy+++GIuvvjiI3pNCRaEEEKImTKN0UKxWJxyt+M4OI5zhAffP5mGEEIIIWaINk2/APr7+8nn883txhtvPGrnLSMLQgghxBy0Y8cOcrlc8/bRGlUACRaEEEKIGTOda0PkcrkpwcLRJMGCEEIIMUPmaANHCRaEEEKI41m5XOb5559v3t6+fTuPP/44bW1tLFiw4KCOcdwGC0opAEqvyhYVQgghXm3yWjF57ThqZmFo4bHHHuPCCy9s3r722msBuPzyy7n11lsP6hjHbbAwOjoKwNLF/bN8JkIIIeaKUqlEPp8/asefjXbPF1xwwREHQcdtsNDW1gbAwMDAUf2LPxEUi0X6+/tfk3krDo98ntNHPsvpdSJ/nkopSqUSfX19s30qx6TjNljQ9biFRD6fP+H+0R8tM5l5eyKQz3P6yGc5vU7Uz3MmvlhqTEM1xLScyaE5boMFIYQQ4lgzV6shpIOjEEIIIQ7ouB1ZcByHz372s0e1o9WJQj7L6SWf5/SRz3J6yed59E1nU6aZpKmjXicihBBCnNiKxSL5fJ6nX9pL9gjzQUrFIqsWdVIoFKSDoxBCCHG8masjC5KzIIQQQogDkpEFIYQQYobM1WoICRaEEEKIGSLTEMeQr371qyxatIhEIsGaNWt45JFHZvuUZt2DDz7Ie97zHvr6+tA0jdtvv33K40opPvOZz9Db20symWTdunVs27Ztyj5jY2Ncdtll5HI5WlpauOKKKyiXy1P2eeKJJzjvvPNIJBL09/fzpS996Wi/tRl34403cs4555DNZunq6uKSSy5h69atU/ap1+ts3LiR9vZ2MpkMl156KUNDQ1P2GRgYYMOGDaRSKbq6uvjkJz9JEART9rn//vt505vehOM4LF269KD7uM8lN910E6tXr242Alq7di0//vGPm4/LZ3n4vvjFL6JpGtdcc03zPvk8xWFRx5nvfOc7yrZt9Y1vfEM99dRT6mMf+5hqaWlRQ0NDs31qs+pHP/qR+ou/+Av1/e9/XwHqBz/4wZTHv/jFL6p8Pq9uv/129Zvf/Eb9zu/8jlq8eLGq1WrNfd71rnep008/XT300EPqZz/7mVq6dKn6wAc+0Hy8UCio7u5uddlll6ktW7aob3/72yqZTKp/+qd/mqm3OSPWr1+vbrnlFrVlyxb1+OOPq3e/+91qwYIFqlwuN/e58sorVX9/v7rvvvvUY489ps4991z1W7/1W83HgyBQp556qlq3bp369a9/rX70ox+pjo4Odf311zf3efHFF1UqlVLXXnutevrpp9U//uM/KsMw1F133TWj7/do++EPf6juvPNO9dxzz6mtW7eqP//zP1eWZaktW7YopeSzPFyPPPKIWrRokVq9erX60z/90+b98nnOjkKhoAD13MCI2jPhHdH23MCIAlShUJix8z/ugoU3v/nNauPGjc3bYRiqvr4+deONN87iWR1bXh0sRFGkenp61F//9V8375uYmFCO46hvf/vbSimlnn76aQWoRx99tLnPj3/8Y6Vpmtq1a5dSSqmvfe1rqrW1Vbmu29znuuuuU8uXLz/K72h2DQ8PK0A98MADSqn4s7MsS33ve99r7vPMM88oQG3atEkpFQdvuq6rwcHB5j433XSTyuVyzc/vU5/6lDrllFOmvNb73vc+tX79+qP9lmZda2ur+pd/+Rf5LA9TqVRSy5YtU/fcc49629ve1gwW5POcPc1gYceI2lPwjmh7bsfMBwvH1TSE53ls3ryZdevWNe/TdZ1169axadOmWTyzY9v27dsZHByc8rnl83nWrFnT/Nw2bdpES0sLZ599dnOfdevWoes6Dz/8cHOf888/H9u2m/usX7+erVu3Mj4+PkPvZuYVCgVg3+Jlmzdvxvf9KZ/nihUrWLBgwZTP87TTTqO7u7u5z/r16ykWizz11FPNfV55jMl9jud/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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import rasterio as rio\n", "\n", "with rio.open(\"data/OC1mTest_HAND_taudem_fim.tif\") as ds:\n", " fim = ds.read(1)\n", " fim[fim == ds.nodata] = np.nan\n", "\n", "plt.imshow(fim, cmap=\"Blues\")\n", "plt.colorbar()\n", "plt.show()" ] } ], "metadata": { "colab": { "authorship_tag": "ABX9TyMNCi84+7QiD4ra1kbkEbpz", "include_colab_link": true, "provenance": [] }, "kernelspec": { "display_name": "Python 3", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.7" } }, "nbformat": 4, "nbformat_minor": 0 }