From 2540e7f22cd58046c419df1b3e8fe59ea3976a64 Mon Sep 17 00:00:00 2001 From: shartgring <103518935+shartgring@users.noreply.github.com> Date: Wed, 6 Nov 2024 10:51:35 +0100 Subject: [PATCH 1/2] Dsd 24 preparations (#202) * update hydromt config name * exclude downloaded files in example notebook * start with hydromt cli tutorial * rewriting the notebook steps * update changelog * Fix typos on notebook Co-authored-by: hboisgon <45457510+hboisgon@users.noreply.github.com> * clear notebook output * Add notebook to docs * Added new notebook, fix typos * fix typo in docs * fix typos in docs * fix typos in docs * fix typos in docs * update docs * changes to notebook metadata * fix typos found by helene --------- Co-authored-by: hboisgon <45457510+hboisgon@users.noreply.github.com> --- .gitignore | 4 +- docs/changelog.rst | 1 + docs/dev_guide/contributors.rst | 1 + docs/getting_started/example_index.rst | 14 +- docs/getting_started/faq.rst | 2 +- docs/getting_started/installation.rst | 12 +- docs/user_guide/dflowfm_build.rst | 7 +- docs/user_guide/dflowfm_update.rst | 4 +- docs/user_guide/intro.rst | 6 +- examples/build_1d2dmodel.ipynb | 8 +- examples/build_1dmodel.ipynb | 4 +- examples/hydromt_tutorial.ipynb | 308 +++++++++++++++++++++++++ 12 files changed, 344 insertions(+), 27 deletions(-) create mode 100644 examples/hydromt_tutorial.ipynb diff --git a/.gitignore b/.gitignore index 53497428..5da2d10e 100644 --- a/.gitignore +++ b/.gitignore @@ -77,7 +77,9 @@ target/ # Jupyter Notebook .ipynb_checkpoints -.examples/build +examples/build +examples/data/* +!examples/data/refine.geojson # IPython profile_default/ diff --git a/docs/changelog.rst b/docs/changelog.rst index da364fb3..bce1905d 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -11,6 +11,7 @@ UNRELEASED Added ----- +- Included new example notebook for basic HydroMT use through CLI. (PR #202) Changed ------- diff --git a/docs/dev_guide/contributors.rst b/docs/dev_guide/contributors.rst index d2c36cd5..5cfe312a 100644 --- a/docs/dev_guide/contributors.rst +++ b/docs/dev_guide/contributors.rst @@ -9,3 +9,4 @@ Contributors * Hélène Boisgontier `@hboisgon `_ * Rinske Hutten `@rhutten `_ * Arthur van Dam `https://github.com/arthurvd`_ +* Sebastian Hartgring `https://github.com/shartgring`_ diff --git a/docs/getting_started/example_index.rst b/docs/getting_started/example_index.rst index 6fff812b..a0fb12eb 100644 --- a/docs/getting_started/example_index.rst +++ b/docs/getting_started/example_index.rst @@ -11,16 +11,20 @@ List of examples For a static (non-interactive) view of the examples follow one of the links below: +**Introduction to HydroMT Delft3D FM** + +* `HydroMT tutorial <../_examples/hydromt_tutorial.ipynb>`_ + **Build model from command line interface** -* `Build Delft3DFM 1D model <../_examples/build_1dmodel.ipynb>`_ -* `Build Delft3DFM 2D model <../_examples/build_2dmodel.ipynb>`_ -* `Build Delft3DFM 1D2D model <../_examples/build_1d2dmodel.ipynb>`_ +* `Build Delft3D FM 1D model <../_examples/build_1dmodel.ipynb>`_ +* `Build Delft3D FM 2D model <../_examples/build_2dmodel.ipynb>`_ +* `Build Delft3D FM 1D2D model <../_examples/build_1d2dmodel.ipynb>`_ **Update model from command line interface** -* `Update Delft3DFM model: refine 2dgrid <../_examples/update_refine_2dgrid.ipynb>`_ +* `Update Delft3D FM model: refine 2dgrid <../_examples/update_refine_2dgrid.ipynb>`_ **Postprocessing and visualization** -* `Plot Delft3DFM model <../_examples/plot_dflowfm_mesh.ipynb>`_ +* `Plot Delft3D FM model <../_examples/plot_dflowfm_mesh.ipynb>`_ diff --git a/docs/getting_started/faq.rst b/docs/getting_started/faq.rst index 96569d62..c8f0791f 100644 --- a/docs/getting_started/faq.rst +++ b/docs/getting_started/faq.rst @@ -5,7 +5,7 @@ Frequently asked questions ========================== -This page contains some FAQ / tips and tricks to work with HydroMT-Delft3DFM. +This page contains some FAQ / tips and tricks to work with HydroMT Delft3D FM. For more general questions on how to work with data or the HydroMT config and command line, you can visit the `HydroMT core FAQ page `_ diff --git a/docs/getting_started/installation.rst b/docs/getting_started/installation.rst index 7b0381e0..e9a8a83c 100644 --- a/docs/getting_started/installation.rst +++ b/docs/getting_started/installation.rst @@ -10,7 +10,7 @@ For more information about the prerequisites for an installation of the HydroMT and related dependencies, please visit the documentation of `HydroMT core `_ -Compared to HydroMT, HydroMT-delft3dfm has additional dependencies, namely: +Compared to HydroMT, HydroMT Delft3D FM has additional dependencies, namely: - `xugrid `_ - `hydrolib-core `_ @@ -20,13 +20,13 @@ Compared to HydroMT, HydroMT-delft3dfm has additional dependencies, namely: Installation ============ -HydroMT-Delft3DFM is available on pypi. +HydroMT Delft3D FM is available on pypi. -Install HydroMT-Delft3DFM in a new environment +Install HydroMT Delft3D FM in a new environment ---------------------------------------------- -You can install HydroMT-Delft3DFM in a new environment (recommended!) called `hydromt-delft3dfm`. -HydroMT-Delft3DFM is available on pypi but not yet available on conda-forge. +You can install HydroMT Delft3D FM in a new environment (recommended!) called `hydromt-delft3dfm`. +HydroMT Delft3D FM is available on pypi but not yet available on conda-forge. Therefore, we recommend creating a conda environment and install everything with pip. .. code-block:: console @@ -39,7 +39,7 @@ Then, activate the environment: $ conda activate hydromt-delft3dfm -Finally, install Hydromt-Delft3DFM from pypi using pip. +Finally, install HydroMT Delft3D FM from pypi using pip. .. code-block:: console diff --git a/docs/user_guide/dflowfm_build.rst b/docs/user_guide/dflowfm_build.rst index a539b5f2..517210e0 100644 --- a/docs/user_guide/dflowfm_build.rst +++ b/docs/user_guide/dflowfm_build.rst @@ -14,7 +14,7 @@ data libraries are set, you can build a model by using: Configuration file ------------------ -Settings to build or update a Delft3DFM model are managed in a configuration file. In this file, +Settings to build or update a Delft3D FM model are managed in a configuration file. In this file, every option from each :ref:`model method ` can be changed by the user in its corresponding section. @@ -26,7 +26,7 @@ Note that the order in which the components are listed in the yml file is import - When setting up a 1D2D model, both of the above should be run first, before calling `setup_link1d2d`. -Below is an example yml file that can be used to build a complete Delft3DFM model +Below is an example yml file that can be used to build a complete Delft3D FM model :download:`.yml file <../_examples/delft3dfm_build.yml>`. Each section corresponds to a model component with the same name. @@ -53,4 +53,5 @@ are three ways for the user to select which data libraries to use: .. toctree:: :hidden: - Example: Build Delft3DFM 1D2D model <../_examples/build_1d2dmodel.ipynb> + Example: Introduction to HydroMT Delft3D FM <../_examples/hydromt_tutorial.ipynb> + Example: Build Delft3D FM 1D2D model <../_examples/build_1d2dmodel.ipynb> diff --git a/docs/user_guide/dflowfm_update.rst b/docs/user_guide/dflowfm_update.rst index 970d3edb..602da612 100644 --- a/docs/user_guide/dflowfm_update.rst +++ b/docs/user_guide/dflowfm_update.rst @@ -2,7 +2,7 @@ Updating a model ---------------- -To add or change one or more components of an existing Delft3DFM model the ``update`` method can be used. +To add or change one or more components of an existing Delft3D FM model the ``update`` method can be used. **Steps in brief:** @@ -33,4 +33,4 @@ To add or change one or more components of an existing Delft3DFM model the ``upd .. toctree:: :hidden: - Example: Update Delft3DFM model (refine 2dgrid) <../_examples/update_refine_2dgrid.ipynb> + Example: Update Delft3D FM model (refine 2dgrid) <../_examples/update_refine_2dgrid.ipynb> diff --git a/docs/user_guide/intro.rst b/docs/user_guide/intro.rst index 3c445773..5430d1b9 100644 --- a/docs/user_guide/intro.rst +++ b/docs/user_guide/intro.rst @@ -3,15 +3,15 @@ User guide ========== -With the **Hydromt-Delft3DFM plugin**, users can easily benefit from the rich set of tools of the +With the **HydroMT Delft3D FM plugin**, users can easily benefit from the rich set of tools of the `HydroMT package `_ to build and update `Delft3D FM Suite `_ models from available global and local data. This plugin assists the Delft3D FM modeller in: -- Quickly setting up a base Delft3dFM model (1D2D) and default parameter values +- Quickly setting up a base Delft3D FM model (1D2D) and default parameter values - Making maximum use of the best available global or local data -- Adjusting and updating components of a Delft3dFM model and their associated data in a consistent way +- Adjusting and updating components of a Delft3D FM model and their associated data in a consistent way Two Delft3dFM Model classes are currently available: diff --git a/examples/build_1d2dmodel.ipynb b/examples/build_1d2dmodel.ipynb index e7761443..0b61e558 100644 --- a/examples/build_1d2dmodel.ipynb +++ b/examples/build_1d2dmodel.ipynb @@ -188,7 +188,7 @@ "outputs": [], "source": [ "# NOTE: copy this line (without !) to your shell for more direct feedback - should take about 1 minute or 2 to run\n", - "!hydromt build dflowfm \"./build/dflowfm_1d2d\" -i dflowfm_build.yml -d artifact_data --fo -vv" + "!hydromt build dflowfm \"./build/dflowfm_1d2d\" -i dflowfm_build_piave.yml -d artifact_data --fo -vv" ] }, { @@ -200,7 +200,7 @@ "\n", "* `dflowfm` : i.e. build a FM model\n", "* `./build/dflowfm_1d2d` : output model folder\n", - "* `-i dflowfm_build.yml`: model build configuration file\n", + "* `-i dflowfm_build_piave.yml`: model build configuration file\n", "* `-d artifact_data`: data catalog to use. Here the default artifact data catalog with global data for Northern Italy.\n", "* `--fo`: force overwritting in case a model already exists in the output folder.\n", "* `-vv` : give some extra verbosity (2 * v) to display feedback on screen. Now debug and info messages are provided rather than only warnings and errors.\n", @@ -267,7 +267,7 @@ ], "metadata": { "kernelspec": { - "display_name": "waterbom", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -281,7 +281,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.0" + "version": "3.9.20" }, "vscode": { "interpreter": { diff --git a/examples/build_1dmodel.ipynb b/examples/build_1dmodel.ipynb index b277a024..84676175 100644 --- a/examples/build_1dmodel.ipynb +++ b/examples/build_1dmodel.ipynb @@ -255,7 +255,7 @@ ], "metadata": { "kernelspec": { - "display_name": "waterbom", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -269,7 +269,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.18" + "version": "3.9.20" }, "vscode": { "interpreter": { diff --git a/examples/hydromt_tutorial.ipynb b/examples/hydromt_tutorial.ipynb new file mode 100644 index 00000000..102e790a --- /dev/null +++ b/examples/hydromt_tutorial.ipynb @@ -0,0 +1,308 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "9a73590b", + "metadata": {}, + "source": [ + "## Model building using HydroMT Delft3D FM" + ] + }, + { + "cell_type": "markdown", + "id": "ee510c6e", + "metadata": {}, + "source": [ + "This notebook demonstrates how to prepare a **Delft3D FM** model from scratch using the command line interace (CLI). We will demonstrate the required steps for model building and show the contents of a **configuration file** and the **data catalog**. After following this notebook, you should be able to follow the example notebooks for building the 1D, 2D and coupled 1D2D models.\n", + "\n", + "It is necessary to have a Python environment with HydroMT Core and the HydroMT Delft3D FM plugin installed to be able to run the notebook, as well as additional packages such as **jupyterlab** and **notebook** for notebook functionality, and **cartopy** and **matplotlib** for plotting purposes. The installation guide for HydroMT Delft3D FM can be found in the [User Guide](https://deltares.github.io/hydromt_delft3dfm/latest/getting_started/installation.html)." + ] + }, + { + "cell_type": "markdown", + "id": "6b96aa15", + "metadata": {}, + "source": [ + "> **NOTE**: \n", + "All lines in this notebook which start with `!` are executed from the command line. Within the notebook environment the logging messages are shown after completion. You can also copy these lines and paste these in your shell to get more direct feedback." + ] + }, + { + "cell_type": "markdown", + "id": "451c8168", + "metadata": {}, + "source": [ + "### Accessing HydroMT through CLI" + ] + }, + { + "cell_type": "markdown", + "id": "2c70853e", + "metadata": {}, + "source": [ + "Lets first check if the Delft3D FM model is recognized by HydroMT using the command `hydromt --models`. This should return **dflowfm**, as well as as well as the generic HydroMT models: **grid_model**, **lumped_model**, **mesh_model**, **network_model**." + ] + }, + { + "cell_type": "markdown", + "id": "c045f489", + "metadata": {}, + "source": [ + "> **NOTE**: \n", + "If you have other HydroMT plugins installed in the same environment (Wflow, SFINCS, FIAT, and more), then these models will also appear after this command." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "40470302", + "metadata": {}, + "outputs": [], + "source": [ + "!hydromt --models" + ] + }, + { + "cell_type": "markdown", + "id": "920c45b2", + "metadata": {}, + "source": [ + "We can use the command `hydromt --help` to get an overview of all the commands that can be accessed throug the command line interface. HydroMT is typically used to `hydromt build` a model using a configuration file. It is also possible to `hydromt update` or `hydromt clip` existing models. The command `hydromt export` is not directly related to model building, but used to exoirt data from a data catalog. The command `hydromt check` is used to validate the configuration file and the linked data catalogs and region settings. This can especially be useful to catch mistakes in the model building process without having to pass all the model building steps, which can take a lot of time for large models.\n", + "\n", + "A more detailed description of these commands can be found in the [HydroMT API](https://deltares.github.io/hydromt/latest/api/cli.html). " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ed06a240", + "metadata": {}, + "outputs": [], + "source": [ + "!hydromt --help" + ] + }, + { + "cell_type": "markdown", + "id": "e0ef43af", + "metadata": {}, + "source": [ + "> **NOTE**: \n", + "When inspecting the documentation of HydroMT Core, make sure that you open the documentation for the corresponding HydroMT version. The HydroMT version of your Python environment is listed as a part of the `hydromt --models` command, or can be found by simply using `hydromt --version`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "add0c270", + "metadata": {}, + "outputs": [], + "source": [ + "!hydromt --version" + ] + }, + { + "cell_type": "markdown", + "id": "b3f8ece2", + "metadata": {}, + "source": [ + "### Requirements for building a model in HydroMT Delft3D FM" + ] + }, + { + "cell_type": "markdown", + "id": "7d9b5a20", + "metadata": {}, + "source": [ + "Using the **HydroMT build** API we can setup a complete model from scratch. Let's get an overview of all the available options:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1d39e4a1", + "metadata": {}, + "outputs": [], + "source": [ + "!hydromt build --help" + ] + }, + { + "cell_type": "markdown", + "id": "261a2edc", + "metadata": {}, + "source": [ + "We can see that there are two required arguments for building a model: `MODEL` describing the type of model to build, and `MODEL_ROOT` which is the root path of the model. Additionally, a HydroMT configuration file can be used using either `-i` or `--config`, a data catalog using either `-d` or `--data` and region settings using `-r` or `--region`. Both the configuration file and the data catalog will be explained in greater detail in this notebook." + ] + }, + { + "cell_type": "markdown", + "id": "e84ea23c", + "metadata": {}, + "source": [ + "> **NOTE**: \n", + "In the current version of HydroMT Delft3D FM, no region settings are required when building a model." + ] + }, + { + "cell_type": "markdown", + "id": "ebd31242", + "metadata": {}, + "source": [ + "### Model setup configuration" + ] + }, + { + "cell_type": "markdown", + "id": "fb8282c9", + "metadata": {}, + "source": [ + "The HydroMT configuration file contains the model setup configuration and determines which methods are used to prepare the different components of a Delft3D FM model and in which order and optionally sets non-default arguments for each method. This configuration is passed to HydroMT using `-i `. We have prepared several example yml-files which are available in the model repository [examples folder](https://github.com/Deltares/hydromt_delft3dfm/tree/main/examples) and from the [docs (building a model)](https://deltares.github.io/hydromt_delft3dfm/latest/user_guide/dflowfm_build). These example yml-files are also used in this notebook to build the 1D, 2D and coupled 1D2D models.\n", + "\n", + "Each section, before indent, (e.g. setup_rivers_from_dem) corresponds to a model method. A model method is a step inside the model building process. Each method adds a new component to the model, thus building the model step-by-step. All model methods are explained in the [docs (model components)](https://deltares.github.io/hydromt_delft3dfm/latest/user_guide/dflowfm_model_setup.html). The `global` section contains direct model initialisation properties which are required when the empty model is initialized. It typically contains global settings such as the coordinate system of the model." + ] + }, + { + "cell_type": "markdown", + "id": "cc3fd44d", + "metadata": {}, + "source": [ + "We will load the default dflowfm build 1D2D yaml file for inspection:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7393a54d", + "metadata": {}, + "outputs": [], + "source": [ + "fn_yml = \"dflowfm_build_piave.yml\"\n", + "with open(fn_yml, \"r\") as f:\n", + " txt = f.read()\n", + "print(txt)" + ] + }, + { + "cell_type": "markdown", + "id": "708139e9", + "metadata": {}, + "source": [ + "It can be seen that many arguments are required for the methods. Some arguments require data sources, typically indicated using `<...>_fn`. For example, the `setup_pipes` method requires a data source for the geometry of the pipes: `pipes_fn`, and additionally a data source with the default geometry of these pipes: `pipes_default_fn`. These data sources are obtained either directly by providing a path to the corresponding file, or by using an entry from a given **data catalog**. The next section explains how to create and use a **data catalog**." + ] + }, + { + "cell_type": "markdown", + "id": "b0242689", + "metadata": {}, + "source": [ + "> **NOTE**: \n", + " In this example, we apply region argument in setup_rivers_from_dem, setup_pipes and setup_mesh2d. They are identical in this example but one can alter them to have different region for rivers, for pipes and for 2dmesh. This allows the user to customize their model as much as possible, as the extent of the 1D river can differ from the extent of the 1D urban network or the 2D inundation grid. The region bbox are in WGS 84 as required, but the user should specify the dflowfm model destination CRS in the `global` section in order to allow to use grid definition data (rivers, pipes) from different data sources or CRS. " + ] + }, + { + "cell_type": "markdown", + "id": "7584dcae", + "metadata": {}, + "source": [ + "### Data for model setup" + ] + }, + { + "cell_type": "markdown", + "id": "dad35651", + "metadata": {}, + "source": [ + "Most of the time, the `<...>_fn` arguments correspond to a data source from the `DataCatalog` which is based on a yml-file with references to the data paths/urls and how the data should be read. This file can be provided to hydromt using `-d `. The functionality of the data catalog is prescribed by HydroMT Core and therefore, the detailed description on how to create and use a data catalog can be found in the [HydroMT core docs](https://deltares.github.io/hydromt/latest/user_guide/data_prepare_cat.html). It is possible to use multiple data catalogs by repeating the `-d` flag.\n", + "\n", + "A data catalog in HydroMT is a structured way to organize and reference various datasets, making it easier to manage and access data for modelling. Its entries describe where data can be found, which adapter to use to read data with which settings, how to change the data when reading (scaling, off-setting) and metadata.\n", + "\n", + "> **NOTE**: In HydroMT-Delft3D FM, an additional data catalog with all default parameters values is always used [parameters_data.yml](https://github.com/Deltares/hydromt_delft3dfm/tree/main/hydromt_delft3dfm/data/parameters_data.yml). It contains default values for 1D network elements and structures as well as default 2D landuse parameter mapping tables." + ] + }, + { + "cell_type": "markdown", + "id": "68dc497c", + "metadata": {}, + "source": [ + "We use the pre-defined `artifact_data` catalog in this example notebook which contains some example data for the Piave basin. This data will be downloaded to `~/.hydromt_data/`. To give an example of a data catalog, we will use `hydromt export` to download and export some entries of the `artifact_data` catalog. This will be done for the same region as the example build models, and the target directory will be the **data** folder, which should already exist in the same folder as this notebook" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "13770b1d", + "metadata": {}, + "outputs": [], + "source": [ + "!hydromt export ./data -s grip_roads -s merit_hydro -s vito_2015 -r \"{'bbox': [12.4331, 46.4661, 12.5212, 46.5369]}\" -d artifact_data -vvv " + ] + }, + { + "cell_type": "markdown", + "id": "53c535ca", + "metadata": {}, + "source": [ + "After downloading the data, we can inspect the corresponding data catalog:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "da1cb1f9", + "metadata": {}, + "outputs": [], + "source": [ + "dc_yml = \"./data/data_catalog.yml\"\n", + "with open(dc_yml, \"r\") as f:\n", + " txt = f.read()\n", + "print(txt)" + ] + }, + { + "cell_type": "markdown", + "id": "85c7918e", + "metadata": {}, + "source": [ + "### Next steps: Model building notebooks" + ] + }, + { + "cell_type": "markdown", + "id": "e8e24ef7", + "metadata": {}, + "source": [ + "The basic concepts of accessing HydroMT Delft3D FM using CLI have been explained in this notebook, as well as the contents of a **configuration file** and a **data catalog**. You can now continue to the notebooks where Delft3D FM models will be build using an example configuration file and the artifact data. It is advised to first try building the 1D and 2D models (`build_1dmodel.ipynb` and `build_2dmodel.ipynb`) before moving to the coupled 1D2D model (`build_1d2dmodel.ipynb`)." + ] + }, + { + "cell_type": "markdown", + "id": "c0dde1d6", + "metadata": {}, + "source": [ + "Additionally, an example notebook is included highlighting the functionality of grid refinement (`update_refine_2dgrid.ipynb`) and how to plot the mesh of a model using Python (`plot_dflowfm_mesh.ipynb`)." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "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.9.20" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 6956f9e28ee1c7e05a8ae3f74b1676caefe9b5d0 Mon Sep 17 00:00:00 2001 From: shartgring <103518935+shartgring@users.noreply.github.com> Date: Mon, 11 Nov 2024 13:30:51 +0100 Subject: [PATCH 2/2] 0.3.1 to 0.3.1.dev (#205) --- hydromt_delft3dfm/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hydromt_delft3dfm/__init__.py b/hydromt_delft3dfm/__init__.py index 3894d0b5..053da3f8 100644 --- a/hydromt_delft3dfm/__init__.py +++ b/hydromt_delft3dfm/__init__.py @@ -2,7 +2,7 @@ from os.path import abspath, dirname, join -__version__ = "0.3.1" +__version__ = "0.3.1.dev" DATADIR = join(dirname(abspath(__file__)), "data") from .dflowfm import *