Skip to content

Releases: Deltares/hydromt

v0.10.0

14 Jun 08:18
e5c93ae
Compare
Choose a tag to compare

New

  • New PredefinedCatalog class to handle predefined catalog version based on pooch registry files. (#849)

Changed

  • Development environment is now set up via pixi instead of mamba / conda. See the documentation for more information on how to install.
  • Use the native data CRS when determining zoom levels over the data catalog crs. (#851)
  • Improved flw.d8_from_dem method with different options to use river vector data to aid the flow direction derivation. (#305)
  • DataCatalog.predefined_catalogs retrieves predefined_catalogs specified in predefined_catalogs.py. There is no need for setting the predefined_catalogs anymore. (#844)

Fixed

  • Bug in raster.transform with lazy coordinates. (#801)
  • Bug in workflows.mesh.mesh2d_from_rasterdataset with multi-dimensional coordinates. (#843)
  • Bug in MeshModel.get_mesh after xugrid update to 0.9.0. (#848)
  • Bug in raster.clip_bbox when bbox doesn't overlap with raster. (#860)
  • Allow for string format in zoom_level path, e.g. {zoom_level:02d} (#851)
  • Fixed incorrect renaming of single variable raster datasets (#883)
  • Provide better error message for 0D geometry arrays in GeoDataset (#885)
  • Fixed index error when the number of peaks varies between stations in get_hydrographs method (#933)

Deprecated

  • The DataCatalog.from_archive method is deprecated. Use DataCatalog.from_yml with the root pointing to the archive instead. (#849)

v1.0.0-alpha1

31 May 10:11
233f95c
Compare
Choose a tag to compare
v1.0.0-alpha1 Pre-release
Pre-release

V1-Alpha

This is the first alpha release of our v1 implementation with a new model and driver architecture. Please be aware that this is still an alpha so bugs and missing features may still be encountered. If you experience either, please submit an issue or open a discussion, we would love your feedback. Below is the changelog but for a more indepth explanation of all the changes and their implications please see the migration guide at docs/dev/migrating-to-v1.rst.

Because this is an alpha this will not be merged to main for quite a while, and will not be tagged as the latest release. Because we want to be able to respond to feedback quickly, a separate release branch for alpha will be maintained, and more alpha releases may be published as required.

Added

  • Added Driver class for customizable io
  • Added entrypoints for Driver Plugins as "hydromt.drivers"
  • Added entrypoints for ModelComponent Plugins as "hydromt.components"
  • Added entrypoints for PredefinedCatalog Plugins as "hydromt.catalogs"
  • Added MetaDataResolver class for customizable metadata discovery
  • Added DataSource class to represent and validate DataCatalog entries.
  • Data catalogs can now list multiple roots depending on the system used (linux, windows etc). where the first existing root will be used. (#786)
  • A Github action now checks whether the migration guide is updated (#829)
  • Added a ConfigComponent to write configurations for kernels/simulations. (#863)
  • Added a GeomsComponent to manage geo-spatial geometry data of a model. (#867)
  • Added a DatasetsComponent to manage multidimensional data of a model. (#894)
  • Added a GeoDatasetDriver to read vector data from tabular formats. (#912)
  • Added a GeoDatasetSource to handle vector data from tabular formats. (#912)
  • Added RasterTindexResolver to handle URIs in raster tindex files. (#928)

Changed

  • The data catalog format has been refactored to better represent the individual v1 components. (#912)
  • The root meta key of data catalogs yaml files has become roots (#786)
  • The model region is no longer a subset of the geoms but rather it's own component class. See the migration guide for more info (#810)
  • The model class has been moved to a component architecture. See the migration guide for more info (#845)
  • Changed the GeoDatasetAdapter to transform vector data from tabular formats. (#912)

Removed

  • support for **artifact_keys when initializing the DataCatalog has been removed. (#786)
  • support for dictionary like features on the DataCatalog have been removed. (#790)
  • Support for using .ini and .toml files for configuration has been removed. (#791)
  • staticmaps and staticgeoms attributes on the Model object have been removed. (#845)
  • Code refering to the unimplemented Network Model type has been removed (#871)
  • Removed _API, .api property, test_api and other Model level conventions as they are now handled by the components. (#894)

v0.9.4

26 Feb 14:00
b21e751
Compare
Choose a tag to compare

This release fixes a performance regression when reading geometry masks, relaxed warnings for empty raster datasets and updated the documentation of the new hydromt commands.

Fixed

  • Added back geometry mask when reading vector files with fiona as engine/ driver. (#777)
  • Relaxed empty data checking on RasterDatasetAdapter. (#782)
  • Add documentation for hydromt check and hydromt export commands. (#767)

v0.9.3

08 Feb 10:42
682eb8d
Compare
Choose a tag to compare

v0.9.3 (2024-02-08)

This release fixes several bugs. Most notably the NoDataSrategy is available in much more data reading methods so plugins can use it more directly. Additionally there are some bug fixes relating to reading shapefiles and reading COGs.

Added

  • Test script for testing predefined catalogs locally. (#735)
  • Option to write a data catalog to a csv file (#425)

Fixed

  • Reading Vector formats that consist of more than one file via geopandas. (#691)
  • Handle NoDataStrategy consistently when reading data in adapters (#738)
  • add option to ignore empty data sets when exporting data (#743)
  • Fix bug in raster._check_dimensions for datasets with multiple variables with varying dimension size (#761)
  • Fix bug when reading COGs at requested zoom level (#758)

v0.9.2

09 Jan 18:14
8889a2f
Compare
Choose a tag to compare

v0.9.2 (2024-01-09)

This release adds additional bug fixes for the meridian offset functinality, and improvements to the new CLI commands.

Added

  • Export CLI now also accepts time tuples (#660)
  • New stats.skills VE and RSR (#666)
  • Check CLI command can now validate bbox and geom regions (#664)

Changed

  • Export CLI now uses '-s' for source, '-t' for time and '-i' for config. (#660)

Fixed

  • Double reading of model components when in appending mode. (#695)
  • Removed deprecated entrypoints library. (#676)
  • Bug in raster.set_crs if input_crs is of type CRS. (#659)
  • Export CLI now actually parses provided geoms. (#660)
  • Bug in stats.skills for computation of pbias and MSE / RMSE. (#666)
  • Model.write_geoms ow has an option to write GeoJSON coordinates in WGS84 if specified (#510)
  • Fix bug with lazy spatial_ref coordinate (#682)
  • Bug in gis_utils.meridian_offset. (#692)

v0.9.1

16 Nov 14:28
18be459
Compare
Choose a tag to compare

v0.9.0

19 Oct 13:31
e79ecdb
Compare
Choose a tag to compare

This release contains several new features, here we highlight a few:

  • Support in the DataCatalog for data sources from different providers or versions with better support for cloud and http data.
  • Developers documentation to start your own plugin and accompanying template.
  • Support multigrids in meshmodel (with example) and improved implementation VectorModel (was LumpedModel)
  • Support for reading overviews (zoom levels) of Cloud Optimized GeoTIFFs (COGs).

Added

Documentation

  • docs now include a dropdown for selecting older versions of the docs. (PR #457)
  • docs include a new example for MeshModel. (PR #595)
  • Added documentation for how to start your own plugin (PR #446)

Data

  • Support for loading the same data source but from different providers (e.g., local & aws) and versions (PR #438)
  • Add support for reading and writing tabular data in parquet format. (PR #445)
  • Add support for reading model configs in TOML format. (PR #444)
  • add open_mfcsv function in io module for combining multiple CSV files into one dataset. (PR #486)
  • Adapters can now clip data that is passed through a python object the same way as through the data catalog. (PR #481)
  • Relevant data adapters now have functionality for reporting and detecting the spatial and temporal extent they cover (PR #503)
  • Data catalogs have a hydromt_version meta key that is used to determine compatibility between the catalog and the installed hydromt version. (PR #506)
  • Allow the root of a data catalog to point to an archive, this will be extracted to the ~/.hydromt_data folder. (PR #512)
  • Support for reading overviews from (Cloud Optimized) GeoTIFFs using the zoom_level argument of DataCatalog.get_rasterdataset. (PR #514)
  • Support for http and other filesystems in path of data source (PR #515).

Model

  • new force-overwrite option in hydromt update CLI to force overwritting updated netcdf files. (PR #460)
  • Model objects now have a _MODEL_VERSION attribute that plugins can use for compatibility purposes (PR # 495)
  • set_forcing can now add pandas.DataFrame object to forcing. (PR #534)

Raster

  • Model class now has methods for getting, setting, reading and writing arbitrary tabular data. (PR #502)
  • Support for writing overviews to (Cloud Optimized) GeoTIFFs in the raster.to_raster method. (PR #514)
  • New raster method to_slippy_tiles: tiling of a raster dataset according to the slippy tile structure for e.g., webviewers (PR #440).

Changed

Model

  • Updated MeshModel and related methods to support multigrids instead of one single 2D grid. (PR #412)
  • Renamed LumpedModel.response_units to VectorModel.vector and updated the base set, read, write methods. (#531)
  • 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)
  • setup_mesh2d_from_rasterdataset and setup_mesh2d_from_raster_reclass now use xugrid Regridder methods. (PR #535)
  • Use the Model.data_catalog to read the model region if defined by a geom or grid. (PR #479)

Vector

  • vector.GeoDataset.from_gdf can use the gdf columns as data_vars instead of external xarray. (PR #412)

Fixed

  • when a model component (eg maps, forcing, grid) is updated using the set_ methods, it will first be read to avoid loosing data. (PR #460)
  • open_geodataset with driver vector also works for other geometry type than points. (PR #509)
  • overwrite model in update mode. (PR #534)
  • fix stats.extremes methods for (dask) 3D arrays. (PR #505)
  • raster gives better error on incompatible nodata (PR #544)

Deprecated

  • the dependencies pcraster and pygeos are no longer used and were removed. (PR #467)

v0.8.0

18 Jul 14:00
76327f3
Compare
Choose a tag to compare

This release contains several new features, including extreme value analysis, new generic methods for the GridModel class, setting variable attributes like units through the data catalog, and the ability to detect compatibility issues between Datacatalog and HydroMT versions. It also includes a minor breaking change since now geometry masks are only set if the mask in raster.clip_geom is set to True to improve memory usage.

What's Changed

Added

  • Support for unit attributes for all data types in the DataCatalog. PR #334
  • Data catalog can now handle specification of HydroMT version
  • New generic methods for GridModel: setup_grid, setup_grid_from_constant, setup_grid_from_rasterdataset, setup_grid_from_raster_reclass, setup_grid_from_geodataframe. PR #333
  • New grid workflow methods to support the setup methods in GridModel: grid_from_constant, grid_from_rasterdataset, grid_from_raster_reclass, grid_from_geodataframe.
    PR #333
  • New raster method rasterize_geometry.
  • New extreme valua analysis and design event (creation hydrographs) methods in stats submodule.
    Note that these methods are experimental and may be moved elsewhere / change in signature. PR #85

Changed

  • Arguments to drivers in data catalog files and the DataCatalog.get_ methods should now explicitly be called driver_kwargs instead of kwargs. PR #334
  • New geom_type argument in RasterDataArray.vector_grid to specify the geometry type {'polygon', 'line', 'points'} of the vector grid. PR #351
  • Added extrapolate option to raster.interpolate_na method. PR #348
  • Name of methods setup_maps_from_raster and setup_mesh_from_raster to setup_maps_from_rasterdataset and setup_mesh_from_rasterdataset. PR #333
  • Add rename argument to setup_*_from_rasterdataset, setup_*_from_raster_reclass to maps and mesh for consistency with grid. PR #333
  • Introduced different merge options in GeoDataset.from_gdf and GeoDataFrame.from_gdf. PR #441
  • DataCatalog.get_rasterdataset always uses bbox to clip raster data. PR #434
  • raster.clip_geom only set a geometry mask if the mask argument is true to avoid memory issues. PR #434
  • raster.clip_mask interface and behavior changed to be consistent with raster.clip_geom. PR #318

Fixed

  • Order of renaming variables in DataCatalog.get_rasterdataset for x,y dimensions. PR #324
  • fix bug in get_basin_geometry for region kind 'subbasin' if no stream or outlet option is specified.
  • fix use of Path objects in DataCatalog.from_dict. PR #429
  • raster.reproject_like first clips the data to the target extent before reprojecting. PR #434

v0.7.1

14 Apr 06:42
Compare
Choose a tag to compare

This release contains several small updates of the code.
Most prominently is the support for yml configuration files.

Full list of PRs (auto generated)

New Contributors

Full Changelog: v0.7.0...v0.7.1

v0.7.0

22 Feb 04:57
Compare
Choose a tag to compare

This release contains several major updates of the code. These following updates might require small changes to your code:

  • Most noticeable is the change in the hydromt build CLI, where made the region argument optional and deprecated the resolution option. Futhermore, the user has to force existing folders to be overwritten when building new models.
  • We also did a major overhaul of the GeoDataset and the associated .vector assessor to support any type of vector geometries (before only points).

More new features, including support for rotated grids, new cloud data catalogs and (caching of) tiled raster datasets and more details are listed below.

Changed

  • Removed resolution ('-r', '--res') from the hydromt build cli, made region (now '-r') an optional argument. PR #278
  • If the model root already contains files when setting root, this will cause an error unless force overwrite (mode='w+' or --fo/--force-overwrite from command line). PR #278
  • Revamped the GeoDataset (vector.py) to now work with geometry objects and wkt strings besides xy coordinates. PR #276
  • GeoDataset can write to .nc that is compliant with ogr. PR #208
  • Support for rotated grids in RasterDataset/Array, with new rotation and origin properties. PR #272
  • Removed pygeos as an optional dependency, hydromt now relies entirely on shapely 2.0 PR #258
  • Changed shapely to require version '2.0.0' or later. PR #228
  • strict and consistent read/write mode policy PR #238
  • do not automatically read hydromt_data.yml file in model root. PR #238
  • RasterDataset zarr driver: possiblility to read from several zarr stores. The datasets are then merged and preprocess can
    be applied similar to netcdf driver. PR #249

Added

  • New methods to compute PET in workflows.forcing.pet using Penman Monteith FAO-56 based on the pyet module. Available arguments are now method = ['debruin', 'makkink', 'penman-monteith_rh_simple', 'penman-monteith_tdew'] PR #266
  • New get_region method in cli/api.py that returns a geojson representation of the parsed region. PR #209
  • write raster (DataArray) to tiles in xyz stucture with the RasterDataArray.to_xyz_tiles method. PR #262
  • add zoom_level to DataCatalog.get_rasterdataset method. PR #262
  • new write_vrt function in gis_utils to write '.vrt' using GDAL. PR #262
  • new predefined catalog for cmip6 data stored on Google Cloud Storage cmip6_data. Requires dependency gcsfs. PR #250
  • new predefined catalog for public data stored on Amazon Web Services aws_data. Requires dependency s3fs. PR #250
  • new DataCatalog preprocess function harmonise_dims for manipulation and harmonisation of array dimensions. PR #250
  • experimental: support for remote data with a new yml data source filesystem attribute. Supported filesystems are [local, gcs, s3].
    Profile information can be passed in the data catalog kwargs under storage_options. PR #250
  • experimental: new caching option for tiled rasterdatasets ('--cache' from command line). PR #286

Fixed

  • bug related to opening named raster files. PR #262
  • All CRS objects are from pyproj library (instead of rasterio.crs submodule). PR #230
  • fix reading lists and none with config. PR #246
  • fix DataCatalog.to_yml and DataCatalog.export() with relative path and add meta section. PR #238

Deprecated

  • x_dim, y_dim, and total_bounds attributes of GeoDataset/GeoDataArray are renamed to x_name, y_name and bounds. PR #276
  • Move pygeos to optional dependencies in favor of shapely 2.0. PR #228
  • Resolution option in hydromt build cli. PR #278

Documentation

  • Added Working with GeoDatasets python notebook. PR #276
  • added working_with_models example notebook. PR #229
  • added export_data example notebook. PR #222
  • added reading_point_data example notebook. PR #216
  • added working_with_flow_directions example notebook. PR #231
  • added prep_data_catalog example notebook. PR #232
  • added reading_tabular_data example notebook. PR #216

Full list of PRs (auto generated):

New Contributors

  • @B-Dalmijn made their first contribution in #268

Full Changelog: v0.6.0...v0.7.0