R Resources for Hydrologists

A collection of R packages and other helpful R resources for hydrological sciences, which can be used for different stages of data analysis and modelling in hydrology.

Image credit: Slater et al. (2019)

There are a lot of resources available online for R users, so I tried to compile R resources for hydrologists that might be helpful for people working in the field of hydrological sciences. Here, you can find a number of R packages which can be used for different stages of data analysis and modelling in hydrology, and other useful R resources (tutorials, books, etc.) available online. If you are new to R and want to learn R, see this post for a collection of free R resources 📚 📁


R Packages for Hydrological Data and Modeling

Here you can find the information about packages broadly relevant to hydrological sciences. Packages are broadly grouped according to their function; however, many have functionality that spans multiple categories. There are also other existing resources that have related functions - for example, statistical analysis or spatial data processing. Most of the packages in this list was currated by Sam Zipper.

Data Retrieval

Hydrological data sources (surface water/groundwater quantity and quality)

  • dataRetrieval: Collection of functions to help retrieve U.S. Geological Survey (USGS) and U.S. Environmental Protection Agency (EPA) water quality and hydrology data from web services.

  • dbhydroR: Client for programmatic access to the South Florida Water Management District’s DBHYDRO database , with functions for accessing hydrologic and water quality data.

  • echor: An R interface to United States Environmental Protection Agency (EPA) Environmental Compliance History Online (‘ECHO’). Provides functions to locate facilities with discharge permits and download discharge records.

  • FedData: Functions to Automate Downloading Geospatial Data Available from Several Federated Data Sources.

  • hddtools: Hydrological Data Discovery Tools. Facilitates discovery and handling of hydrological data, access to catalogues and databases.

  • hydrolinks: Tools to link geographic data with hydrologic network, including lakes, streams and rivers. Includes automated download of U.S. National Hydrography Network and other hydrolayers.

  • hydroscoper: R interface to the Greek National Data Bank for Hydrological and Meteorological Information. It covers Hydroscope’s data sources and provides functions to transliterate, translate and download them into tidy dataframes (tibbles).

  • kiwisR: Wrapper for retrieving data from KISTERS WISKI databases via the KiWIS API.

  • AWAPer: AWAPer allows efficient extraction of daily catchment average precipitation, Tmin, Tmax, vapour pressure, solar radiation and then estimation of areal potential evaporation (Morton’s) for anywhere in Australia. Spatial measures are also derived (eg spatial daily variance). For technical details see Peterson et al. (2019).

  • nhdR: Tools for working with the National Hydrography Dataset, with functions for querying, downloading, and networking both the NHD and NHDPlus datasets.

  • rnrfa: Utility functions to retrieve data from the UK National River Flow Archive . There are functions to retrieve stations falling in a bounding box, to generate a map and extracting time series and general information.

  • tidyhydat: Provides functions to access historical and real-time national ‘hydrometric’ data from Water Survey of Canada data sources ( http://dd.weather.gc.ca/hydrometric/csv/ and http://collaboration.cmc.ec.gc.ca/cmc/hydrometrics/www/ ) and then applies tidy data principles.

  • washdata: Urban water and sanitation survey dataset from survey conducted in Dhaka, Bangladesh, part of a series of surveys to be conducted in various cities including Accra, Ghana; Nakuru, Kenya; Antananarivo, Madagascar; Maputo, Mozambique; and, Lusaka, Zambia.

  • waterData: Imports U.S. Geological Survey (USGS) daily hydrologic data from USGS web services , plots the data, addresses some common data problems, and calculates and plots anomalies.

Meteorological data (precipitation, radiation, temperature, etc - including both measurements and reanalysis)

  • bomrang: Provides functions to interface with Australian Government Bureau of Meteorology (BOM) data, fetching data and returning a tidy data frame of précis forecasts, historical and current weather data from stations, agriculture bulletin data, BOM 0900 or 1500 weather bulletins or a raster stack object of satellite imagery from GeoTIFF files.

  • climate: Automatize downloading of meteorological and hydrological data from publicly available repositories: OGIMET, University of Wyoming - atmospheric vertical profiling data, and Polish Institute of Meterology and Water Management - National Research Institute. T

  • clifro: A web portal to the New Zealand National Climate Database of around 6,500 climate stations. See https://cliflo.niwa.co.nz/ for more information.

  • countyweather: Interacts with NOAA data sources (including the NCDC API and ISD data) using functions from the ‘rnoaa’ package to obtain and compile weather time series for U.S. counties.

  • getMet: Functions for sourcing, formatting, and editing meteorological data for hydrologic models.

  • GSODR: Provides automated downloading, parsing, cleaning, unit conversion and formatting of Global Surface Summary of the Day (GSOD) weather data from the from the USA National Centers for Environmental Information (NCEI) for use in R.

  • MODISTools: Programmatic Interface to the MODIS Land Products Subsets Web Services . Allows for easy downloads of ‘MODIS’ time series.

  • nasapower: Client for NASA’s Prediction of Worldwide Energy Resource (POWER) project data API Web Services . Data available include daily meteorology, interannual and 30 year climatology. Functionality for specifying geolocation and downloading data, which have global coverage at 1/2 by 1/2 arc-degree gridded resolution from 1983 to near-current are provided. Over 140 different parameters are offered including temperature (max/min/mean/dew), relative humidity, precipitation, wind speed and more.

  • rdwd: Handle climate data from the German DWD ( ‘Deutscher Wetterdienst’ ).

  • RNCEP: Contains functions to retrieve, organize, and visualize weather data from the NCEP/NCAR Reanalysis and NCEP/DOE Reanalysis II datasets.

  • rnoaa: Client for many NOAA data sources including the NCDC climate API , with functions for each of the API endpoints: data, data categories, data sets, data types, locations, location categories, and stations. Includes interface NOAA sea ice data, severe weather inventory, Historical Observing Metadata Repository (‘HOMR’), storm data via ‘IBTrACS’, tornado data via the NOAA storm prediction center, and more.

  • rpdo: Get Monthly Pacific Decadal Oscillation (PDO) index values from January 1900 to present. See also rsoi for downloading Southern Oscillation Index, Oceanic Nino Index and North Pacific Gyre Oscillation data.

  • rwunderground: Tools for getting historical weather information and forecasts from wunderground.com. Historical weather and forecast data includes, but is not limited to, temperature, humidity, windchill, wind speed, dew point, heat index. Additionally, the weather underground weather API also includes information on sunrise/sunset, tidal conditions, satellite/webcam imagery, weather alerts, hurricane alerts and historical high/low temperatures.

  • smapr: Acquisition and Processing of NASA Soil Moisture Active-Passive (SMAP) Data. Facilitates programmatic access to search for, acquire, and extract NASA Soil Moisture Active Passive (SMAP) data.

  • stationaRy: Acquire hourly meteorological data from stations located all over the world. The available data is automatically downloaded from a data repository and processed into a ‘tibble’ for the exact range of years requested.

  • weathercan: Provides means for downloading historical weather data from the Environment and Climate Change Canada website . Data can be downloaded from multiple stations and over large date ranges and automatically processed into a single dataset. Tools are also provided to identify stations either by name or proximity to a location.

  • worldmet: Functions to import data from more than 30,000 surface meteorological sites around the world managed by the National Oceanic and Atmospheric Administration (NOAA) Integrated Surface Database (ISD) .

Data Analysis

Data tidying (gap-filling, data organization, QA/QC, etc)

  • driftR: A tidy implementation of equations that correct for instrumental drift in continuous water quality monitoring data using one or two standard reference values. The equations implemented are from Hasenmueller (2011) .

  • climdex.pcic: PCIC Implementation of Climdex Routines PCIC’s implementation of Climdex routines for computation of extreme climate indices.

  • climatol: Functions for the quality control, homogenization and missing data infilling of climatological series and to obtain climatological summaries and grids from the results. Also functions to draw wind-roses and Walter&Lieth climate diagrams.

  • getMet: Functions for sourcing, formatting, and editing meteorological data for hydrologic models.

Hydrograph analysis (functions for working with streamflow data, e.g. flow statistics, trends, biological indices, etc.)

  • baseflow: Computes hydrograph separation using the conceptual automated process from Pelletier and Andreassian (2019).

  • biotic: Calculates a range of UK freshwater invertebrate biotic indices including BMWP, Whalley, WHPT, Habitat-specific BMWP, AWIC, LIFE and PSI.

  • EcoHydRology: This package provides a flexible foundation for scientists, engineers, and policy makers to base teaching exercises as well as for more applied use to model complex eco-hydrological interactions, including some SWAT calibration functions.

  • ecoval: Functions for evaluating and visualizing ecological assessment procedures for surface waters containing physical, chemical and biological assessments in the form of value functions.

  • EflowStats: Calculates a suite of ecological flow statistics and fundamental properties of daily streamflow for a given set of data. GitHub only package.

  • EGRET: Exploration and Graphics for RivEr Trends (EGRET): analysis of long-term changes in water quality and streamflow, including the water-quality method Weighted Regressions on Time, Discharge, and Season (WRTDS).

  • EGRETci: A bootstrap method for estimating uncertainty of water quality trends.

  • FAdist: Probability distributions that are sometimes useful in hydrology.

  • fasstr Functions to tidy, summarize, analyze, trend, and visualize streamflow data. This package summarizes continuous daily mean streamflow data into various daily, monthly, annual, and long-term statistics, completes annual trends and frequency analyses, in both table and plot formats.

  • FlowScreen: Screens daily streamflow time series for temporal trends and change-points. This package has been primarily developed for assessing the quality of daily streamflow time series. It also contains tools for plotting and calculating many different streamflow metrics.

  • hydrostats: Calculates a suite of hydrologic indices for daily time series data that are widely used in hydrology and stream ecology.

  • hydroTSM: Functions for management, analysis, interpolation and plotting of time series used in hydrology and related environmental sciences. In particular, this package is highly oriented to hydrological modelling tasks.

  • lfstat: Functions to compute and plot statistics described in the “Manual on Low-flow Estimation and Prediction”, published by the World Meteorological Organisation (WMO).

Meteorology (functions for working with meteorological and climate data)

  • Evapotranspiration: Functions to calculate potential evapotranspiration (PET) and actual evapotranspiration (AET) from 21 different formulations including Penman, Penman-Monteith FAO 56, Priestley-Taylor and Morton models.

  • humidity: Functions for calculating saturation vapor pressure (hPa), partial water vapor pressure (Pa), relative humidity (%), absolute humidity (kg/m^3), specific humidity (kg/kg), and mixing ratio (kg/kg) from temperature (K) and dew point (K). Conversion functions between humidity measures are also provided.

  • MBC: Multivariate Bias Correction of Climate Model Outputs. Calibrate and apply multivariate bias correction algorithms for climate model simulations of multiple climate variables.

  • meteoland: Functions to estimate weather variables at any position of a landscape.

  • musica: Multiscale Climate Model Assessment. Provides function to compare and analyse time series.

  • openair: Tools to analyse, interpret and understand air pollution data. Many functions can also be applied to other data, including meteorological and traffic data.

  • qmap: Empirical adjustment of the distribution of variables originating from (regional) climate model simulations using quantile mapping.

  • Rainmaker: Instantaneous rainfall data processing for defining event periods, determination of antecedent rainfall conditions and X-hr intensities. GitHub only package.


  • berryFunctions: Draw horizontal histograms, color scattered points by 3rd dimension, enhance date- and log-axis plots, zoom in X11 graphics, trace errors and warnings, use the unit hydrograph in a linear storage cascade, convert lists to data.frames and arrays, fit multiple functions.

  • dssrip: rJava wrapper to HEC-DSSVue to read hydrologic timeseries from HEC-DSS files. Github and Windows only package, due to dependency on HEC-DSS libraries.

  • GWSDAT: Shiny application for the analysis of groundwater monitoring data, designed to work with simple time-series data for solute concentration and ground water elevation, but can also plot non-aqueous phase liquid (NAPL) thickness if required.

  • hydrogeo: Contains one function for drawing Piper diagrams (also called Piper-Hill diagrams) of water analyses for major ions.

  • kitagawa: Provides tools to calculate the theoretical hydrodynamic response of an aquifer undergoing harmonic straining or pressurization. There are two classes of models here: (1) for sealed wells, based on the model of Kitagawa et al (2011), and (2) for open wells, based on the models of Cooper et al (1965), Hsieh et al (1987), Rojstaczer (1988), and Liu et al (1989).

  • MBSStools: Suite of tools for data manipulation and calculations for Maryland DNR MBSS program. GitHub only package.

  • MODIStsp: Suite of tools to automate the Download and Preprocessing of MODIS Land Products Data. Allows automating the creation of time series of rasters derived from MODIS Satellite Land Products data. It performs several typical preprocessing steps such as download, mosaicking, reprojection and resize of data acquired on a specified time period.

  • lulcc: Classes and methods for spatially explicit land use change modelling.

  • wql: Functions to assist in the processing and exploration of data from environmental monitoring programs. Intended for programs that sample approximately monthly, quarterly or annually at discrete stations, a feature of many legacy data sets. Most of the functions should be useful for analysis of similar-frequency time series regardless of the subject matter.

  • WRTDStidal: An adaptation for estuaries (tidal waters) of weighted regression on time, discharge, and season to evaluate trends in water quality time series.

Spatial data processing

The CRAN Spatial Task View gives an overview of packages to be used in R to read, visualise, and analyse spatial data. See also the ROpenSci MapTools Listing .

  • hydrolinks: Tools to link geographic data with hydrologic network, including lakes, streams and rivers. Includes automated download of U.S. National Hydrography Network and other hydrolayers.

  • lumpR: Functions for a semi-automated approach of the delineation and description of landscape units and partition into terrain components. It can be used for the pre-processing of semi-distributed large-scale hydrological and erosion models using catena-representation (WASA-SED, CATFLOW). GitHub only package.

  • lakemorpho: Lake morphometry metrics are used by limnologists to understand, among other things, the ecological processes in a lake. The ‘lakemorpho’ package provides the tools to calculate a typical suite of these metrics from an input elevation model and lake polygon.

  • nhdR: Tools for working with the National Hydrography Dataset, with functions for querying, downloading, and networking both the NHD and NHDPlus datasets.

  • somspace: somspace is an R package for spatial classification of time series. somspace provides the tools to generate meaningful representations that capture the main spatial patterns of the analyzed time series.

  • Watersheds: Methods for watersheds aggregation and spatial drainage network analysis.


Process-based modeling (scripts for preparing inputs/outputs and running process-based models)

  • airGR: Hydrological modelling tools developed at Irstea-Antony (HYCAR Research Unit, France). The package includes several conceptual rainfall-runoff models (GR4H, GR4J, GR5J, GR6J, GR2M, GR1A), a snow accumulation and melt model (CemaNeige) and the associated functions for their calibration and evaluation.

  • airGRteaching: Add-on package to the ‘airGR’ package that simplifies its use and is aimed at being used for teaching hydrology.

  • bigleaf: Calculation of physical (e.g. aerodynamic conductance, surface temperature), and physiological (e.g. canopy conductance, water-use efficiency) ecosystem properties from eddy covariance data and accompanying meteorological measurements. Calculations assume the land surface to behave like a ‘big-leaf’ and return bulk ecosystem/canopy variables.

  • boussinesq: Collection of functions for the One-Dimensional Boussinesq Equation (ground-water).

  • brook90r and Brook90_R: to different packages to run the 1D-SVAT model LWF-BROOK90. GitHub only package.

  • dynatopmodel: Implementation and enhancement of the Dynamic TOPMODEL semi-distributed hydrological model. Includes some preprocessing, utility and routines for displaying outputs. See also topmodel.

  • Ecohydmod: Simulates the soil water balance (soil moisture, evapotranspiration, leakage and runoff), rainfall series by using the marked Poisson process and the vegetation growth through the normalized difference vegetation index (NDVI). See Souza et al. (2016) .

  • EcoHydRology: Flexible foundation for scientists, engineers, and policy makers to base teaching exercises as well as for more applied use to model complex eco-hydrological interactions, including some SWAT calibration functions.

  • geotopbricks: An R Plug-in for the Distributed Hydrological Model GEOtop . The package analyzes raster maps and other information as input/output files from the Hydrological Distributed Model GEOtop.

  • hydromad: Hydrological Model Assessment and Development - website . GitHub only package.

  • hydroPSO: Particle Swarm Optimisation (PSO) algorithm for the calibration of environmental and other real-world models that need to be executed from the system console. hydroPSO is model-independent, allowing the user to easily interface any computer simulation model with the PSO calibration engine.

  • kwb.hantush: Calculation groundwater mounding beneath an infiltration basin based on the Hantush (1967) equation. The correct implementation is shown with a verification example based on a USGS report ( page 25 ).

  • loadflex: Models and Tools for Watershed Flux Estimates. See paper . GitHub only package.

  • reservoir: Tools for Analysis, Design, and Operation of Water Supply Storages. Measure single-storage water supply system performance using resilience, reliability, and vulnerability metrics; assess storage-yield-reliability relationships; determine no-fail storage with sequent peak analysis; optimize release decisions for water supply, hydropower, and multi-objective reservoirs using deterministic and stochastic dynamic programming; generate inflow replicates using parametric and non-parametric models; evaluate inflow persistence using the Hurst coefficient.

  • RHMS: Hydrologic modelling system is an object oriented tool which enables R users to simulate and analyze hydrologic events. The package proposes functions and methods for construction, simulation, visualization, and calibration of hydrologic systems.

  • RSAlgaeR: Builds Empirical Remote Sensing Models of Water Quality Variables and Analyzes Long-Term Trends. Assists in processing reflectance data, developing empirical models using stepwise regression and a generalized linear modeling approach, cross- validation, and analysis of trends in water quality conditions (specifically chl-a) and climate conditions using the Theil-Sen estimator.

  • streamDepletr: Analytical depletion functions used to calculate the impacts of groundwater pumping on one or more streams.

  • streamMetabolizer: Estimate aquatic photosynthesis and respiration (collectively, metabolism) from time series data on dissolved oxygen, water temperature, depth, and light via inverse modeling. The package assists with data preparation, handles data gaps during modeling, and provides tabular and graphical reports of model outputs. GitHub only package.

  • SWATmodel: The Soil and Water Assessment Tool (SWAT) is a river basin or watershed scale model developed by Dr. Jeff Arnold for the USDA-ARS.

  • swmmr: Functions to connect the widely used Storm Water Management Model (SWMM) of the United States Environmental Protection Agency (US EPA) to R.

  • topmodel: Set of hydrological functions including the hydrological model TOPMODEL, which is based on the 1995 FORTRAN version by Keith Beven. From version 0.7.0, the package is put into maintenance mode. See also dynatopmodel.

  • TUWmodel: Lumped Hydrological Model for Education Purposes: a lumped conceptual rainfall-runoff model, following the structure of the HBV model. The model runs on a daily or shorter time step and consists of a snow routine, a soil moisture routine and a flow routing routine.

  • VICmodel: Implementation of the Variable Infiltration Capacity (VIC) model, a macroscale hydrologic model that solves full water and energy balances, originally developed by Xu Liang at the University of Washington (UW)

  • wasim: Helpful tools for data processing and visualisation of results of the hydrological model WASIM-ETH.

  • water: Tools and functions to calculate actual Evapotranspiration using surface energy balance models.

  • WRSS: Water resources system simulator is a tool for simulation and analysis of large-scale water resources systems. ‘WRSS’ proposes functions and methods for construction, simulation and analysis of primary water resources features (e.g. reservoirs, aquifers, and etc.) based on Standard Operating Policy (SOP).

Statistical modeling (hydrology-related statistical models)

The Environmetrics Task View gives an overview of packages used in the analysis of environmental data, encompassing hydrological data, including many statistical approaches used in the ecological sciences. Additionally, packages that help model datasets with extreme values are discussed in the ExtremeValue Task View.

  • CityWaterBalance: Retrieves data and estimates unmeasured flows of water through the urban network. Any city may be modeled with preassembled data, but data for US cities can be gathered via web services using this package and dependencies geoknife and dataRetrieval.

  • CoSMoS: is an implementation of Papalexiou 2018. CoSMoS makes time series generation with desired properties extremely easy. The generated time series preserve any probability distribution and any linear autocorrelation structure. Users can generate as many and as long time series from processes such as precipitation, wind, temperature, relative humidity etc.

  • dream: DiffeRential Evolution Adaptive Metropolis (DREAM). Efficient global MCMC even in high-dimensional spaces. R-Forge only package.

  • fuse: An R package implementing the Framework for Understanding Structural Errors cvitolo.github.io/fuse/ . GitHub only package.

  • hydroApps: Package providing tools for hydrological applications and models developed for regional analysis in Northwestern Italy focused on Flood Frequency Analysis.

  • hydroGOF: S3 functions implementing both statistical and graphical goodness-of-fit measures between observed and simulated values, mainly oriented to be used during the calibration, validation, and application of hydrological models.

  • HydroMe: Estimates the parameters in infiltration and water retention models by curve-fitting method. The models considered are those that are commonly used in soil science.

  • hyfo: Focuses on data processing and visualization in hydrology and climate forecasting. Main function includes data extraction, data downscaling, data resampling, gap filler of precipitation, bias correction of forecasting data, flexible time series plot, and spatial map generation. It is a good pre- processing and post-processing tool for hydrological and hydraulic modellers.

  • IDF: Functions to read precipitation data from German weather service (DWD) files and Berlin station data from and additionally Intensity-duration-frequency (IDF) parameters can be estimated from a given data.frame containing a precipitation time series. IDF parameters are estimated on the basis of a duration-dependent generalised extreme value distribution and IDF curves based on these estimated parameters can be plotted.

  • NEON-stream-discharge: NEON Stage-Discharge Rating Curve. Instructions to set up a docker container which calculates the stage-discharge rating curve for a site and water year, developed using a Bayesian modeling technique. GitHub only package.

  • LPM: Apply Univariate Long Memory Models, Apply Multivariate Short Memory Models To Hydrological Dataset, Estimate Intensity Duration Frequency curve to rainfall series.

  • meteo: Spatio-temporal geostatistical mapping of meteorological data.

  • nsRFA: A collection of statistical tools for objective (non-supervised) applications of the Regional Frequency Analysis methods in hydrology.

  • RMAWGEN: Functions for spatial multi-site stochastic generation of daily time series of temperature and precipitation.

  • rtop: Interpolation of Data with Variable Spatial Support Geostatistical interpolation of data with irregular spatial support such as runoff related data or data from administrative units.

  • SCI: Functions for generating Standardized Climate Indices (SCI). SCI is a transformation of (smoothed) climate (or environmental) time series that removes seasonality and forces the data to take values of the standard normal distribution. SCI was originally developed for precipitation. In this case it is known as the Standardized Precipitation Index (SPI).

  • soilwater: Implements parametric formulas of soil water retention or conductivity curve. At the moment, only Van Genuchten (for soil water retention curve) and Mualem (for hydraulic conductivity) were implemented.

  • SPEI: A set of functions for computing potential evapotranspiration and several widely used drought indices including the Standardized Precipitation-Evapotranspiration Index (SPEI).

Spatial Analysis

  • R Packages related to spatial analysis

  • Jamie Afflerbach’s Spatial Analysis in R tutorials and repo

  • Matt Strimas-Mackey’s blog for hands-on examples using new rspatial packages (e.g., sf and smoothr)

  • Jesse Sadler’s blog for applications of sf and sp

  • Edward Rubin’s materials on  Spatial Data in R from UC Berkeley’s ARE 212 course

  • Can geographic data save the world? by Robin Lovelace

  • Maps in R from the National Socio-Environmental Synthesis Center


  • Vignettes for the sf package (link)

  • Vignette for elevatr package by Jeff Hollister (link)

  • Vignettes for the tidycensus package (link)

  • USGS introduction to R tutorials (link)

  • USGS R package use tutorials (link)

  • USGS R package development tutorial (link)

  • USGS other R training (link)

  • USGS dataRetrieval tutorial (link)

  • SESYNC R tutorials (link)

  • Software Carpentry introduction to R tutorial (link)

  • NEON R tutorials (link)

  • Introduction to GIS in R free online course


  • GIS in R Workshop at Society for 2018 Freshwater Science Conference by R. Hill & M. Beck (link)

  • sf package tutorial with USGS GAGES-II data for NC State BAE 590 Class by S. Saia (link)




  • Using R in hydrology: a review of recent developments and future directions by Slater et al. in review at HESS (link)
Javed Ali
Doctoral Researcher

My research interests include multi-hazards risk assessment and analyzing compound climate/weather extreme events and their spatio-temporal interactions and socioeconomic impacts.

comments powered by Disqus