Introduction

The fuse modelling framework takes as input rainfall and potential evapotranspiration time series (areal averages over the river catchment area) and returns a simulated time series of river discharges. It can be used to understand the variability of expected hydrological responses based on model structures.

This package is an implementation of the framework for hydrological modelling FUSE described in Clark et al. (2008) and based on the Fortran code provided by M. Clark in 2011. The package consists of two modules: Soil Moisture Accounting module (fusesma.sim) and Gamma routing module (fuserouting.sim). It also contains default parameter ranges (fusesma.ranges and fuserouting.ranges) and three data objects: fuse_hydrological_timeseries (sample input dataset), parameters (sample parameters) and modlist (list of FUSE model structures).

Installation

You can install this package from Github with devtools:

devtools::install_github("cvitolo/fuse")

Load the fuse package:

Data and parameters

Load sample data (daily time step)

Define parameter ranges

Sample parameter set using Latin Hypercube method

Alternatively, sample parameter set using built-in function

Example usage with 1 model structure

Define the model to use, e.g. TOPMODEL (MID = 60)

Use the built-in function to run FUSE for the 1st sampled parameter set

streamflow <- fuse(fuse_hydrological_timeseries, myMID, myDELTIM, parameters[1,])

plot(streamflow, xlab = "", ylab = "Streamflow [mm/day]")

Run FUSE for all the sampled parameter sets

Ensemble modelling

Define a group of model structures to use

Run a multi-model calibration using the Nash-Sutcliffe efficiency as objective function

Compare results

How the best simulation of each model structure compare to each other?

Use fuse with hydromad

Hydromad is an excellent framework for hydrological modelling, optimization, sensitivity analysis and assessment of results. It contains a large set of soil moisture accounting modules and routing functions. Thanks to Joseph Guillaume (hydromad’s maintainer), fuse is now compatible with hydromad and below are some examples Joseph provided to use fuse within the hydromad environment.

With hydromad is also possible to perform a thorough model assessment using basic statistics as well as summary plots. There is also a wide set of tools for calibration and a suite of other utility functions. The reader should refer to the official website and documentation for more details.

Other packages and future developments

The fuse package could in future be submitted to CRAN and included in the Task View dedicated to Analysis of Ecological and Environmental Data (Envirometrics). This already includes a number of packages for hydrological modelling such as topmodel, dynatopmodel and wasim. These packages only implement a single model structures,while fuse would complement them providing a framework for ensemble modelling. Hydromad also implements ensemble modelling but it is not currently on CRAN.

A new version of the fuse Fortran code was recently released on GitHub. Fortran users are advised to refer to this latest version of fuse. This package is not an interface for the latest Fortran code but any contribution in this direction is welcome.