Recent Releases of hydrobricks

hydrobricks - v0.8.6

Added

  • Adding computation of ice thickness changes (observation-based delta-h).
  • Adding a check that the action has been initialized.
  • Checking that the model is initialized before adding actions.
  • Adding helpers to the Results class.

Changed

  • Refactoring the parameters definition (no impact for the users).
  • Moving examples to the root folder.
  • Converting stringly-typed identifiers to enums (no impact for the users).

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton 6 months ago

hydrobricks - v0.8.5

Added

  • Prevents lateral snow slide from causing unrealistic snow accumulation in target areas by limiting redistribution when the target snowpack already exceeds a threshold.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton 10 months ago

hydrobricks - v0.8.4

Added

  • Adding a snow to ice transformation process for glaciers following the SWAT model approach (Luo et al., 2013).
  • Adding a snow to ice transformation action that transforms all snow to ice at a given date (e.g., end of the melt season).

Fixed

  • Fixing an issue when glacier volume is increasing further than the initial volume in the glacier evolution methods.

Changed

  • In the connectivity calculation, the 'force_connectivity' option was changed to False by default due to potential issues in some cases (e.g., exchange back and forth).

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton 10 months ago

hydrobricks - v0.8.3

Fixed

  • Fixing an issue with the gradient-based interpolation for temperature and precipitation when spatializing from gridded data.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton 10 months ago

hydrobricks - v0.8.2

Breaking changes

  • The extraction of meteorological data from netCDF files (spatialize_from_gridded_data) has changed. The function now computes elevation gradients by default for temperature and precipitation. In order to access to the DEM, the class must be initialized with the catchment object (forcing = hb.Forcing(catchment)) instead of the hydro units object. This gradient-based interpolation can be disabled with apply_data_gradient=False.

Added

  • Adding a gradient-based interpolation for temperature and precipitation when spatializing from gridded data.
  • Making the SnowSlide parameters accessible.
  • Adding a parameter to the SnowSlide method to control the overall maximum snow depth.

Fixed

  • The actions were not correctly re-initialized when resetting the model. This is now fixed.
  • Improving land cover fraction checks in actions.
  • Fixing issue related to hydro unit ids when loading from csv file. The hydro units were not retrieved from the file, but assumed increasing, which is wrong when sorted by elevation.
  • Fixing hydro unit ids in land cover extraction.
  • Fixing index issues related to Pandas iterrows() usage.

Changed

  • Avoid snow redistribution to too small areas.
  • Capping the snow redistribution rate to 1000 mm of SWE.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton 10 months ago

hydrobricks - v0.8.1

Fixed

  • Adding trainer support for failing simulations.
  • Fixing precision issue in land cover fraction check.
  • Allow for floating-point imprecision in initial glacier extent.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton 10 months ago

hydrobricks - v0.8.1

Fixed

  • Adding trainer support for failing simulations.
  • Fixing precision issue in land cover fraction check.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton 10 months ago

hydrobricks - v0.8.0

Breaking changes

  • The minimum Python version is now 3.10.
  • Behaviours were renamed as Actions.
  • Changing logging labels for content to type-specific labels ("content" becomes "water_content", "ice" becomes "ice_content", "snow" becomes "snow_content").

Added

  • Adding the delta-h glacier evolution method (Huss et al., 2010) following Seibert et al. (2018) implementation of a look-up table.
  • Adding a simple glacier evolution method based on the glacier area and volume changes.
  • Adding lateral connections to hydro units in the C++ core.
  • Adding the SnowSlide method (Bernhardt & Schulz, 2010) for snow redistribution.
  • Adding a snow to ice transformation process (constant rate).
  • Adding an option to force the connectivity to neighbors when there is no downstream unit.
  • Adding setting an initial state to bricks.
  • Allow for sporadic and recursive actions (e.g. glacier area update).
  • Adding an option to load the hydro units from the catchment object.

Fixed

  • Fixing an issue with the dlls when installing the module in editable mode.
  • Completing documentation of the C++ code.
  • Adding type hints to Python function arguments.
  • Improving Python code readability.

Changed

  • Updating some example scripts.
  • Refactoring the catchment class to extract specific functionalities (no impact for the users).
  • Changing raster extraction for a more flexible approach.
  • Removing lateral connectivity with weight under 1%.
  • Rounding the lateral connectivity weight values.
  • Sorting hydro units by elevation to ensure a consistent order for snow redistribution.
  • Changing convention for member variables naming in C++.
  • Namespacing the global variables.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton 11 months ago

hydrobricks - v0.7.6

Added

  • A new function to compute the connectivity between hydrological units has been added.
  • New reference metrics have been added (bootstrapping approach).

Fixed

  • Fixing issues related to updated dependencies (dask, pyarrow, pysheds).
  • Fixing CI issues.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton over 1 year ago

hydrobricks - v0.7.5

Breaking changes

  • The 'isohypse' option has been renamed to 'equal_intervals' in the catchment discretization functions.

Added

  • Adding the option to discretize the catchment by slope intervals.

Changed

  • Using vcpkg for the C++ dependencies instead of conan. This allows building the package for Python >= 3.12.
  • The basic requirements are automatically installed when installing the package from PyPI.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton over 1 year ago

hydrobricks - v0.7.4

Fixed

  • Fixing wheels upload to PyPI.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton almost 2 years ago

hydrobricks - v0.7.3

Fixed

  • Fixing the package installation from PyPI.
  • Fixing issue between pybind11 and numpy 2.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton almost 2 years ago

hydrobricks - v0.7.3

Fixed

  • Fixing the package installation from PyPI.
  • Fixing issue between pybind11 and numpy 2.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton almost 2 years ago

hydrobricks - v0.7.2

Fixed

  • Fixing the computation of the potential radiation for the temperature index melt model.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton about 2 years ago

hydrobricks - v0.7.1

Added

  • Adding a function to compute the units connectivity.
  • Adding the cast shadow computation for the potential radiation.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton about 2 years ago

hydrobricks - v0.7.0

Added

  • Adding a new functionality to create a BehaviourLandCoverChange object from shapefiles of glacier extents.
  • Adding a function to compute potential clear-sky direct solar radiation as defined by Hock (1999).
  • Adding a temperature index melt model based on Hock (1999).
  • Adding the possibility to discretize the hydrological units based on the mean annual potential radiation used in Hock (1999).
  • Adding an aspect-related degree day factor.
  • Adding a reference prediction based on a bootstrapping approach of the observed discharge.
  • Adding the option to define a parameter shared by different processes (e.g., snow and ice melt).
  • Allow calibrating a single parameter set for multiple catchments.
  • Adding a Results class to simplify outputs analysis.
  • Adding maps plotting and spatio-temporal animations of the model outputs.
  • Handling yearly recurrent forcing with a 'day_of_year' approach.
  • Moving the model structure definition from C++ to Python.

Changed

  • Transitioning to a dictionary-based structure definition.
  • Moving the parameters generation out of the Socont class.
  • Moving the process parameters and forcing definitions to respective classes.
  • Changing workflow in load_from_csv.
  • Restructuring examples.
  • An error is raised if some parameter values are missing.
  • The parameter estimation and evaluation functions are restructured to a new trainer.py file.
  • Adding the date/time to the log file name.

Fixed

  • Socont quick discharge has been fixed... For real, this time.
  • Fixing the SpotpySetup initialization.
  • Fixing issue with hydro unit initialization in catchment discretization.
  • Fixing a bug that occurred when the study area outline comprised multiple polygons.
  • Adapting the FixLandCoverFractionsTotal() function to also work with cases where the hydro unit is fully glaciated at the beginning of the Behaviour time series.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton over 2 years ago

hydrobricks - v0.6.2

Breaking changes

  • The csv files defining the hydro units (e.g., elevation bands) properties have now to include the units of the values (e.g., m for elevation) below the column title.

Added

  • Adding the computation of the slope and aspect from the DEM.
  • Transferring slope and aspect values to the hydrological model (e.g., for Socont quick discharge using the unit slope).
  • Any hydro unit property can now be extracted from data and provided to the hydrological model (flexible generic approach).
  • Adding the computation of the mean latitude and longitude for each hydro unit and allow using it for the PET computation.
  • Adding an extraction of the forcing using a faster weighted approach.
  • Addition of an example script for the catchment data preparation.
  • Allow loading unit ids from raster.
  • Adding a hydro unit discretization by elevation and aspect (separately or combined; with an example script).

Changed

  • Refactoring catchment attributes parsing.
  • The csv files defining the hydro units (e.g., elevation bands) properties have now to include the units of the values (e.g., m for elevation) below the column title.

Fixed

  • Socont quick discharge has been fixed.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton over 2 years ago

hydrobricks - v0.6.1

Fixed

  • Fixing an issue with the data container shape when using the spatialization from gridded data.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton almost 3 years ago

hydrobricks - v0.6.0

Breaking changes

  • Many changes in the Forcing class:
    • load_from_csv() was renamed to load_station_data_from_csv().
    • define_spatialization() was renamed to spatialize_from_station_data() and is only meant for spatialization from station data.
    • correct_station_data() was added and is to be used for applying a correction factor, for example.
    • spatialize_from_gridded_data() was added to load data from gridded netCDF files.
    • compute_pet() was added and uses the pyet package.
    • The operations are not performed immediately, but only applied when apply_operations() is called, which is done automatically before the model run or before saving the forcing data to a netcdf file.
  • The Catchment class is now part of the main module.

Added

  • Adding the spatialization from gridded data with spatialize_from_gridded_data().
  • Adding PET computation using the pyet library. New function: compute_pet().
  • The forcing data can now be loaded from the dumped netCDF file with load_from().

Changed

  • Refactoring of the Forcing and TimeSeries classes to separate 1D and 2D data.
  • Enums are used to specify the Forcing variables.
  • The Catchment class is now part of the main module.
  • The Catchment class can generate a geotiff of the hydro unit ids with save_unit_ids_raster()

Fixed

  • Fixing issue in elevation bands creation.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton almost 3 years ago

hydrobricks - v0.5.0

Breaking changes

  • Removing hyphens for underscores. Any component (including land cover elements) have to use underscores and not hyphens (e.g., glacier_ice instead of glacier-ice, slow_reservoir instead of slow-reservoir)

Added

  • Adding aliases for all parameters.
  • Adding examples.
  • Adding Socont constraints.

Changed

  • Changing Socont default values.
  • Upgrading conan builds.
  • Upgrading C++ minimal version.
  • Upgrading to Pandas 2.0.

Fixed

  • Code improvements.
  • There were issues to build the wheel locally (in editable mode).

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton almost 3 years ago

hydrobricks - v0.4.11

Fixed

  • Fixing issue of behaviour dates not being correctly sorted.
  • Fixing issue with dates in land cover behaviours.

Added

  • Resetting the behaviour counters when resetting the model.
  • Adding land cover fractions to the logger output.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton over 3 years ago

hydrobricks - v0.4.10

Fixed

  • Fixing ground area compensation in land cover changes.
  • Fixing flux weighting when applying land cover changes.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton over 3 years ago

hydrobricks - v0.4.9

Fixed

  • Fixing issue with behaviours not triggering.

Added

  • Addition of functionalities for behaviours.
  • Remove empty changes in land cover changes behaviour.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton over 3 years ago

hydrobricks - v0.4.8

Fixed

  • Fixing precision issue with infinitesimal snow blocking ice melt.
  • Fixing issue with precipitation gradient approach with threshold.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton over 3 years ago

hydrobricks - v0.4.7

Added

  • Addition of forcing dumping from SPOTPY.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton over 3 years ago

hydrobricks - v0.4.6

Added

  • Addition of some parameter constraints to Socont.
  • Addition of a function to remove a constraint.
  • Addition of the constraints listing.

Fixed

  • Fixing dump path creation in SPOTPY.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton over 3 years ago

hydrobricks - v0.4.5

Changed

  • Check parameter constraints in SPOTPY and handle non-conforming cases.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton over 3 years ago

hydrobricks - v0.4.4

Changed

  • Improvement of the parameter constraints handling in SPOTPY.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton over 3 years ago

hydrobricks - v0.4.3

Changed

  • Allow using HydroErr metrics in SPOTPY.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton over 3 years ago

hydrobricks - v0.4.2

Changed

  • Adding an option to dump outputs from SPOTPY.
  • Homogenisation of parameter naming in the spatialization of forcings.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton over 3 years ago

hydrobricks - v0.4.1

Fixed

  • Fixing the warmup split when using SPOTPY.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton over 3 years ago

hydrobricks - v0.4.0

Added

  • Addition of a land cover evolution in time.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton over 3 years ago

hydrobricks - v0.3.1

Added

  • Addition of the check of the parameters constraints with SPOTPY.
  • Users can now define the prior distribution for SPOTPY to use.

Changed

  • Removing the old Monte Carlo implementation.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton over 3 years ago

hydrobricks - v0.3.0

Added

  • Integration with SPOTPY.

Changed

  • The selection of the parameters to calibrate is now handled by the ParameterSet class.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton over 3 years ago

hydrobricks - v0.2.0

Added

  • Addition of a catchment preprocessing module to build the elevation bands.

Fixed

  • Fixed issues with the water balance computation.

Changed

  • Some Python packages are made optional (e.g., netCDF4) and hydrobricks can be used without these.
  • The water balance of the Socont model is fully tested.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton over 3 years ago

hydrobricks - v0.1.4

Added

  • Addition of functions to extract the water balance components.
  • Addition of static content change rate (vs dynamic; e.g. for instantaneous fluxes).

Fixed

  • Fixed issues with fluxes and the water balance.

Changed

  • The parameter names are now using snake_case.
  • The fraction assignment has been moved to the model initialization (so it's not forgotten).

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton over 3 years ago

hydrobricks - v0.1.3

Added

  • Added checks to ensure that each container receiving water has a process attached.
  • Creation of specific water containers for snow and ice.

Fixed

  • Fixed issue related to processes resolved out of the solver.

Changed

  • New approach to surface bricks which are now separated into land use and surface components (e.g., snowpack).

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton over 3 years ago

hydrobricks - v0.1.2

Added

  • Adding state variables initialization.

Fixed

  • Reinitialize the state of the storages after a model run.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton over 3 years ago

hydrobricks - v0.1.1

Fixed

  • Fixed issue in the function to change the range of the parameter values.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton over 3 years ago

hydrobricks - v0.1.0

First official preliminary release.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton over 3 years ago

hydrobricks - v0.0.9

Incremental initial release.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton over 3 years ago

hydrobricks - v0.0.8

Iterative initial release.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton over 3 years ago

hydrobricks - v0.0.7

Incremental initial release.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton over 3 years ago

hydrobricks - v0.0.6

Incremental initial release.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton over 3 years ago

hydrobricks - v0.0.5

First unstable release.

Hydrosphere - Freshwater and Hydrology - C++
Published by pascalhorton over 3 years ago