A collection of utilities that support creation of network attributes for hydrologic networks. Methods and algorithms implemented are documented in Moore et al. (2019) <doi:10.3133/ofr20191096>), Cormen and Leiserson (2022) <ISBN:9780262046305> and Verdin and Verdin (1999) <doi:10.1016/S0022-1694(99)00011-6>.

State-of-the-art Multi-Objective Particle Swarm Optimiser (MOPSO), based on the algorithm developed by Lin et al. (2018) <doi:10.1109/TEVC.2016.2631279> with improvements described by Marinao-Rivas & Zambrano-Bigiarini (2020) <doi:10.1109/LA-CCI48322.2021.9769844>. This package is inspired by and closely follows the philosophy of the single objective 'hydroPSO' R package ((Zambrano-Bigiarini & Rojas, 2013) <doi:10.1016/j.envsoft.2013.01.004>), and can be used for global optimisation of non-smooth and non-linear R functions and R-base models (e.g., 'TUWmodel', 'GR4J', 'GR6J'). However, the main focus of 'hydroMOPSO' is optimising environmental and other real-world models that need to be run from the system console (e.g., 'SWAT+'). 'hydroMOPSO' communicates with the model to be optimised through its input and output files, without requiring modifying its source code. Thanks to its flexible design and the availability of several fine-tuning options, 'hydroMOPSO' can tackle a wide range of multi-objective optimisation problems (e.g., multi-objective functions, multiple model variables, multiple periods). Finally, 'hydroMOPSO' is designed to run on multi-core machines or network clusters, to alleviate the computational burden of complex models with long execution time.

An important environmental impact on running water ecosystems 
    is caused by hydropeaking - the discontinuous release of turbine water 
    because of peaks of energy demand. An event-based algorithm is implemented 
    to detect flow fluctuations referring to increase events (IC) and decrease 
    events (DC). For each event, a set of parameters related to the fluctuation 
    intensity is calculated. The framework is introduced in Greimel et al. (2016) 
    "A method to detect and characterize sub-daily flow fluctuations" 
    <doi:10.1002/hyp.10773> and can be used to identify different fluctuation 
    types according to the potential source: e.g., sub-daily flow fluctuations 
    caused by hydropeaking, rainfall, or snow and glacier melt.
    This is a companion to the package 'hydroroute', which is used to detect and 
    follow hydropower plant-specific hydropeaking waves at the sub-catchment 
    scale and to describe how hydropeaking flow parameters change along the
    longitudinal flow path as proposed and validated in Greimel et al. (2022).