Releases: Critical-Infrastructure-Systems-Lab/VICRes
v2.0
This version introduces new features and significant improvements, building on previous releases to enhance model flexibility and usability.
Updates and New Features
1. Enhanced Reservoir Routing Scheme
- A cascading routing scheme has been implemented in VICRes, replacing the previous direct routing approach. Instead of using a unit hydrograph to route flow directly from grid cells to the outlet, flow is now routed through intermediate reservoirs or gauges before reaching the outlet. This enables a more modular and realistic representation of river networks.
- New Fortran Subroutines:
SUBROUTINE FIND_RESIJ(...): Locates grid coordinates (I, J) for a given reservoir IDSUBROUTINE MAKE_RESERVOIR_UH(...): Creates a unit hydrograph from a reservoir to another reservoir or station
2. Refactored Auto-Calibration Wrapper
- This release refactors the Python-based automatic calibration wrapper and introduces two calibration strategies, both implemented using multi-objective evolutionary algorithms.
- Calibration Strategies:
- Basin-wide Calibration (
basin_calibration_eNSGAII.py): Calibrates parameters by evaluating average performance metrics across the entire basin. - Zone-specific Calibration (
zone_calibration_eNSGAII.py): Divides the basin into zones (or sub-basins) and performs calibration sequentially from upstream to downstream. Instead of evaluating average performance metrics across the entire basin, the optimization problem is formulated and solved independently for each zone. Optimized parameters from upstream zones are passed downstream, allowing the calibration to capture spatial variability and better reflect local hydrologic conditions.
- Basin-wide Calibration (
3. Save Naturalized Flow Upstream of Stations
- The routing model has been updated to save the naturalized flow generated by the
MAKE_CONVOLUTIONsubroutine. This enables users to skip recalculating naturalized flow in future runs by reading it from previously saved outputs located in therouting/parameters/naturalized_flow/folder. - The feature can be activated by setting
NATURALIZED FLOWtoTRUEin therouting/parameters/configuration.txtfile. When enabled, the model uses the stored naturalized flow and performs only the reservoir routing, significantly reducing computational time. - This functionality is particularly beneficial when running multiple experiments under varying reservoir operation scenarios. Note that the saved naturalized flow must be generated for the same simulation period as the current run to ensure compatibility.
4. Environmental Flow and Hydropower Status Options
- Two new options have been added to the reservoir parameter file:
- Environmental Flow: Define the required environmental flow as a percentage of the maximum reservoir release.
- Hydropower Generator Status: Toggle the hydropower generator on (1) or off (0).
5. Bug Fixes
- Resolved issues affecting step-by-step execution functionality.
- Fixed errors in the reservoir model when using operation strategy 4 or 6.
6. Improved Folder Organization
- Reorganized the project folder structure to enhance codebase readability and maintainability.
- Grouped related scripts and parameter files into clearly defined directories.
v1.1
This release introduces updates to enhance functionality and usability.
Updates:
1. Bathymetry Parameter:
- Added bathymetry parameters in the reservoir parameter file.
- Improved representation of reservoir bathymetry using detailed hypsometric curves that relate area, storage, and elevation.
2. Step-By-Step Option:
- Introduced the ability to run the model in step-by-step mode, which enables coupling VIC-Res with external models (e.g., sediment transport or power system models). The model can run one step at a time, exchange outputs (e.g., hydropower or streamflow) with external models, and then progress to the next time step while maintaining state information.
v1.0
This is the first version released on GitHub, developed based on the foundational work in the following papers by Dang et al. (2020):
- Dang, T.D., Chowdhury, A.F.M.K., Galelli, S. (2020): On the representation of water reservoir storage and operations in large-scale hydrological models: implications on model parameterization and climate change impact assessments. Hydrology and Earth System Sciences, 24, 397–416.
- Dang, T.D., Vu, T.D., Chowdhury, K., Galelli, S. (2020): A software package for the representation and optimization of water reservoir operations in the VIC hydrologic model. Environmental Modelling & Software, 126, 104673.
Updates
• 01 Jun 2024: Nested station loop inside the time loop to compute flow values for each station day by day.
• 28 Dec 2020: Fixed a bug related to dead storage and added functionality to account for water withdrawal due to irrigation activities.
• 17 May 2020: Introduced multicalieNSGAII.py for multi-site calibration.