From 418470200904f33675eb65250171811e97b2da99 Mon Sep 17 00:00:00 2001 From: Sam Vente Date: Mon, 17 Jul 2023 18:05:57 +0200 Subject: [PATCH 01/19] add plugin quickstart docs page --- docs/plugin-quickstart.rst | 62 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 docs/plugin-quickstart.rst diff --git a/docs/plugin-quickstart.rst b/docs/plugin-quickstart.rst new file mode 100644 index 000000000..48e293c78 --- /dev/null +++ b/docs/plugin-quickstart.rst @@ -0,0 +1,62 @@ +================================ +Starting your own HydroMT Plugin +================================ + +Prerequisite +^^^^^^^^^^^^ +Here we can explain plugin archetecture + + +Reading & Writing +^^^^^^^^^^^^^^^^^ + +Here we will explain the model class and how the read/write functions work + + +Setup methods +^^^^^^^^^^^^^ + +Here we will explain the setup methods + + +Using the template +^^^^^^^^^^^^^^^^^^ + +To make it easier to get started we have provided a `cookiecutter `_ template to help you get started. +The template itself is located at `https://github.com/savente93/hydromt-plugin-template `. + +To use it you must first install cookiecutter itself like so: + +.. code-block:: console + + $ pip install cookiecutter + +After that navigate to the folder in your terminal where you want to create the project. After doing that all you need to do is run the +following command: + +.. code-block:: console + + $ cookiecutter https://github.com/savente93/hydromt-plugin-template + +You will be prompted for some information. After you've entered the information the project should be automatically created for you! Let's +say you just created the plugin called `hydromt_plugin` before you can start using it you'll need to initialise git within it like so: + +.. code-block:: console + + $ cd hydromt_plugin + $ git init + +If your project has dependencies you can add them in the pyprojec.toml under the `dependencies` array. If you have `tomli` installed, you can +use the `make_env.py` script to generate a conda environment specifcation see :ref:`The developoer instalation page ` for +more information on how to use this script. + +Now, assuming that you've made a repository on github within the Deltares organisation you just need to add it as a remote in the repository +and push it. + +.. code-block:: console + + $ git remote add origin https://github.com/Deltares/hydromt_plugin + $ git push + +After this you can open up the github repository website, and you should see your generated project. You are now ready to start developing your own +plugin! Well done, and good luck! From adb3ff1a49f77cc5e2d5b656652f7b54deb25faf Mon Sep 17 00:00:00 2001 From: Sam Vente Date: Thu, 20 Jul 2023 13:04:12 +0200 Subject: [PATCH 02/19] move plugin quickstart to dev part of docs --- docs/{ => dev}/plugin-quickstart.rst | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/{ => dev}/plugin-quickstart.rst (100%) diff --git a/docs/plugin-quickstart.rst b/docs/dev/plugin-quickstart.rst similarity index 100% rename from docs/plugin-quickstart.rst rename to docs/dev/plugin-quickstart.rst From dfd257fe4e0d99421f1397f9c332ea53dee105e7 Mon Sep 17 00:00:00 2001 From: Sam Vente Date: Fri, 21 Jul 2023 15:29:17 +0200 Subject: [PATCH 03/19] add docs about how to start plugin --- docs/dev/plugin-quickstart.rst | 40 ++++++++++++++++++++++++++++++---- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/docs/dev/plugin-quickstart.rst b/docs/dev/plugin-quickstart.rst index 48e293c78..e4b8b586d 100644 --- a/docs/dev/plugin-quickstart.rst +++ b/docs/dev/plugin-quickstart.rst @@ -4,19 +4,51 @@ Starting your own HydroMT Plugin Prerequisite ^^^^^^^^^^^^ -Here we can explain plugin archetecture +There are three important concepts in HydroMT core that are important to cover: + +- ``DataAdapters``: These are what basically hold all information about how to approach and read data as well as some of the metadata about it. While a lot of the work in HydroMT happens here, plugins or users shouldn't really need to know about these beyond using the proper ``data_type`` in their configuration. +- ``DataCatalog``: these are basically just a thin wrapper around the ``DataAdapters`` that does some book keeping. +- ``Model``: This is where the magic happens (as far as the plugin is concerned). We have provided some base models that you can override to get basic/generic functionality, but using the model functionality is where it will be at for you. + +Currently HydroMT uses the `entrypoints` package to advertise it's, well, entrypoints. Entrypoints are how you can tell HydroMT core about your plugin. As an example we can look at the current ``hydromt_wflow`` model. Specifically it's this line in the pyproject.toml: + +.. code-block:: toml + + [project.entry-points."hydromt.models"] + wflow = "hydromt_wflow.wflow:WflowModel" + + +This snippet will tell HydroMT core three things: + +1. there will be an api in the plugin we call "wflow" that HydroMT core can use +2. it is located in the file hydromt_wflow.wflow +3. it implements the ``hydromt.models`` API + +To make sure that your model is compatible with HydroMT core, you can use one of the model classes in HydroMT core as a base, (``grid``, ``mesh``, ``lumped`` or ``netowrk``). You can then use the base model class methods as well as create any functionality on top of that. If everything has gone well, you should be able to access your code through HydroMT now! If you want to mix models functionalities, most model classes also provide ``Mixin`` varients that you can use to mix and match a bit more modularly. Reading & Writing ^^^^^^^^^^^^^^^^^ -Here we will explain the model class and how the read/write functions work - +The ``DataAdapter`` is very useful for reading and writing data, but because the way that models consume data is so hyper specialised there is no real generic way to solve this entire problem. Therefore part of writing a plug in is writing the Input/Output (IO) methods to prepare data exactly as your model expects them. To do this you'll be writing most `read` or `write` methods on your model class. That will ensure that the data comes in and goes out expecting exactly as you would. Setup methods ^^^^^^^^^^^^^ -Here we will explain the setup methods +In general, a HydroMT model does 4 things: + +1. read or otherwise fetch data +2. fiddle with that data in some way +3. record attributes based on that data +4. write the attributes and data to whatever location is desired. + +The first and last point is what your IO functions will do (see previous paragraph). Point 2 & 3 is what your setup methods should do. They should be given data and be able to manipulate it in such a way that it can be written for a model to read and understand. This is again, highly dependant on what your model will need but hopefully you can get a long way with the building blocks and generic functionalieties already present in HyroMT. + + +Model Configs +^^^^^^^^^^^^^ + +Okay, so you have your data prepared, your plugin has all the functionalities needed for IO and setup. We're nearlly thare. The final bit that you'll have to do is write a model config file. This is a yaml file that is basically the final mannifest of how the functions you've written should be used. At the top level the model config keys should correspond to the names of the functions, and the mappings beneath that should be the arguments that should be passed to those functions. Note that the functions in the yaml file will be executed in the order they appear in the file, so be careful here! Using the template From ed46503f6c4e22b9256ce9f45f6207ecffe78600 Mon Sep 17 00:00:00 2001 From: Sam Vente Date: Fri, 21 Jul 2023 15:32:01 +0200 Subject: [PATCH 04/19] update changelog --- docs/changelog.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/changelog.rst b/docs/changelog.rst index d8a07cbfb..66fcb89b3 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -11,7 +11,8 @@ Unreleased Added ----- -- +- Added documentation for how to start your own plugin (#446) + Changed ------- From 8d29f0add6a49c1d7fc2721777227f3689909545 Mon Sep 17 00:00:00 2001 From: Sam Vente Date: Mon, 31 Jul 2023 11:14:55 +0200 Subject: [PATCH 05/19] add plugin to dev toc --- docs/dev/intro.rst | 1 + docs/getting_started/examples_index.rst | 5 +++++ docs/user_guide/intro.rst | 1 + 3 files changed, 7 insertions(+) diff --git a/docs/dev/intro.rst b/docs/dev/intro.rst index 49406ebe6..9af480308 100644 --- a/docs/dev/intro.rst +++ b/docs/dev/intro.rst @@ -13,3 +13,4 @@ Furthermore it informs you on recent and planned developments. contributing.rst dev_install.rst team.rst + plugin-quickstart.rst diff --git a/docs/getting_started/examples_index.rst b/docs/getting_started/examples_index.rst index d26e82adc..d30a73105 100644 --- a/docs/getting_started/examples_index.rst +++ b/docs/getting_started/examples_index.rst @@ -32,3 +32,8 @@ GIS operations: * `Working with raster data <../_examples/working_with_raster.ipynb>`_ * `Working with flow direction data <../_examples/working_with_flow_directions.ipynb>`_ + +Extreme Value Analysis: +*********************** + +* `Working with raster data <../_examples/doing_extreme_value_analysis.ipynb>`_ diff --git a/docs/user_guide/intro.rst b/docs/user_guide/intro.rst index 5fac8f10d..53f4d49c0 100644 --- a/docs/user_guide/intro.rst +++ b/docs/user_guide/intro.rst @@ -133,6 +133,7 @@ Region Argument of the *build* and *clip* CLI methods t ../_examples/reading_point_data.ipynb ../_examples/reading_tabular_data.ipynb ../_examples/working_with_tiled_raster_data.ipynb + ../_examples/doing_extreme_value_analysis.ipynb .. toctree:: :maxdepth: 2 From eb90136f00c6131933010381bebbffd1c1fed785 Mon Sep 17 00:00:00 2001 From: DirkEilander Date: Wed, 9 Aug 2023 13:09:32 +0200 Subject: [PATCH 06/19] Avoid RecursionError when using Model.set methods inside Model.read methods (#473) * initialize model components with None * improve tests; small fix in GridModel.write * update changelog --- docs/changelog.rst | 3 +- hydromt/models/model_api.py | 142 ++++++++++++++++++--------------- hydromt/models/model_grid.py | 21 ++--- hydromt/models/model_lumped.py | 19 ++--- tests/test_model.py | 31 ++++++- 5 files changed, 129 insertions(+), 87 deletions(-) diff --git a/docs/changelog.rst b/docs/changelog.rst index d51c9c3c0..ffaaa0297 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -21,7 +21,8 @@ Added Changed ------- - possibility to ``load`` the data in the model read_ functions for netcdf files (default for read_grid in r+ mode). (PR #460) -- +- Internal model components (e.g. `Models._maps`, `GridModel._grid``) are now initialized with None and should not be accessed directly, + call the corresponding model property (e.g. `Model.maps`, `GridModel.grid`) instead. (PR #473) Fixed ----- diff --git a/hydromt/models/model_api.py b/hydromt/models/model_api.py index be1b21083..e373a0200 100644 --- a/hydromt/models/model_api.py +++ b/hydromt/models/model_api.py @@ -107,17 +107,17 @@ def __init__( # placeholders # metadata maps that can be at different resolutions # TODO do we want read/write maps? - self._config = dict() # nested dictionary - self._maps = dict() # dictionary of xr.DataArray and/or xr.Dataset + self._config = None # nested dictionary + self._maps = None # dictionary of xr.DataArray and/or xr.Dataset # NOTE was staticgeoms in <=v0.5 - self._geoms = dict() # dictionary of gdp.GeoDataFrame - self._forcing = dict() # dictionary of xr.DataArray and/or xr.Dataset - self._states = dict() # dictionary of xr.DataArray and/or xr.Dataset - self._results = dict() # dictionary of xr.DataArray and/or xr.Dataset + self._geoms = None # dictionary of gdp.GeoDataFrame + self._forcing = None # dictionary of xr.DataArray and/or xr.Dataset + self._states = None # dictionary of xr.DataArray and/or xr.Dataset + self._results = None # dictionary of xr.DataArray and/or xr.Dataset # To be deprecated in future versions! - self._staticmaps = xr.Dataset() - self._staticgeoms = dict() + self._staticmaps = None + self._staticgeoms = None # file system self._root = "" @@ -448,7 +448,7 @@ def set_root(self, root: Optional[str], mode: Optional[str] = "w"): self._read = mode.startswith("r") self._write = mode != "r" self._overwrite = mode == "w+" - if root is not None: + if self._root is not None: if self._write: for name in self._FOLDERS: path = join(self._root, name) @@ -484,9 +484,8 @@ def set_root(self, root: Optional[str], mode: Optional[str] = "w"): log_level = h.level if hasattr(h, "baseFilename"): if dirname(h.baseFilename) != self._root: - self.logger.handlers.pop( - i - ).close() # remove handler and close file + # remove handler and close file + self.logger.handlers.pop(i).close() else: has_log_file = True break @@ -595,8 +594,10 @@ def write_data_catalog( @property def config(self) -> Dict[str, Union[Dict, str]]: """Model configuration. Returns a (nested) dictionary.""" - # initialize default config if in write-mode - if not self._config: + if self._config is None: + # initialize occurs in read_config + # model config if in read-mode and it exists + # default config if in write-mode self.read_config() return self._config @@ -625,7 +626,7 @@ def set_config(self, *args): value = args.pop(-1) if len(args) == 1 and "." in args[0]: args = args[0].split(".") + args[1:] - branch = self.config # reads config at first call + branch = self.config # trigger initialization / reads config at first call for key in args[:-1]: if key not in branch or not isinstance(branch[key], dict): branch[key] = {} @@ -698,7 +699,7 @@ def _configwrite(self, fn: str): def read_config(self, config_fn: Optional[str] = None): """Parse config from file. - If no config file found a default config file is read in writing mode. + If no config file found a default config file is returned in writing mode. """ prefix = "User defined" if config_fn is None: # prioritize user defined config path (new v0.4.1) @@ -758,8 +759,10 @@ def staticmaps(self): "versions. Use the grid property of the GridModel class instead.", DeprecationWarning, ) - if len(self._staticmaps) == 0 and self._read: - self.read_staticmaps() + if self._staticmaps is None: + self._staticmaps = xr.Dataset() + if self._read: + self.read_staticmaps() return self._staticmaps def set_staticmaps( @@ -800,7 +803,7 @@ def set_staticmaps( if isinstance(data, xr.DataArray): data.name = name data = data.to_dataset() - if len(self._staticmaps) == 0: # new data + if len(self.staticmaps) == 0: # new data / trigger read self._staticmaps = data else: if isinstance(data, np.ndarray): @@ -848,12 +851,12 @@ def write_staticmaps(self, fn: str = "staticmaps/staticmaps.nc", **kwargs) -> No Additional keyword arguments that are passed to the `write_nc` function. """ - if len(self._staticmaps) == 0: + if len(self.staticmaps) == 0: self.logger.debug("No staticmaps data found, skip writing.") else: self._assert_write_mode # write_nc requires dict - use dummy 'staticmaps' key - nc_dict = {"staticmaps": self._staticmaps} + nc_dict = {"staticmaps": self.staticmaps} self.write_nc(nc_dict, fn, **kwargs) # map files setup methods @@ -1014,8 +1017,10 @@ def setup_maps_from_raster_reclass( @property def maps(self) -> Dict[str, Union[xr.Dataset, xr.DataArray]]: """Model maps. Returns dict of xarray.DataArray or xarray.Dataset.""" - if len(self._maps) == 0 and self._read: - self.read_maps() + if self._maps is None: + self._maps = dict() + if self._read: + self.read_maps() return self._maps def set_maps( @@ -1041,7 +1046,7 @@ def set_maps( """ data_dict = _check_data(data, name, split_dataset) for name in data_dict: - if name in self.maps: + if name in self.maps: # trigger init / read self.logger.warning(f"Replacing result: {name}") self._maps[name] = data_dict[name] @@ -1061,8 +1066,7 @@ def read_maps(self, fn: str = "maps/*.nc", **kwargs) -> None: self._assert_read_mode ncs = self.read_nc(fn, **kwargs) for name, ds in ncs.items(): - data_dict = _check_data(ds, name=name, split_dataset=True) - self._maps[name] = data_dict[name] + self.set_maps(ds, name=name) def write_maps(self, fn="maps/{name}.nc", **kwargs) -> None: """Write maps to netcdf file at /. @@ -1078,11 +1082,11 @@ def write_maps(self, fn="maps/{name}.nc", **kwargs) -> None: Additional keyword arguments that are passed to the `write_nc` function. """ - if len(self._maps) == 0: + if len(self.maps) == 0: self.logger.debug("No maps data found, skip writing.") else: self._assert_write_mode - self.write_nc(self._maps, fn, **kwargs) + self.write_nc(self.maps, fn, **kwargs) # model geometry files @property @@ -1092,8 +1096,10 @@ def geoms(self) -> Dict[str, Union[gpd.GeoDataFrame, gpd.GeoSeries]]: Return dict of geopandas.GeoDataFrame or geopandas.GeoDataSeries ..NOTE: previously call staticgeoms. """ - if not self._geoms and self._read: - self.read_geoms() + if self._geoms is None: + self._geoms = dict() + if self._read: + self.read_geoms() return self._geoms def set_geoms(self, geom: Union[gpd.GeoDataFrame, gpd.GeoSeries], name: str): @@ -1112,7 +1118,7 @@ def set_geoms(self, geom: Union[gpd.GeoDataFrame, gpd.GeoSeries], name: str): "First parameter map(s) should be geopandas.GeoDataFrame" " or geopandas.GeoSeries" ) - if name in self.geoms: + if name in self.geoms: # trigger init / read self.logger.warning(f"Replacing geom: {name}") self._geoms[name] = geom @@ -1134,7 +1140,7 @@ def read_geoms(self, fn: str = "geoms/*.geojson", **kwargs) -> None: for fn in fns: name = basename(fn).split(".")[0] self.logger.debug(f"Reading model file {name}.") - self._geoms[name] = gpd.read_file(fn, **kwargs) + self.set_geoms(gpd.read_file(fn, **kwargs), name=name) def write_geoms(self, fn: str = "geoms/{name}.geojson", **kwargs) -> None: """Write model geometries to a vector file (by default GeoJSON) at /. @@ -1150,13 +1156,13 @@ def write_geoms(self, fn: str = "geoms/{name}.geojson", **kwargs) -> None: Additional keyword arguments that are passed to the `geopandas.to_file` function. """ - if len(self._geoms) == 0: + if len(self.geoms) == 0: self.logger.debug("No geoms data found, skip writing.") return self._assert_write_mode if "driver" not in kwargs: kwargs.update(driver="GeoJSON") # default - for name, gdf in self._geoms.items(): + for name, gdf in self.geoms.items(): if not isinstance(gdf, (gpd.GeoDataFrame, gpd.GeoSeries)) or len(gdf) == 0: self.logger.warning( f"{name} object of type {type(gdf).__name__} not recognized" @@ -1180,7 +1186,7 @@ def staticgeoms(self): " use geoms instead.", DeprecationWarning, ) - if not self._geoms and self._read: + if self._geoms is None and self._read: self.read_staticgeoms() self._staticgeoms = self._geoms return self._staticgeoms @@ -1228,8 +1234,10 @@ def write_staticgeoms(self): @property def forcing(self) -> Dict[str, Union[xr.Dataset, xr.DataArray]]: """Model forcing. Returns dict of xarray.DataArray or xarray.Dataset.""" - if not self._forcing and self._read: - self.read_forcing() + if self._forcing is None: + self._forcing = dict() + if self._read: + self.read_forcing() return self._forcing def set_forcing( @@ -1251,7 +1259,7 @@ def set_forcing( """ data_dict = _check_data(data, name, split_dataset) for name in data_dict: - if name in self.forcing: + if name in self.forcing: # trigger init / read self.logger.warning(f"Replacing forcing: {name}") self._forcing[name] = data_dict[name] @@ -1271,8 +1279,7 @@ def read_forcing(self, fn: str = "forcing/*.nc", **kwargs) -> None: self._assert_read_mode ncs = self.read_nc(fn, **kwargs) for name, ds in ncs.items(): - data_dict = _check_data(ds, name=name, split_dataset=True) - self._forcing[name] = data_dict[name] + self.set_forcing(ds, name=name) def write_forcing(self, fn="forcing/{name}.nc", **kwargs) -> None: """Write forcing to netcdf file at /. @@ -1288,18 +1295,20 @@ def write_forcing(self, fn="forcing/{name}.nc", **kwargs) -> None: Additional keyword arguments that are passed to the `write_nc` function. """ - if len(self._forcing) == 0: + if len(self.forcing) == 0: self.logger.debug("No forcing data found, skip writing.") else: self._assert_write_mode - self.write_nc(self._forcing, fn, **kwargs) + self.write_nc(self.forcing, fn, **kwargs) # model state files @property def states(self) -> Dict[str, Union[xr.Dataset, xr.DataArray]]: """Model states. Returns dict of xarray.DataArray or xarray.Dataset.""" - if not self._states and self._read: - self.read_states() + if self._states is None: + self._states = dict() + if self._read: + self.read_states() return self._states def set_states( @@ -1321,7 +1330,7 @@ def set_states( """ data_dict = _check_data(data, name, split_dataset) for name in data_dict: - if name in self.states: + if name in self.states: # trigger init / read self.logger.warning(f"Replacing state: {name}") self._states[name] = data_dict[name] @@ -1341,8 +1350,7 @@ def read_states(self, fn: str = "states/*.nc", **kwargs) -> None: self._assert_read_mode ncs = self.read_nc(fn, **kwargs) for name, ds in ncs.items(): - data_dict = _check_data(ds, name=name, split_dataset=True) - self._states[name] = data_dict[name] + self.set_states(ds, name=name, split_dataset=True) def write_states(self, fn="states/{name}.nc", **kwargs) -> None: """Write states to netcdf file at /. @@ -1358,19 +1366,21 @@ def write_states(self, fn="states/{name}.nc", **kwargs) -> None: Additional keyword arguments that are passed to the `write_nc` function. """ - if len(self._states) == 0: + if len(self.states) == 0: self.logger.debug("No states data found, skip writing.") else: self._assert_write_mode - self.write_nc(self._states, fn, **kwargs) + self.write_nc(self.states, fn, **kwargs) # model results files; NOTE we don't have a write_results method # (that's up to the model kernel) @property def results(self) -> Dict[str, Union[xr.Dataset, xr.DataArray]]: """Model results. Returns dict of xarray.DataArray or xarray.Dataset.""" - if not self._results and self._read: - self.read_results() + if self._results is None: + self._results = dict() + if self._read: + self.read_results() return self._results def set_results( @@ -1396,7 +1406,7 @@ def set_results( """ data_dict = _check_data(data, name, split_dataset) for name in data_dict: - if name in self.results: + if name in self.results: # trigger init / read self.logger.warning(f"Replacing result: {name}") self._results[name] = data_dict[name] @@ -1416,8 +1426,7 @@ def read_results(self, fn: str = "results/*.nc", **kwargs) -> None: self._assert_read_mode ncs = self.read_nc(fn, **kwargs) for name, ds in ncs.items(): - data_dict = _check_data(ds, name=name, split_dataset=True) - self._results[name] = data_dict[name] + self.set_results(ds, name=name) # general reader & writer def _cleanup(self, forceful_overwrite=False, max_close_attempts=2) -> List[str]: @@ -1600,7 +1609,7 @@ def read_nc( @property def crs(self) -> CRS: """Returns coordinate reference system embedded in region.""" - if len(self._staticmaps) > 0: + if len(self.staticmaps) > 0: return self.staticmaps.raster.crs else: return self.region.crs @@ -1612,7 +1621,7 @@ def set_crs(self, crs) -> None: " components instead.", DeprecationWarning, ) - if len(self._staticmaps) > 0: + if len(self.staticmaps) > 0: return self.staticmaps.raster.set_crs(crs) @property @@ -1621,7 +1630,7 @@ def dims(self) -> Tuple: ..NOTE: will be deprecated in future versions. """ - if len(self._staticmaps) > 0: + if len(self.staticmaps) > 0: return self.staticmaps.raster.dims @property @@ -1630,7 +1639,7 @@ def coords(self) -> Dict: ..NOTE: will be deprecated in future versions. """ - if len(self._staticmaps) > 0: + if len(self.staticmaps) > 0: return self.staticmaps.raster.coords @property @@ -1639,7 +1648,7 @@ def res(self) -> Tuple: ..NOTE: will be deprecated in future versions. """ - if len(self._staticmaps) > 0: + if len(self.staticmaps) > 0: return self.staticmaps.raster.res @property @@ -1648,7 +1657,7 @@ def transform(self): ..NOTE: will be deprecated in future versions. """ - if len(self._staticmaps) > 0: + if len(self.staticmaps) > 0: return self.staticmaps.raster.transform @property @@ -1657,7 +1666,7 @@ def width(self): ..NOTE: will be deprecated in future versions. """ - if len(self._staticmaps) > 0: + if len(self.staticmaps) > 0: return self.staticmaps.raster.width @property @@ -1666,7 +1675,7 @@ def height(self): ..NOTE: will be deprecated in future versions. """ - if len(self._staticmaps) > 0: + if len(self.staticmaps) > 0: return self.staticmaps.raster.height @property @@ -1675,13 +1684,16 @@ def shape(self) -> Tuple: ..NOTE: will be deprecated in future versions. """ - if len(self._staticmaps) > 0: + if len(self.staticmaps) > 0: return self.staticmaps.raster.shape @property def bounds(self) -> Tuple: - """Returns the bounding box of the model region.""" - if len(self._staticmaps) > 0: + """Returns the bounding box of the model region. + + ..NOTE: will be deprecated in future versions. + """ + if len(self.staticmaps) > 0: return self.staticmaps.raster.bounds else: return self.region.total_bounds diff --git a/hydromt/models/model_grid.py b/hydromt/models/model_grid.py index c6363b847..f42aa6230 100644 --- a/hydromt/models/model_grid.py +++ b/hydromt/models/model_grid.py @@ -28,7 +28,7 @@ class GridMixin(object): def __init__(self, *args, **kwargs) -> None: super().__init__(*args, **kwargs) - self._grid = xr.Dataset() + self._grid = None # xr.Dataset() # generic grid methods def setup_grid_from_constant( @@ -314,8 +314,10 @@ def setup_grid_from_geodataframe( @property def grid(self): """Model static gridded data as xarray.Dataset.""" - if len(self._grid) == 0 and self._read: - self.read_grid() + if self._grid is None: + self._grid = xr.Dataset() + if self._read: + self.read_grid() return self._grid def set_grid( @@ -353,11 +355,11 @@ def set_grid( elif not isinstance(data, xr.Dataset): raise ValueError(f"cannot set data of type {type(data).__name__}") # force read in r+ mode - if len(self.grid) == 0: # new data + if len(self.grid) == 0: # trigger init / read self._grid = data else: for dvar in data.data_vars: - if dvar in self._grid: + if dvar in self.grid: if self._read: self.logger.warning(f"Replacing grid map: {dvar}") self._grid[dvar] = data[dvar] @@ -380,8 +382,7 @@ def read_grid(self, fn: str = "grid/grid.nc", **kwargs) -> None: kwargs["load"] = True loaded_nc_files = self.read_nc(fn, single_var_as_array=False, **kwargs) for ds in loaded_nc_files.values(): - for dvar in ds.data_vars: - self._grid[dvar] = ds[dvar] + self.set_grid(ds) def write_grid( self, @@ -411,13 +412,13 @@ def write_grid( If True and gdal_compliant, forces the dataset to have South -> North orientation. """ - if len(self._grid) == 0: + if len(self.grid) == 0: self.logger.debug("No grid data found, skip writing.") else: self._assert_write_mode # write_nc requires dict - use dummy 'grid' key self.write_nc( - {"grid": self._grid}, + {"grid": self.grid}, fn, gdal_compliant=gdal_compliant, rename_dims=rename_dims, @@ -698,7 +699,7 @@ def read( def write( self, - components: List = ["config", "grid", "geoms", "forcing", "states"], + components: List = ["config", "maps", "grid", "geoms", "forcing", "states"], ) -> None: """Write the complete model schematization and configuration to model files. diff --git a/hydromt/models/model_lumped.py b/hydromt/models/model_lumped.py index f99cfa1fe..dd72a9f59 100644 --- a/hydromt/models/model_lumped.py +++ b/hydromt/models/model_lumped.py @@ -22,13 +22,15 @@ class LumpedMixin: def __init__(self, *args, **kwargs) -> None: super().__init__(*args, **kwargs) - self._response_units = xr.Dataset() + self._response_units = None # xr.Dataset() @property def response_units(self) -> xr.Dataset: """Model response unit (lumped) data. Returns xr.Dataset geometry coordinate.""" - if not self._response_units and self._read: - self.read_response_units() + if self._response_units is None: + self._response_units = xr.Dataset() + if self._read: + self.read_response_units() return self._response_units def set_response_units( @@ -53,9 +55,9 @@ def set_response_units( ) if name is None and name_required: raise ValueError(f"Unable to set {type(data).__name__} data without a name") - if isinstance(data, np.ndarray) and "geometry" in self._response_units: + if isinstance(data, np.ndarray) and "geometry" in self.response_units: # TODO: index name is hard coded. Using GeoDataset.index property once ready - index = self._response_units["index"] + index = self.response_units["index"] if data.size != index.size and data.ndim == 1: raise ValueError( "Size of data and number of response_units do not match" @@ -106,8 +108,7 @@ def read_response_units( ds = ds.assign_coords(geometry=(["index"], gdf["geometry"])) if gdf.crs is not None: # parse crs ds = ds.rio.write_crs(gdf.crs) - for dvar in ds.data_vars: - self._response_units[dvar] = ds[dvar] + self.set_response_units(ds) def write_response_units( self, @@ -134,12 +135,12 @@ def write_response_units( Additional keyword arguments that are passed to the `write_nc` function. """ - if len(self._response_units) == 0: + if len(self.response_units) == 0: self.logger.debug("No response_units data found, skip writing.") return self._assert_write_mode # write geometry - ds = self._response_units + ds = self.response_units gdf = gpd.GeoDataFrame(geometry=ds["geometry"].values, crs=ds.rio.crs) if not isdir(dirname(join(self.root, fn_geom))): os.makedirs(dirname(join(self.root, fn_geom))) diff --git a/tests/test_model.py b/tests/test_model.py index 0ed8fc5cf..a95d780c5 100644 --- a/tests/test_model.py +++ b/tests/test_model.py @@ -85,8 +85,8 @@ def test_check_data(demda): def test_model_api(grid_model): assert np.all(np.isin(["grid", "geoms"], list(grid_model.api.keys()))) # add some wrong data - grid_model._geoms.update({"wrong_geom": xr.Dataset()}) - grid_model._forcing.update({"test": gpd.GeoDataFrame()}) + grid_model.geoms.update({"wrong_geom": xr.Dataset()}) + grid_model.forcing.update({"test": gpd.GeoDataFrame()}) non_compliant = grid_model._test_model_api() assert non_compliant == ["geoms.wrong_geom", "forcing.test"] @@ -154,6 +154,33 @@ def test_model(model, tmpdir): assert np.all(model.region.total_bounds == model.staticmaps.raster.bounds) +def test_model_append(demda, tmpdir): + # write a model + demda.name = "dem" + mod = GridModel(mode="w", root=str(tmpdir)) + mod.set_config("test.data", "dem") + mod.set_grid(demda, name="dem") + mod.set_maps(demda, name="dem") + mod.set_forcing(demda, name="dem") + mod.set_states(demda, name="dem") + mod.set_geoms(demda.raster.box, name="dem") + mod.write() + # append to model and check if previous data is still there + mod1 = GridModel(mode="r+", root=str(tmpdir)) + mod1.set_config("test1.data", "dem") + assert mod1.get_config("test.data") == "dem" + mod1.set_grid(demda, name="dem1") + assert "dem" in mod1.grid + mod1.set_maps(demda, name="dem1") + assert "dem" in mod1.maps + mod1.set_forcing(demda, name="dem1") + assert "dem" in mod1.forcing + mod1.set_states(demda, name="dem1") + assert "dem" in mod1.states + mod1.set_geoms(demda.raster.box, name="dem1") + assert "dem" in mod1.geoms + + @pytest.mark.filterwarnings("ignore:The setup_basemaps") def test_model_build_update(tmpdir, demda, obsda): bbox = [12.05, 45.30, 12.85, 45.65] From 94ab7ebed3826061052fa885831e182f926f2b4f Mon Sep 17 00:00:00 2001 From: Sam Vente Date: Thu, 10 Aug 2023 13:00:24 +0200 Subject: [PATCH 07/19] remove deprecated dependency group and associated code (#467) * remove deprecated dependency group and associated code * update chagnelog --- docs/api.rst | 10 ---- docs/changelog.rst | 2 +- hydromt/__init__.py | 6 --- hydromt/_compat.py | 17 ------ hydromt/gis_utils.py | 120 +------------------------------------------ hydromt/raster.py | 74 ++++++++++---------------- pyproject.toml | 4 -- tests/conftest.py | 3 -- tests/test_io.py | 27 ---------- 9 files changed, 30 insertions(+), 233 deletions(-) diff --git a/docs/api.rst b/docs/api.rst index 93daa220a..1344745bb 100644 --- a/docs/api.rst +++ b/docs/api.rst @@ -780,16 +780,6 @@ Vector gis_utils.nearest_merge -PCRaster I/O -============ - -.. autosummary:: - :toctree: _generated - - gis_utils.write_map - gis_utils.write_clone - - .. _statistics: ===================================== diff --git a/docs/changelog.rst b/docs/changelog.rst index ffaaa0297..0fba00743 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -31,7 +31,7 @@ Fixed Deprecated ---------- -- +- the dependencies ``pcraster`` and ``pygeos`` are no longer used and were removed. (PR #467) v0.8.0 (2023-07-18) diff --git a/hydromt/__init__.py b/hydromt/__init__.py index 6be7ef6b9..6dd041048 100644 --- a/hydromt/__init__.py +++ b/hydromt/__init__.py @@ -3,12 +3,6 @@ # version number without 'v' at start __version__ = "0.8.1.dev0" -# Set environment variables (this will be temporary) -# to use shapely 2.0 in favor of pygeos (if installed) -import os - -os.environ["USE_PYGEOS"] = "0" - # pkg_resource deprication warnings originate from dependencies # so silence them for now import warnings diff --git a/hydromt/_compat.py b/hydromt/_compat.py index a4db3e952..bc30b9848 100644 --- a/hydromt/_compat.py +++ b/hydromt/_compat.py @@ -3,10 +3,8 @@ __all__ = [] HAS_XUGRID = False -HAS_PCRASTER = False HAS_SHAPELY20 = False HAS_PYET = False -HAS_PYGEOS = False HAS_GCSFS = False HAS_S3FS = False HAS_OPENPYXL = False @@ -26,21 +24,6 @@ except ImportError: False -try: - import pygeos - - HAS_PYGEOS = True -except ImportError: - pass - -try: - import pcraster - - HAS_PCRASTER = True -except ImportError: - pass - - try: import xugrid diff --git a/hydromt/gis_utils.py b/hydromt/gis_utils.py index 7973b5067..d90ae387b 100644 --- a/hydromt/gis_utils.py +++ b/hydromt/gis_utils.py @@ -6,14 +6,12 @@ import logging import os import subprocess -from os.path import dirname, isfile, join +from os.path import dirname, join from typing import Optional, Tuple import geopandas as gpd import numpy as np -import rasterio import xarray as xr -from pyflwdir import core_conversion, core_d8, core_ldd from pyflwdir import gis_utils as gis from pyproj import CRS from rasterio.transform import Affine @@ -76,7 +74,6 @@ "jpg": "JPEG", "kro": "KRO", "lcp": "LCP", - "map": "PCRaster", "mbtiles": "MBTiles", "mpr/mpl": "ILWIS", "ntf": "NITF", @@ -498,121 +495,6 @@ def spread2d( return ds_out -## PCRASTER - - -def write_clone(tmpdir, gdal_transform, wkt_projection, shape): - """Write pcraster clone file to a tmpdir using gdal.""" - from osgeo import gdal - - gdal.AllRegister() - driver1 = gdal.GetDriverByName("GTiff") - driver2 = gdal.GetDriverByName("PCRaster") - fn = join(tmpdir, "clone.map") - # create temp tif file - fn_temp = join(tmpdir, "clone.tif") - TempDataset = driver1.Create(fn_temp, shape[1], shape[0], 1, gdal.GDT_Float32) - TempDataset.SetGeoTransform(gdal_transform) - if wkt_projection is not None: - TempDataset.SetProjection(wkt_projection) - # TODO set csr - # copy to pcraster format - driver2.CreateCopy(fn, TempDataset, 0) - # close and cleanup - TempDataset = None - return fn - - -def write_map( - data, - raster_path, - nodata, - transform, - crs=None, - clone_path=None, - pcr_vs="scalar", - **kwargs, -): - """Write pcraster map files using pcr.report functionality. - - A PCRaster clone map is written to a temporary directory if not provided. - For PCRaster types see https://www.gdal.org/frmt_various.html#PCRaster - - Parameters - ---------- - data : ndarray - Raster data - raster_path : str - Path to output map - nodata : int, float - no data value - transform : affine transform - Two dimensional affine transform for 2D linear mapping - clone_path : str, optional - Path to PCRaster clone map, by default None - pcr_vs : str, optional - pcraster type, by default "scalar" - **kwargs: - not used in this function, mainly here for compatability reasons. - crs: - The coordinate reference system of the data. - - - Raises - ------ - ImportError - pcraster package is required - ValueError - if invalid ldd - """ - if not _compat.HAS_PCRASTER: - raise ImportError("The pcraster package is required to write map files") - import tempfile - - import pcraster as pcr - - with tempfile.TemporaryDirectory() as tmpdir: - # deal with pcr clone map - if clone_path is None: - clone_path = write_clone( - tmpdir, - gdal_transform=transform.to_gdal(), - wkt_projection=None if crs is None else CRS.from_user_input(crs).wkt, - shape=data.shape, - ) - elif not isfile(clone_path): - raise IOError(f'clone_path: "{clone_path}" does not exist') - pcr.setclone(clone_path) - if nodata is None and pcr_vs != "ldd": - raise ValueError("nodata value required to write PCR map") - # write to pcrmap - if pcr_vs == "ldd": - # if d8 convert to ldd - data = data.astype(np.uint8) # force dtype - if core_d8.isvalid(data): - data = core_conversion.d8_to_ldd(data) - elif not core_ldd.isvalid(data): - raise ValueError("LDD data not understood") - mv = int(core_ldd._mv) - ldd = pcr.numpy2pcr(pcr.Ldd, data.astype(int), mv) - # make sure it is pcr sound - # NOTE this should not be necessary - pcrmap = pcr.lddrepair(ldd) - elif pcr_vs == "bool": - pcrmap = pcr.numpy2pcr(pcr.Boolean, data.astype(bool), np.bool_(nodata)) - elif pcr_vs == "scalar": - pcrmap = pcr.numpy2pcr(pcr.Scalar, data.astype(float), float(nodata)) - elif pcr_vs == "ordinal": - pcrmap = pcr.numpy2pcr(pcr.Ordinal, data.astype(int), int(nodata)) - elif pcr_vs == "nominal": - pcrmap = pcr.numpy2pcr(pcr.Nominal, data.astype(int), int(nodata)) - pcr.report(pcrmap, raster_path) - # set crs (pcrmap ignores this info from clone ??) - if crs is not None: - with rasterio.open(raster_path, "r+") as dst: - dst.crs = crs - - def create_vrt( vrt_path: str, file_list_path: str = None, diff --git a/hydromt/raster.py b/hydromt/raster.py index 6e4bfc057..308f36f03 100644 --- a/hydromt/raster.py +++ b/hydromt/raster.py @@ -12,7 +12,7 @@ import os import tempfile from itertools import product -from os.path import basename, dirname, isdir, join +from os.path import isdir, join from typing import Any, Optional, Union import dask @@ -2311,53 +2311,35 @@ def to_raster( count = da_out[dim0].size da_out = da_out.sortby(dim0) # write - if driver.lower() == "pcraster" and _compat.HAS_PCRASTER: - for i in range(count): - if dim0: - bname = basename(raster_path).split(".")[0] - bname = f"{bname[:8]:8s}".replace(" ", "0") - raster_path = join(dirname(raster_path), f"{bname}.{i+1:03d}") - data = da_out.isel({dim0: i}).load().squeeze().data + profile = dict( + driver=driver, + height=da_out.raster.height, + width=da_out.raster.width, + count=count, + dtype=str(da_out.dtype), + crs=da_out.raster.crs, + transform=da_out.raster.transform, + nodata=nodata, + **profile_kwargs, + ) + with rasterio.open(raster_path, "w", **profile) as dst: + if windowed: + window_iter = dst.block_windows(1) + else: + window_iter = [(None, None)] + for _, window in window_iter: + if window is not None: + row_slice, col_slice = window.toslices() + sel = {self.x_dim: col_slice, self.y_dim: row_slice} + data = da_out.isel(sel).load().values else: - data = da_out.load().data - gis_utils.write_map( - data, - raster_path, - crs=da_out.raster.crs, - transform=da_out.raster.transform, - nodata=nodata, - **profile_kwargs, - ) - else: - profile = dict( - driver=driver, - height=da_out.raster.height, - width=da_out.raster.width, - count=count, - dtype=str(da_out.dtype), - crs=da_out.raster.crs, - transform=da_out.raster.transform, - nodata=nodata, - **profile_kwargs, - ) - with rasterio.open(raster_path, "w", **profile) as dst: - if windowed: - window_iter = dst.block_windows(1) + data = da_out.load().values + if data.ndim == 2: + dst.write(data, 1, window=window) else: - window_iter = [(None, None)] - for _, window in window_iter: - if window is not None: - row_slice, col_slice = window.toslices() - sel = {self.x_dim: col_slice, self.y_dim: row_slice} - data = da_out.isel(sel).load().values - else: - data = da_out.load().values - if data.ndim == 2: - dst.write(data, 1, window=window) - else: - dst.write(data, window=window) - if tags is not None: - dst.update_tags(**tags) + dst.write(data, window=window) + if tags is not None: + dst.update_tags(**tags) def vectorize(self, connectivity=8): """Return geometry of grouped pixels with the same value in a DataArray object. diff --git a/pyproject.toml b/pyproject.toml index d46a9f6c2..e2a45be10 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -87,10 +87,6 @@ examples = [ "matplotlib-base", # plotting "notebook", # jupyter integration ] -deprecated = [ - "pcraster", # Old Wflow model was build on this - "pygeos", # Supersceded by shapely 2 -] full = ["hydromt[io,extra,dev,test,doc,examples]"] slim = ["hydromt[io,extra,examples]"] diff --git a/tests/conftest.py b/tests/conftest.py index 1cfe53bb6..a5b21c8f8 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,6 +1,3 @@ -import os - -os.environ["USE_PYGEOS"] = "0" import geopandas as gpd import numpy as np import pandas as pd diff --git a/tests/test_io.py b/tests/test_io.py index 00a1af4b2..9bc762f05 100644 --- a/tests/test_io.py +++ b/tests/test_io.py @@ -206,30 +206,3 @@ def test_rasterio_errors(tmpdir, rioda): da0.raster.to_raster(str(tmpdir.join("test2.tif")), count=3) with pytest.raises(ValueError, match="Extension unknown for driver"): da0.to_dataset().raster.to_mapstack(root=str(tmpdir), driver="unknown") - - -@pytest.mark.skipif(not _compat.HAS_PCRASTER, reason="PCRaster not installed.") -def test_io_pcr(tmpdir): - # test write ldd with clone - da = raster.full_from_transform( - [0.5, 0.0, 3.0, 0.0, -0.5, -9.0], (4, 6), nodata=247, dtype=np.uint8, name="ldd" - ) - fn_ldd = str(tmpdir.join("test_ldd.map")) - da.raster.to_raster(fn_ldd, driver="PCRaster", pcr_vs="ldd") - assert os.path.isfile(fn_ldd) - # test ordinal - da.raster.to_raster(fn_ldd, driver="PCRaster", pcr_vs="ordinal", clone_path=fn_ldd) - assert os.path.isfile(fn_ldd) - da.expand_dims("time").raster.to_raster( - tmpdir.join("testldd.map"), driver="PCRaster" - ) - assert os.path.isfile(tmpdir.join("testldd0.001")) - ds_in = hydromt.open_mfraster( - str(tmpdir.join("testldd*")), concat=True, mask_nodata=True - ) - assert "dim0" in ds_in.coords - # mapstack - prefix = "test_" - root = str(tmpdir) - assert np.all([np.isnan(ds_in[n].raster.nodata) for n in ds_in.raster.vars]) - ds_in.raster.to_mapstack(join(root, "pcr"), prefix=prefix, driver="PCRaster") From cd173abe3a200776b81718f21cd2a57bfd19b01c Mon Sep 17 00:00:00 2001 From: hboisgon Date: Thu, 24 Aug 2023 16:25:11 +0800 Subject: [PATCH 08/19] review eva notebook --- docs/getting_started/examples_index.rst | 4 ++-- docs/user_guide/intro.rst | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/getting_started/examples_index.rst b/docs/getting_started/examples_index.rst index d30a73105..d1779087b 100644 --- a/docs/getting_started/examples_index.rst +++ b/docs/getting_started/examples_index.rst @@ -33,7 +33,7 @@ GIS operations: * `Working with raster data <../_examples/working_with_raster.ipynb>`_ * `Working with flow direction data <../_examples/working_with_flow_directions.ipynb>`_ -Extreme Value Analysis: +Statistical Analysis: *********************** -* `Working with raster data <../_examples/doing_extreme_value_analysis.ipynb>`_ +* `Extreme Value Analysis <../_examples/doing_extreme_value_analysis.ipynb>`_ diff --git a/docs/user_guide/intro.rst b/docs/user_guide/intro.rst index 53f4d49c0..ba99646c5 100644 --- a/docs/user_guide/intro.rst +++ b/docs/user_guide/intro.rst @@ -133,7 +133,6 @@ Region Argument of the *build* and *clip* CLI methods t ../_examples/reading_point_data.ipynb ../_examples/reading_tabular_data.ipynb ../_examples/working_with_tiled_raster_data.ipynb - ../_examples/doing_extreme_value_analysis.ipynb .. toctree:: :maxdepth: 2 @@ -160,3 +159,4 @@ Region Argument of the *build* and *clip* CLI methods t ../_examples/working_with_raster.ipynb ../_examples/working_with_geodatasets.ipynb ../_examples/working_with_flow_directions.ipynb + ../_examples/doing_extreme_value_analysis.ipynb From 9b55a75ed9e18b2344648127e037d62abaf5b9b8 Mon Sep 17 00:00:00 2001 From: Sam Vente Date: Wed, 30 Aug 2023 13:27:04 +0200 Subject: [PATCH 09/19] update links to plugin template to reflect transfer --- docs/dev/plugin-quickstart.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/dev/plugin-quickstart.rst b/docs/dev/plugin-quickstart.rst index e4b8b586d..5ac0c124f 100644 --- a/docs/dev/plugin-quickstart.rst +++ b/docs/dev/plugin-quickstart.rst @@ -55,7 +55,7 @@ Using the template ^^^^^^^^^^^^^^^^^^ To make it easier to get started we have provided a `cookiecutter `_ template to help you get started. -The template itself is located at `https://github.com/savente93/hydromt-plugin-template `. +The template itself is located at `https://github.com/Deltares/hydromt-plugin-template `. To use it you must first install cookiecutter itself like so: @@ -68,7 +68,7 @@ following command: .. code-block:: console - $ cookiecutter https://github.com/savente93/hydromt-plugin-template + $ cookiecutter https://github.com/Deltares/hydromt-plugin-template You will be prompted for some information. After you've entered the information the project should be automatically created for you! Let's say you just created the plugin called `hydromt_plugin` before you can start using it you'll need to initialise git within it like so: From 3053a09728055974892816dc62a41ae9b7899837 Mon Sep 17 00:00:00 2001 From: hboisgon Date: Fri, 1 Sep 2023 16:47:35 +0800 Subject: [PATCH 10/19] add more doc on plugin development --- docs/_static/model_building_process.png | Bin 0 -> 499722 bytes docs/_static/plugin_structure.png | Bin 0 -> 76118 bytes docs/api.rst | 15 +- docs/dev/plugin-quickstart.rst | 896 +++++++++++++++++++++++- docs/plugins.rst | 9 + 5 files changed, 881 insertions(+), 39 deletions(-) create mode 100644 docs/_static/model_building_process.png create mode 100644 docs/_static/plugin_structure.png diff --git a/docs/_static/model_building_process.png b/docs/_static/model_building_process.png new file mode 100644 index 0000000000000000000000000000000000000000..4053fd1a22d2fd91acae72e89718e2eff35de937 GIT binary patch literal 499722 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

y+7N|8E$tViP4sS zPd`lb{bYRfC%ftSN0}^!Q7_p}huey93-U%XO3rn=0X2UWXF5|(-}pm5LxHvPL?<&T zt4UpuXel>O4Xl~n!U;J^sWs62a#yP7AV&yo7@@MW5MOn3kENgUW@x#LD%QjAKB1SB z38)dBo5SOYI8;O-z*FKhU z`Z@LZZfGapZ-tQgDq?-jx6$@|N36_^UCC@hK|#BvVX7WUte#WfKK)? z;5%9b5{4h-zF5W6X91GA=U{Y1uTzmlTYrvUQ>7boj=Yz{IJ;}4we)6`$LIu z8OOEM;dn)giO&qS_iuQ6^iFTDpSf-i;!xklnW&Z2PqyfrI zjj#*9JyyY z?7VKN_@WOvaKjHuq-~F%%umN!Z$EfL?ceNoJ}x%zX0a003ZbH5~`e z<5D&k3amq%+FYUZ)332agYHnF)RTMeQe24lk+O!t@Op_HM>+={wq2C!st^OjuDHp%6XuzXk; z!a#0wR6&~ja@rj6{-p5Id3a$}K6Pt8(RdfR`fJz{tP9??Z&#lWogLJv2iH*ipD1hQ z^=3~EZ)U3r1MU@&K$yWK14GG^b0C~ibuJ|s`P!vNV`*uLIEr!cH^~UfyfrI7M;^Nq zJA?hFMwow-kMaCkTbip-LRIQ~#OF6p*tG+0OqgPl#G68iwrAFd852n4tA{Ofz3c7F zi&$rLTNz`o z(IN}2kzHa=*NBNPdiQXcp>H< zc%{Qs?PUC=-t^K;p2x!=P3o4S?B&69e;-mJJ&dw?S$u|gmy-d?K3BUtW7Gm&gO37j#m^SNkKyTRq4b8zaok>H@?}IdeK}V(C9_EnW&3j*$!jO;wYTne z*RFs}jA|nGNV?BQE_d?9=<{E%cf>gq+b}I;DV(YAwG4XSx-;>~pOr)OV=_2(A@Dy| zx;X$1PFS&tFm4fc;X<4(MAf$4IiPis*x|5E{n)tmL1@R+uEf8KCOiBc6odqWch}5o zJ4)RQ^*zfN3ir=qR5eK?)vMolBH5G_+%*Fc+MrV{{QV6|7_HPzw8QfZ)>I7O>II2uj#tj-iYO>AsCWcn7U&XJ8Dshc=QbQRbp}xHHKl5E2g`zHr=;efhHGXm_ zC%u-nLDW%yEkIo5W@F76Lg=|`{Cs8-dEKKor}K57DqSGC=XK#NF4{c^&H=A@t4O=O z&)>S7pvL6Focnnr*wkoN=I|d3@0`*t$08wd2b!KbVZH^IHeWWwnnh& zdg*yN*7SP=qPP&OrvCVAwOVzJ?P)7Hsm|?1iUFcq9!m!B*ResG|6t#xzNtM~E5}6@ z`r>^GdQu}9+g%T+L`OtAE9i;p|A0u4CK_?Fn;mW1<*?FVYAec@hDk(*jiiidOM9kw zQ6RI(j??iw7OIS2y!ZF0=E~EEt}9!_IaCN9EbA4;YQ&eF=Vsr~n~9)Ag{Pi|rs!1f z$Tc2={K)mO{I9zDETnPSTz~-N)l~No_#nPLPVCLA9qwCtGlmR(7jtqZO4UvRJPXLs ziI-;YqUiYCJxu!jwOO*e>;}IN_N@1^pa!nFMlNEeI@L2g7y6JPM^r1J)@-ud=5i_& zE`j4d1D`cm%5=xqa?0HOe~3_0Dj|9me};JpkR8|mqWtZu zK;Q56s_{dzOI_iU`CLni%kHGld)K7t$}T7s2V}hjp(=6X$_?wW z1!fW`agg#ArpkSnwvO+2L`vvwg?y)aO!YN2pP*_KAT_ZY%YuG>DcozqO<>^syumBN zR`fMl{8ns&SMKXnAJu0ghCWmp?>embh<^`XxLtM|=P3Ghi*cs8XN;dA?;wl3I~U-X zL{H<{f(D;1TKF)3qXE3IzU^1PmaLul@CI-FapRKweTg@VJy^Ie?&J9I%9TXJTd{Ox zC6x2Dt?E)Qbt&=olsj{QkA?2_8HMCh%?)_($soRy#sD5h!hXLo_!sO;#&C~*g48fJ zJaR7h(L>M2LyA43NUhB;r@cb2@b#M$lMFP-gR^HPjv0LuD$NA^cj5!#=}ZYD42wAv z=_f7E@Y@^*(fML)4O_Z`%eRFiKzq~n)(q7@ed5d@#ggVVyLXa)udgQ>vVM&NW46)` zL3Zju`vl;+mTMY^y;IU!eud&rvuKo#hkA@$h5nPY&DcX{9;g^89h6o7c+%L7o2TID z3vG5;!G%=~&K8`3L(O11lsevR=5Jug{Ct~0YD=ulGANf6p$zYXWL_RspB$|Ck9_sd zInz=gFV-r1v5d{agz0R``B&yuIT{*XD_L1!9v53@J9-O>EWdq}-TgP{IS@#^KD!mp zk5OS8p;8i2G};a=&$GW?UcwDZR~ zi47q8D8!L4c2sEBmwn$B<=M3`IO}G4v7<^f%&fT$o+{(|8uimWam$X8YzlcAcC$)v ztx_TM-^fkob@U-B}I-6z-3bbBxu0Z))a|hve(AoOS|IKt}?nOFD3LY z+WQ`kTf(x_J+?>@bxp@dG;-il}}E8 z0es6r{RdE-$70ry!_?IucDx=p1>NbPx;hKQ;&U~0(_+h<{$MvpYcI_Pg18<0j=wft zXrHY!+P>d6ouf!?DrQaayMkh zCi<*Sj`od5Ql&>4JI2d#c@hpIN2RU9Dw*(pYx8eS;J6V~Vn6wA5=8R5i4B<`0pI82az-$&)~LZ{W}v)YR5iXcf#O_xn^r8pd1)s++r@4@i+=cu_CLo$&0* zMYk(l4bFl3vzN24Ns0_#m`&Jw#p#+>F#SCAra3er|D@Ws+qcE+4r3J})sdZrxst`( zZ9+5QurNi+G(qS>(EW)=V;6Rw4gI=$LFi&#=bL~-DV=$`7gN`c^Ab9WOKyJ-49*Kq z51*Qp-s7b9(RkC1j}Fo2R1mMbsS%FR=3$Nz^x_f97Hqly@{!e*cKrvbvnzZFDc<}| zOC1%px>#TxmhXI2eX~Qv;mJpzHNsaITlNi|VATA!DLg|a;kOEWF z0}Ym1W<#;s1XiJodKut&QE1uIB1cH0Z~60e1qF4R=ie54Uh--W1e&lw#9*#XW8Te| zwm_#dp?T{(B`xdCO;Funfp3IF6}>37q)TD>;qL>)a{mXwB5gf7;LQC*oP>x!68+}~ zyjt60Gh-CnoX+Fi#%GZGI*i1{jGmnE7u*xwA-|o;p;uJixghrkj6v6$UhrAnH=hg( zw0&|ii_Q4up+1o_{7u*DM&1-9J?BUw?7}5|5-w*W;33uxD3kW2J?VV|OOXHf+?Z`n z&o!#46tmx3t<2p}b&_loWIden!TAfyfl%i-gs{I4dOK00Aib+)^n3U0zw1Hpsk5p6 z=Tl$CdaJ_}T|_INhPxztqao_Hif}ypS%jIFwg%oX&qcIMyXuG6cCWg+VC8Rs{#rZ0 z!mw}0?QqsS-SVd(S^7@ku1YhB4Qw7$L#rN+T9B|dP`-w{8v_qYIe)+r=`i+96t%E4|MS5W|NZHYO27hmFi%lSpVopNVG3w()M&GLH?T%LOriL1 zsVma6`=DA(aQ0XMj9c!P-#`7WjVw9=mk;sR@8neQcJ@7@LuvRT)_?*04273JZ)7vtmDpD(gDFQ|%tEZzMh z1xO++sc!WPW?DBd99h=MQllH|Sb6;4vdI>O(IR=Z4laG-P@&^YCI9p46f<|}{LqJl z5EEGvh|(0y;EgAx7(EwzGHO^v4cjU{%s>CdXhjO8#w>)3)w+9vE__WpzZ2|a52po8&_|Fw=BJZqlrd`OT6JF++QsK8o zrM9CX;Jdw)z5|Z`tMjjnYgU;Uq9*X zS3T1vDY4wv;NTt8PQ=iD>n|ev(3RN$2by@- zy@73_Ur;M`?+*XT_EJCIcCzx9>@a`drT)B*{>ZCAZAl}b6TYI6AiPuo%rTO?MUD*r z?NyBr>bhTN-IpEe(q&bbU(!5;1T=S$;_NY&Z}ynJLgRe(aqF(;D7wkG+N_bR>v^7}*5d^%B z5!N6f&v!M>y-xoxzALDWs_qOYf@qpM7$p9OtG}q5>^q%gE<8L7exIG1h0bINClG4! zFetTM>i!t|#xVSWK-jEN#=q-*P|#llWPe8AE3iJiNQsphHKW-;rW8K?-+!|$cyR;Q zn!hu9Jod}xP_X4%SbAA^>)M5x-(SSkRm;mdDu2)>$}hj;ce{ghwR~DOi29!LWJR~C zaT%M~X!o4m=I-HTnC_F*7xSn#-3iZ!ze*o|cDnxzF*!y^vqfwlkRF~f_HQ9Bn>i1Y zi_jz@kzBI79Aa1!FsQyK!&9iAXSja=o@me97gf8z)_=Wp23Cm|U~TU;2W728LMvb} z-%h1iOmYDrJ%1diET#;LUfv%DZ*Tn4zRwC8_slxw3B)P09CY9Ge^mZ_<-P0-o==B3 z{lrW2sH;}4Gl0I3l4*+MNMYc|{n30(w1`BEjYaRvi#&)qMO9KF1~KGF(dp5wS-rTq z3iplKygBt3I@(X~2wv}yf0lSBxpTh+4-^lTBzQ>UN$T?5g#^&e$?2@#2mZIYEPL*3oG9P*@31oN2b0k>##!t~3 z586jT-nQZC)9z)k!^zgFBhnljsedrKe(z6GGGUi_bCri&ptTYYh|1I4Iza!aYo_R$v~RS?zDe!Iwl2Ij*HWeJG;o&LAEeS0@zV%L(;4IgOAS-28mDf*1z|nPi+8)71g*NvpaWu2#5$zVY_`2DQHK))@+H$30*(I3c8R;i75uN z!jYaQ?hM6B>m=qRqEdb~L;wo(WGUyEvCRvo(IAXk`3i)(#%&|Fe@-nfHhV>J6}jy> zcK4S3`X|$UL)NcL^6wVYK*_^-2khoGwY3(-t1Z|f@dIb)=fikyM5&Z07~<&O@YYuwGe%;r0DiC8OE7&zBm$!u96INhP&6!YFb;A zuG^yZY@&ZD>@_ez`(VsN;@9n6uV7k&0>|yE?Bp;<0BYaR$o-<>xe(UZhqtt}M80X` z3%2E(0$V?=$PdwuEHS)D*~Bg1BSzgHnW=-JAz!@@`qM2X?2+ILz~J{YXIDjTO%*iw zALLX0CEh_M;`-Oug^Z>I65B#NSjkU+Gld{Vmckx=_Pd5itiD#~ogmRIW$pyBwJ^19 z+`A{0MfVgwcXlSvwPHx^f{nGgr}5dMK#kZ00|ou$94O-vrt`m}!h{mC2X(uF$PO#L zl3UE&gF1R?4q4^AZTnjh>b1N0_{t*S0=~F*2j^wg+d7J6l8cD!V;v-wga+=Dpj7F}5Iz(KJ42k7R} zo1+I4!*d=OdE%4%(myyhuKOr8Lw=TZa z)p#07(~-r*&uyoTC4pkh6s`wqPmU(}JOCkWL+-uT#FMv$IrF#M0Zam?7bUS(Tf!l( zlT~g!(_2|6Q1;jA$mu>glGj}8u)JPp-8yEi3rs=^-`gv5f0w*#UmN;4?n9C?+I+3^ z2DGs*Rd`sH<9c}w5ChK zjg3x>mm}>t$DY4h1oaE^*ci3O5m#<{_50{Hp1EY3l`l)3&w%6k;DQ|4vk{~5dY{2# zkTxR7?H1fOb+AR}(q8j+^;8J$eVJPg)`xV*TCMX!1@wQJlJK&AZ5YmZw2 z>4k~al3BW8lVHZTv^(y=Lj*aBnwUS)7_W%dnibMvz|T3=sf8_^v7ahO7&TK@vDV=* z&mFyUdq!uUVE4Sjc_hhaFT|Bw)Q&nljK+h0j7+~8Zt9G3bw!l+wQYImueJgQLM2Jf zU?K0KYV9${|A04PS}pB>Px!jM>b+#fk{^|+gOP9(dXNa71kJmhTzkK6(0rManh9W< z7zqY418u$HhQKaas(yLkx`=+{KJ?70t5rE9nwVI3WFgq9ak*3h6I>8{kfYhR(kqZlbeVfv>NUA_lW5BEFC$2}!)L^)tlhUb+kjE8-7}`n~r<_x6EX3t_r- ztMygfSoAfkJ?uoHVG$CwMXjS!|K= zO({i>63e%EZkn9ouzfIa#Z?U!iit~dNSe8|=RPqUyy0o~@rl4OMTfOb>rY#>iEen{ z(<%Yo+=ru}Lf}@C-NLpoowtY%Gl4(dCf@$vZ73AF3vltWGa3w+dui%r`F-;E#wAMf)BcLq>Y)YyYY9p_fz zxJ{Ase^aV_y)`1|_7M0JGmc+k4~LKnu=2~VG+1=to@s>C#d%;F~p#`40xs4x~m9(r#uVU^zC7Iy>xx@<+-0#1zQ zuqijBM=cfo=F(nEgSKP{MHVVYNn;6+c4GdlIi} zB(sPUOlStYV@OZS#u+&Yy;a}%H-U#wtud-K$Ar@pg7c>QYDs^BTBu|whFJ?hhSoN# zrgOoGK77hSDhU#Wau)N?AP2YB9;5|T+`z!~j6!EZ_Y?GB81&vu^@UT>NZV>9$4olj zwOmL>qth##FFEBbpXulHVyR*oTZDGiPk7-h9XcHhuJiT`J=!1_fohJOt^9ZQXT#E3 zR_-V!OAwbS1GxqZUMCNFXz1T$-Uez0cT@kE#OH@gy%=%<%#gdh6nNRw2IZHM7}mLc zh>R)<3ks*4)YfTNWUY>QfCPGNgs$&&3P{)*fvswHb}ZQnRne13olj=_j+e`VpMFc; ztRR})sTE5a4{e|J)Hq|^agn}y-8<-p%#Y4>0F@``5?~_Ovqy#JPGF#XJ)JPtzKj{I z@g$l#2uu_k*CF@oj^@P@16P=AwsLcG8NN9ffB9s%_KF7Tx>r5~^&eSx?YcAkaHo}V z0<^+$Z;8jhWO1_M^mW1ggyj)Fn4O7@(XbfFSgg5iLGz;nW`kw?ghCd$3%(`n%5^X^ubw$`x_w_o>B;{uLcFd_sv-bWT5Yvu9CLg$ zwopR@in%awV{$6kZ*cyvD|qC8giY80ZP+=$HF9r*$GQ?8APpK+ERuF(Z&>-scs>C( zf1jZsKqW4;-AX%#p(4Z){@TngMAi6-940d}Q;SN{=#z5lKWH&xVGnYF|2f|ulhEaK zA`taXgtVzV=aGDf8ejej0$t^V{&Pd+8czA#@$`>d!BOP!a_aw>0)&J2Kdqe;H>^E$ zd7HIaxSk5$gYA}s;WdL0xTz^uNc6drNJ*>|7J7KY;f~oS5L(D^4cu>$4YuH$ zt{hCi+GR<95TmWZGo2Jzp!ixL?UJQxdj**P4i{RMo)kB-i?3{QpCqvEg#DMXkNB>=}&8AuqC;3d^mNAgqi!j#g9ayZ->5AR#`-jmaegP zd)41b(T6He@idmWwX^`qAdbI6p5qme2RBNGI>~K_`rs*0(fd0jDv|pVCbsZn!8hJA zaHQtp2HjeFdkbAMLP$Z9cRd-US4w=mss}%Quz4#hmC@*Rs`p7K{0uAWCXtvW0*PHx-==It?spg?RS)4u|2!*^ z(3U5qi4NW9N~B-MPZ>5YKvHBSEv&3$b%t}YazR>1g_c2|NV z4@!3@lkZFio8yfsPl9~A!NO7Pjk(%RAx_yQ!)C-Etik$AW$BUX*$!qjX5M3CZ@Q!T zAgD`hKm;2|m1XpbJe;tcfUHN1w5fWf57p_0a&V^{*>5eFO<_%8+dazZ;C-=a1LJCG zS0F(or)1zxZ7rw8I1Nnw6^dN-{=D2lH1+0GOsdWqDX2dTI5bGf)5?|5rs-Iiyf1^j zl1q6&BupiGjaE0E=UgyQSaWYJqP}VvO}+0rD|I=lOA4rp!dt(89(MwXnNBMvb2G1$ zVyyXzRiv_E%VitEA()N@GZALZ;z^`0J-t$^R9*JVfNyBe{d-~Uvq3w-e|6sfUb+l~ zpkHrI%P4?w=mneyz*xu;=p8Y>9i6KiD25l(;N-(LlA#>D4?+>#wWdwyDf+J;j=W%p zBtpuN+gUt6E2jNuYUc$003Tju+3UgAS9we!e2mHaZ9MTvuoPjaIH_2MR2gZ@w#X!} z=j9CQLwRrz7RVb$=j!#&JKY8?Vd+PiZOH||&T-B38;0PuEv9+ZpNiw}Jl|0!q{Aj4 z=_|v&*HPVkf`OpB(iw4znSi38t@Z39cqRV=Z|cm2@kSYTm+E=(**pA4qyvkYKF;(5 zGtJB81Ub-0K9u30-ko%tY9t-&ak<^8Qi*LO^wem&c04}PvroH?VTM9Hb~CVjEVQ(^ z=pnzn-{rdu%-x|L$`qZO!ndtiRBkMbh|BMEK&Xw-0J)u{^mSYrE))TlpBpNW9$EV)HeJWCG01p(1&f%969VURHbBw?V6jJVTS;V#`<~? zjbXR07}Ysw9{#|w+L@6h1|@D|ny1hkUAS0MJ%$0@F;CFYIByKp5xR&pn$jv8k0i-I-W4)E=Xz+$M8zRGvN+RJ_?Bp-Q7&XIWlLww zoV?{Hpjb4@>VMU1>2qTD`tY|{(v<`+4g}03UHV7^{Tr$3)+MK&3e?1>3#?+o#m{~( zyXfwXCQr4?MqQ4P+gj`1-{oAB29BD8`<%hk%`GZLN>|_1X~{8}y)3tDM29zm+5_J$ ztUevFtQ$HfgJ^Y_y_X#y>ESJm+pz*3sA1Ay{iFzYaqWnKnD)YAw!am${-ZD@^x=+5 z9A)Yx9|kQbv^kWQOoxMp*F1DTWNP$i?wo164emH? z-SWN4tzA;5Sq#M0mr`*LmJmXVbqm1|J&>FwNygx7}f<7Q-Ew{M)IV|hIsx0S zkqu#oe?n7G1C19D<9PyM+)F#;TmAzIHC4D-@Xw@J)wME`jqh09Rd|81^{N2{I8i3| z3)u3xgH%M<4zuCgnk<%Rl4im#ghvcyTNs5`AshCf4-iWAC8Yi@0`%OASeWbuNv?MN zBZk}vp9g}E{fptZ(4sIebCHfa6g!HSop%DLoCkE&f9B9T;UaH_s7m0&CBgjxmw7NX zU$v79dbX{z?j<|MNBHb^7@s&x^Pijd_gZY3jjv|BxFP4$EXT7(8W)N&D$#u7fK?i> z52rJBfwAKX%uiR#vo^orW%GrNG&k(;*3Gd*h|cd-5OtDRyTY0$T_^%8gfcoaXc>QsfL77ubn`Bqxc79~$NF(~|L zazVZ6yT9gsc0yMI))rgjNMGh{-(l_>8O_Her1dA%iULaJNXLJ%@ORLD(BZz-HpqA- z-%r`QO=`!yg~C+^KhMX6pL2s(tLJ7-MQ}=Qa^aQWzR7V2B1BI=lu>!1ayK^zQuXsR7stM|{>W$CO+&JSrfpjvjTDojoL>!i`fg-- zpo%reVP85>QzF|Uik~jq;ed|wy>szW2ux8PSR%Wchvgt5s~)fgY^NuD^szmPt2g|u zMJI1q@7wGQf_bt=#i)DiVucT~Z3mba@P(lQUYum+@1}Q3>&t;2VfccRpaLm>X`iB-lJ319oY+fl5b~q2;6m$*DbNvdnkOMpk8lQHy)cy!^jriEIaYKEig->ItUw0)N5@>=DQr$0%-JS(@=F;`w3 zHCepV-8zXilYTaf8Dz+Egw0y$-Vyk25sQ-6PhQdsM>fc|dUTm8M^33Yg9DF)$rhQ5 z%zR_NQf3*G#&8Us9l8vEJhV_G-DwdQo(>Ojp?l0SfLNES$d#=A3}fE!WQhZ0a+{3oB3{M9JuITfy3H2Bov_Dl~2%WEmGt@p65+2&5ZV7|OdM_HK zRj-FQqSbBtHuyLSlh;XT=L)0oSIR~Nf{&hGc#~|(fZrwU@R7IP8b6u`W^x#fL3>R5 zQr52PB~a!2!VQ)M>8ge{K+B#((<=a1-`8npI1MLn{3f8H2tE5g$a5nVKEQ|N?c~eb zJ6!KgWmw8q<-Pl7hhM;2Ki}y1qgzEdZ_rn3>wPNYKWfCxaM6$ci?}V?_K%Tms%hpw z@ju%lyUo(y1PDBe$rCmW-gM6}0UdV{^aqBRmNMVZgaBSsMEx%XGcOaabpOT07moxc zDCdRk71lJL=Lu96&iK6P8MZD@jSDW>7RloSQb0n}@7Q$Pf0W9zjv*~gjds>0N5!LF zcWbFULq+E+w9<-_eM&pKyG8SK8}A3Ra%@k|dYtWmiy85K<^90et$pYzan=xiv8*Jm z`m^ZlN#yAm^Ov-$_*{r9Ak>SK>@tP zfw1cyP2wo?EubGY*UE$u;pi@s(>VUe1g zdI0T2I(|BtLMP$&wgiRytb}opBzw=9N~kgQcNWA9V+3aT)(#I$wxaX37al-g>m&|@dMmj1t!i?EjD<fOskoP$qojdk<(_-6qq5C`!0XjM5;`V#t0(5HQ&s-!U0yOx0y8TCd zn2}%;W5B*Xa&IVRB*@W-%||{?A@Pwne`805cm^q z1H}A~y#}XZos??M&;L#Xb+8G}psjRi zQyyzc%}|s{lZmGniHilNt4?^9I5j!xIgH7^`ogllnie9&d!YLCSXN$;cL#4{ z7Q+hxuY(Z`w!25Zu0~hKi1iVAN{nX5;$+8u^fO3>EMBT#v>>J+#6DTk|0{_LaQE={ zyja;WStKw38_1i~`^10@k2*U4L3n&xh}5P(&ry9Eu1kHXW&;v;xZyMbu7B;FwQGKS z>BcJxVU;Z2^eCf?^I4*e9Hs-NAz}h%8+;!bc6H&*-Ris++7lYSgSKj7?=?6M3P`=Tf!d>rG1_Z*A(2-jB1gGFyQ16(8DzY{ z$aeRxsSsKa%K9iVBxxczdWxzB_QKNgOL38Axx?{h9$3RhGo%2cdCdGE-w@9 z?M_7*3R$!WtWV&=g_b*F5nKT5HWrwUN!MmkRk?qojLD8s&#{TCwi^L4lrBq_qC)$E zlt2GJn0uaPP7e&*O|y?DV#wi4ALwb6suG!wf3tLWHWq%@5*BieetOLh&g;G}_oD7o zgzr~>i{(cSgGTHknnDy1sL`VwDoY*Lb{*=0YmM+s{JF6NWXLp56|m)O4B4va(wjmm z2c_!erp1(|hRP8{1j|fNBlRdw|`C-U%#Pg8FXNbU5<0&ro7>-_@i%<|fMn5h9a zC&o@lb(2%$WtiFfGWH<2;bA0YXo;6I<7cl5K8_b7XX@q4qgW#@No(^)wV@+5|#vF+&tj2L^hrMdsbm>w1VJlG4Nz2QdUlh)xpoW|+qGm#8 zuMYnXP6rhn(iqzK9wi-y#7WjGsyMaK9aHkj8S29oB)&kj{N-H0oTYb)W@+0LDnyZj zD6)1t5F8%4r}(0`R*nHNY@CH<#SM@xon3eX{F0v>44~`0{EriXWc8`OLh#+(w{{cs zR>jmFy7;5ZYkBVvUUpkGDXZeW`g(J|IaDn`Avc4X_CHV>-MMh=;E~LXCE^ z*&;Kd9pyp-e_44IK*G8Vlz2q*IvCUNEbYowiIT_)`efo&0hHD~jeR%^92vjnZ8mRB z5QD^6^FXzpI~J?NTN}@|!>SceoYiw{^!}Di?pytOoAA z`k@y+<+&fP36my7+lA%rjWa3Vy2Wk34p|t+`63<@Y+rY^Sfh40^bDzPl>a;d@7O|j zwwfcJT-H8hzy6QH-sVgKLkpbyLNvoFl_&|YyCCTIVd}CEFSCp`HZ3E}$CmIlrW^{} z>Xcxajz9Cm1orUo&0P37VV?EEge$Z^Bm$~bVtlQ#)iwdd8o$JNWw#zGb?lhbJt`mkrSqY!#s@m`MB5-vb!=vtyWt4G}SpNK^^g z7V8dc+?^C@bYeq$C2VA((W}29$rA|TWPj)#Tv%ndRr{^|Z;4|*K4oL2HKoQgXpk;yxFDU=<0d;9W^JV<;J9-^eg@Q47G8(2 z_KDT4&)p+eRit)U^Q`Vo;kZrD<9-jaAjmY{tVI?qt0F?)CoMj;(7#`stzItd0Q`A% z4Zjquz2qU?NoG;B(Vnxph83H1%WbG&b6VJpj2-4Y1(3|WsQnp^S3%~Wl7`z-+|Cfr z(nOcQ>DIO?cVx?c`@SzWiG+w4oKQ6AT>Z?`6mMp<@6I>DWOLC@qWgT80#E_yOc%@q-n*kFz zaEaj9=SymLV!;x19>z3YJ_Dq_#XVLx8$cHl?9eMa$!MB9qT$%-L zef&R)^F^k*^b+AwvFR(AA>z=uY$Bb0l?b-qZ6rwv$$8GVhr3qGBT2Txe!jrso)?$d zpJ{pbg5KYr{-1>Z(ygu+juQ$yzg*7?-0UBq zgE_fwIg`OeW6u^wg2TaO7X~}@dBM7+YuA64yGeoAlvnQBYTBchxR1XmQ^;?~tF!() z*$IrJfa*(n^G~GLA7cjv$q+MF{^KI21Ez7{)&8B?63KHaNHxXUkOuCbf^YriG@Td# zzK&IJxxl1eiuLIu+p@~5x7EUkC}x6zidT1}VXc=(Jn~aXwT!7#=vRNww<@#_Itjv? z;@lAKn6U)8wTJF1=U{W2kP#-gKC0xnOAs+7#%}Zzi4y_8*mQG4cT)s z!XOw%@#;1XL7q>A{L1hHQYwvAiAKCWe70P%<-zU3lUHKUOYSTkKULWoM+(++v&uA$QpCTEtD4kF4O=tU>)hu^t5 zTNUV9uPMsYUO1vrVvlp9xH=mvsaG1p!i#|X6)%gOLv z9Qet>lFFF+O~YGZVnM*tJh0tWdn`f*XRfds!h3&m{|%MnwruwirSp)%|1OPTqeoaU1M1!c((bYa5P?<(X68v`7wpF%SCgi}cGS<@x>45(Px}awGN6 z0fnLORBg;<@IT7;c2~n(YgiJ?F<@G_IC0sfQ!%r{DNo>pSMl+bug?&~DblI_JWarj z*`UK)b;^bj0-Zexq5Kv}+d2xnd}h1|(eK>9{k!;V<2E)5`*QMcB9D^?QE_Pp0^SFi z3_{$@g`L-^;I?-GRxG*k%9QAgqGiN>HSp$g#un9Jf^eeTGrxl+b_@J0y>z@oDs7>g z!@nuT;|}}{X^1zV!4xURGJH{_O9igNWKp$th|lg!6i(&ZaK;=3k~VbPR8s50p>QLo zm4`rS5MC+w7CQQosO16gIfR`gd_*r;1^Wc)JxOTUJV!ezb6q=jPK zM+)DK`&k9m8-R{Q6V28ozSi#)>aHcNMQOy?t{*8I%Zf-H;^fm?JU63n)iPREh}kKp z6@C-^${ zRcnf++WhkpXL0M;|JVHyUE2M=wYc%k$ag}k1#+WLwtnsuW}c^G@BBsFw$CRlCJsch z;H8)A9cDK!JB+1DC(s!*R8Pc6`_@L`*@lc7s(M3-dSb@#V+SiHz3B&aD*Jy3sX*z? z@Wr99#T21ji)K)8@ObHB>5fyD@@`k+X&R@rQ}HYSA0sm=+2BKs{iTka8ilG6cC#MR zEe{~`26h!LJV`lcmv8k*`Z5SA=DKKQNGLvAA_fJMt zc9~LaVMX4CVIQG(*TV*rx+1jMc*G)3=Llcj!7Wv4MbtlmZcDY4*9!7tW$D~O(ITz} z7*c4!RcTRIT%V?KEWsAe^Q5P_z8P7TdNzj)`F~`cbzGDE+x~As1w>*Zp~MIQ6_Dj-U3R42ug$W7)m20At5nE6oc+Yx)~*18=Yg+U}Nz6?Ec2{Jg=Ys@rN(Qwd*>s z^E^Mt@jldy%*Nx}t1xZ6Bea2L7Z58tu9ZRO2kg5n?*S>gSm z(t-vr!e3|eo1ZNwhrFnaLjAdE4T@ePv*X%p|Tc23AGm?<}vMp6O4MZIKna=yv=2WfmIGSZp($P zh;tR9f{ULWi&nnXbtWVJk^N~deAas}iphmda(9;E~TrgK}qea?1%?GN)9yTjC`-EYtm$z+SskKq3 z8QzCr6$i^LKQjyY%jAFuj-E*qW*gM@`zVydF2Gn#v`QILvLk7Sh|Aed#UI-A6lk{^m_{o5x%|BWe=1XVcZo@q3)8 zl3sl~<%{_wDcwT?4;;mEdym%z`BI20eBo2Ue2k9@5GNPTKC<1v=*Zz@6?A6i?AWIk zIJ$E-n9q}_^Nd6G4)M?rBi@#5Yj{r~GeU=VL91S-A~|I@wL5DGJ_w+nZG+5@yuveR zj+VXS5@jyt{#NYQx}ry29Uc?0SkX|jYG~y8_|{r#Z4($(mEEE93AWU2{x}m%=a~IW z?NJVO$6n+oB@R9baqok34jpr;KAG1CS)#gsH&yZBa5sOyD8Aia5bqIz6#Q;Ykll@D z#f@JKmP3v2%=r8Lj%jQQ7csH5rbnaUn^=c7=`_}kNPJm{yeL1SnSHY-g}k28viz(E zd$XqnV}Z1*x!c*ML0RJIy^ay|W!t*LMGeVyULzzR8AbLec8)Y4A0hYL(_$Ou{GVep z^UCY3Db-Uw?0j}}IX48c-!J)x5hr}Vvvcu%7bJKdDrB4V=+`QeEzu%9;@Q?2s`9JO z!}7SmLr%c$zgkfgv3xKi-Emi?ixo;J4A%S3Pw&SjH zbQLG{C$)^pu?uc9rRzV>`L-&Q@M3eRo6i6yVc;O_rL$4+Kb7bSy)kTx1k#^TvI=^M z2LXzjLMO!0^ED@BxHwIau0a#O@$ZQFG4)-_G`p*8HNaq@QB+<0v_x=X)@?oEaenQ>UJ%Xq~oVA%HGyooBjW3m=h%*bG` z*m6cC%3YxRt9$+@@OC#!C&Usmr)VwP16p9K*$D>Qjp?Om@61FSvL^&X_;^Sy^44Mt z6x8BNeey+?LMF(h-89_&H`^#G*MJPa9dugkL1nw{WzC2%i=JHwm1>IZmyPf%Q<9iw z73i2dsj9t_l|G{(Gx~`P8t$z(W%vH>T12%9NXW^!9jNWlbZLGd)Xb%gLZa}|R!51| zK-YPS77z9FJ74JTsc{6`55}o1^m4Pm&2-77S7YZ-zrG}!$UVm^5HC3LagXLMsZjo{ zT>4|34E`kf2Rr<9wtMlR(GY!)cas76d^_h@1~^v}9JqgD#N-NKtY`}KM_&syiaRu` zW8rh%5+GW!0tlNfL7d=|l1twUe!Cqot=%wLPHLEZ{yXJ)f@(j*q^$i&RP{{Y9}$Yn zIQUg$J~>(GieMromKtyh?mw+mJpWeWq0^QI?EYT$Z6#~1G^Vgoy4qW}+n7ls`HLs3 zdI4^>HcSWr)DGx`Fi`IqofaLn8LvyixTns|i?NGmiq9ADJo1T4-!t&)d!jhsG*ZB~ zG9OMDVV&8whE9~^=OBVklA0lm4%yqILU&}C3*QE-G^Q`e(%&Zd6~1k9y!9Dwx$e89 zw)C(?a$;ny^XW0u30X=TBiF{Ed1^h+gEZxh>T)aaIpc!75h zyz1IyP?nS7Iq_)gUg{Y4?{D-?sX>(t?w4%7!Unbc6(-VO4@+}36Y}^Cne$T zDrBZw--bU6R_#))MAUw(br1o-Z%h;HBQBtpn0H>>qHXi0 zs^xts>iw2l26{P`mN*^lf7Z+#MqLM74e4Gf*^RVRSjCCmr8MVE#y&}o*z!`G{&V+k zw#)=?qqQNJOKM-qVBa1kiaXQZ>r0w*V1569GyD^M5TeT1QU7WXQNdYa1X%+R&u|yL zwkl=R%_YT&Xurv4ouCPpJyA|fVNFZFtCzNOtE}*#$6m!8F&O6K1Vas-jy(u^B9H$X z1A0gwcD(%$L*q&MoZQB-9?SgVs%D=TXtQBwjACblq8dB*eUDVVOqtPT9gugi2>6|v zMpY)rVq%r=a($HFFG@V%a70{N7>E#GTK4a1Ie(4t7rO_W^WNgzl_|vtYhSP{5(tcD zZ{6&{E}&)2i_AV3l<>T(O0Cz0@nm8jXCh44SB;(cvPJoi<>tAF=Jnr!1S{q^WnE zwDAUPKqjer_ohSfQKpVj*!c5Z*a1;L%ZT&dsqjsOqc_%wDJgvTms8`{J+aULGze`W zq>v+BE)#QzuRE~hGtdB6;7ZDHnU9t|*#nN?BVY}Ujxm^J>CO@h!wm^~sJWLm=XReo+oGh`V(uQt{+UMAd4w8m`10oTC6H!+dY&j48QuNF(#N8Oe3~8gl6)8iB zML+pDp@$+p{txL_a(BteRSK4uc`n=Eru7OO202R$eV!U7#pV9WCI;42D*b$WjA7Ad z-YOCXGewh^8@m{an14y;TGD7`+XS6En&W>PyA*N6t;8+GW5GS*%2{+y=-!}Z9gC4$ z^5I{o&@;}dQDR|XlueM3AFKo_3VD=P<{5KUlO{s^>q@$%FLfcy+peVinysr$!HPn* zJG9BtaoLSFvMII8_{)4ItyeB1SsJTS7V z7zF6v{l-;LPk1Gq{<7iVjH1N(vC<%R4~**Bn=-Es-Hs&FKC@GDh)eH6B^zYneo)iipcc6MK_l9j_B zHt$=>1sN|cE>_8&q7LWa#}ugMW(FP2*#yIc=Uxit53oY;-)U>MP&HnojO9K#7Ov35 zDkewFE=dL%-djGY%@j^|l{H$}RWnaZU zt$#-ElMG1I4?~$z;DQwt6`o-VJ9!uBvs1pm*71qH*ay!|;f_$44<`l>dd&GR$PVet z2%p|tp1&6FH=uVy7;R9%C3;;&BXs8!Rv{04DjvNcc=d<5J7kDQsYLzWkPV6x*sF)9 z0@lsLtm#xO5n*=ANoeeEMY%EcGUN4xox48VHZRnkAP@+yG?7Z#>{Cde0Mp31sIR|E z?nhL&&eLHv2DeXa^KQ#orx$g3Tkb+vE6r~kLJ^Y8BxOE6>tIwepI!>9k$Yj)Z`9`` zfi%h4D+vyjJJ=y^y_FFTM9l9HfV&l`E%k}Vdm9?JN0*2jJ)e5Dz9M}vCF$tDQp;u3 z(6dSgeC=3M(#=p^+Wl;r%5LY}24&a#PP?Ssc3TWvC2j+AUu8m={??~gRjiS?6gwMq zG}QZRPq4`-&3gbz=dz%2{K>rP^+Kbj2tg6cYOYx`lIn2@Yf2E_RbcrJ))wm z&dB<|o{0~QC+2bzU>sFws>>@l+S;$pQ#-M<%()Wa7;rj-xmbprbeQg{DEb^s)hTq5 z3^1V%e0bpi_Wg*KigV}AzzG#>MuA#k;_%CxcD4YEmi^whnj%ZVZsZJ8E<4(MRMe1! zghYMmxv|fU{5<(lW6k45)k z>Ad+k*Q9*aryIx;w9RyL{vx+G4tEsJ7c<6Y#8bmi4Np0Mwm=Lh>}8bbYm0$9ZS?4F z6l1f8$=_7aKZ+Q$Nn}Ly6RE9bkz<=d-t1}ML`XP%-{TQH@LR-LP@TQcn?HR$JwvCm zsP2!yZHs5{)qJ%R5DV=3LyO6%QgM_^m9Aotnj%(7yudhL7k*b^t95p!cps?d zb|`8~Oj^?3ic)4ht2AS5s|^u_;)UVG|6kE$y!|aCMgWaCug{fZ(hVMv}=VU?#YddHl(?KPb z(^qz=ZNjO+`-bDnRO~_bH}iRei5y}x^h8XyaH5yKOFpgsvQb{O+trK?UFG=mJhxni zj^7pe&r!e=MPomBQ8_-DIK*8uCkQ3Ycwg`arWh4knWahvn=e|Gx)AXoghUX=3S)Yx4x3F|_r`bZ%lq{zQ@xOc+qZ{s4%E0m=TO;w}han%X-~O^$7b$eO zPnH<_LND&9d(#NdnoD^8)_(J+tmMTvT?pb!-@SwE`t88m@PEZF4b!#EXzD2$5mBTeYAfCI#w1)7^FP5V`xjtY29q`-c5^hp+beex3Jcg zNt#e$=rFmH_E41C1#LgffVy92^)~XCQ$VzBp#;O{JjR};RmM@ddE{${lTRnjqd&9> z?EbMk;xZ&@0y{fP%FqfF!N>GGh^qbmSr3|w54YS?V%0JLrB_E$@|4jD*t^oGy+t41 znyLz0Pr${zc|baje z)?=b6YYUERf=+sg!S)W`mTG$M518$ToE8=}{$ArNtnFK>``yMx;Ap>S#D;PB!A0>i zuu;wy;pxtlhA^TMV=ZcoI2!k>Y@~x1s&@)L8i}jkXV5LrIn(=qK^#wMBNP;>(wTjxVx8z_# z#md&I_uKjiKv9D>l3T}93(Lc|ZwEw_-9D`Aeo_59En@O8a2YaK zgnDG2Xl#*Ob1l2S_HOK)TL_S)GM-gs^b9o~=6rp(gq0zm7$~wPF)@Y|9%I}jWyQ?K zO7PZmISgm%UT2k;mnTjJ+Mkb^(1hPJQ$-wt9QTVW@&bq5Awq`v94*o+!8-%U*lwdkUORzr zg7jH8n}jJ~PVXs;YVYT6bU-1r;=R?OOz_&fmzbe$&cX_H+;0z;Q1#0n|KupKW5RYM84)p_Wki#M38c%YxjuB6-znJ|>GfC%ocwo>q! zvl7mWVK(l7&XLX?TG4gg$VNcnrf^h(?Ji0+6$sZ_n6p*i zWS#iv4wghvyp?6la%X&dEZ>@VMf?h+#klXtO)%c}cFHx*BjdV9$=whX%@^JJQxdkO zy5*Ac;df-@Z3kDAYVwBhU@=>SabSgE<|F6lCR$A5P)#9zF&j3pyqavp=SH`azHray zdKi{zPw=b`K?DWeH_5Emt$Y96qxwgpf~k)G{3iGJA(LRaU^+39kUGkg<84uS74PD41dg1I6=lC zE~8&J!>Wj#+J_UuwhC1#PzURuT1CsaQnPC<+EjOpOb1d=V?kZ!4LTa$X}{#v|uPhRClPTkny0`b+$(sJVY0!p*~Y%D>C(!rvm zuMZI`{%k_&8JCYi+vkEWrm4G*59(sZ>|c6X4D`7RE@U*u?_AB4~x&o z0HPdB4`&j^>1SJ2e|y5h{ZVQl|LCf_k#|DOjs*0!jOG{|-C~n(sf2Zb*>zQ*{NU!wm}Vqs?5S2KbSqNJCzNGltVX}f0g347El9R*opRx)=v zrd+h1KZpH0U();`{f>>&O9-i8st~8cM(-mamiNW8o`%m8Z#NqvCcJ?$AO$bj9n*-D+a!wic>3O4Y(PbkK|***3x&RcvhSBF&PO)}Bz zR=uCgMA@ahJmzEnqn3CQ3gWtJMe=a~2s$G5YIvoR+gmU@CucTlMc0H#8URi>%VR@J zG9gTrF*pO1tuemBbEEi7_)e#xL*tVUdL82UD??W2JNv4D<$`Z~1+Y|@r(9IptH>n8;(PkyrADpFbE^TcR9>I$rR zDr(@`Cdu;b$rH`)_A1ii7ulm-5N=altTN(8R|FA%CuI~*WiZeuEyOFhReNOAvoChU z9lNi{QZ@52Qt2q-c4xa&@TSYvvjt>JrzAx9h+SJ~6MTgJ7oU^)O>2MvFW%M*VH#|4O=c?g2o7<%a^HjL2xNAyF!j1Q{$+1Ata9w{EDqu{UnJEE0kITnGpB@z3sKu^W_0OH-`+W6Rx|f5m*>CIur<>2pKpP`l@OrFLWWsBSR% z|DJG?!scx+F-;tUd?vQun&$TQ8tt)7UkN)rCIi`h+@vStH>ZECHlm#%>F@JHnRpGm z|Ca7DV4{U4CZDuaZK7SNU-FG8MKR3gjK5jNqCyk5Il?FP>doJ2R_lg3r`HDJnRy7Y6mkX@{TqSl1Lj=GA@ievsG`y0^vDNpD zTyEHLXkD;3r+j9hoHsMNisU;mw6yi7M~y@OGRvutC!w3ne<{?DFVmCb#Bwd&n@QDo z=d%e$ixn*mOvt63208S~suVFKs{MC|cCq|C!JHVd#Y^-V0cRoFu!!JR`4eD1O<|-a z#mc@KrpDGWhk}X(I-;>FK(($+LCirwja{Z0FJT3N)auO%Up6-|-PbS_kwHGvK!A2a z%OdQ;lI@4F=EtM0u>hib;i%Gn$}+$UKZ+#t4F1VPKHj@k*1QmO71~mCsA2TG%vmG% zjL?0Rot=T?*m<~m+w|)!e(TFWgo5pam2aGa+3;Q6c^A63;jt_GYk!Co$$1OWZ-&W4 z6Ue5F^Nfk`6xGY`Ifh65(TAN>FIyCMw0?i4FN{)q&4c{S?;N3U`>)&FUzMh?)P>o3U+9w-KvEe7HS;3NjdKs&>%*n8-Op>u~ZB9j=saXI4V#27AY0(G|(vu zM!5>8q_Ml;yLT-YBmK;ClbA&I;Povz)1ApgzFR})jO^YjXD_Hf?mOML!3a`RV$FvI zQO!^1N_{Z?P3nn@xu)uR=E)pi-+YQ_6rMbq51!^ORCV}kfg1yX%_Hslf<_$t$73Zb^*=XIothWc zq`DTB{KM;e{qvkmd{&Z6m2F=!IyC5$$?OL&^OiR~x03-ropM zq)EPh?B10LBrf)^UIDgX-pnvxYwLU5?`x`CeL*Y0&i8SU3#CF7)-tGE4<9aN-rpx5 zBnyL&c2}`qkH$I%7$;<@9zt8bP8~mgtn-r8wBt2H#a2)%yMKGuiZ2fTsIj)?{LfEy zt3uW{gxKG+x$i-@PQkV=+A4-S8kM%ZGavrCJm#uu8hRjz7#HIcp^$|Q5y3zte>f8w zzOpYZ>j#_3&=gvB(c-62vFo2sWA;4mDFYKFEeG!5RIHE8TB3I;4UXHR!yS-W3dSy^ zB8PvNdhI`r^C{)M=Ks`PWoxKP50eg!@)s-uF=qz(=9m^;$kAD)jlddeCu>8WyHhM~Z$97( zE}{vxE%ip*x}-6(QSFJ0oDZ+*EUp!eo=Q7Pm+u%Aacn)b;*gNthQHNH!|3QMK}jQo zahF+!mDoMSwOF5bDquGy4u>t7tiAKP;el3WbB!)v_Sb!uFD?j4_6hQ|(4Eg{fd{|Q zy^8d@^87If+W|Qc8!sJY8SUZrIR!<(D`afHu%yApaX63N+nBKjDu3=64{l3oMtoH^7#u zi7QB?8etci@9a3RXc9GPmHRiV_MLrA(4}apnBj_Ev8ottvH*kKSY&K9NQr2xTl1t9 zVqs_OgVZwKXiCbBSl|oM z{=T8gd{~)!{$ngkFT7Bd-L*GNaE4*$^Hm|u0MWa0P2W+!q#&pSiTAP|y(LH00?sP$ z6R3_Zg%!Fy+tGZ^ErRQalrrj@EOa-c16j9Bwnx}*brbWEmSd#|JyW8eT2~v1yJ5&l z-)0AoR>0rf%}%dPF6O%0|QN}o*LpL)lPJ6 zWV8UP*n+kVY%N`US*^f*3FsSjm{C3U4=+BvvgYuZEo-4n34p>aFQm;3y^$mC_}t?N=x)wvl6BC z49wQY z;qBf`jb(L;i)t?qQucj%YKVgKMGPC^zut_SDNr6 zgSA;$P(ioLv>Q07IEB~u9@0cOk4_PKMrqlz;0kPg$vRii1bz{Z4r!#|HM-I3VNgK_ zIQ6nIWJ0nK(E|`^w2N!D_@n1QLG8Yw+~C*}4xzo`g+6TIlz4s@TFWdxf-|tj&%Ttr zY-7#G$VIXJcVGq6EOgaaiD7X`5M_bmBU0h2G&x`|;HK)mP^-<)(FwP}SwWhWe>X{w zoN?DnCTCczOERxA{fGH`jT2;9c>4-TA*R7r0CukN|Gr&AvnuyVXN_N@FMXU&9-X}7 z&@fm0{tnq&pWvCx9M%uP%kY3ez;721C2y|&t%Wi;Sj(>>h@OAn20i5Mk? z&8rKvX+MAZGOMZSqB-6b@M2=Ww(7w%x1~|r9vD7GAN(?4OToTvLzKlcZLQ2KlbB&Q zh1Z@9?-#RukilWqLks)}^$>a?QB$AMX4kByn@uj&EqnTwmZ1fL#krNtG@_ddFvvt+N7og9C9(! z(U#P%i*X2Y$l|brcS(GQR*QOR=uO`3%ANRurACt!lrErO3%Nk6Ijlv~5w0Ago(N{Y-n;A90u@ znkMF(53(b+0cP!8UHO<^?blif+rD(JdYFa(DInhNm#j}UeEBLeqy8$uc0MC)K3vY-rViw-ZZ@K-&6mC$^Coml;7eB zh_#Ho3d&ruS)K0+Rn6Id?cWO}flkcta{0gO>mS=rc;1gR>9WTIJJ&nvPtgx^kQK#(ob z^SLhh8Q`vTcSV_fe0beJbTEI^#J%_LfP9stD)8ps&@!5Q)%U$V+ffejSKJ3rBAM4a z(Keq;Ce|L1NmEqLLcymiTCit9-QF`)`bU3<8ibnU5?wn38qcx9JL|kc(i{447xjHc z&p!&_Ug6L{DT|*PUn#Ef!m7-XDLRbx z_SYJ{cwuxysb0axQPdlO5VOd6>#2I^Crb+o-mH$*7oI&1Q1gU8G%*< z6|$p>eKP{>+@ z)KYQQEz{};v(+9#?NW&cCvpFY?74AQPp`lk8zf5E=x+eB_D&tJ7e-G#naQW@jAt!v z!7}3DIye!cF9{hHIB9Gr%pgu~0xlOB91L#Waz{TB0E2R{8qHu+ByIb$B~-#Aq@#?a zc)z)E?I>bv6QImmm%T#59rk{a*>nl^1$CY~Hp!+kl=kLC|95rCVdNBF(ZH;h%wZl! z5AyQmn+TfIYfAi<+|F&s6pH7yz)WLIat16-nx6frcJSNa1Tfhso;M_fLl8r&fo3l8rx5>S_c0qW+{O9CIld^xSGozotXdU`dY^R!;%I|9$9j(=%|IO zGd3{w0AJQCys6JV|mC!nI@2uciwJB*e0xL|Ok5d~p7<{eBH~t`NlMGPs zpQ-hkhHQbT!+w5HT}XF{s_KLgT2{|5Bs*<{-iYQ^lO0J0VWYxNllkwZ{F*WXe#YS{ ze(l>@|M@cun0ei~Fia8p9YP$ikSkV%95#UL{fJ0bHym~*2nK}M3WzS~rHFlANzhXn z-vJMgFi1Q@0z9#E?4q-N1y0~k_)3WR-`9-Z*ju{Q@dVI4dwDnfb8%!6 z)@_Wx8(TQu^hit*aqMmTqzq7Y^|CPUq?4&-&+vbL_e7KM_`5SRUOdfpQOohX!RlC)X;zox|YNusi&4lHwfd4|;Rc`&Po`P~YWHB@cLm-cj@NUjNR`P3=8%x;vS>d^|e7 zA^DfBHws-}uwFldpSGW}pCFpzOGbP>Cc>ZyZ`&l8J{gp+;Y#Ak`cZTExBBCjSAwE1S8_u)~nXegPc5LliB5>zGE15Qe@P(N)rQ|LCLG+Ud0C{y6ssR9 z&Y5W7H6!pk$(=Utgt6;&H1R4T+Dy=uqtj;^U1M(8(9INDjjQg;#cn&`36H0x6B3_X zFVXC-khb$k+LKo)nd;Q;czguv1~wDq$_;~s=kkphyJw(gNPA{{IR0tx8hy7$TxRb9 z2!{LjwftOIxcv!SOPjA>zoxsw8tYGKk`fa+kQ(laoyS|#70%{+K`;LK(*n84-~E5C zYoE!j_O72oAgVZGlKf3+k<;M>=YSgPcsrPe$w|sfz+qD3J!v69FaO={FdI2g*AGzl z5H@~`WhDu2AqfIH)vjApRSv1fUL=5QxnlPC@$O%aFLo9>Wf%N7`)7cw^+XYT!^gt_ zo#c87;OYg&qe^~o;0RTWMTl2@@MR+g=l9t@p$s6mCswo#h`qWNR!f72Van zJ&+UCazRw*LIw8?6q#Lfbpjx_@Bw;N0Gf@Bn7Ua2SiQvZF{?-o@Kyx?+^@+h4x>8; zhu55`xyY;-sfpfOH5(Fm5E`PX^epGk$j~?N=K=3}4m~(JxG|KY2aQ|Q>d_k%Xah>X zAqK>DP=y^6nW3y+W01LM=)jeCeCh20xGxZ$?JHc$zHkD-2&dsbch-j*MT|9oL8xIF zjXuxr@X!wkDq@HL1hf+DFBRdZx z&dds=ITR1?dI4YTGRQAT0qY(UC%_D+KI%4;?Ex-k93Y}k)jNzA+tY-lAenQn%LM(m zC_s(@yI?vOR3skTY1w4ZuBg=(2;aCduAn|7{O|Y4AM#0fumJEqkX{A^W)}XuD_~qP z{vs_T9JmvDWzAcp1xCpPCAYqpX%`N2tI5o&6FHy5sbv+znrY8T|4IPGuB!lE=z8q& z#Av-tZ0#0MF+vZO-;W+h$gJd+7UxzkeYD@2btvg&;rq>ld0bEJaPYM8=L8stL`Z9f z4GOV;5$-Kzt`9%v4@=pJ-I=0vRsLOCk*3cmxfWr5U9n1dQVdx&)>2*f9 z)05UgBjJw&R^Nk-Xqkx>$tiD^!a#Pkw<)2h(kUBS|V>}An4o<>0rvQ2B{6ag|%30^x%uN(%{o7T*y(GGXI60_j zsOuov968o%8jiZRl~I4a9Nn=x=7wta`G@^l z{2`9FFqwDyRW<26`%&?r=IsrmsA3@(GTY`C1D(x`BunFXqdag^7d7 zz^CUQQyfkzJ*RdwWU#*0qcZRL&`X(Fz|*<#yDs{Do)u}BPE7XJo1R z$~jd#cJS~kaFB~MH+9n*`PO3J`1-){d(bD)A*2m-DWtw$95M>(#{mGp_)}6jD8Hih zgtcE<;yxS#)|N+rrML4C1RlV~fffd49iP!TnOkZ6F}u0Es6H@u(^B3RpfQzs_e%C* zfqx}T0H!Ilc$Y6LZzTfWWdxJ&Jx{&#IAb?_s_^I3o;K=*v!z zVzvb&?cMMQfNn970nJ}dWfDZDPuuix%zWEe$A?^bq@h$mY5BkUQ^n`6&=&BY}FD@ z9D`Vc&QjKglpy1eC$nFp3oGYQZGAQ4@)QAdi?o!SJL=VJdJxt&hFprJtCRjrEIfmR zv79J6uy8a!X#mtArVYYki)tmhIZW_~_g1;#a&?v9B3h^fZCJmR2PD_x7WB53vCU#NR;DpVi(|gg@9Eh7_cefu z4G7P0c3Iv{v5vW-r9|$SL|lmuc7j)STK$;uk>)G@nFx(Eor+C4Ve4y)ZFTN2c&PY~ zkFL9KDCtwy{4Y_Sz3A8z?e(@Bw@YRVI)CJMrNLViZ!1A_3_IP0B@8aV zUUsXxYH*KmzhH21FbC3E#YMCiDRwL_n41Jy8@AF(`BhI`RV0inBv*ScNDD+lE{xF= zaqZBCXc{6IuPz1vpx2hgU@Fb73+&GW3f?&}SJYWW^#@ivDlN!V8Ozjdt#q8r``Kun zPxEbCe?4&WV-uL}gjx>VB(?h zN}*qFp@T$45Jde~wV{t#!#LbJevxwImr~r0+|1Zi&K#8{Ppmj~44?MdVZV~q( zCMWi=_ktP<>hl#oVlY)K7I9bgsgFuHl!s1MU41KrlmF+>pK{Lf`8F=^3mr!o{ug2wkGu6N>xk1m$F?)F6g%D> zg7fM4IG4897~S;Jb4@jOHLBWhkJ_dR+F6H4L-chsRZvt=?3o3m@4XNmLOxc7qWS*P z!U?tB(~>_8HRSW9$5whzSEu^pF{~%`=S#wc9b>tuN6 zyCSD$!I>!F>aLo2Ven)oDf?E;^?Q?h5=EY_30N~qM+ct}h4yH15?DiW*`kV`8^Iz*OQwN^{E9z=vuU4l(g!e>1NgKkB2lh+1F4<-VRyjMCI&z@Iygi#1$&L zq0bNO3H$4K4t%)lIjx7gI4V$Aw7H+Ia`f z7f+J-wgb=ccRyWq4d3gq7nTaZ*Ub8-sdzWh2u5wq)Dhhp5dErDIvHR{q@LhVJZ;(J zvO4aN@w>^E2Kwo;I;B%2w`cbJSE^DZ1*x%M3o{4MGQN*vC zA2zY7d|et9}iGavm2wacN5KH=F+o~IRi(c$ZigFl19uVsvq z;dzp5VLmbBwjkGjIqHn1;hP1{A6Z$LMsobkKIj)c`_cbi zQ5%GTC>|Z4s()Qt7v8J1obK*+P}fxN%#t3gq?y-3Eax`C%Pxf+P(Pc0Ry{i6|=M-M#>68#G{Obcai7*7s_y{l4B(+y|cd#slK@u!y@y9D* zY@t@@X53EYsIX^#V8ypo@<%bSpGGiUtPOQfQ}~Yho$xB)L5GgnBK_AQ?!EuuoSX81 zHuDxWw|6?I>Z1Ew)5HWhjyr$A8X0NPG}(MRl24xM>Y2`pHjiiZ$xlsUU zb3nrcC4%n!LS*q~&z=z;)IMVyEFbUuOJ71;>gnT4nGzZgzK9G!F?-h^_dPU= zl*mH>lURO*_?)~f#$}LR4lxgm3Em;I|2*>TqL#&&SM*g>E!LP41(W;mm#{t6v%<&k zMYlS!&@=Dh19)YmOG&Sc@i93~L@F!3-P-c!N_&0D*><(DGB-@t=`n~|FfYEJ;(Lct zy)d%%*?ItS5IN)@OUyBekzY#j^-scuxrX}@Mk?w*aFqRKyVSDmOA11fUnlnn+vMTQ z*h%=U;(SHTK+*=+jLm~)&c>eTzvq&SovOkQx(|23iN$o2JZ>vV!!zy>bn*Lll@7*j z`FW?yC!Nx$*VFBz`=OCx21`QZQwyLGO#Et|bNbJ7-9L+QuX*~}k>q+FGlNCoYpVTv zdD~=49lL^EOuo>K5oaW$=ChALKb^G|MGC!Jf5-3MgdN;KwmrY{^Lc#qn++%GqVOLJ zXJot1H;ztUabCes@y%QLKIrCcQ})c2_G=j ze(+k(^SjGDeH(Q>)aCaXkMmb`ql#h_*1pr!YGqHS=YT<;HZG2(jcfE246nY@-33Dv zW5iOSoxp7!qOHR_Iw~=jx#>t-2#RWkAKp%Jm-LO!B7K-DOXY~iJn943mK^7;dc{ap z&1!=*O7!2zoD5SPWCR_=N+M~S-U`+9^;iIFIU4d@ma;AAb&6C~K$~Mhj+7(3E);Kc zQ6G#VdFkzsXZv;eZ7ycH#dGjMVw%dvIzr`mZNj3^>LR!H|gWEwB zFa@<%h^3}>^G|jQ7^mkni_3>vpcZ7Z_!1h!<5==D8%DUZ&IYDP$31uBgxu(cUPDrw z*T=_z=5*gd{!Y`f3ciX%NRXWJglEhK>cX>(XrpL$y>Px_am$z*J$1egmlKIq?~l2| z?Uiq6Y>&mB_P&$tkUlG%&&N_D=Y+OrbTwVE%HmL^6Ti$8Ok5!7A$Ag8TGq@c3{YBf zq3ONO0b27Ij8T$Xaf_(`&qasYY2zi6&X^HO^w$--68iq0pC<9e*o zUEYk>Ggq@(jicE@EYDkZ%K8*~vp%a6q_~+CPn*mZQu$jqgZI9V@*MPS%ldFgB#5-y z_Sn($C7TmA6T`wj=gkEqn|h{d6Mv(?`cTX0OBXn4$|9;`0>2?Rp2PzoiQzqY3 z-j!;*v4^SjSEW`~bLEQfW->-W2-MwmgClkUGbcCnI!JsEWJ@z%yWczYLVE%AYet5r zpi@`oULFz=2)SQrri1jfj8p0HLJ5)Htb?LAIvID{IAn#5(E7+Tw$PrrvgpyDiGAWo zXfpJ5ziPoyK&_}x4Yx|i8bK}~cp6No@uu3}ZP(J^Vka)qu3eK&If{lHA3|HPBa^{1w+LkSR*M3j0?ZsMD(HrqpnFX7L zy`r;fl4}`7{p<1G-QC^LJGEL;WyE{=CBEZCJ{wd@OC6@oeGV)$y0txFox2QQ&g-rJ zGAFIU4czB7Gh7DM0m*W)?Q))t6Pl(0^Hq0{ZxhS#dUqSL zNpWT-_~^LOD+QI#v5^wHxOZ}O@B^RMff&m)c3{SF!8iNw!;+gYTYc|V`tzMofXex2Z}MyPUUPG>OT?KAM*?O|{e3>Vt}p}7NK&eX zzcIT`<_8r|_kx)iZcY0sO4r?p&mU{hvB%!CpL(Wx361QQ7k_diOK%VgYHD0Ler<`f zG%~)ee(fcA^m&GKbl%5cK=gRV@wlGr3zL_ixtSNd%|8<-ReJi|kP2gQG0RNJsVh=} zH@AVkWkDg7kEJ|4?}Vg4igDYnzdcj;z|K8)Eq1-@<yIiYKd1Im}tL6b71I)(JM$se1V)@`cZX7#yP_SKii5GjKvk+-PXx_=TDP z2{7CpN+V!vIbU37MtQy~FhdtSO8OUw~R9dk(E) zi$p%FDi9b^=oLw|BTsTz_2a@pY{H>bh?)N)-em(gZ0%DWX)R zNQrcjCi>8%6EGlB0@5KUH9%;BAW9KLQE8z_F9IP{K|y*a6zPT*I(O%J-+S-)-^<7s zJ}^j5_St9cwdVXyC+%0tN!z;ZNisQXL+9PukwaYW0ttKSyAC?a5N zAw^u@w_UMcr{@psx>>192@*a8)b-WH>jsNU2=5XYf*Yi{{RY1wUArmNNI><5T zCGh%Cs$!U!f6|gb`sA~(`&z!b6|EJA`jk3hZ8ppa&q}(B&ZMNObMT**2wzO{W&S)a z5n@#FEb&JWbxBF*3f-&VBfh?pnl!}+Y*lNZAl{%NgsA7*eY`o8R@Zj-%rDX3=2Rzv z4p(=2&y$`{_FXNe)gvDo0>ad|?>>KzVeV({H*<=AmlsnTu7fd=%i@xJxvBaW!xJc9fE%_u_e!Quz5wRa053#%19u;HNLO zgXTC*rhB-VBb0*9)gA1RK|^DY0^?_tMJ4TWtY=b{FX6V&dlyVswzVknpCB`^

`& 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 literal 0 HcmV?d00001 diff --git a/docs/_static/plugin_structure.png b/docs/_static/plugin_structure.png new file mode 100644 index 0000000000000000000000000000000000000000..5e09210c7f838f52187bbad5752db3156a71cd6e GIT binary patch literal 76118 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 on how the python code of the function would +look like, but for the user, the same step could then look like: + +.. code-block:: yaml + + setup_landuse: + landuse_fn: vito + reclass_table_fn: vito_reclass + +Finally, with the generic methods and sub-model classes of HydroMT, we try to support a certain range of data processing methods. +If you find that there is no method available for your case, you can always open an issue and if we think your proposed method can +be re-used by others, it could be added to the core. However, for some complex or very specific data processing, this will not be +the case. For example, if your model requires a specific soil parameter that can be computed using only specific equation(s) based +on soil properties data. In these cases, you can always first build a global map of your parameter and use the core method to +resample/extract, or then write down your specific workflow/equation in your model plugin. + + +To conclude, before getting started **you should ask yourself these questions**: + + 1. Does HydroMT generic ``Model`` and sub-model classes allow me to prepare most of the data for my model? + 2. Does my model have complex file formats? + 3. Does my model require complex data processing workflows that are not covered (or will not be covered) by the generic model classes? + 4. Will there be a lot of users for my model? + +And depending on the answers, you can decide to start your own plugin yes or no. +Below are a couple of advantages and drawbacks of making your own plugin: + +*Advantages* + +- HydroMT outputs are in the correct file format so my freshly built model is ready to run. +- All required input data can be prepared by HydroMT, even using specific or complex processing methods/workflows. +- Templates and easy to use/understand functions are more easily available. +- Maintained and central place for model specific functions/workflows (eg reading/writting in correct format etc.) -Currently HydroMT uses the `entrypoints` package to advertise it's, well, entrypoints. Entrypoints are how you can tell HydroMT core about your plugin. As an example we can look at the current ``hydromt_wflow`` model. Specifically it's this line in the pyproject.toml: +*Drawbacks* + +- Need to create and developp a plugin repository. +- Need to support and maintain the plugin repository. + +.. _plugin_create: + +Create your own plugin repository +--------------------------------- +HydroMT makes it pretty easy to create your own plugin and we are quite flexible on how you would like to organise and maintain +your plugin. Below you can find the minimum requirements to register your own new model plugin for HydroMT. + +In case, you want to start creating your own package or GitHub repository from scratch, we have also prepared a cookiecutter template +to help you set up a whole Github package for your plugin including minimal testing and documentation by just filling out a couple of +questions :) . + +Requirements +^^^^^^^^^^^^ +You do not necessarily need to developp an entire new repository to create a HydroMT plugin. Actually all you need to do is to +instantiate a new HydroMT ``Model`` class (eg *WflowModel*) in a python script and register it properly. Currently HydroMT uses the +`entrypoints` package to advertise its, well, entrypoints. Entrypoints are how you can tell HydroMT core about your plugin and they +can be defined within your package setup definition file (typically your pyproject.toml for pypi packages). As an example we can look +at the current ``hydromt_wflow`` model. Specifically it's this line in the pyproject.toml (for pypi project, this could differ if you +use other tools to publish or install your package like poetry): .. code-block:: toml @@ -20,42 +154,85 @@ Currently HydroMT uses the `entrypoints` package to advertise it's, well, entryp This snippet will tell HydroMT core three things: -1. there will be an api in the plugin we call "wflow" that HydroMT core can use -2. it is located in the file hydromt_wflow.wflow -3. it implements the ``hydromt.models`` API +1. there will be a new HydroMT plugin / model class ``WflowModel`` in this repository called "wflow" that HydroMT core can use for example via command line. +2. it is located in the file hydromt_wflow//wflow.py (or in python import term hydromt_wflow.wflow) +3. it implements the new plugin class ``WflowModel`` in the ``hydromt.models`` API -To make sure that your model is compatible with HydroMT core, you can use one of the model classes in HydroMT core as a base, (``grid``, ``mesh``, ``lumped`` or ``netowrk``). You can then use the base model class methods as well as create any functionality on top of that. If everything has gone well, you should be able to access your code through HydroMT now! If you want to mix models functionalities, most model classes also provide ``Mixin`` varients that you can use to mix and match a bit more modularly. +Now, how do you define the new plugin ``Model`` class. To make sure that your model is compatible with HydroMT core, you can use either the +``Model`` class of HydroMT core as a base or one of its sub-model classes: ``GridModel`` for regular gridded or distributed models, ``MeshModel`` +for unstructured grid(s) models, ``LumpedModel`` for lumped or semi-distributed models or ``NetworkModel`` for network models. This allows you +to use the HydroMT model class methods as well as create any functionality on top of that. To define your new model class, e.g. *WflowModel*, +you should in a python script define at least: +.. code-block:: python -Reading & Writing -^^^^^^^^^^^^^^^^^ + from hydromt.models import GridModel -The ``DataAdapter`` is very useful for reading and writing data, but because the way that models consume data is so hyper specialised there is no real generic way to solve this entire problem. Therefore part of writing a plug in is writing the Input/Output (IO) methods to prepare data exactly as your model expects them. To do this you'll be writing most `read` or `write` methods on your model class. That will ensure that the data comes in and goes out expecting exactly as you would. + class WflowModel(GridModel): + """ This is the HydroMT Wflow Model class. """ -Setup methods -^^^^^^^^^^^^^ + _NAME = "wflow" -In general, a HydroMT model does 4 things: +And that's it! If everything has gone well, you should be able to access your code through HydroMT now! -1. read or otherwise fetch data -2. fiddle with that data in some way -3. record attributes based on that data -4. write the attributes and data to whatever location is desired. +.. NOTE:: -The first and last point is what your IO functions will do (see previous paragraph). Point 2 & 3 is what your setup methods should do. They should be given data and be able to manipulate it in such a way that it can be written for a model to read and understand. This is again, highly dependant on what your model will need but hopefully you can get a long way with the building blocks and generic functionalieties already present in HyroMT. + If you want to mix models functionalities, e.g. your model contains both regular grids and semi-distributed units, most model classes also + provide ``Mixin`` variants that you can use to mix and match a bit more modularly. This is actually how the generic sub-classes are defined, + as a mix of the main HydroMT ``Model`` class and the ``Mixin`` of the additionnal new component defining then: + .. code-block:: python -Model Configs -^^^^^^^^^^^^^ + class GridModel(Model, GridMixin): + +.. TIP:: -Okay, so you have your data prepared, your plugin has all the functionalities needed for IO and setup. We're nearlly thare. The final bit that you'll have to do is write a model config file. This is a yaml file that is basically the final mannifest of how the functions you've written should be used. At the top level the model config keys should correspond to the names of the functions, and the mappings beneath that should be the arguments that should be passed to those functions. Note that the functions in the yaml file will be executed in the order they appear in the file, so be careful here! + Choosing the right HydroMT Model or submodel class for your plugin depends on your main model characteristics. Each sub-model class implements + a new HydroMT Model component, ``grid`` for ``GridModel`` or ``mesh`` for ``MeshModel`` and adds the accompanying setup, read and write methods. + So choosing the one or the other, or adding a Mixin depends on what type of model or input data strucuture you need to prepare. Note that if your + Model class is defined as (1) *PluginModel(GridModel)* or (2) *PluginModel(Model, GridMixin)*, in both cases the ``grid`` object and relative methods + are available. The main difference is the dominant object for your model in case of (2) will be ``grid`` and in case of (1) the ``region geoms``. + IE when looking for example for the model CRS property, in case of (1) the crs will be grid.crs and in case of (2) geoms.region.crs. Also, in + update mode, in case of (2), no additionnal data can be added to your model if the grid object is not yet defined (ie your model grid extent and + resolution does not yet exist). +Typical HydroMT folder structure +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +With HydroMT and some of its plugin, we usually use a classic folder structure and file organisation. It not mandatory to follow this structure +But if you choose to, a classic folder structure and files for a HydroMT plugin (eg mymodel) looks like this: -Using the template -^^^^^^^^^^^^^^^^^^ +- **docs**: folder containing your documentation pages. +- **examples**: folder containing example models, templates for building/updating models, jupyter notebooks. +- **tests**: folder containing your test scripts. +- *pyproject.toml*: your build-system requirements for your python package (used by pypi and conda). +- *README.md*: your landing documentation page for your repository. +- *LICENSE*: license file for your repository. +- **hydromt_mymodel**: folder containing the functions for your plugin. + - *__init__.py*: init python script used when importing the *hydromt_mymodel* package in a python script. + - *mymodel.py*: your main script where you will your plugin `Model` class (*MyModelModel*) and main functions (read/write/setup). + - **workflows**: folder contaning python scripts for data processing functions. + - **data**: folder containing model building templates and default values or data for your plugin. For example, it is usually + easier to update an existing template configuration file of your model rather than building it from scratch. You can store such + a template in that folder. If your model has default values for some parameters, you can also store them here, ideally with a + model data catalog to read the correponding files. + +Using the cookiecutter template +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ To make it easier to get started we have provided a `cookiecutter `_ template to help you get started. -The template itself is located at `https://github.com/Deltares/hydromt-plugin-template `. +The template itself is located at `https://github.com/Deltares/hydromt-plugin-template `_. + +This cookiecutter template contains: + - classic HydroMT folder structure. + - minimum definition of a new HydroMT plugin sub-model class and entrypoint registry. + - working pyproject.toml to install and publish your plugin python package. + - working minimum tests including GitHub workflow. + - working minimum documentation including GitHub workflow. + - code formatting workflow. + - templates for GitHub Issues and Pull Requests. + +So almost everything to get a working new python package for your HydroMT plugin! All you need is to define your model specific HydroMT functions +and well, if you wish to make it open for other users, choose an appropriate license. To use it you must first install cookiecutter itself like so: @@ -63,32 +240,675 @@ To use it you must first install cookiecutter itself like so: $ pip install cookiecutter -After that navigate to the folder in your terminal where you want to create the project. After doing that all you need to do is run the +After that navigate to the folder in your terminal where you want to create the project. After doing that, all you need to do is run the following command: .. code-block:: console $ cookiecutter https://github.com/Deltares/hydromt-plugin-template -You will be prompted for some information. After you've entered the information the project should be automatically created for you! Let's -say you just created the plugin called `hydromt_plugin` before you can start using it you'll need to initialise git within it like so: +You will be asked some questions and the template will be generated for you! +In those questions, suggestions will be shown to guide you, just replace the word *plugin* in the suggestions by your own plugin or model name +(eg *mymodel*) and the host GitHub organisation or user from *Deltares* to your own GitHub name or organisation (eg *savente93*). + +Here are some detailed information about what each question implies: + +- **project_name**: The name of your GitHub project (this will be used as the title of your GitHub repository/README). Eg *HydroMT MyModel* +- **project_slug**: The slug of your project (this will be used as the name of the pypi/conda package). Eg *hydromt_mymodel* +- **project_url**: The url of your project (this will be used as the url of the github repository). Eg *https://github.com/savente93/hydromt_mymodel* +- **docs_url**: The url of the documentation of your project (this will be used as the url of the documentation). Eg *https://savente93.github.io/hydromt_mymodel* +- **model_classname**: The name of the new HydroMT Model subclass that you are creating. Eg *MyModelModel* +- **model_type**: Type of HydroMT model corresponding to your model, one of [``Model``, ``GridModel``, ``MeshModel``, ``LumpedModel``, ``NetworkModel``] (!careful with syntax!). Eg *GridModel* +- **model_shortname**: The short name of your model. This will be used as the HydroMT Command Line name of your plugin and as the name of the main python file of + your project (which will contain the definition of your new Model class). Eg *mymodel* +- **project_tagline**: A short tagline (short description phrase) for your project. Eg *A HydroMT plugin for MyModel models.* +- **project_version**: The version of your project. Eg *0.1.0* + +Let's say you just created the plugin called `hydromt_mymodel` before you can start using it you'll need to initialise git within it like so: .. code-block:: console - $ cd hydromt_plugin + $ cd hydromt_mymodel $ git init -If your project has dependencies you can add them in the pyprojec.toml under the `dependencies` array. If you have `tomli` installed, you can -use the `make_env.py` script to generate a conda environment specifcation see :ref:`The developoer instalation page ` for +If your project has dependencies, you can add them in the pyproject.toml under the `dependencies` array. If you have `tomli` installed, you can +use the `make_env.py` script to generate a conda environment specification see :ref:`The developper installation page ` for more information on how to use this script. -Now, assuming that you've made a repository on github within the Deltares organisation you just need to add it as a remote in the repository -and push it. +Now, assuming that you've made a repository in your personal GitHub repository (eg user savente93) you just need to add it as a remote in the +repository and push it (for an organisation, you will need specific rights to do this). .. code-block:: console - $ git remote add origin https://github.com/Deltares/hydromt_plugin + $ git remote add origin https://github.com/savente93/hydromt_mymodel $ git push After this you can open up the github repository website, and you should see your generated project. You are now ready to start developing your own plugin! Well done, and good luck! + + +Conventions and tips to developp your own plugin +================================================ +To take back the schematic overview of the HydroMT package architecture (figure below), HydroMT is organized in the following way: + + - **Input data**: HydroMT is data-agnostic through the ``DataAdapter``, which reads a wide range of data formats and unifies the input data (e.g., + on-the-fly renaming and unit conversion). Datasets are listed and passed to HydroMT in a ``DataCatalog`` yaml file. + + HydroMT core should normally take care of everything your plugin needs here, so the only thing you should know is how to use it correctly + for example in your model methods and workflows (see below). + - **Model**: HydroMT defines any model instance through the model-agnostic ``Model`` API based on several components: maps, geometries, forcings, + results, states, and the model simulation configuration. For different types of general model classes (i.e., gridded, lumped, mesh and network + models) additional model components have been defined. Each component is represented with a specific Python data object to provide a common interface + to different model software. + + We will see below how to initialise properly the ``Model`` class and its main attributes as well as how to work with the + model components in the :ref:`Model class and components ` section. + - **Methods and workflows**: Most of the heavy work in HydroMT is done by Methods and workflows, indicated by the gear wheels in the schematic of + HydroMT architecture below. Methods provide the low-level functionality such as GIS rasterization, reprojection, or zonal statistics. Workflows combine + several methods to transform data to a model layer or postprocess model results. + + In the :ref:`data processing section `, we will see + some examples and best practices of how to process and add data to your model. + - **Command line and Python interface**: The CLI is a high-level interface to HydroMT. It is used to run HydroMT methods such as build, update or clip. + While most common functionalities can be called through the CLI, the Python interface offers more flexibility for advanced users. It allows you to e.g. + interact directly with a model component Model API and apply the many methods and workflows available. + + We saw in the :ref:`section above ` + how to properly instantiate your plugin class and register it to HydroMT entrypoints. + +.. figure:: ../_static/Architecture_model_data_input.png + + Schematic of HydroMT architecture + +.. _plugin_components: + +Model class and components +-------------------------- +In this section, we will detail the bottom part of the schematic ie how to initialise your HydroMT Model class for your plugin, the main properties and how to +work with its model components. + +Initialisation +^^^^^^^^^^^^^^ +In the :ref:`create plugin section `, we already saw which HydroMT ``Model`` class to choose for your plugin. Here we will focus on additionnal +properties and the initiliasation of your new Model subclass. + +To fully initiliase your new subclass (eg *MyModelModel*), you need to initialise a couple of high level properties and in some cases, you may wish to modify +the default initialisation function of you parent class (the HydroMT core class you choose, ``Model`` or ``GridModel`` etc.). + +.. TIP:: + + In python, a child class (eg *MyModelModel(Model)*), inherits all methods and properties of the parent class (``Model``). If you wish to overwrite completely one + of the parent method (eg ``setup_region``), you can just redefine the function in the child class using the name (``setup_region``). You can also decide to partly + re-use the parent function and for example add some extra steps, change the default values or the docstring of the function. For this, you can redefine the + function in the child class, and within the redefined function, call the parent one use *super()* python class attribute (*super().setup_region*). You will see + an example below for the initialisation function ``__init__`` . + +Below are the properties and initialisation function, to set for your new plugin *MyModelModel* class: + +.. code-block:: python + + from hydromt.models import Model + from os.path import abspath, join, dirname + + + class MyModelModel(Model): + """This is the HydroMT MyModel class for MyModel models.""" + + ### Any global class variables your model should have go here ### + # shortname of your model / hydromt model name for CLI + _NAME: str = "mymodel" + # Default filename for mymodel configuration file / run settings + _CONF: str = "model.yaml" + # Path to default model building for my model / eg template configuration files to edit + # default paremter values etc. + # This folder in many existing plugins is usually placed at the same level of the class name + # definition in a floder called "data". + _DATADIR: Path = abspath(join(dirname(__file__), "data")) + # tell hydroMT which methods should receive the res and region arguments from CLI + _CLI_ARGS: Dict[str, str] = {"region": "setup_region", "res": None} + + ### Dictionnary of hydromt model components mapping ### + # Can be used for example to rename variables in the different components from + # hydromt convention name to the model specific name. + _GEOMS: Dict[str, Any] = {} + _MAPS: Dict[str, Any] = {"elevtn": "dem"} + _FORCINGS: Dict[str, Any] = {} + _STATES: Dict[str, Any] = {} + _RESULTS: Dict[str, Any] = {} + # If your parent class is GridModel, MeshModel, LumpedModel or NetworkModel + # you can also add to the list here + + ### Name of default folders to create in the model directory ### + # When initiliasing a new model for a specific region, the folders + # int he list will be created + _FOLDERS: List[str] = [] + + ### Name of defaults catalogs to include when initialising the model ## + # For example to include model specific parameter data or mapping + # These default catalogs can be placed in the _DATADIR folder. + _CATALOGS: List[str] = [join(_DATADIR, "parameters_data.yml")] + + def __init__( + self, + root: Optional[str] = None, + mode: str = "w", + config_fn: Optional[str] = None, + data_libs: Optional[Union[List[str], str]] = None, + logger: logging.Logger = logger, + ): + """ + The mymodel model class MyModelModel. + + Contains methods to read, write, setup and update mymodel models. + + Parameters + ---------- + root : str, Path, optional + Path to the model folder + mode : {'w', 'w+', 'r', 'r+'}, optional + Mode to open the model, by default 'w' + config_fn : str, Path, optional + Path to the model configuration file, by default None to read + from template in build mode or default name in update mode. + data_libs : list of str, optional + List of data catalogs to use, by default None. + logger : logging.Logger, optional + Logger to use, by default logger + """ + # Add model _CATALOGS to the data_libs, if you wish to use default catalogs + if self._CATALOGS: + if isinstance(data_libs, str): + data_libs = [data_libs] + if data_libs is None: + data_libs = [] + data_libs = data_libs + self._CATALOGS + + # Call the parent class initialisation method using super() + super().__init__( + root=root, + mode=mode, + config_fn=config_fn, + data_libs=data_libs, + logger=logger, + ) + + # If your model needs any extra specific initialisation parameter or step + # add them here + # Example: an extra propery or default value, or a new HydroMT component + + + # end of the __init__ function + +Model components +^^^^^^^^^^^^^^^^ +A reminder from the :ref:`Model guide `: + + HydroMT defines any model through the model-agnostic Model API based on several *general* components and *computational* unit components. + Each component represents a specific model data type and is parsed to a specific Python data object. + The general components are **maps** (raster data), **geoms** (vector data), **forcing**, **results**, **states**, and **config** + (the model simulation configuration). These are available to all model classes and plugins. + The computational components are different for different types of models: i.e. **grid** for distributed or grid models, + **response_units** for lumped or semi-distributed models, **mesh** for mesh or unstructured grid models, and **network** for + network models (to be developed). + +So typically, when you want to add data to your model (DEM, precipitation, parameters etc.), you add data to one of the +specific Model component. To add data, to a component, the ``set_`` methods are you use and each of the components can be +read and written using the specific ``read_`` and ``write_`` methods. + +The table below lists the base model components common to all model classes. +All base model attributes and methods can be found in the :ref:`API reference ` + +.. list-table:: + :widths: 10 25 20 15 + :header-rows: 1 + + * - Component + - Explanation + - Python object + - API + * - maps + - Map / raster data (resolution and CRS may vary between maps) + - Dictionnary of xarray.DataArray and/or xarray.Dataset + - | :py:attr:`~Model.maps` + | :py:func:`~Model.set_maps` + | :py:func:`~Model.read_maps` + | :py:func:`~Model.write_maps` + * - geoms + - Static (1 or 2D) vector data + - Dictionnary of geopandas.GeoDataFrame + - | :py:attr:`~Model.geoms` + | :py:func:`~Model.set_geoms` + | :py:func:`~Model.read_geoms` + | :py:func:`~Model.write_geoms` + * - forcing + - (Dynamic) forcing data (meteo or hydrological for example) + - Dictionnary of xarray.DataArray and/or xarray.Dataset + - | :py:attr:`~Model.forcing` + | :py:func:`~Model.set_forcing` + | :py:func:`~Model.read_forcing` + | :py:func:`~Model.write_forcing` + * - results + - Model output + - Dictionnary of xarray.DataArray and/or xarray.Dataset + - | :py:attr:`~Model.results` + | :py:func:`~Model.set_results` + | :py:func:`~Model.read_results` + * - states + - Initial model conditions + - Dictionnary of xarray.DataArray and/or xarray.Dataset + - | :py:attr:`~Model.states` + | :py:func:`~Model.set_states` + | :py:func:`~Model.read_states` + | :py:func:`~Model.write_states` + * - config + - Settings for the model kernel simulation or model class + - Dictionnary (Any) + - | :py:attr:`~Model.config` + | :py:func:`~Model.set_config` + | :py:func:`~Model.read_config` + | :py:func:`~Model.write_config` + + +For each generalized model class, the respective computational unit components exist: + +.. list-table:: + :widths: 15 15 25 20 15 + :header-rows: 1 + + * - Component + - Model class + - Explanation + - Python object + - API + * - grid + - :ref:`GridModel ` + - Static gridded data with on unified grid + - xarray.Dataset (compatible with hydromt.raster.RasterDataset) + - | :py:attr:`~GridModel.grid` + | :py:func:`~GridModel.set_grid` + | :py:func:`~GridModel.read_grid` + | :py:func:`~GridModel.write_grid` + * - response_units + - :ref:`LumpedModel ` + - Static lumped data over the response_units + - xarray.Dataset (compatible with hydromt.vector.GeoDataset) + - | :py:attr:`~LumpedModel.response_units` + | :py:func:`~LumpedModel.set_response_units` + | :py:func:`~LumpedModel.read_response_units` + | :py:func:`~LumpedModel.write_response_units` + * - mesh + - :ref:`MeshModel ` + - Static mesh (unstructured grid(s)) data + - xugrid.UgridDataset + - | :py:attr:`~MeshModel.mesh` + | :py:func:`~MeshModel.set_mesh` + | :py:func:`~MeshModel.get_mesh` + | :py:func:`~MeshModel.read_mesh` + | :py:func:`~MeshModel.write_mesh` + +Reading & Writing model components +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Because the way that models consume data is so hyper specialised, the main part of writing a plugin is writing the +Input/Output (IO) methods to prepare data exactly as your model expects them, in the correct format. To do this you'll +be overwriting most ``read_`` or ``write_`` methods in your model class. That will ensure that the +data comes in and goes out expecting exactly as you want. + +In the default HydroMT CORE read and write methods, xarray objects are written as netcdf files, ``geoms`` as GeoJSON files by +default but any geopandas driver is allowed, and ``config`` eithey as TOML, YAML or INI file. So again, you could decide to +completely overwrite the parent read and write methods or change the defaults. + +Eg if your geoms should be written in GeoPackage format rather than GeoJSON and in a geometry folder in your model: + +.. code-block:: python + + def write_geoms(self): + """ Write model geometries to a GeoPackage file at /geometry/.gpkg """ + + super().write_geoms( + fn = "geometry/{name}.gpkg", + driver = 'GPKG' + ) + +If you are writting your own read/write functions, some good pratice steps of the function: + +1. For writting, check first if the object you are writting is not empty, then you can pass. Example: + +.. code-block:: python + + if len(self.geoms) == 0: + self.logger.debug("No geoms data found, skip writing.") + return + +2. For reading or writting, check that you have the right permission. For example, in build mode ('w' or 'w+'), +the model should be empty, so you should not be able to read existing model files. In some cases, python +users may only want to read a model using HydroMT to visualise or plot data. As a protection, the model +can then be opened in read only mode ('r') and HydroMT should not be able to overwrite any data. HydroMT +`Model` class has two porperties you can use to check for this: + +- `self._assert_read_mode` if a model can be read +- `self._assert_write_mode` if a model can be written +3. If needed transform, and write the component to the right format and file(s). Don't hesitate to put +some logger information for your user. + +Set model components +^^^^^^^^^^^^^^^^^^^^ +To add data to one of the model component (e.g. a DEM raster data to maps), the ``set_`` methods should be used. +In the background, the actual data is stored not directly in the components but in a **placeholder** property +(``_maps`` for ``maps``). And the component, ``maps``, actually just goes and fetch the data from the placeholder ``_maps`` or +in read mode, starts reading the component. + +.. code-block:: python + + @property + def maps(self) -> Dict[str, Union[xr.Dataset, xr.DataArray]]: + """Model maps. Returns dict of xarray.DataArray or xarray.Dataset.""" + if self._maps is None: + self._maps = dict() + if self._read: + self.read_maps() + return self._maps + +Using a placeholder allows to initiate reading when possible (e.g. in update mode 'r+'), the first time when the +component is called, to avoid unintentiously overwritting data stored, and allows to add some check or transformation +when adding data to a component using the ``set_`` methods. + +So it is usually highly recommended, in your plugin to always use the component (``maps``) and to only modify its placholder +using the ``set_`` methods. Example of ``set_maps``: + +.. code-block:: python + + def set_maps( + self, + data: Union[xr.DataArray, xr.Dataset], + name: Optional[str] = None, + split_dataset: Optional[bool] = True, + ) -> None: + """Add raster data to the maps component. + + Dataset can either be added as is (default) or split into several + DataArrays using the split_dataset argument. + + Arguments + --------- + data: xarray.Dataset or xarray.DataArray + New forcing data to add + name: str, optional + Variable name, only in case data is of type DataArray or if a Dataset is + added as is (split_dataset=False). + split_dataset: bool, optional + If data is a xarray.Dataset split it into several xarray.DataArrays. + """ + data_dict = _check_data(data, name, split_dataset) + for name in data_dict: + if name in self.maps: # trigger init / read + self.logger.warning(f"Replacing result: {name}") + self._maps[name] = data_dict[name] + +Additional Model properties +^^^^^^^^^^^^^^^^^^^^^^^^^^^ +You can have a look at the :ref:`Model API documentation ` to find out all other properties of the ``Model`` class and +the other subclasses. Apart from the components here are a couple of useful properties to use when developping your plugin: + +- :py:attr:`~Model.root`: path to the root folder of the model instance you are working with. +- :py:attr:`~Model.crs`: the reference coordinate system (pyproj.CRS) of the model. +- :py:attr:`~Model.region`: the region (GeoDataFrame) of your model, stored in :py:attr:`~Model.geoms`. +- :py:attr:`~Model.data_catalog`: the current data catalog you can use to add data to your model. +- :py:attr:`~Model.logger`: the HydroMT logger object for your model instance. +- :py:attr:`~Model._read`: flag if the model is in read mode ('r' or 'r+' when initialising). +- :py:attr:`~Model._write`: flag if the model is in write mode ('w' or 'w+' when initialising). + +Some submodel classes can have additionnal attributes based on their additionnal components, so check out the :ref:`API reference `. + +Adding a new property or component +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +If you wish to add additionnal properties or attributes to your plugin Model subclass, you can either decide to add simple +attributes directly in the initiliasation function ``__init__`` or define specific properties. Example for a shortcut to the basin +vector in the geoms object: + +.. code-block:: python + + @property + def basins(self) -> gpd.GeoDataFrame: + """Returns a basin(s) geometry as a geopandas.GeoDataFrame.""" + # Check in geoms + if "basins" in self.geoms: + gdf = self.geoms["basins"] + # Check in maps + elif self._MAPS["basins"] in self.maps: + gdf = ( + self.maps[self._MAPS["basins"]] + .raster.vectorize() + .set_index("value") + .sort_index() + ) + gdf.index.name = self._MAPS["basins"] + # Store in geoms to re-use later + self.set_geoms(gdf, name="basins") + else: + self.logger.warning( + f"Basin map {self._MAPS['basins']} not found in maps or geoms." + ) + gdf = gpd.GeoDataFrame() + return gdf + +In most cases, we hope that the components defined in HydroMT `Model` classes (``config``, ``geoms``, ``maps``, ``forcing``, ``states``, +``results``) and its generic subclasses (``grid``, ``mesh``, ``response_units``) should allow you to store any data required by your +model in a proper way. If it is not the case, you can always define your own new model components by respecting the following steps +(example if your model has a lot of 2D non-geospatial tabular data that could nicely be stored as pandas.DataFrame objects, *tables*): + +1. Initiliase your new component placeholder in the ``__init__`` function, if possible with None. + +.. code-block:: python + + self._tables = None + +2. Define the component itself as a new property, that looks for the placeholder and tries reading if empty in read mode. + +.. code-block:: python + + @property + def tables(self) -> Dict[str, pd.DataFrame]: + """Returns a dictionary of pandas.DataFrame tabular files.""" + if self._tables is None: + self._tables = dict() + if self._read: + self.read_tables() + return self._tables + +3. Define a reading and a writting method for your new component. + +.. code-block:: python + + def read_tables(self, **kwargs): + """Read table files at and parse to dict of dataframes""" + if not self._write: + self._tables = dict() # start fresh in read-only mode + + self.logger.info("Reading model table files.") + fns = glob.glob(join(self.root, f"*.csv")) + if len(fns) > 0: + for fn in fns: + name = basename(fn).split(".")[0] + tbl = pd.read_csv(fn) + self.set_tables(tbl, name=name) + + def write_tables(self): + """Write tables at .""" + self._assert_write_mode + if len(self.tables) > 0: + self.logger.info("Writing table files.") + for name in self.tables: + fn_out = join(self.root, f"{name}.csv") + self.tables[name].to_csv(fn_out, sep=",", index=False, header=True) + +4. Define a set function in order to add or update data in your component. + +.. code-block:: python + + def set_tables(self, df: pd.DataFrame, name:str): + """Add table to model.""" + if not (isinstance(df, pd.DataFrame) or isinstance(df, pd.Series)): + raise ValueError("df type not recognized, should be pandas.DataFrame or pandas.Series.") + if name in self._tables: + if not self._write: + raise IOError(f"Cannot overwrite table {name} in read-only mode") + elif self._read: + self.logger.warning(f"Overwriting table: {name}") + self._tables[name] = df + +.. _plugin_workflows: + +Data processing: setup methods and workflows +-------------------------------------------- +Now let's focus on the wheel part of the schematic diagram or how to add data to your model using HydroMT, which is what it's all about! +Nothing here is really mandatory but more about conventions or tips also from experience with other plugins. + +But in general (scheme below): + +- To build a model we specify ``setup_<>`` methods which transform raw input data to a specific model variable(s), for instance + the ``setup_landuse`` method in HydroMT-Wflow to map landuse classes to associated Wflow parameter grids which are part of + the ``grid`` component. +- All public model methods may only contain arguments which require one of the following basic python types: string, numeric + integer and float, boolean, None, list and dict types. This requirement makes it possible to expose these methods and their arguments + via the hydromt configuration in YAML format. +- Data is exposed to each model method through the ``Model.data_catalog`` attribute which is an instance of the + :py:class:`hydromt.DataCatalog`. Data of :ref:`supported data types ` is provided to model methods + by arguments which end with ``_fn`` (short for filename) which refer to a source in the data catalog + based on the source name or a file based on the (relative) path to the file. Within a model method the data is read + by calling any ``DataCatalog.get_`` method which work for both source and file names. +- The region and res (resolution) arguments used in the command line build and clip methods are passed to the model method referred + in the internal *_CLI_ARGS* model constant, which by default in the Model class, is the setup_basemaps method for both arguments. This is + typically the first model method which should be called when building a model or your base / region setup method. +- Workflows define (partial) transformations of data from input data to model data. And should, if possible, be kept generic to be + shared between model plugins. The input data is passed to the workflow by python data objects consistent with its associated data + types (e.g. xarray.Dataset for regular rasters) and not read by the workflow itself. + +.. figure:: ../_static/model_building_process.png + + Schematic of model building process with HydroMT + +.. _plugin_setup: + +Setup methods +^^^^^^^^^^^^^ + +In general, a HydroMT ``setup_<>`` method does 4 things: + + 1. read or otherwise fetch data using the ``DataCatalog`` and ``DataAdapter`` and the corresponding ``get_data`` method ( + ``get_rasterdataset`` for RasterDataset, ``get_GeoDataset`` for GeoDataset, ``get_geodataframe`` for GeoDataFrame and + ``get_dataframe`` for DataFrame). + + 2. process that data in some way, optionally by calling an external workflow function. + 3. rename or update attributes from HydroMT variable conventions (name, unit) to the specific model conventions. + 4. adds the data to the corresponding HydroMT model components. + +A simplified example of what a setup function would look like for example to add a landuse grid from a raster input +data using an external workflow from hydromt core is: + +.. code-block:: python + + def setup_landuse( + self, + landuse_fn: Union[str, Path, xr.DataArray], + ): + """Add landuse data variable to grid. + + Adds model layers: + + * **landuse_class** grid: data from landuse_fn + + Parameters + ---------- + landuse_fn: str, Path, xr.DataArray + Data catalog key, path to raster file or raster xarray data object. + If a path to a raster file is provided it will be added + to the data_catalog with its name based on the file basename without + extension. + """ + self.logger.info(f"Preparing landuse data from raster source {landuse_fn}") + # 1. Read landuse raster data + da_landuse = self.data_catalog.get_rasterdataset( + landuse_fn, + geom=self.region, + buffer=2, + variables=["landuse"], + ) + # 2. Do some transformation or processing + ds_out = hydromt.workflows.grid.grid_from_rasterdataset( + grid_like=self.grid, + ds=da_landuse, + fill_method="nearest", + reproject_method="mode", + ) + # 3. Rename or transform from HydroMT to model conventions + rmdict = {"landuse": "landuse_class"} + # Or using a properly initialised _GRIDS + # rmdict = {k: v for k, v in self._GRIDS.items() if k in ds_out.data_vars} + ds_out = ds_out.rename(rmdict) + + # 4. Add to grid + self.set_grid(ds_out) + +.. NOTE:: + + **Input data type of the setup method**: Typically a setup function tries to go from one type of dataset + (landuse raster) to a HydroMT model component (landuse map in ``maps``). So it's good to make clear for your user in + the setup function docstrings which type of input data this function can work with. You could decide to support + several data types in one setup function but be aware that the GIS processing functions like resampling, reprojection can + be quite different for a raster or a vector for example. So you could decide to create two setup functions that + prepare the same data but from different type of input data (eg *setup_landuse_from_raster* and *setup_landuse_from_vector*). + + +Base or region setup method(s) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +When building a model from scratch, the first thing you should do is to define the region in the world your model is located in, +if needed its CRS and its computational unit (grid, mesh, responce_unit etc.). This is usually typically set by a first base or region +setup method which typically parses the region argument of the HydroMT CLI. The idea is that after this function has been called, the +user should already be able to have the minimum model properties or files in order to be able to call HydroMT to ``update`` the model to +add additionnal data (``build`` is not required anymore). + +For example, this is what the ``setup_region`` from ``Model`` does by adding ``region`` to ``geoms``, or ``setup_grid`` from ``GridModel`` which +generates a regular grid based on the region argument, a CRS and a resolution. You can re-use the core methods or decide to define your +own. + +.. NOTE:: + + **Order of the setup methods**: apart that your model class should have a base method that at least defines the model region and CRS, + there is no real check on the order in which setup methods are called. For Command Line users, the functions in the hydromt configuration + yaml file will be executed in the order they appear in the file. So if in your case, a setup method should be called before another + (eg you first should have a DEM before you can add rivers to your model), then in the following setup method, check if the required data + are already in the model and else send a clear error message. Clear documentation will help your user too. + +Workflows +^^^^^^^^^ +Because the python script defining your plugin Model class can get quite long, if complex data processing is required in your ``setup_<>`` +method, we encourage you to use or define external data processing functions that we usually call workflows in HydroMT. These workflows +are usually stored in separate python scripts that you can decide to store in a workflow subfolder. + +A couple of tips if you want to define workflows: + +- check out the :ref:`workflows available ` in HydroMT core +- avoid passing the HydroMT model class to your workflow function, but pass the required arguments directly (eg crs = self.crs, + data = self.grid). Ideally the workflows work from common python objects like xarray or geopandas rather than with the ``Model`` class. +- if you want to do some GIS processing on ``RasterDataset`` or ``GeoDataset``, HydroMT defines a lot of useful methods. Check out the + :ref:`Raster methods API doc ` for RasterDataset and :ref:`GeoDataset methods API doc `. For ``GeoDataFrame``, + the `geopandas `_ library should have most of what you need (and for ``UgridDataset`` or mesh, + the `xugrid `_ library). For computing or deriving other variables from an input dataset, HydroMT + contains also a couple of useful workflows for example ``flwdir`` for flow direction methods, ``basin_mask`` to derive basin shape, or + ``stats`` to derive general, efficiency or extreme value statistics from data. + +Good practices +-------------- +On top of code development for your plugin, you can also find some good practices for your plugin repository in the :ref:`Developper guide `. +Here are some last tips: + +- **Documentation**: for other people to use or contribute to your plugin, good documentation is really key. We really encourage you to write + docstrings for your function (HydroMT uses the NumPy style) as they can directly serve and be imported in your online documentation. So no + need for duplicates. Type hints are also encouraged to know what type of arguments each function is expecting. Finally, for the ``setup_<>`` + function, it is good to mention if your input data should have required or optional variables (including names and units) to help out your user. +- **Examples**: if you can, it is nice to include some example models or build configuration template files with your repository. Jupyter Notebook + can also easily be included in GitHub documentation. +- **Testing**: you should also test the functions you developp for your plugin. We use pytest in HydroMT for this. You can test by developping + unit test for your functions, or build a model and compare to a previously built one (eg in the examples folder). The ``Model`` API includes a + couple of functions that can help you with testing so you can check them out: :py:func:`~Model._test_model_api`, :py:func:`~Model._test_equal` diff --git a/docs/plugins.rst b/docs/plugins.rst index 2a93c174a..8f1947237 100644 --- a/docs/plugins.rst +++ b/docs/plugins.rst @@ -66,3 +66,12 @@ About the model software .. _SFINCS: https://sfincs.readthedocs.io/en/latest/ .. _Delwaq: https://www.deltares.nl/en/software/module/d-water-quality/ .. _Delft-FIAT: https://publicwiki.deltares.nl/display/DFIAT/Delft-FIAT+Home + +Starting your own plugin +------------------------ + +If you would like to start your own HydroMT plugin for another model or software, we have some +tips or a quick start page for you: :ref:`plugin_quickstart`. + +If you would like your plugin to appear on this page, please contact us via the issue board of +HydroMT! From d89127212eb1076ade81886747cac463c6e3819d Mon Sep 17 00:00:00 2001 From: Sam Vente Date: Thu, 7 Sep 2023 13:17:51 +0000 Subject: [PATCH 11/19] Apply suggestions from code review Co-authored-by: DirkEilander --- docs/dev/plugin-quickstart.rst | 67 ++++++++++++---------------------- 1 file changed, 23 insertions(+), 44 deletions(-) diff --git a/docs/dev/plugin-quickstart.rst b/docs/dev/plugin-quickstart.rst index ecfe29b57..aec9a4a5d 100644 --- a/docs/dev/plugin-quickstart.rst +++ b/docs/dev/plugin-quickstart.rst @@ -57,11 +57,11 @@ write the output files in different formats. Another advantage of writting your own plugin is that other users from the same model can easily build instances of that model re-using the plugin. So for example, converting from netcdf to model specific file format, using pre-defined HydroMT building -configuration templates or paramter default values, but also using more instinctive and guided model building methods. +configuration templates or parameter default values, but also using more instinctive and guided model building methods. This is maybe a little more advanced but let's say that your model is a ``GridModel`` for which you need to prepare a *landuse* -classification map (which when resampled should be done using *mode* to avoid creating new imaginary land use classes which you -would do if you would use *average*) and two landuse parameters roughness *N* and infiltration *inf*. Well, using HydroMT generic +classification map (for which resampling should be done using *mode* to avoid creating new imaginary land use classes which you +would do if you would use e.g., *average*) and two landuse parameters roughness *N* and infiltration *inf*. Well, using HydroMT generic methods, for your user, the build configuration file would look like this: .. code-block:: yaml @@ -100,14 +100,14 @@ Finally, with the generic methods and sub-model classes of HydroMT, we try to su If you find that there is no method available for your case, you can always open an issue and if we think your proposed method can be re-used by others, it could be added to the core. However, for some complex or very specific data processing, this will not be the case. For example, if your model requires a specific soil parameter that can be computed using only specific equation(s) based -on soil properties data. In these cases, you can always first build a global map of your parameter and use the core method to -resample/extract, or then write down your specific workflow/equation in your model plugin. +on soil properties data. In these cases, you can either pre-compute your parameter and use the core method to +resample/extract, or write down your specific workflow/equation in your model plugin. To conclude, before getting started **you should ask yourself these questions**: 1. Does HydroMT generic ``Model`` and sub-model classes allow me to prepare most of the data for my model? - 2. Does my model have complex file formats? + 2. Does my model have model-specific file formats which are different from the HydroMT defaults? 3. Does my model require complex data processing workflows that are not covered (or will not be covered) by the generic model classes? 4. Will there be a lot of users for my model? @@ -123,7 +123,7 @@ Below are a couple of advantages and drawbacks of making your own plugin: *Drawbacks* -- Need to create and developp a plugin repository. +- Need to create and develop a plugin repository. - Need to support and maintain the plugin repository. .. _plugin_create: @@ -162,7 +162,7 @@ Now, how do you define the new plugin ``Model`` class. To make sure that your mo ``Model`` class of HydroMT core as a base or one of its sub-model classes: ``GridModel`` for regular gridded or distributed models, ``MeshModel`` for unstructured grid(s) models, ``LumpedModel`` for lumped or semi-distributed models or ``NetworkModel`` for network models. This allows you to use the HydroMT model class methods as well as create any functionality on top of that. To define your new model class, e.g. *WflowModel*, -you should in a python script define at least: +you should in the python script that is referenced by the entry-point define at least: .. code-block:: python @@ -177,7 +177,7 @@ And that's it! If everything has gone well, you should be able to access your co .. NOTE:: - If you want to mix models functionalities, e.g. your model contains both regular grids and semi-distributed units, most model classes also + If you want to mix functionalities from different sub-model classes, e.g. your model contains both regular grids and semi-distributed units, most model classes also provide ``Mixin`` variants that you can use to mix and match a bit more modularly. This is actually how the generic sub-classes are defined, as a mix of the main HydroMT ``Model`` class and the ``Mixin`` of the additionnal new component defining then: @@ -191,13 +191,13 @@ And that's it! If everything has gone well, you should be able to access your co a new HydroMT Model component, ``grid`` for ``GridModel`` or ``mesh`` for ``MeshModel`` and adds the accompanying setup, read and write methods. So choosing the one or the other, or adding a Mixin depends on what type of model or input data strucuture you need to prepare. Note that if your Model class is defined as (1) *PluginModel(GridModel)* or (2) *PluginModel(Model, GridMixin)*, in both cases the ``grid`` object and relative methods - are available. The main difference is the dominant object for your model in case of (2) will be ``grid`` and in case of (1) the ``region geoms``. - IE when looking for example for the model CRS property, in case of (1) the crs will be grid.crs and in case of (2) geoms.region.crs. Also, in - update mode, in case of (2), no additionnal data can be added to your model if the grid object is not yet defined (ie your model grid extent and + are available. The main difference is the dominant object for your model in case of (2) will be ``grid`` and in case of (1) the ``region``. + IE when looking for example for the model CRS property, in case of (1) the crs will be grid.crs and in case of (2) region.crs. Also, in + update mode, in case of (2), no additional data can be added to your model if the grid object is not yet defined (ie your model grid extent and resolution does not yet exist). -Typical HydroMT folder structure -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Typical HydroMT repository structure +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ With HydroMT and some of its plugin, we usually use a classic folder structure and file organisation. It not mandatory to follow this structure But if you choose to, a classic folder structure and files for a HydroMT plugin (eg mymodel) looks like this: @@ -287,7 +287,7 @@ After this you can open up the github repository website, and you should see you plugin! Well done, and good luck! -Conventions and tips to developp your own plugin +Conventions and tips to develop your own plugin ================================================ To take back the schematic overview of the HydroMT package architecture (figure below), HydroMT is organized in the following way: @@ -367,16 +367,6 @@ Below are the properties and initialisation function, to set for your new plugin # tell hydroMT which methods should receive the res and region arguments from CLI _CLI_ARGS: Dict[str, str] = {"region": "setup_region", "res": None} - ### Dictionnary of hydromt model components mapping ### - # Can be used for example to rename variables in the different components from - # hydromt convention name to the model specific name. - _GEOMS: Dict[str, Any] = {} - _MAPS: Dict[str, Any] = {"elevtn": "dem"} - _FORCINGS: Dict[str, Any] = {} - _STATES: Dict[str, Any] = {} - _RESULTS: Dict[str, Any] = {} - # If your parent class is GridModel, MeshModel, LumpedModel or NetworkModel - # you can also add to the list here ### Name of default folders to create in the model directory ### # When initiliasing a new model for a specific region, the folders @@ -549,13 +539,13 @@ For each generalized model class, the respective computational unit components e Reading & Writing model components ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Because the way that models consume data is so hyper specialised, the main part of writing a plugin is writing the +Because the way that models consume data is often model software specific, the main part of writing a plugin is writing the Input/Output (IO) methods to prepare data exactly as your model expects them, in the correct format. To do this you'll be overwriting most ``read_`` or ``write_`` methods in your model class. That will ensure that the data comes in and goes out expecting exactly as you want. In the default HydroMT CORE read and write methods, xarray objects are written as netcdf files, ``geoms`` as GeoJSON files by -default but any geopandas driver is allowed, and ``config`` eithey as TOML, YAML or INI file. So again, you could decide to +default but any geopandas driver is allowed, and ``config`` either as TOML, YAML or INI file. So again, you could decide to completely overwrite the parent read and write methods or change the defaults. Eg if your geoms should be written in GeoPackage format rather than GeoJSON and in a geometry folder in your model: @@ -572,7 +562,7 @@ Eg if your geoms should be written in GeoPackage format rather than GeoJSON and If you are writting your own read/write functions, some good pratice steps of the function: -1. For writting, check first if the object you are writting is not empty, then you can pass. Example: +1. For writing, check first if the object you are writing is not empty, then you can pass. Example: .. code-block:: python @@ -580,7 +570,7 @@ If you are writting your own read/write functions, some good pratice steps of th self.logger.debug("No geoms data found, skip writing.") return -2. For reading or writting, check that you have the right permission. For example, in build mode ('w' or 'w+'), +2. For reading or writing, check that you have the right permission. For example, in build mode ('w' or 'w+'), the model should be empty, so you should not be able to read existing model files. In some cases, python users may only want to read a model using HydroMT to visualise or plot data. As a protection, the model can then be opened in read only mode ('r') and HydroMT should not be able to overwrite any data. HydroMT @@ -658,11 +648,11 @@ the other subclasses. Apart from the components here are a couple of useful prop - :py:attr:`~Model._read`: flag if the model is in read mode ('r' or 'r+' when initialising). - :py:attr:`~Model._write`: flag if the model is in write mode ('w' or 'w+' when initialising). -Some submodel classes can have additionnal attributes based on their additionnal components, so check out the :ref:`API reference `. +Some submodel classes can have additional attributes based on their additional components, so check out the :ref:`API reference `. Adding a new property or component ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -If you wish to add additionnal properties or attributes to your plugin Model subclass, you can either decide to add simple +If you wish to add additional properties or attributes to your plugin Model subclass, you can either decide to add simple attributes directly in the initiliasation function ``__init__`` or define specific properties. Example for a shortcut to the basin vector in the geoms object: @@ -674,17 +664,6 @@ vector in the geoms object: # Check in geoms if "basins" in self.geoms: gdf = self.geoms["basins"] - # Check in maps - elif self._MAPS["basins"] in self.maps: - gdf = ( - self.maps[self._MAPS["basins"]] - .raster.vectorize() - .set_index("value") - .sort_index() - ) - gdf.index.name = self._MAPS["basins"] - # Store in geoms to re-use later - self.set_geoms(gdf, name="basins") else: self.logger.warning( f"Basin map {self._MAPS['basins']} not found in maps or geoms." @@ -761,7 +740,7 @@ model in a proper way. If it is not the case, you can always define your own new Data processing: setup methods and workflows -------------------------------------------- -Now let's focus on the wheel part of the schematic diagram or how to add data to your model using HydroMT, which is what it's all about! +Now let's focus on the _gear wheels_ of the schematic diagram or how to add data to your model using HydroMT, which is what it's all about! Nothing here is really mandatory but more about conventions or tips also from experience with other plugins. But in general (scheme below): @@ -900,7 +879,7 @@ A couple of tips if you want to define workflows: Good practices -------------- -On top of code development for your plugin, you can also find some good practices for your plugin repository in the :ref:`Developper guide `. +On top of code development for your plugin, you can also find some good practices for your plugin repository in the :ref:`Developer guide `. Here are some last tips: - **Documentation**: for other people to use or contribute to your plugin, good documentation is really key. We really encourage you to write From 04cffe85187c53805389318c52f7eb085bfa2b7f Mon Sep 17 00:00:00 2001 From: Sam Vente Date: Fri, 8 Sep 2023 16:45:40 +0200 Subject: [PATCH 12/19] fix a few review comments --- docs/api.rst | 9 ------- docs/dev/plugin-quickstart.rst | 47 +++++++++++++++++----------------- 2 files changed, 24 insertions(+), 32 deletions(-) diff --git a/docs/api.rst b/docs/api.rst index a820f5fa3..8ea3a8caa 100644 --- a/docs/api.rst +++ b/docs/api.rst @@ -217,15 +217,6 @@ Setup methods Model.setup_maps_from_rasterdataset Model.setup_maps_from_raster_reclass -Testing (internal) ------------------- - -.. autosummary:: - :toctree: _generated - - Model._test_model_api - Model._test_equal - .. _grid_model_api: diff --git a/docs/dev/plugin-quickstart.rst b/docs/dev/plugin-quickstart.rst index aec9a4a5d..2236d5b34 100644 --- a/docs/dev/plugin-quickstart.rst +++ b/docs/dev/plugin-quickstart.rst @@ -32,7 +32,29 @@ Getting started Plugin or no plugin ? --------------------- You've discovered HydroMT and would like to use it for your own model and wonder how to get started about it? -Well the first thing you should ask yourself is if you need a plugin or not. To quote our :ref:`intro_user_guide`:: +Before getting started **you should ask yourself these questions**: + + 1. Does my model have model-specific file formats which are different from the HydroMT defaults? + 2. Does my model require complex data processing workflows that are not covered (or will not be covered) by the generic model classes? + 3. Will there be a lot of users for my model? + +And depending on the answers, you can decide to start your own plugin yes or no. Answering *yes* to any of the previous +questions could be a protential reason for starting your own plugin. Below are a couple of advantages and drawbacks of making your own plugin: + +*Advantages* + +- HydroMT outputs are in the correct file format so my freshly built model is ready to run. +- All required input data can be prepared by HydroMT, even using specific or complex processing methods/workflows. +- Templates and easy to use/understand functions are more easily available. +- Maintained and central place for model specific functions/workflows (eg reading/writting in correct format etc.) + +*Drawbacks* + +- Need to create and develop a plugin repository. +- Need to support and maintain the plugin repository. + +To help you decide some more indepth explanation is also provided below. +To quote our :ref:`intro_user_guide`:: HydroMT defines any model instance through the model-agnostic Model API based on several components: maps, geometries, forcings, results, states, @@ -104,27 +126,6 @@ on soil properties data. In these cases, you can either pre-compute your paramet resample/extract, or write down your specific workflow/equation in your model plugin. -To conclude, before getting started **you should ask yourself these questions**: - - 1. Does HydroMT generic ``Model`` and sub-model classes allow me to prepare most of the data for my model? - 2. Does my model have model-specific file formats which are different from the HydroMT defaults? - 3. Does my model require complex data processing workflows that are not covered (or will not be covered) by the generic model classes? - 4. Will there be a lot of users for my model? - -And depending on the answers, you can decide to start your own plugin yes or no. -Below are a couple of advantages and drawbacks of making your own plugin: - -*Advantages* - -- HydroMT outputs are in the correct file format so my freshly built model is ready to run. -- All required input data can be prepared by HydroMT, even using specific or complex processing methods/workflows. -- Templates and easy to use/understand functions are more easily available. -- Maintained and central place for model specific functions/workflows (eg reading/writting in correct format etc.) - -*Drawbacks* - -- Need to create and develop a plugin repository. -- Need to support and maintain the plugin repository. .. _plugin_create: @@ -258,7 +259,7 @@ Here are some detailed information about what each question implies: - **project_url**: The url of your project (this will be used as the url of the github repository). Eg *https://github.com/savente93/hydromt_mymodel* - **docs_url**: The url of the documentation of your project (this will be used as the url of the documentation). Eg *https://savente93.github.io/hydromt_mymodel* - **model_classname**: The name of the new HydroMT Model subclass that you are creating. Eg *MyModelModel* -- **model_type**: Type of HydroMT model corresponding to your model, one of [``Model``, ``GridModel``, ``MeshModel``, ``LumpedModel``, ``NetworkModel``] (!careful with syntax!). Eg *GridModel* +- **model_type**: Type of HydroMT model corresponding to your model, one of [``Model``, ``GridModel``, ``MeshModel``, ``LumpedModel``, ``NetworkModel``]. Eg *GridModel* - **model_shortname**: The short name of your model. This will be used as the HydroMT Command Line name of your plugin and as the name of the main python file of your project (which will contain the definition of your new Model class). Eg *mymodel* - **project_tagline**: A short tagline (short description phrase) for your project. Eg *A HydroMT plugin for MyModel models.* From 57cfe30763697414a1db3873b092eb176eb9b974 Mon Sep 17 00:00:00 2001 From: Sam Vente Date: Tue, 19 Sep 2023 15:51:33 +0200 Subject: [PATCH 13/19] fix a few review comments --- docs/dev/plugin-quickstart.rst | 356 +++++++++++---------------------- 1 file changed, 118 insertions(+), 238 deletions(-) diff --git a/docs/dev/plugin-quickstart.rst b/docs/dev/plugin-quickstart.rst index 2236d5b34..f44248c12 100644 --- a/docs/dev/plugin-quickstart.rst +++ b/docs/dev/plugin-quickstart.rst @@ -6,6 +6,9 @@ Starting your own HydroMT Plugin ================================ +Introduction +============ + This page gives you some tips and tricks on how to use HydroMT for your own model and start your own plugin. Before reading this, you should already know a little about HydroMT, so please check out at least the :ref:`intro_user_guide` and the :ref:`model_main` section. @@ -131,21 +134,20 @@ resample/extract, or write down your specific workflow/equation in your model pl Create your own plugin repository --------------------------------- -HydroMT makes it pretty easy to create your own plugin and we are quite flexible on how you would like to organise and maintain +HydroMT makes it pretty easy to create your own plugin. We are quite flexible on how you would like to organise and maintain your plugin. Below you can find the minimum requirements to register your own new model plugin for HydroMT. -In case, you want to start creating your own package or GitHub repository from scratch, we have also prepared a cookiecutter template -to help you set up a whole Github package for your plugin including minimal testing and documentation by just filling out a couple of -questions :) . +In case, you want to start creating your own package, we have also prepared a cookiecutter template +to help you set up a project for your plugin including minimal testing and documentation by just filling out a couple of +questions :) . This template along with instructions are available at: ``hydromt-plugin-template ``_. Requirements ^^^^^^^^^^^^ -You do not necessarily need to developp an entire new repository to create a HydroMT plugin. Actually all you need to do is to -instantiate a new HydroMT ``Model`` class (eg *WflowModel*) in a python script and register it properly. Currently HydroMT uses the -`entrypoints` package to advertise its, well, entrypoints. Entrypoints are how you can tell HydroMT core about your plugin and they +All you really need to do to make a new HydroMT plugin is to +create a new HydroMT ``Model`` class (e.g. *WflowModel*) in a python package and register it properly. Currently HydroMT uses the +`entrypoints` package to advertise its, well, entrypoints. Entrypoints are how you can tell HydroMT core about your plugin. They can be defined within your package setup definition file (typically your pyproject.toml for pypi packages). As an example we can look -at the current ``hydromt_wflow`` model. Specifically it's this line in the pyproject.toml (for pypi project, this could differ if you -use other tools to publish or install your package like poetry): +at the current ``hydromt_wflow`` model. Specifically it's this line in the pyproject.toml: .. code-block:: toml @@ -155,15 +157,18 @@ use other tools to publish or install your package like poetry): This snippet will tell HydroMT core three things: -1. there will be a new HydroMT plugin / model class ``WflowModel`` in this repository called "wflow" that HydroMT core can use for example via command line. -2. it is located in the file hydromt_wflow//wflow.py (or in python import term hydromt_wflow.wflow) -3. it implements the new plugin class ``WflowModel`` in the ``hydromt.models`` API +1. there will be a new model class ``WflowModel`` in this package called "hydromt_wflow" that HydroMT core can use for example via command line. +2. it is located in the file hydromt_wflow//wflow.py +3. it implements the new plugin class ``WflowModel`` that is compatible with the ``hydromt.models`` API -Now, how do you define the new plugin ``Model`` class. To make sure that your model is compatible with HydroMT core, you can use either the -``Model`` class of HydroMT core as a base or one of its sub-model classes: ``GridModel`` for regular gridded or distributed models, ``MeshModel`` -for unstructured grid(s) models, ``LumpedModel`` for lumped or semi-distributed models or ``NetworkModel`` for network models. This allows you -to use the HydroMT model class methods as well as create any functionality on top of that. To define your new model class, e.g. *WflowModel*, -you should in the python script that is referenced by the entry-point define at least: +Now, how do you define the new plugin ``Model`` class? To make sure that your model is compatible with HydroMT core, you can use one of the following classes as a base for your model: +* ``Model`` is the most generic class of HydroMT core which is used as a base for all other model classed. +* ``GridModel`` for regular gridded or distributed models, +* ``MeshModel`` for unstructured grid(s) models, +* ``LumpedModel`` for lumped or semi-distributed models +* ``NetworkModel`` for network models. +This allows you to use the HydroMT model class methods as well as create any functionality on top of that. To define your new model class, e.g. *WflowModel*, +you should make sure that in the python script that is referenced by the entry-point define at least: .. code-block:: python @@ -377,7 +382,7 @@ Below are the properties and initialisation function, to set for your new plugin ### Name of defaults catalogs to include when initialising the model ## # For example to include model specific parameter data or mapping # These default catalogs can be placed in the _DATADIR folder. - _CATALOGS: List[str] = [join(_DATADIR, "parameters_data.yml")] + _CATALOGS: List[str] = [] def __init__( self, @@ -446,96 +451,10 @@ So typically, when you want to add data to your model (DEM, precipitation, param specific Model component. To add data, to a component, the ``set_`` methods are you use and each of the components can be read and written using the specific ``read_`` and ``write_`` methods. -The table below lists the base model components common to all model classes. +A table that lists the base model components common to all model classes can be found at +:ref:`The Model Overview Page` All base model attributes and methods can be found in the :ref:`API reference ` -.. list-table:: - :widths: 10 25 20 15 - :header-rows: 1 - - * - Component - - Explanation - - Python object - - API - * - maps - - Map / raster data (resolution and CRS may vary between maps) - - Dictionnary of xarray.DataArray and/or xarray.Dataset - - | :py:attr:`~Model.maps` - | :py:func:`~Model.set_maps` - | :py:func:`~Model.read_maps` - | :py:func:`~Model.write_maps` - * - geoms - - Static (1 or 2D) vector data - - Dictionnary of geopandas.GeoDataFrame - - | :py:attr:`~Model.geoms` - | :py:func:`~Model.set_geoms` - | :py:func:`~Model.read_geoms` - | :py:func:`~Model.write_geoms` - * - forcing - - (Dynamic) forcing data (meteo or hydrological for example) - - Dictionnary of xarray.DataArray and/or xarray.Dataset - - | :py:attr:`~Model.forcing` - | :py:func:`~Model.set_forcing` - | :py:func:`~Model.read_forcing` - | :py:func:`~Model.write_forcing` - * - results - - Model output - - Dictionnary of xarray.DataArray and/or xarray.Dataset - - | :py:attr:`~Model.results` - | :py:func:`~Model.set_results` - | :py:func:`~Model.read_results` - * - states - - Initial model conditions - - Dictionnary of xarray.DataArray and/or xarray.Dataset - - | :py:attr:`~Model.states` - | :py:func:`~Model.set_states` - | :py:func:`~Model.read_states` - | :py:func:`~Model.write_states` - * - config - - Settings for the model kernel simulation or model class - - Dictionnary (Any) - - | :py:attr:`~Model.config` - | :py:func:`~Model.set_config` - | :py:func:`~Model.read_config` - | :py:func:`~Model.write_config` - - -For each generalized model class, the respective computational unit components exist: - -.. list-table:: - :widths: 15 15 25 20 15 - :header-rows: 1 - - * - Component - - Model class - - Explanation - - Python object - - API - * - grid - - :ref:`GridModel ` - - Static gridded data with on unified grid - - xarray.Dataset (compatible with hydromt.raster.RasterDataset) - - | :py:attr:`~GridModel.grid` - | :py:func:`~GridModel.set_grid` - | :py:func:`~GridModel.read_grid` - | :py:func:`~GridModel.write_grid` - * - response_units - - :ref:`LumpedModel ` - - Static lumped data over the response_units - - xarray.Dataset (compatible with hydromt.vector.GeoDataset) - - | :py:attr:`~LumpedModel.response_units` - | :py:func:`~LumpedModel.set_response_units` - | :py:func:`~LumpedModel.read_response_units` - | :py:func:`~LumpedModel.write_response_units` - * - mesh - - :ref:`MeshModel ` - - Static mesh (unstructured grid(s)) data - - xugrid.UgridDataset - - | :py:attr:`~MeshModel.mesh` - | :py:func:`~MeshModel.set_mesh` - | :py:func:`~MeshModel.get_mesh` - | :py:func:`~MeshModel.read_mesh` - | :py:func:`~MeshModel.write_mesh` Reading & Writing model components ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -589,52 +508,12 @@ In the background, the actual data is stored not directly in the components but (``_maps`` for ``maps``). And the component, ``maps``, actually just goes and fetch the data from the placeholder ``_maps`` or in read mode, starts reading the component. -.. code-block:: python - - @property - def maps(self) -> Dict[str, Union[xr.Dataset, xr.DataArray]]: - """Model maps. Returns dict of xarray.DataArray or xarray.Dataset.""" - if self._maps is None: - self._maps = dict() - if self._read: - self.read_maps() - return self._maps - -Using a placeholder allows to initiate reading when possible (e.g. in update mode 'r+'), the first time when the +Using a placeholder allows us to initiate reading when possible (e.g. in update mode 'r+'), only the first time when the component is called, to avoid unintentiously overwritting data stored, and allows to add some check or transformation when adding data to a component using the ``set_`` methods. So it is usually highly recommended, in your plugin to always use the component (``maps``) and to only modify its placholder -using the ``set_`` methods. Example of ``set_maps``: - -.. code-block:: python - - def set_maps( - self, - data: Union[xr.DataArray, xr.Dataset], - name: Optional[str] = None, - split_dataset: Optional[bool] = True, - ) -> None: - """Add raster data to the maps component. - - Dataset can either be added as is (default) or split into several - DataArrays using the split_dataset argument. - - Arguments - --------- - data: xarray.Dataset or xarray.DataArray - New forcing data to add - name: str, optional - Variable name, only in case data is of type DataArray or if a Dataset is - added as is (split_dataset=False). - split_dataset: bool, optional - If data is a xarray.Dataset split it into several xarray.DataArrays. - """ - data_dict = _check_data(data, name, split_dataset) - for name in data_dict: - if name in self.maps: # trigger init / read - self.logger.warning(f"Replacing result: {name}") - self._maps[name] = data_dict[name] +using the ``set_`` methods. By and large you should not have to change the `set` methods. Additional Model properties ^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -651,92 +530,6 @@ the other subclasses. Apart from the components here are a couple of useful prop Some submodel classes can have additional attributes based on their additional components, so check out the :ref:`API reference `. -Adding a new property or component -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -If you wish to add additional properties or attributes to your plugin Model subclass, you can either decide to add simple -attributes directly in the initiliasation function ``__init__`` or define specific properties. Example for a shortcut to the basin -vector in the geoms object: - -.. code-block:: python - - @property - def basins(self) -> gpd.GeoDataFrame: - """Returns a basin(s) geometry as a geopandas.GeoDataFrame.""" - # Check in geoms - if "basins" in self.geoms: - gdf = self.geoms["basins"] - else: - self.logger.warning( - f"Basin map {self._MAPS['basins']} not found in maps or geoms." - ) - gdf = gpd.GeoDataFrame() - return gdf - -In most cases, we hope that the components defined in HydroMT `Model` classes (``config``, ``geoms``, ``maps``, ``forcing``, ``states``, -``results``) and its generic subclasses (``grid``, ``mesh``, ``response_units``) should allow you to store any data required by your -model in a proper way. If it is not the case, you can always define your own new model components by respecting the following steps -(example if your model has a lot of 2D non-geospatial tabular data that could nicely be stored as pandas.DataFrame objects, *tables*): - -1. Initiliase your new component placeholder in the ``__init__`` function, if possible with None. - -.. code-block:: python - - self._tables = None - -2. Define the component itself as a new property, that looks for the placeholder and tries reading if empty in read mode. - -.. code-block:: python - - @property - def tables(self) -> Dict[str, pd.DataFrame]: - """Returns a dictionary of pandas.DataFrame tabular files.""" - if self._tables is None: - self._tables = dict() - if self._read: - self.read_tables() - return self._tables - -3. Define a reading and a writting method for your new component. - -.. code-block:: python - - def read_tables(self, **kwargs): - """Read table files at and parse to dict of dataframes""" - if not self._write: - self._tables = dict() # start fresh in read-only mode - - self.logger.info("Reading model table files.") - fns = glob.glob(join(self.root, f"*.csv")) - if len(fns) > 0: - for fn in fns: - name = basename(fn).split(".")[0] - tbl = pd.read_csv(fn) - self.set_tables(tbl, name=name) - - def write_tables(self): - """Write tables at .""" - self._assert_write_mode - if len(self.tables) > 0: - self.logger.info("Writing table files.") - for name in self.tables: - fn_out = join(self.root, f"{name}.csv") - self.tables[name].to_csv(fn_out, sep=",", index=False, header=True) - -4. Define a set function in order to add or update data in your component. - -.. code-block:: python - - def set_tables(self, df: pd.DataFrame, name:str): - """Add table to model.""" - if not (isinstance(df, pd.DataFrame) or isinstance(df, pd.Series)): - raise ValueError("df type not recognized, should be pandas.DataFrame or pandas.Series.") - if name in self._tables: - if not self._write: - raise IOError(f"Cannot overwrite table {name} in read-only mode") - elif self._read: - self.logger.warning(f"Overwriting table: {name}") - self._tables[name] = df - .. _plugin_workflows: Data processing: setup methods and workflows @@ -753,10 +546,7 @@ But in general (scheme below): integer and float, boolean, None, list and dict types. This requirement makes it possible to expose these methods and their arguments via the hydromt configuration in YAML format. - Data is exposed to each model method through the ``Model.data_catalog`` attribute which is an instance of the - :py:class:`hydromt.DataCatalog`. Data of :ref:`supported data types ` is provided to model methods - by arguments which end with ``_fn`` (short for filename) which refer to a source in the data catalog - based on the source name or a file based on the (relative) path to the file. Within a model method the data is read - by calling any ``DataCatalog.get_`` method which work for both source and file names. + :py:class:`hydromt.DataCatalog`. Within a model method the data is read by calling any ``DataCatalog.get_`` method which work for both source and file names. - The region and res (resolution) arguments used in the command line build and clip methods are passed to the model method referred in the internal *_CLI_ARGS* model constant, which by default in the Model class, is the setup_basemaps method for both arguments. This is typically the first model method which should be called when building a model or your base / region setup method. @@ -892,3 +682,93 @@ Here are some last tips: - **Testing**: you should also test the functions you developp for your plugin. We use pytest in HydroMT for this. You can test by developping unit test for your functions, or build a model and compare to a previously built one (eg in the examples folder). The ``Model`` API includes a couple of functions that can help you with testing so you can check them out: :py:func:`~Model._test_model_api`, :py:func:`~Model._test_equal` + +Advanced Topics +=============== + + +Adding a new property or component +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +If you wish to add additional properties or attributes to your plugin Model subclass, you can either decide to add simple +attributes directly in the initiliasation function ``__init__`` or define specific properties. Example for a shortcut to the basin +vector in the geoms object: + +.. code-block:: python + + @property + def basins(self) -> gpd.GeoDataFrame: + """Returns a basin(s) geometry as a geopandas.GeoDataFrame.""" + # Check in geoms + if "basins" in self.geoms: + gdf = self.geoms["basins"] + else: + self.logger.warning( + f"Basin map {self._MAPS['basins']} not found in maps or geoms." + ) + gdf = gpd.GeoDataFrame() + return gdf + +In most cases, we hope that the components defined in HydroMT `Model` classes (``config``, ``geoms``, ``maps``, ``forcing``, ``states``, +``results``) and its generic subclasses (``grid``, ``mesh``, ``response_units``) should allow you to store any data required by your +model in a proper way. If it is not the case, you can always define your own new model components by respecting the following steps +(example if your model has a lot of 2D non-geospatial tabular data that could nicely be stored as pandas.DataFrame objects, *tables*): + +1. Initiliase your new component placeholder in the ``__init__`` function, if possible with None. + +.. code-block:: python + + self._tables = None + +2. Define the component itself as a new property, that looks for the placeholder and tries reading if empty in read mode. + +.. code-block:: python + + @property + def tables(self) -> Dict[str, pd.DataFrame]: + """Returns a dictionary of pandas.DataFrame tabular files.""" + if self._tables is None: + self._tables = dict() + if self._read: + self.read_tables() + return self._tables + +3. Define a reading and a writting method for your new component. + +.. code-block:: python + + def read_tables(self, **kwargs): + """Read table files at and parse to dict of dataframes""" + if not self._write: + self._tables = dict() # start fresh in read-only mode + + self.logger.info("Reading model table files.") + fns = glob.glob(join(self.root, f"*.csv")) + if len(fns) > 0: + for fn in fns: + name = basename(fn).split(".")[0] + tbl = pd.read_csv(fn) + self.set_tables(tbl, name=name) + + def write_tables(self): + """Write tables at .""" + self._assert_write_mode + if len(self.tables) > 0: + self.logger.info("Writing table files.") + for name in self.tables: + fn_out = join(self.root, f"{name}.csv") + self.tables[name].to_csv(fn_out, sep=",", index=False, header=True) + +4. Define a set function in order to add or update data in your component. + +.. code-block:: python + + def set_tables(self, df: pd.DataFrame, name:str): + """Add table to model.""" + if not (isinstance(df, pd.DataFrame) or isinstance(df, pd.Series)): + raise ValueError("df type not recognized, should be pandas.DataFrame or pandas.Series.") + if name in self._tables: + if not self._write: + raise IOError(f"Cannot overwrite table {name} in read-only mode") + elif self._read: + self.logger.warning(f"Overwriting table: {name}") + self._tables[name] = df From 98bae6b79d1b15fb54c8fcafd0cc66065cb974fd Mon Sep 17 00:00:00 2001 From: Sam Vente Date: Tue, 19 Sep 2023 15:57:11 +0200 Subject: [PATCH 14/19] move hydromt overview to general userguid --- docs/user_guide/intro.rst | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/docs/user_guide/intro.rst b/docs/user_guide/intro.rst index ba99646c5..08eca748c 100644 --- a/docs/user_guide/intro.rst +++ b/docs/user_guide/intro.rst @@ -17,7 +17,23 @@ or analyze model results. Furthermore, a Python interface is available that expo all functionality for experienced users. A schematic overview of the package architecture is provided in the figure below and each HydroMT component is discussed below. -HydroMT is organized in the following way: +In short, there are three important concepts in HydroMT core that are important to cover: + +- ``DataAdapters`` and ``DataCatalog``: These are what basically hold all information about how to approach and read data as well as some of the metadata + about it. While a lot of the work in HydroMT happens here, plugins or users shouldn't really need to know about these beyond using + the proper ``data_type`` in their configuration. ``DataCatalog`` are basically just a thin wrapper around the ``DataAdapters`` that does some book keeping. +- ``Workflows``: These are functions that transform input data and can call a set of methods to for example, resample, fill nodata, reproject, derive + other variables etc. The core has some of these workflows but you may need new ones for your plugin. +- ``Model``: This is where the magic happens (as far as the plugin is concerned). We have provided some generic models that you can + override to get basic/generic functionality, but using the model functionality is where it will be at for you. The scheme below lists the current + relationship between the HydroMT ``Model`` and generic sub-Model classes and the know plugins. + + +.. figure:: ../_static/plugin_structure.png + + Schematic of Model and plugin structure of HydroMT + +More concretely HydroMT is organized in the following way: - **Input Data** From adf62efcaddd2df25cae72a9a8068ca4a1f8c668 Mon Sep 17 00:00:00 2001 From: Sam Vente Date: Tue, 19 Sep 2023 16:03:48 +0200 Subject: [PATCH 15/19] remove duplicate section --- docs/dev/plugin-quickstart.rst | 34 ---------------------------------- 1 file changed, 34 deletions(-) diff --git a/docs/dev/plugin-quickstart.rst b/docs/dev/plugin-quickstart.rst index f44248c12..bbbd10ec7 100644 --- a/docs/dev/plugin-quickstart.rst +++ b/docs/dev/plugin-quickstart.rst @@ -292,40 +292,6 @@ repository and push it (for an organisation, you will need specific rights to do After this you can open up the github repository website, and you should see your generated project. You are now ready to start developing your own plugin! Well done, and good luck! - -Conventions and tips to develop your own plugin -================================================ -To take back the schematic overview of the HydroMT package architecture (figure below), HydroMT is organized in the following way: - - - **Input data**: HydroMT is data-agnostic through the ``DataAdapter``, which reads a wide range of data formats and unifies the input data (e.g., - on-the-fly renaming and unit conversion). Datasets are listed and passed to HydroMT in a ``DataCatalog`` yaml file. - - HydroMT core should normally take care of everything your plugin needs here, so the only thing you should know is how to use it correctly - for example in your model methods and workflows (see below). - - **Model**: HydroMT defines any model instance through the model-agnostic ``Model`` API based on several components: maps, geometries, forcings, - results, states, and the model simulation configuration. For different types of general model classes (i.e., gridded, lumped, mesh and network - models) additional model components have been defined. Each component is represented with a specific Python data object to provide a common interface - to different model software. - - We will see below how to initialise properly the ``Model`` class and its main attributes as well as how to work with the - model components in the :ref:`Model class and components ` section. - - **Methods and workflows**: Most of the heavy work in HydroMT is done by Methods and workflows, indicated by the gear wheels in the schematic of - HydroMT architecture below. Methods provide the low-level functionality such as GIS rasterization, reprojection, or zonal statistics. Workflows combine - several methods to transform data to a model layer or postprocess model results. - - In the :ref:`data processing section `, we will see - some examples and best practices of how to process and add data to your model. - - **Command line and Python interface**: The CLI is a high-level interface to HydroMT. It is used to run HydroMT methods such as build, update or clip. - While most common functionalities can be called through the CLI, the Python interface offers more flexibility for advanced users. It allows you to e.g. - interact directly with a model component Model API and apply the many methods and workflows available. - - We saw in the :ref:`section above ` - how to properly instantiate your plugin class and register it to HydroMT entrypoints. - -.. figure:: ../_static/Architecture_model_data_input.png - - Schematic of HydroMT architecture - .. _plugin_components: Model class and components From cbbea318bc4b8fd62015cf0df43984f2847e6903 Mon Sep 17 00:00:00 2001 From: Sam Vente Date: Tue, 19 Sep 2023 17:03:53 +0200 Subject: [PATCH 16/19] reorder a few paragraphs --- docs/dev/plugin-quickstart.rst | 147 ++++----------------------------- 1 file changed, 17 insertions(+), 130 deletions(-) diff --git a/docs/dev/plugin-quickstart.rst b/docs/dev/plugin-quickstart.rst index bbbd10ec7..7dfb433bb 100644 --- a/docs/dev/plugin-quickstart.rst +++ b/docs/dev/plugin-quickstart.rst @@ -315,92 +315,6 @@ the default initialisation function of you parent class (the HydroMT core class function in the child class, and within the redefined function, call the parent one use *super()* python class attribute (*super().setup_region*). You will see an example below for the initialisation function ``__init__`` . -Below are the properties and initialisation function, to set for your new plugin *MyModelModel* class: - -.. code-block:: python - - from hydromt.models import Model - from os.path import abspath, join, dirname - - - class MyModelModel(Model): - """This is the HydroMT MyModel class for MyModel models.""" - - ### Any global class variables your model should have go here ### - # shortname of your model / hydromt model name for CLI - _NAME: str = "mymodel" - # Default filename for mymodel configuration file / run settings - _CONF: str = "model.yaml" - # Path to default model building for my model / eg template configuration files to edit - # default paremter values etc. - # This folder in many existing plugins is usually placed at the same level of the class name - # definition in a floder called "data". - _DATADIR: Path = abspath(join(dirname(__file__), "data")) - # tell hydroMT which methods should receive the res and region arguments from CLI - _CLI_ARGS: Dict[str, str] = {"region": "setup_region", "res": None} - - - ### Name of default folders to create in the model directory ### - # When initiliasing a new model for a specific region, the folders - # int he list will be created - _FOLDERS: List[str] = [] - - ### Name of defaults catalogs to include when initialising the model ## - # For example to include model specific parameter data or mapping - # These default catalogs can be placed in the _DATADIR folder. - _CATALOGS: List[str] = [] - - def __init__( - self, - root: Optional[str] = None, - mode: str = "w", - config_fn: Optional[str] = None, - data_libs: Optional[Union[List[str], str]] = None, - logger: logging.Logger = logger, - ): - """ - The mymodel model class MyModelModel. - - Contains methods to read, write, setup and update mymodel models. - - Parameters - ---------- - root : str, Path, optional - Path to the model folder - mode : {'w', 'w+', 'r', 'r+'}, optional - Mode to open the model, by default 'w' - config_fn : str, Path, optional - Path to the model configuration file, by default None to read - from template in build mode or default name in update mode. - data_libs : list of str, optional - List of data catalogs to use, by default None. - logger : logging.Logger, optional - Logger to use, by default logger - """ - # Add model _CATALOGS to the data_libs, if you wish to use default catalogs - if self._CATALOGS: - if isinstance(data_libs, str): - data_libs = [data_libs] - if data_libs is None: - data_libs = [] - data_libs = data_libs + self._CATALOGS - - # Call the parent class initialisation method using super() - super().__init__( - root=root, - mode=mode, - config_fn=config_fn, - data_libs=data_libs, - logger=logger, - ) - - # If your model needs any extra specific initialisation parameter or step - # add them here - # Example: an extra propery or default value, or a new HydroMT component - - - # end of the __init__ function - Model components ^^^^^^^^^^^^^^^^ A reminder from the :ref:`Model guide `: @@ -496,35 +410,27 @@ the other subclasses. Apart from the components here are a couple of useful prop Some submodel classes can have additional attributes based on their additional components, so check out the :ref:`API reference `. -.. _plugin_workflows: - -Data processing: setup methods and workflows --------------------------------------------- -Now let's focus on the _gear wheels_ of the schematic diagram or how to add data to your model using HydroMT, which is what it's all about! -Nothing here is really mandatory but more about conventions or tips also from experience with other plugins. - -But in general (scheme below): +.. _plugin_setup: -- To build a model we specify ``setup_<>`` methods which transform raw input data to a specific model variable(s), for instance - the ``setup_landuse`` method in HydroMT-Wflow to map landuse classes to associated Wflow parameter grids which are part of - the ``grid`` component. -- All public model methods may only contain arguments which require one of the following basic python types: string, numeric - integer and float, boolean, None, list and dict types. This requirement makes it possible to expose these methods and their arguments - via the hydromt configuration in YAML format. -- Data is exposed to each model method through the ``Model.data_catalog`` attribute which is an instance of the - :py:class:`hydromt.DataCatalog`. Within a model method the data is read by calling any ``DataCatalog.get_`` method which work for both source and file names. -- The region and res (resolution) arguments used in the command line build and clip methods are passed to the model method referred - in the internal *_CLI_ARGS* model constant, which by default in the Model class, is the setup_basemaps method for both arguments. This is - typically the first model method which should be called when building a model or your base / region setup method. -- Workflows define (partial) transformations of data from input data to model data. And should, if possible, be kept generic to be - shared between model plugins. The input data is passed to the workflow by python data objects consistent with its associated data - types (e.g. xarray.Dataset for regular rasters) and not read by the workflow itself. +Setup basic model objects +^^^^^^^^^^^^^^^^^^^^^^^^^ +When building a model from scratch, the first thing you should do is take inventory of what your `setup_*` (e.g. `setup_grid`, `setup_mesh`, etc.) need. They typically (though not always) take the region of interest as an argument so that is usually a good place to start. This consistes of the region in the world your model is located in, +if needed its CRS and its computational unit (grid, mesh, responce_unit etc.). This is usually typically set by a first base or region +setup method which typically parses the region argument of the HydroMT CLI. The idea is that after this function has been called, the +user should already be able to have the minimum model properties or files in order to be able to call HydroMT to ``update`` the model to +add additionnal data (``build`` is not required anymore). -.. figure:: ../_static/model_building_process.png +For example, this is what the ``setup_region`` from ``Model`` does by adding ``region`` to ``geoms``, or ``setup_grid`` from ``GridModel`` which +generates a regular grid based on the region argument, a CRS and a resolution. You can re-use the core methods or decide to define your +own. - Schematic of model building process with HydroMT +.. NOTE:: -.. _plugin_setup: + **Order of the setup methods**: apart that your model class should have a base method that at least defines the model region and CRS, + there is no real check on the order in which setup methods are called. For Command Line users, the functions in the hydromt configuration + yaml file will be executed in the order they appear in the file. So if in your case, a setup method should be called before another + (eg you first should have a DEM before you can add rivers to your model), then in the following setup method, check if the required data + are already in the model and else send a clear error message. Clear documentation will help your user too. Setup methods ^^^^^^^^^^^^^ @@ -596,25 +502,6 @@ data using an external workflow from hydromt core is: prepare the same data but from different type of input data (eg *setup_landuse_from_raster* and *setup_landuse_from_vector*). -Base or region setup method(s) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -When building a model from scratch, the first thing you should do is to define the region in the world your model is located in, -if needed its CRS and its computational unit (grid, mesh, responce_unit etc.). This is usually typically set by a first base or region -setup method which typically parses the region argument of the HydroMT CLI. The idea is that after this function has been called, the -user should already be able to have the minimum model properties or files in order to be able to call HydroMT to ``update`` the model to -add additionnal data (``build`` is not required anymore). - -For example, this is what the ``setup_region`` from ``Model`` does by adding ``region`` to ``geoms``, or ``setup_grid`` from ``GridModel`` which -generates a regular grid based on the region argument, a CRS and a resolution. You can re-use the core methods or decide to define your -own. - -.. NOTE:: - - **Order of the setup methods**: apart that your model class should have a base method that at least defines the model region and CRS, - there is no real check on the order in which setup methods are called. For Command Line users, the functions in the hydromt configuration - yaml file will be executed in the order they appear in the file. So if in your case, a setup method should be called before another - (eg you first should have a DEM before you can add rivers to your model), then in the following setup method, check if the required data - are already in the model and else send a clear error message. Clear documentation will help your user too. Workflows ^^^^^^^^^ From 7bcb27256d8539b980e91c78c55a8715e1613dce Mon Sep 17 00:00:00 2001 From: Sam Vente Date: Tue, 19 Sep 2023 18:18:29 +0200 Subject: [PATCH 17/19] do some light editing --- docs/dev/plugin-quickstart.rst | 124 ++++++++++++--------------------- 1 file changed, 46 insertions(+), 78 deletions(-) diff --git a/docs/dev/plugin-quickstart.rst b/docs/dev/plugin-quickstart.rst index 7dfb433bb..a10e0a4c7 100644 --- a/docs/dev/plugin-quickstart.rst +++ b/docs/dev/plugin-quickstart.rst @@ -6,39 +6,17 @@ Starting your own HydroMT Plugin ================================ -Introduction -============ - This page gives you some tips and tricks on how to use HydroMT for your own model and start your own plugin. Before reading this, you should already know a little about HydroMT, so please check out at least the :ref:`intro_user_guide` and the :ref:`model_main` section. -In short, there are three important concepts in HydroMT core that are important to cover: - -- ``DataAdapters`` and ``DataCatalog``: These are what basically hold all information about how to approach and read data as well as some of the metadata - about it. While a lot of the work in HydroMT happens here, plugins or users shouldn't really need to know about these beyond using - the proper ``data_type`` in their configuration. ``DataCatalog`` are basically just a thin wrapper around the ``DataAdapters`` that does some book keeping. -- ``Workflows``: These are functions that transform input data and can call a set of methods to for example, resample, fill nodata, reproject, derive - other variables etc. The core has some of these workflows but you may need new ones for your plugin. -- ``Model``: This is where the magic happens (as far as the plugin is concerned). We have provided some generic models that you can - override to get basic/generic functionality, but using the model functionality is where it will be at for you. The scheme below lists the current - relationship between the HydroMT ``Model`` and generic sub-Model classes and the know plugins. - - -.. figure:: ../_static/plugin_structure.png - - Schematic of Model and plugin structure of HydroMT - -Getting started -=============== - Plugin or no plugin ? --------------------- You've discovered HydroMT and would like to use it for your own model and wonder how to get started about it? Before getting started **you should ask yourself these questions**: 1. Does my model have model-specific file formats which are different from the HydroMT defaults? - 2. Does my model require complex data processing workflows that are not covered (or will not be covered) by the generic model classes? + 2. Does my model require complex data processing workflows that are not covered (and will not be covered) by the generic model classes? 3. Will there be a lot of users for my model? And depending on the answers, you can decide to start your own plugin yes or no. Answering *yes* to any of the previous @@ -74,20 +52,21 @@ To quote our :ref:`intro_user_guide`:: interface, but with model-specific file readers, writers and workflows. As mentioned above, HydroMT interacts with models using the ``Model`` API class and also provides several sub-model classes: -``GridModel``, ``MeshModel``, ``LumpedModel``, ``NetworkModel``. Using these sub-model classes, it might be that actually you are -already able to prepare most and if you're lucky all of the data you need to build your own model. The only thing is that -these generic classes write model data in netcdf, geojson (or other formats supported by geopandas), or for configuration -in either yaml, toml or ini file format. So in case your model needs different file formats, you will need to convert or -write the output files in different formats. +``GridModel``, ``MeshModel``, ``LumpedModel``, ``NetworkModel`` which will be described in more detail below. Using +these sub-model classes, you might be able to already prepare most and if not all of +the data you need to build your own model. Do note however that these generic classes can only write model data in netcdf, +geojson (or other formats supported by geopandas), and configurations in either yaml, toml or ini file format. So +in case your model needs different file formats, you will need to convert or write the output files in different formats. Another advantage of writting your own plugin is that other users from the same model can easily build instances of that model re-using the plugin. So for example, converting from netcdf to model specific file format, using pre-defined HydroMT building -configuration templates or parameter default values, but also using more instinctive and guided model building methods. +configuration templates or parameter default values. It might also be more instinctive and guided for your model building methods. -This is maybe a little more advanced but let's say that your model is a ``GridModel`` for which you need to prepare a *landuse* -classification map (for which resampling should be done using *mode* to avoid creating new imaginary land use classes which you -would do if you would use e.g., *average*) and two landuse parameters roughness *N* and infiltration *inf*. Well, using HydroMT generic -methods, for your user, the build configuration file would look like this: +For exmaple, let's say that your model is a ``GridModel`` for which you need to prepare a *landuse* +classification map. The resampleing for this mape should be done using *mode* to avoid creating new imaginary land use classes. +This could happen for example if you would use e.g., *average*. +In addition to the classification map you also need two landuse parameters roughness *N* and infiltration *inf*. +Using HydroMT generic methods, for your user, the build configuration file would look like this: .. code-block:: yaml @@ -121,13 +100,10 @@ look like, but for the user, the same step could then look like: landuse_fn: vito reclass_table_fn: vito_reclass -Finally, with the generic methods and sub-model classes of HydroMT, we try to support a certain range of data processing methods. -If you find that there is no method available for your case, you can always open an issue and if we think your proposed method can -be re-used by others, it could be added to the core. However, for some complex or very specific data processing, this will not be -the case. For example, if your model requires a specific soil parameter that can be computed using only specific equation(s) based -on soil properties data. In these cases, you can either pre-compute your parameter and use the core method to -resample/extract, or write down your specific workflow/equation in your model plugin. - +Finally, with the generic methods and sub-model classes of HydroMT, we try to support a certain range of data processing +methods. If you find that there is no method available for your case, you can always open a feature request issue +and if we think your proposed method can be re-used by others, it could be added to the core. However, for some data +processing workloads, this will not be the case. This could be a very strong reason for you to write your own plugin. .. _plugin_create: @@ -167,19 +143,10 @@ Now, how do you define the new plugin ``Model`` class? To make sure that your mo * ``MeshModel`` for unstructured grid(s) models, * ``LumpedModel`` for lumped or semi-distributed models * ``NetworkModel`` for network models. -This allows you to use the HydroMT model class methods as well as create any functionality on top of that. To define your new model class, e.g. *WflowModel*, -you should make sure that in the python script that is referenced by the entry-point define at least: - -.. code-block:: python - - from hydromt.models import GridModel - class WflowModel(GridModel): - """ This is the HydroMT Wflow Model class. """ - - _NAME = "wflow" - -And that's it! If everything has gone well, you should be able to access your code through HydroMT now! +This allows you to use the HydroMT model class methods as well as create any functionality on top of that. To define +your new model class, e.g. *WflowModel*, you should make sure that in the python script that is referenced by the +entry-point. And that's it! If everything has gone well, you should be able to access your code through HydroMT now! .. NOTE:: @@ -197,14 +164,14 @@ And that's it! If everything has gone well, you should be able to access your co a new HydroMT Model component, ``grid`` for ``GridModel`` or ``mesh`` for ``MeshModel`` and adds the accompanying setup, read and write methods. So choosing the one or the other, or adding a Mixin depends on what type of model or input data strucuture you need to prepare. Note that if your Model class is defined as (1) *PluginModel(GridModel)* or (2) *PluginModel(Model, GridMixin)*, in both cases the ``grid`` object and relative methods - are available. The main difference is the dominant object for your model in case of (2) will be ``grid`` and in case of (1) the ``region``. - IE when looking for example for the model CRS property, in case of (1) the crs will be grid.crs and in case of (2) region.crs. Also, in + are available. The main difference is the dominant object for your model in case of (2) will be ``grid`` and in case of (1) the ``region``, + i.e. when looking for example for the model CRS property, in case of (1) the crs will be grid.crs and in case of (2) region.crs. Also, in update mode, in case of (2), no additional data can be added to your model if the grid object is not yet defined (ie your model grid extent and resolution does not yet exist). Typical HydroMT repository structure ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -With HydroMT and some of its plugin, we usually use a classic folder structure and file organisation. It not mandatory to follow this structure +With HydroMT and some of its plugins, we usually use a classic folder structure and file organisation. It not mandatory to follow this structure But if you choose to, a classic folder structure and files for a HydroMT plugin (eg mymodel) looks like this: - **docs**: folder containing your documentation pages. @@ -309,8 +276,8 @@ the default initialisation function of you parent class (the HydroMT core class .. TIP:: - In python, a child class (eg *MyModelModel(Model)*), inherits all methods and properties of the parent class (``Model``). If you wish to overwrite completely one - of the parent method (eg ``setup_region``), you can just redefine the function in the child class using the name (``setup_region``). You can also decide to partly + In python, a child class (eg *MyModelModel(Model)*), inherits all methods and properties of the parent class (``Model``). If you wish to completely overwrite one + of the parent methods (eg ``setup_region``), you can just redefine the function in the child class using the name (``setup_region``). You can also decide to re-use the parent function and for example add some extra steps, change the default values or the docstring of the function. For this, you can redefine the function in the child class, and within the redefined function, call the parent one use *super()* python class attribute (*super().setup_region*). You will see an example below for the initialisation function ``__init__`` . @@ -328,7 +295,7 @@ A reminder from the :ref:`Model guide `: network models (to be developed). So typically, when you want to add data to your model (DEM, precipitation, parameters etc.), you add data to one of the -specific Model component. To add data, to a component, the ``set_`` methods are you use and each of the components can be +specific Model components. To add data to a component, the ``set_`` methods should be used and each of the components can be read and written using the specific ``read_`` and ``write_`` methods. A table that lists the base model components common to all model classes can be found at @@ -342,10 +309,10 @@ Reading & Writing model components Because the way that models consume data is often model software specific, the main part of writing a plugin is writing the Input/Output (IO) methods to prepare data exactly as your model expects them, in the correct format. To do this you'll be overwriting most ``read_`` or ``write_`` methods in your model class. That will ensure that the -data comes in and goes out expecting exactly as you want. +data comes in and goes out exactly as you want. In the default HydroMT CORE read and write methods, xarray objects are written as netcdf files, ``geoms`` as GeoJSON files by -default but any geopandas driver is allowed, and ``config`` either as TOML, YAML or INI file. So again, you could decide to +default but any geopandas driver is allowed. ``config`` can be either a TOML or YAML file. So again, you could decide to completely overwrite the parent read and write methods or change the defaults. Eg if your geoms should be written in GeoPackage format rather than GeoJSON and in a geometry folder in your model: @@ -362,7 +329,7 @@ Eg if your geoms should be written in GeoPackage format rather than GeoJSON and If you are writting your own read/write functions, some good pratice steps of the function: -1. For writing, check first if the object you are writing is not empty, then you can pass. Example: +1. For writing, check first if the object you are writing is not empty, if so, you can simply skip the rest. Example: .. code-block:: python @@ -378,15 +345,15 @@ can then be opened in read only mode ('r') and HydroMT should not be able to ove - `self._assert_read_mode` if a model can be read - `self._assert_write_mode` if a model can be written -3. If needed transform, and write the component to the right format and file(s). Don't hesitate to put -some logger information for your user. +3. If needed, transform and write the component to the right format and file(s). +4. Don't hesitate to put some logger information for your user. Set model components ^^^^^^^^^^^^^^^^^^^^ -To add data to one of the model component (e.g. a DEM raster data to maps), the ``set_`` methods should be used. -In the background, the actual data is stored not directly in the components but in a **placeholder** property -(``_maps`` for ``maps``). And the component, ``maps``, actually just goes and fetch the data from the placeholder ``_maps`` or -in read mode, starts reading the component. +As mentioned previously, to add data to one of the model component (e.g. a DEM raster data to maps), the ``set_`` +methods should be used. In the background, the actual data is stored not directly in the components but in a **placeholder** +property (``_maps`` for ``maps``). And the component, ``maps``, actually just goes and fetch the data from the placeholder +``_maps`` or in read mode, starts reading the component. Using a placeholder allows us to initiate reading when possible (e.g. in update mode 'r+'), only the first time when the component is called, to avoid unintentiously overwritting data stored, and allows to add some check or transformation @@ -414,11 +381,13 @@ Some submodel classes can have additional attributes based on their additional c Setup basic model objects ^^^^^^^^^^^^^^^^^^^^^^^^^ -When building a model from scratch, the first thing you should do is take inventory of what your `setup_*` (e.g. `setup_grid`, `setup_mesh`, etc.) need. They typically (though not always) take the region of interest as an argument so that is usually a good place to start. This consistes of the region in the world your model is located in, -if needed its CRS and its computational unit (grid, mesh, responce_unit etc.). This is usually typically set by a first base or region -setup method which typically parses the region argument of the HydroMT CLI. The idea is that after this function has been called, the -user should already be able to have the minimum model properties or files in order to be able to call HydroMT to ``update`` the model to -add additionnal data (``build`` is not required anymore). +When building a model from scratch, the first thing you should do is take inventory of what your `setup_*` functions +(e.g. `setup_grid`, `setup_mesh`, etc.) need. They typically (though not always) take the region of interest as an +argument so that is usually a good place to start. This consistes of the region in the world your model is located in, +if needed its CRS and its computational unit (grid, mesh, responce_unit etc.). This is usually typically set by a first +base or region setup method which typically parses the region argument of the HydroMT CLI. The idea is that after this +function has been called, the user should already be able to have the minimum model properties or files in order to +be able to call HydroMT to ``update`` the model to add additionnal data (``build`` is not required anymore). For example, this is what the ``setup_region`` from ``Model`` does by adding ``region`` to ``geoms``, or ``setup_grid`` from ``GridModel`` which generates a regular grid based on the region argument, a CRS and a resolution. You can re-use the core methods or decide to define your @@ -445,8 +414,8 @@ In general, a HydroMT ``setup_<>`` method does 4 things: 3. rename or update attributes from HydroMT variable conventions (name, unit) to the specific model conventions. 4. adds the data to the corresponding HydroMT model components. -A simplified example of what a setup function would look like for example to add a landuse grid from a raster input -data using an external workflow from hydromt core is: +Below is a simplified example of what a setup function would look like for a hypothetical landuse grid from a raster +input data using an external workflow from hydromt core is: .. code-block:: python @@ -505,9 +474,9 @@ data using an external workflow from hydromt core is: Workflows ^^^^^^^^^ -Because the python script defining your plugin Model class can get quite long, if complex data processing is required in your ``setup_<>`` -method, we encourage you to use or define external data processing functions that we usually call workflows in HydroMT. These workflows -are usually stored in separate python scripts that you can decide to store in a workflow subfolder. +Because the python script defining your plugin Model class can get quite long, we encourage you to use or define +external data processing functions. In HydroMT these are usually called workflows. These workflows are usually stored in +separate python scripts that you can decide to store in a workflow subfolder. A couple of tips if you want to define workflows: @@ -539,7 +508,6 @@ Here are some last tips: Advanced Topics =============== - Adding a new property or component ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ If you wish to add additional properties or attributes to your plugin Model subclass, you can either decide to add simple From 1718f697efa3f8d332cbdd8e703f24f64a7ab4c7 Mon Sep 17 00:00:00 2001 From: Sam Vente Date: Wed, 20 Sep 2023 07:47:33 +0200 Subject: [PATCH 18/19] pre-commit --- docs/dev/plugin-quickstart.rst | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/dev/plugin-quickstart.rst b/docs/dev/plugin-quickstart.rst index a10e0a4c7..2da1f6efb 100644 --- a/docs/dev/plugin-quickstart.rst +++ b/docs/dev/plugin-quickstart.rst @@ -53,7 +53,7 @@ To quote our :ref:`intro_user_guide`:: As mentioned above, HydroMT interacts with models using the ``Model`` API class and also provides several sub-model classes: ``GridModel``, ``MeshModel``, ``LumpedModel``, ``NetworkModel`` which will be described in more detail below. Using -these sub-model classes, you might be able to already prepare most and if not all of +these sub-model classes, you might be able to already prepare most and if not all of the data you need to build your own model. Do note however that these generic classes can only write model data in netcdf, geojson (or other formats supported by geopandas), and configurations in either yaml, toml or ini file format. So in case your model needs different file formats, you will need to convert or write the output files in different formats. @@ -64,8 +64,8 @@ configuration templates or parameter default values. It might also be more insti For exmaple, let's say that your model is a ``GridModel`` for which you need to prepare a *landuse* classification map. The resampleing for this mape should be done using *mode* to avoid creating new imaginary land use classes. -This could happen for example if you would use e.g., *average*. -In addition to the classification map you also need two landuse parameters roughness *N* and infiltration *inf*. +This could happen for example if you would use e.g., *average*. +In addition to the classification map you also need two landuse parameters roughness *N* and infiltration *inf*. Using HydroMT generic methods, for your user, the build configuration file would look like this: .. code-block:: yaml @@ -277,7 +277,7 @@ the default initialisation function of you parent class (the HydroMT core class .. TIP:: In python, a child class (eg *MyModelModel(Model)*), inherits all methods and properties of the parent class (``Model``). If you wish to completely overwrite one - of the parent methods (eg ``setup_region``), you can just redefine the function in the child class using the name (``setup_region``). You can also decide to + of the parent methods (eg ``setup_region``), you can just redefine the function in the child class using the name (``setup_region``). You can also decide to re-use the parent function and for example add some extra steps, change the default values or the docstring of the function. For this, you can redefine the function in the child class, and within the redefined function, call the parent one use *super()* python class attribute (*super().setup_region*). You will see an example below for the initialisation function ``__init__`` . @@ -345,7 +345,7 @@ can then be opened in read only mode ('r') and HydroMT should not be able to ove - `self._assert_read_mode` if a model can be read - `self._assert_write_mode` if a model can be written -3. If needed, transform and write the component to the right format and file(s). +3. If needed, transform and write the component to the right format and file(s). 4. Don't hesitate to put some logger information for your user. Set model components From c59efe68529d55f3671595c8b6ca83732fb6fd15 Mon Sep 17 00:00:00 2001 From: Dirk Eilander Date: Wed, 20 Sep 2023 21:33:48 +0200 Subject: [PATCH 19/19] final edits docs from my side --- docs/dev/plugin-quickstart.rst | 187 ++++++++++++++++----------------- 1 file changed, 90 insertions(+), 97 deletions(-) diff --git a/docs/dev/plugin-quickstart.rst b/docs/dev/plugin-quickstart.rst index 2da1f6efb..12beb89f3 100644 --- a/docs/dev/plugin-quickstart.rst +++ b/docs/dev/plugin-quickstart.rst @@ -6,13 +6,17 @@ Starting your own HydroMT Plugin ================================ +You've discovered HydroMT and would like to use it for your own model and wonder how to get started about it? This page gives you some tips and tricks on how to use HydroMT for your own model and start your own plugin. Before reading this, you should already know a little about HydroMT, so please check out at least the :ref:`intro_user_guide` and the :ref:`model_main` section. Plugin or no plugin ? --------------------- -You've discovered HydroMT and would like to use it for your own model and wonder how to get started about it? +While HydroMT provides several general model classes that can readily be used, it can also be +tailored to specific model software through a plugin infrastructure. These plugins have the same +interface, but with model-specific file readers, writers and workflows. + Before getting started **you should ask yourself these questions**: 1. Does my model have model-specific file formats which are different from the HydroMT defaults? @@ -32,26 +36,11 @@ questions could be a protential reason for starting your own plugin. Below are a *Drawbacks* - Need to create and develop a plugin repository. -- Need to support and maintain the plugin repository. - -To help you decide some more indepth explanation is also provided below. -To quote our :ref:`intro_user_guide`:: - - HydroMT defines any model instance through the model-agnostic Model API - based on several components: maps, geometries, forcings, results, states, - and the model simulation configuration. For different types of general - model classes (i.e., gridded, lumped, mesh and network models) additional - model components have been defined. Each component is represented with a - specific Python data object to provide a common interface to different model - software. Model instances can be built from scratch, and existing models can - be updated based on a pipeline of methods defined in a model configuration - .yaml file. - - While HydroMT provides several general model classes that can readily be used, it can also be - tailored to specific model software through a plugin infrastructure. These plugins have the same - interface, but with model-specific file readers, writers and workflows. - -As mentioned above, HydroMT interacts with models using the ``Model`` API class and also provides several sub-model classes: +- Need to support and maintain the plugin repository (if open-source, which we encourage). + +To help you decide some more in-depth explanation is also provided below. + +As mentioned user guide, HydroMT interacts with models using the ``Model`` API class and also provides several sub-model classes: ``GridModel``, ``MeshModel``, ``LumpedModel``, ``NetworkModel`` which will be described in more detail below. Using these sub-model classes, you might be able to already prepare most and if not all of the data you need to build your own model. Do note however that these generic classes can only write model data in netcdf, @@ -101,7 +90,7 @@ look like, but for the user, the same step could then look like: reclass_table_fn: vito_reclass Finally, with the generic methods and sub-model classes of HydroMT, we try to support a certain range of data processing -methods. If you find that there is no method available for your case, you can always open a feature request issue +methods. If you find that there is no method available for your case, you can always open a feature request issue and if we think your proposed method can be re-used by others, it could be added to the core. However, for some data processing workloads, this will not be the case. This could be a very strong reason for you to write your own plugin. @@ -133,70 +122,29 @@ at the current ``hydromt_wflow`` model. Specifically it's this line in the pypro This snippet will tell HydroMT core three things: -1. there will be a new model class ``WflowModel`` in this package called "hydromt_wflow" that HydroMT core can use for example via command line. +1. the class ``WflowModel`` defines a HydroMT ``Model`` compatible class. 2. it is located in the file hydromt_wflow//wflow.py -3. it implements the new plugin class ``WflowModel`` that is compatible with the ``hydromt.models`` API +3. it implements the new plugin class ``WflowModel``, with can be assecces from the HydroMT CLI with short name `wflow` -Now, how do you define the new plugin ``Model`` class? To make sure that your model is compatible with HydroMT core, you can use one of the following classes as a base for your model: +Now, how do you define the new plugin ``Model`` class? To make sure that your model is compatible with HydroMT core, +you can use one of the following classes as a base for your model: * ``Model`` is the most generic class of HydroMT core which is used as a base for all other model classed. * ``GridModel`` for regular gridded or distributed models, * ``MeshModel`` for unstructured grid(s) models, -* ``LumpedModel`` for lumped or semi-distributed models +* ``LumpedModel`` for lumped or semi-distributed (vector) models * ``NetworkModel`` for network models. This allows you to use the HydroMT model class methods as well as create any functionality on top of that. To define your new model class, e.g. *WflowModel*, you should make sure that in the python script that is referenced by the entry-point. And that's it! If everything has gone well, you should be able to access your code through HydroMT now! -.. NOTE:: - - If you want to mix functionalities from different sub-model classes, e.g. your model contains both regular grids and semi-distributed units, most model classes also - provide ``Mixin`` variants that you can use to mix and match a bit more modularly. This is actually how the generic sub-classes are defined, - as a mix of the main HydroMT ``Model`` class and the ``Mixin`` of the additionnal new component defining then: - - .. code-block:: python - - class GridModel(Model, GridMixin): - -.. TIP:: - - Choosing the right HydroMT Model or submodel class for your plugin depends on your main model characteristics. Each sub-model class implements - a new HydroMT Model component, ``grid`` for ``GridModel`` or ``mesh`` for ``MeshModel`` and adds the accompanying setup, read and write methods. - So choosing the one or the other, or adding a Mixin depends on what type of model or input data strucuture you need to prepare. Note that if your - Model class is defined as (1) *PluginModel(GridModel)* or (2) *PluginModel(Model, GridMixin)*, in both cases the ``grid`` object and relative methods - are available. The main difference is the dominant object for your model in case of (2) will be ``grid`` and in case of (1) the ``region``, - i.e. when looking for example for the model CRS property, in case of (1) the crs will be grid.crs and in case of (2) region.crs. Also, in - update mode, in case of (2), no additional data can be added to your model if the grid object is not yet defined (ie your model grid extent and - resolution does not yet exist). - -Typical HydroMT repository structure -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -With HydroMT and some of its plugins, we usually use a classic folder structure and file organisation. It not mandatory to follow this structure -But if you choose to, a classic folder structure and files for a HydroMT plugin (eg mymodel) looks like this: - -- **docs**: folder containing your documentation pages. -- **examples**: folder containing example models, templates for building/updating models, jupyter notebooks. -- **tests**: folder containing your test scripts. -- *pyproject.toml*: your build-system requirements for your python package (used by pypi and conda). -- *README.md*: your landing documentation page for your repository. -- *LICENSE*: license file for your repository. -- **hydromt_mymodel**: folder containing the functions for your plugin. - - - *__init__.py*: init python script used when importing the *hydromt_mymodel* package in a python script. - - *mymodel.py*: your main script where you will your plugin `Model` class (*MyModelModel*) and main functions (read/write/setup). - - **workflows**: folder contaning python scripts for data processing functions. - - **data**: folder containing model building templates and default values or data for your plugin. For example, it is usually - easier to update an existing template configuration file of your model rather than building it from scratch. You can store such - a template in that folder. If your model has default values for some parameters, you can also store them here, ideally with a - model data catalog to read the correponding files. - Using the cookiecutter template ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ To make it easier to get started we have provided a `cookiecutter `_ template to help you get started. The template itself is located at `https://github.com/Deltares/hydromt-plugin-template `_. This cookiecutter template contains: - - classic HydroMT folder structure. + - classic HydroMT folder structure (see below). - minimum definition of a new HydroMT plugin sub-model class and entrypoint registry. - working pyproject.toml to install and publish your plugin python package. - working minimum tests including GitHub workflow. @@ -261,6 +209,28 @@ plugin! Well done, and good luck! .. _plugin_components: +Typical HydroMT repository structure +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +With HydroMT and some of its plugins, we usually use a classic folder structure and file organisation. It not mandatory to follow this structure +But if you choose to, a classic folder structure and files for a HydroMT plugin (eg mymodel) looks like this: + +- **docs**: folder containing your documentation pages. +- **examples**: folder containing example models, templates for building/updating models, jupyter notebooks. +- **tests**: folder containing your test scripts. +- *pyproject.toml*: your build-system requirements for your python package (used by pypi and conda). +- *README.md*: your landing documentation page for your repository. +- *LICENSE*: license file for your repository. +- **hydromt_mymodel**: folder containing the functions for your plugin. + + - *__init__.py*: init python script used when importing the *hydromt_mymodel* package in a python script. + - *mymodel.py*: your main script where you will your plugin `Model` class (*MyModelModel*) and main functions (read/write/setup). + - **workflows**: folder contaning python scripts for data processing functions. + - **data**: folder containing model building templates and default values or data for your plugin. For example, it is usually + easier to update an existing template configuration file of your model rather than building it from scratch. You can store such + a template in that folder. If your model has default values for some parameters, you can also store them here, ideally with a + model data catalog to read the correponding files. + + Model class and components -------------------------- In this section, we will detail the bottom part of the schematic ie how to initialise your HydroMT Model class for your plugin, the main properties and how to @@ -351,16 +321,16 @@ can then be opened in read only mode ('r') and HydroMT should not be able to ove Set model components ^^^^^^^^^^^^^^^^^^^^ As mentioned previously, to add data to one of the model component (e.g. a DEM raster data to maps), the ``set_`` -methods should be used. In the background, the actual data is stored not directly in the components but in a **placeholder** -property (``_maps`` for ``maps``). And the component, ``maps``, actually just goes and fetch the data from the placeholder -``_maps`` or in read mode, starts reading the component. +methods should be used. In the background, some checks are performed to make sure that the data is in the right format +and, if in appending mode, existing layers of the model component are read first. You should not have to change the +``set_`` methods. -Using a placeholder allows us to initiate reading when possible (e.g. in update mode 'r+'), only the first time when the -component is called, to avoid unintentiously overwritting data stored, and allows to add some check or transformation -when adding data to a component using the ``set_`` methods. +.. NOTE:: -So it is usually highly recommended, in your plugin to always use the component (``maps``) and to only modify its placholder -using the ``set_`` methods. By and large you should not have to change the `set` methods. + In the background, the actual data is stored not directly in the attribute itselft but in a private + attribute (eg ``_maps`` for ``maps``). The public component, (eg ``maps``), actually just fetched the data + from the private attribte ``_maps``, but makes sure that in read mode it reads existing layers of the component first. + It is highly recommended, in your plugin to always use the public model component (eg ``maps``). Additional Model properties ^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -389,30 +359,32 @@ base or region setup method which typically parses the region argument of the Hy function has been called, the user should already be able to have the minimum model properties or files in order to be able to call HydroMT to ``update`` the model to add additionnal data (``build`` is not required anymore). -For example, this is what the ``setup_region`` from ``Model`` does by adding ``region`` to ``geoms``, or ``setup_grid`` from ``GridModel`` which -generates a regular grid based on the region argument, a CRS and a resolution. You can re-use the core methods or decide to define your -own. +For example, this is what the ``setup_region`` from ``Model`` does by adding ``region`` to ``geoms``, or ``setup_grid`` +from ``GridModel`` which generates a regular grid based on the region argument, a CRS and a resolution. +You can re-use the core methods or decide to define your own. .. NOTE:: - **Order of the setup methods**: apart that your model class should have a base method that at least defines the model region and CRS, - there is no real check on the order in which setup methods are called. For Command Line users, the functions in the hydromt configuration - yaml file will be executed in the order they appear in the file. So if in your case, a setup method should be called before another - (eg you first should have a DEM before you can add rivers to your model), then in the following setup method, check if the required data - are already in the model and else send a clear error message. Clear documentation will help your user too. + **Order of the setup methods**: Typically, building a model starts with defining the coputational units (grid, mesh, vector etc.). + Afterwards data layers are added to model components and there might be dependencies between the different layers. For example, + a method to define river dimensions should probably be called after a method which defines the river cells on the grid or mesh itself. + However, there is no real check on the order in which setup methods are called apart from checks that you can build-in that certain + layers are already present with clear error messages. Clear documentation will help your user too. + For Command Line Interface users, the functions in the hydromt configuration yaml file will be executed in the order they appear in the file. + Python Interface users can call the setup functions in any order they want from a script. Setup methods ^^^^^^^^^^^^^ In general, a HydroMT ``setup_<>`` method does 4 things: - 1. read or otherwise fetch data using the ``DataCatalog`` and ``DataAdapter`` and the corresponding ``get_data`` method ( + 1. read and parse the data using the ``DataCatalog`` and correspoding ``DataAdapter.get_data`` method ( ``get_rasterdataset`` for RasterDataset, ``get_GeoDataset`` for GeoDataset, ``get_geodataframe`` for GeoDataFrame and ``get_dataframe`` for DataFrame). 2. process that data in some way, optionally by calling an external workflow function. - 3. rename or update attributes from HydroMT variable conventions (name, unit) to the specific model conventions. - 4. adds the data to the corresponding HydroMT model components. + 3. Optionally, rename or update attributes from HydroMT variable conventions (name, unit) to the specific model conventions. + 4. add the data to the corresponding HydroMT model components. Below is a simplified example of what a setup function would look like for a hypothetical landuse grid from a raster input data using an external workflow from hydromt core is: @@ -421,26 +393,26 @@ input data using an external workflow from hydromt core is: def setup_landuse( self, - landuse_fn: Union[str, Path, xr.DataArray], + landuse: Union[str, Path, xr.DataArray], ): """Add landuse data variable to grid. Adds model layers: - * **landuse_class** grid: data from landuse_fn + * **landuse_class** grid: data from landuse Parameters ---------- - landuse_fn: str, Path, xr.DataArray + landuse: str, Path, xr.DataArray Data catalog key, path to raster file or raster xarray data object. If a path to a raster file is provided it will be added to the data_catalog with its name based on the file basename without extension. """ - self.logger.info(f"Preparing landuse data from raster source {landuse_fn}") + self.logger.info(f"Preparing landuse data from raster source {landuse}") # 1. Read landuse raster data da_landuse = self.data_catalog.get_rasterdataset( - landuse_fn, + landuse, geom=self.region, buffer=2, variables=["landuse"], @@ -457,7 +429,6 @@ input data using an external workflow from hydromt core is: # Or using a properly initialised _GRIDS # rmdict = {k: v for k, v in self._GRIDS.items() if k in ds_out.data_vars} ds_out = ds_out.rename(rmdict) - # 4. Add to grid self.set_grid(ds_out) @@ -474,9 +445,9 @@ input data using an external workflow from hydromt core is: Workflows ^^^^^^^^^ -Because the python script defining your plugin Model class can get quite long, we encourage you to use or define -external data processing functions. In HydroMT these are usually called workflows. These workflows are usually stored in -separate python scripts that you can decide to store in a workflow subfolder. +Because the python script defining your plugin Model class can get quite long and it makes unit testing easier, +we encourage you to use or define external data processing functions. In HydroMT these are usually called workflows. +These workflows are usually stored in separate python scripts that you can decide to store in a workflow subfolder. A couple of tips if you want to define workflows: @@ -508,6 +479,28 @@ Here are some last tips: Advanced Topics =============== +Mixing model sub-classes +------------------------ + +If you want to mix functionalities from different sub-model classes, e.g. your model contains both regular grids and semi-distributed units, most model classes also +provide ``Mixin`` variants that you can use to mix and match a bit more modularly. This is actually how the generic sub-classes are defined, +as a mix of the main HydroMT ``Model`` class and the ``Mixin`` of the additionnal new component defining then: + + .. code-block:: python + + class GridModel(Model, GridMixin): + +.. TIP:: + + Choosing the right HydroMT Model or submodel class for your plugin depends on your main model characteristics. Each sub-model class implements + a new HydroMT Model component, ``grid`` for ``GridModel`` or ``mesh`` for ``MeshModel`` and adds the accompanying setup, read and write methods. + So choosing the one or the other, or adding a Mixin depends on what type of model or input data strucuture you need to prepare. Note that if your + Model class is defined as (1) *PluginModel(GridModel)* or (2) *PluginModel(Model, GridMixin)*, in both cases the ``grid`` object and relative methods + are available. The main difference is the dominant object for your model in case of (2) will be ``grid`` and in case of (1) the ``region``, + i.e. when looking for example for the model CRS property, in case of (1) the crs will be grid.crs and in case of (2) region.crs. Also, in + update mode, in case of (2), no additional data can be added to your model if the grid object is not yet defined (ie your model grid extent and + resolution does not yet exist). + Adding a new property or component ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ If you wish to add additional properties or attributes to your plugin Model subclass, you can either decide to add simple

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 z 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