Overview models#
High level functionality#
HydroMT has the following high-level functionality for setting up models from raw data or adjusting models:
building a model: building a model from scratch.
updating a model: adding or changing model components of an existing model.
clipping a model: changing the spatial domain of an existing model (e.g. select subbasins from a larger model).
The building and clipping methods required the user to provide a region of interest. HydroMT provides several options to define a region based on a geospatial or hydrographic region.
The exact process of building or updating a model can be configured in a single configuration .ini file. This file describes the full pipeline of model methods and their arguments. The methods vary for the different model classes and Plugins, as documented in this documentation or for each plugin documentation websites.
Since v0.5.9, HydroMT can support both generalized model types (for example gridded, lumped or mesh models) and specific model types (plugins).
Generalized model class implementation#
The model API from HydroMT allows to build a model from scratch for different model concepts. This implementation is flexible such that users can create a model instance that matches their need. By default, the model components are returned and read from standard formats, as documented in the API reference. As of version 0.5.9, the grid model (distributed model), lumped model (e.g. semi-distributed, bucket models), mesh model (e.g. unstructured models) have been implemented. Other model classes such as network models will follow in future versions.
Specific model class implementation#
For a list of supported models see the Plugins page.
Model data components#
Model data components are data attributes which together define a model instance and are identical for all models. Each component represents a specific model component and is parsed to a specific Python data object that should adhere to certain specifications. These specification are class dependent. An overview is given below.
The table below lists model components common to all model classes
Component |
Explanation |
API |
---|---|---|
maps |
Map data (resolution and CRS may vary between maps) |
|
geoms |
Static vector data |
|
forcing |
(Dynamic) forcing data (meteo or hydrological for example) |
|
results |
Model output |
|
states |
Initial model conditions |
|
config |
Settings for the model kernel simulation or model class |
For each generalized model class, the respective components exist:
Component |
Model class |
Explanation |
API |
---|---|---|---|
grid |
GridModel |
Static gridded data with on unified grid |
|
response_units |
LumpedModel |
Static lumped data over the response_units |
|
mesh |
MeshModel |
Static mesh data |
Note
Prior to v0.5.9, the staticmaps and staticgeoms components were available. staticmaps is replaced with grid in GridModel, whereas staticgeoms is renamed to geoms for consistency but still available in the Model class.