v1.0.0rc2
Pre-releaseIn v1.0.0rc2, lakes and reservoirs were merged into a single structure in Wflow.jl, prompting updates to related functions and parameters. Several new model components were introduced,
including those for configuration, static maps, forcing, states, geoms, and various output types. The minimum supported Python version was raised to 3.11.
The model root is now managed by a ModelRoot class, and model components such as config and forcing are now ModelComponent classes, with their data accessed via a data property.
Component and method names were updated for clarity, including renaming "grid" to "staticmaps" and splitting or renaming several setup methods. The process for clipping a model was simplified to a single clip method.
Reservoir handling was enhanced, allowing overwriting or adding reservoirs, and a combined staticgeom for all reservoirs is now created. The release also included various bug fixes,
such as improved handling in upgrade_to_v1_wflow, correct addition of states in setup_floodplains, and better clipping and snapping of 1D rivers.
The use of the tomlkit dependency was reverted, and the standard naming conventions were updated. Finally, the workflows.waterbodies module was renamed to workflows.reservoirs,
and the release included documentation improvements and updates to example configurations.
Added
- config component
WflowConfigComponent: represents the Wflow configuration TOML file. - staticmaps component
WflowStaticMapsComponent: represents Wflow static and cyclic data (used to be grid). - forcing component
WflowForcingComponent: represents Wflow input forcing data. - states component
WflowStatesComponent: represents Wflow input states data. - geoms component
WflowGeomsComponent: represents Wflow staticgeoms data. - output_grid
WflowOutputGridComponent, output_scalarWflowOutputScalarComponentand output_csvWflowOutputCsvComponentcomponents: represent Wflow outputs (used to be results). - write_geoms: added function arguments
to_wgs84to convert the geometry to WGS84 before writing it to file. PR #432 - Reservoirs can now overwrite or be added to existing ones in the model. PR #515
- Create a combined staticgeom for all reservoirs "reservoirs.geojson". PR #515
Changed
- Increased minimum python version to 3.11 according to https://scientific-python.org/specs/spec-0000/
- Model root is now a
ModelRootclass. To access the root path, usewflow.root.path. - Model components like config, forcing are now
ModelComponentclasses.
To access the inherent data objects (dictionary, xarray.Dataset etc.) of the components, thedataproperty is now used.
Eg wflow.config.data, wflow.staticmaps.data - The names of some of the model components have changed:
gridtostaticmaps. - setup_config: the method now explicitly uses a dictionary with the options to add/update.
- utils.read_csv_results has been renamed to utils.read_csv_output.
- Reverted the use of TOMLkit dependency
- Renamed
WflowModeltoWflowSbmModel. This also affects the cli commandhydromt <build/update> wflow, which now becomeshydromt <build/update> wflow_sbm. - Split
WflowModelintoWflowBaseModelcontaining all generic parts of all wflow models, like components and some setup functions, andWflowSbmModel, containing the specific parts for the wflow_sbm concept. WflowSedimentModelandWflowSbmModelboth inherit fromWflowBaseModeland extend it for their specific use cases.- The old
WflowModel.setup_rivershas been split into three parts:WflowBaseModel.setup_rivers,WflowSbmModel.setup_riversandWflowSbmModel.setup_river_roughness. Where the first contains the generic river setup logic, the second Sbm-specific implementations, and the third contains manning roughness implementations. - Clipping a model is now done by calling a single clip method. This function can be called with the
hydromt updatecli command. - upgrade_to_v1_wflow: Function now also updates any input variables that link to
netcdf.variable.nametonetcdf_variable_name. - Existing forcing file is now overwritten if the model is in w+ mode (build with --fo).(#598)
- Update values used in example yamls to new defaults used in Wflow.jl (#589)
- Improve behavior of
merge_reservoirs, to merge values based on their ID rather than all non-missing pixels. (#597) - Rename standard names to no longer use "instantaneous" in the name (#601)
- setup_reservoirs has been renamed to setup_reservoirs_simple_control for sbm. The default output geom is meta_reservoirs_simple_control.geojson. PR #515
- setup_lakes has been renamed to setup_reservoirs_no_control for sbm. Arguments of the functions have been updated as well. The default output geom is meta_reservoirs_no_control.geojson. PR #515
- setup_lakes has been renamed to setup_natural_reservoirs for sediment. Arguments of the functions have been updated as well. The default output geom is meta_natural_reservoirs.geojson. PR #515
- workflows.waterbodies has been renamed to workflows.reservoirs. PR #515
Fixed
- upgrade_to_v1_wflow: fixed bug for [model] options that kept the same name in Wflow v1. (e.g. type, river_routing, land_routing). PR #487
- setup_floodplains: states were not correctly added to the model config. PR #486
- setup_1d_model_connection: improve clipping and snapping of 1D river with wflow basins/river. PR #416
- Fix wflow build config example in the docs. PR #486
- Fix crop_factor and water_frac values for grassland in CORINE. PR #523
- included
floodplain_water_flow__manning_n_parameterin naming script (#529)
Removed
- Reverted use of tomlkit (#529)