1 Model
Model()
A model of inland water resources systems.
1.1 Attributes
Name | Description |
---|---|
allocation | |
basin | |
continuous_control | |
crs | |
discrete_control | |
endtime | |
experimental | |
filepath | |
flow_boundary | |
flow_demand | |
input_dir | |
level_boundary | |
level_demand | |
linear_resistance | |
link | |
logging | |
manning_resistance | |
model_config | |
outlet | |
pid_control | |
pump | |
results | |
results_dir | |
results_path | Get the path to the results directory if it exists. |
solver | |
starttime | |
tabulated_rating_curve | |
terminal | |
toml_path | Get the path to the TOML file if it exists. |
use_validation | |
user_demand |
1.2 Methods
Name | Description |
---|---|
diff | Compare two instances of a BaseModel. |
model_dump | |
model_post_init | |
node_table | Compute the full sorted NodeTable from all node types. |
plot | Plot the nodes, links and allocation networks of the model. |
plot_control_listen | Plot the implicit listen links of the model. |
read | Read a model from a TOML file. |
set_crs | Set the coordinate reference system of the data in the model. |
set_filepath | Set the filepath of this instance. |
to_crs | |
to_fews | Write the model network and results into files used by Delft-FEWS. |
to_xugrid | Convert the network to a xugrid.UgridDataset . |
write | Write the contents of the model to disk and save it as a TOML configuration file. |
1.2.1 diff
=False) Model.diff(other, ignore_meta
Compare two instances of a BaseModel.
** Warning: This method is experimental and is likely to change. **
If they are equal, return None. Otherwise, return a nested dictionary with the differences. When the differences are not a DataFrame (like the toml config), the dict has self and other as key. For DataFrames we return a dict with diff as key, and a datacompy Comparison object.
When ignore_meta is set to True, the meta_* columns in the DataFrames are ignored. Note that in that case the key will still be returned and the value will be None.
1.2.1.1 Examples
>>> nbasic == basic
False
>>> x = nbasic.diff(basic)
'basin': {'node': {'diff': <datacompy.core.Compare object at 0x16e5a45c0>},
{'static': {'diff': <datacompy.core.Compare object at 0x16eb90080>}},
'solver': {'saveat': {'other': 86400.0, 'self': 0.0}}}
>>> x["basin"]["static"]["diff"].report()
DataComPy Comparison--------------------
...
1.2.2 model_dump
**kwargs) Model.model_dump(
1.2.3 model_post_init
Model.model_post_init(__context)
1.2.4 node_table
Model.node_table()
Compute the full sorted NodeTable from all node types.
1.2.5 plot
=None, indicate_subnetworks=True, aspect_ratio_bound=0.33) Model.plot(ax
Plot the nodes, links and allocation networks of the model.
1.2.5.1 Parameters
Name | Type | Description | Default |
---|---|---|---|
ax | matplotlib.pyplot.Artist | Axes on which to draw the plot. | None |
indicate_subnetworks | bool | Whether to indicate subnetworks with a convex hull backdrop. | True |
aspect_ratio_bound | float | The maximal aspect ratio in (0,1). The smaller this number, the further the figure shape is allowed to be from a square | 0.33 |
1.2.5.2 Returns
Name | Type | Description |
---|---|---|
ax | matplotlib.pyplot.Artist | Axis on which the plot is drawn. |
1.2.6 plot_control_listen
Model.plot_control_listen(ax)
Plot the implicit listen links of the model.
1.2.7 read
Model.read(filepath)
Read a model from a TOML file.
1.2.7.1 Parameters
Name | Type | Description | Default |
---|---|---|---|
filepath | str | PathLike[str] | The path to the TOML file. | required |
1.2.8 set_crs
Model.set_crs(crs)
Set the coordinate reference system of the data in the model.
1.2.8.1 Parameters
Name | Type | Description | Default |
---|---|---|---|
crs | str | Coordinate reference system, like “EPSG:4326” for WGS84 latitude longitude. | required |
1.2.9 set_filepath
Model.set_filepath(filepath)
Set the filepath of this instance.
Args: filepath (Path): The filepath to set.
1.2.10 to_crs
Model.to_crs(crs)
1.2.11 to_fews
=True, add_results=True) Model.to_fews(region_home, add_network
Write the model network and results into files used by Delft-FEWS.
** Warning: This method is experimental and is likely to change. **
To run this method, the model needs to be written to disk, and have results. The Node, Link and Basin / area tables are written to shapefiles in the REGION_HOME/Config directory. The results are written to NetCDF files in the REGION_HOME/Modules directory. The netCDF files are NetCDF4 with CF-conventions.
1.2.11.1 Parameters
Name | Type | Description | Default |
---|---|---|---|
region_home | str | PathLike[str] | Path to the Delft-FEWS REGION_HOME directory. | required |
add_network | bool | Write shapefiles representing the network, enabled by default. | True |
add_results | bool | Write the results to NetCDF files, enabled by default. | True |
1.2.12 to_xugrid
=False, add_allocation=False) Model.to_xugrid(add_flow
Convert the network to a xugrid.UgridDataset
.
Either the flow or the allocation data can be added, but not both simultaneously. This method will throw ImportError
if the optional dependency xugrid
isn’t installed.
1.2.12.1 Parameters
Name | Type | Description | Default |
---|---|---|---|
add_flow | bool | add flow results (Optional, defaults to False) | False |
add_allocation | bool | add allocation results (Optional, defaults to False) | False |
1.2.13 write
Model.write(filepath)
Write the contents of the model to disk and save it as a TOML configuration file.
If filepath.parent
does not exist, it is created before writing.
1.2.13.1 Parameters
Name | Type | Description | Default |
---|---|---|---|
filepath | str | PathLike[str] | A file path with .toml extension. | required |