v1.0.0
What's Changed
v1.0.0 (18 December 2025)
Overview
Version 1.0.0 is a major release that introduces full support for Wflow.jl 1.0.0 and drops support for all earlier Wflow.jl versions.
This is also the release in which the hydromt-core dependency is upgraded to version 1, aligning hydromt_wflow with the new hydromt architecture and APIs.
An explicit upgrade path is provided via the upgrade_to_v1_wflow function to help users migrate existing models.
For more information, see the migration guide
Architecture and Model Structure
The internal model structure has been refactored around hydromt-core v1 concepts.
The model root is now managed by a ModelRoot class, and configuration, static maps, forcing, states, geometries, and outputs are implemented as ModelComponent classes with a uniform data access pattern.
Component and method names were harmonized with Wflow.jl conventions, including renaming grid to staticmaps and standardizing static map, state, and geometry names.
Configuration and Setup Changes
TOML configuration handling was redesigned to match Wflow.jl 1.0.0.
Configuration options are now added incrementally by setup methods rather than generated from a full template.
Several setup methods were renamed or split for clarity, and clipping a model is now handled through a single clip method.
Users can explicitly control variable names in static maps and selected geometries, enabling multiple variants of the same parameter within one model.
Lakes, Reservoirs, and Rivers
Lakes and reservoirs are now handled through a unified reservoir framework.
Reservoirs can be added or overwritten, and a combined reservoir geometry is generated by default.
River setup logic was split into generic and model-specific parts, improving reuse and maintainability.
Sediment-related workflows were updated to prepare only sediment-relevant variables.
Compatibility, Fixes, and Cleanup
The minimum supported Python version was raised to 3.11.
Legacy functionality tied to older Wflow versions and deprecated dependencies was removed, including pcraster support and model-level get/set/read/write methods.
Numerous bug fixes and behavioral improvements were included, particularly around upgrading models, reservoir handling, forcing generation, and geometry processing.
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
- upgrade_to_v1_wflow: convert models for Wflow.jl version < 1.0.0 to Wflow.jl version 1. PR #364
- Allow users to choose the names of each variables in staticmaps.nc files or the same of some of the staticgeoms (eg lakes, reservoirs). PR #364
- setup_areamap: if the map is linked to a Wflow variable, the TOML file can now be updated to link the new created map to the right Wflow.jl variable. PR #364
- Support more lake/reservoir output variables in the upgrade to v1 function. (#661)
- Revised version 1.0 of the landuse parameter mapping tables. (#670)
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
- Support for Wflow.jl >= 1.0.0 kernel. The main implication is for the generation of the TOML file. Consequently support for Wflow.jl < 1.0.0 has been dropped (see below). PR #364
- All default names in staticmaps.nc and states have been redefined and harmonized. PR #422
- Some of the geoms names have changed: gauges to outlets and subcatch to subcatchment. PR #422
Wflow._configis no longer a dictionary but atomlkit.TOMLDocumentto ensure structure of existing toml files are preserved upon write.
Due to this change we discourage users from modifying the config structure by hand, and instead rely onWflow.set_configto avoid issues. (#387)- setup_constant_pars: add the constant value to the TOML rather than creating an extra map in staticmaps.nc. The values should then be linked to the Wflow.jl variable name. PR #364
- setup_lulcmaps and equivalents: parameters to prepare from the mapping table are now linked to Wflow.jl variable names (dictionary and not list) to allow for renaming. PR #364
- setup_output_config_timeseries, setup_outlets, setup_gauges: the option to save parameters to netcdf scalar file as been renamed from
netcdftonetcdf_scalarto better match the TOML file structure. PR #364 - Changed name of
g_ttparameter tog_ttm, to align with the changes in Deltares/Wflow.jl#512 - setup_soilmaps [sediment]: add small and large aggregates to soil composition (additional to clay/silt/sand). Composition is now in fraction and not percentage. PR #331
- setup_soilmaps [sediment]: additional parameters are prepared by the method (e.g. soil mean diameter, Govers transport capacity parameters). PR #331
- setup_constant_pars [sediment]: added additional default values for sediment density and particle diameters. PR #331
- setup_riverbedsed [sediment]: added option to derive Kodatie transport capacity parameters based on streamorder mapping. PR #331
- setup_rivers, setup_lakes, setup_reservoirs [sediment]: only create wflow sediment variables and not a mix of sbm and sediment ones. PR #364
- Grid data is masked to subcatchment on
set_gridnow instead of onwrite_grid(#349) - Signature of the standalone set_config and get_config functions, config is now first argument
- TOML file options are added on the fly by each setup method rather than starting from a complete template.
- The default landuse mapping tables are now the revised version (1.0). The previous version is still available as variant version 0.8. (#670)
- vegetation_crop_factor: values for cells without vegetation in the mapping tables are now nodata values. After mapping and resampling, nodata values are filled with 1. (#670)
- When using
setup_reservoirs_simple_control, the tables for reservoir accuracy and reservoir timeseries are written to the [model's root]/validation. (#631) setup_lulcmapsand equivalents: Parameters forlulc_varsare directly linked to the names in the columns of the mapping table. (#623)- Renamed
basin_highrestometa_basins_highres. (#635)
Fixed
- Updated installation guide (#376)
- 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) - Fixed cyclic data layer not having coordinates after setting the data in the
WflowStaticMapsComponent. - Deriving river if dem was not upscaled in setup_basemaps (#638).
- fixed
setup_precip_forcingproducing an empty netcdf file (#649). - Fixed conversion of reservoir variables in cyclic / forcing sections in
upgrade_to_v1_wflow(#661). - Use -1 instead of NaN when merging lakes and reservoirs parameters (#661).
- Convert reservoir location map in netcdf_scalar and csv output (#661).
- Fixed issue with reading reservoir hq rating curve tables (#662).
Deprecated
- setup_soilmaps: drop possibility to derive parameters based on soil texture as InfiltCapSoil parameter is no longer supported in Wflow.jl 1.0.0 (duplicate of ksat_vertical). PR #334
- Support for building/updating models for Wflow.jl version < 1.0.0. We encourage you to upgrade your model to the new version using
upgrade_to_v1_wflowor use an older release of hydromt_wflow if you do not want to upgrade your model. PR #364
Removed
- Dropped support for
pcrasterand removed deprecated pcrm module. PR #408 - Reverted use of tomlkit (#529)
get_*,set_*,read_*, andwrite_*functions on the model have been removed. Their equivalent on the corresponding component should be used instead. (#613)
Full Changelog: v0.8.0...v1.0.0