Learn R Programming

bdrc - Bayesian Discharge Rating Curves

The bdrc package provides tools for fitting discharge rating curves using Bayesian hierarchical models. It implements both the classical power-law and the novel generalized power-law models, offering flexibility in handling various hydrological scenarios.

This package implements four models as described in Hrafnkelsson et al. (2022):

  • plm0() - Power-law model with constant log-error variance.

  • plm() - Power-law model with stage-dependent log-error variance.

  • gplm0() - Generalized power-law model with constant log-error variance.

  • gplm() - Generalized power-law model with stage-dependent log-error variance.

Installation

# Install release version from CRAN
install.packages("bdrc")
# Install development version from GitHub
devtools::install_github("sor16/bdrc")

Usage

Fitting a discharge rating curve with bdrc is straightforward:

library(bdrc)
data(krokfors)
gplm.fit <- gplm(Q ~ W, krokfors)
summary(gplm.fit)
plot(gplm.fit)

Key-features

  • Easy-to-use interface for fitting Bayesian discharge rating curves
  • Features the novel Generalized power-law rating curve model (Hrafnkelsson et al., 2022)
  • Multiple model options to suit different hydrological scenarios
  • Built-in visualization tools for model results and diagnostics
  • Integrates R and C++ for efficient MCMC sampling with parallel processing

Getting started

For a deeper dive into the package’s functionality, visualization options, and the underlying theory of the models, please check out our vignettes:

References

Hrafnkelsson, B., Sigurdarson, H., Rögnvaldsson, S., Jansson, A. Ö., Vias, R. D., and Gardarsson, S. M. (2022). Generalization of the power-law rating curve using hydrodynamic theory and Bayesian hierarchical modeling, Environmetrics, 33(2):e2711. doi: https://doi.org/10.1002/env.2711

Copy Link

Version

Install

install.packages('bdrc')

Monthly Downloads

242

Version

2.0.1

License

MIT + file LICENSE

Maintainer

Rafael Vias

Last Published

February 17th, 2026

Functions in bdrc (2.0.1)

plm

Power-law model with variance that varies with stage.
summary.tournament

Summary method for a discharge rating curve tournament
plot_fun

Plot bdrc model objects
skjalf

Skjalfandafljot gauging station in Iceland
print.tournament

Print method for discharge rating curve tournament
skogsliden

Skogsliden gauging station in Sweden
spanga

Spanga gauging station in Sweden
tournament

Tournament - Model comparison
theme_bdrc

Custom bdrc theme
tournament_summary_output

Internal function to generate a summary output for a discharge rating curve tournament
predict.plm0

Predict method for discharge rating curves
print.plm0

Print method for discharge rating curves
spread_draws

Spread MCMC chain draws to data.frame on a wide format
summary.plm0

Summary method for discharge rating curves
evaluate_comparison

Compare two models using a specified model-selection criteria
get_report_pages

Report pages for a discharge rating curve or tournament
autoplot.plm0

Autoplot method for discharge rating curves
get_report

Report for a discharge rating curve or tournament
autoplot.tournament

Autoplot method for discharge rating curve tournament
gather_draws

Gather MCMC chain draws to data.frame on a long format
gplm

Generalized power-law model with variance that varies with stage.
gplm0

Generalized power-law model with a constant variance
jokfjoll

Jokulsa a Fjollum gauging station in Iceland
jokdal

Jokulsa a Dal gauging station in Iceland
melby

Melby gauging station in Sweden
plot.tournament

Plot method for a discharge rating curve tournament
plm0

Power-law model with a constant variance
plot.plm0

Plot method for discharge rating curves
krokfors

Krokfors gauging station in Sweden
kallstorp

Kallstorp gauging station in Sweden
norn

Norn gauging station in Sweden
nordura

Nordura gauging station in Iceland