/rdwd

download climate data from DWD (German Weather Service)

Primary LanguageR

rdwd

rdwd is an R package to select, download and read climate data from the German Weather Service (Deutscher Wetterdienst, DWD).
The DWD provides thousands of datasets with weather observations online at opendata.dwd.de.
Since May 2019, rdwd also supports reading the Radolan (binary) raster data at grids_germany.

rdwd is available on CRAN: CRAN_Status_Badge downloads Rdoc "rdwd dependencies"

It has been presented at FOSDEM 2017 and UseR!2017 in Brussels and with a 5 Minute video at e-Rum2020, featured in Rstudio's data package list, written about in OSOR and used e.g. for NDR: Starkregen im Norden. Development of rdwd was triggered 2016 by flash flood research in Braunsbach (1, 2, 3, 4).

- HELP NEEDED
- with the new 5-minute data (April 2022), the fileIndex etc are getting very big.
- ideas on package size reduction are welcome at  https://github.com/brry/rdwd/issues/35

Documentation

A website with more information, examples, use cases and an interactive map of the DWD stations can be found at https://bookdown.org/brry/rdwd

Usage

Usage for observational weather data from the measuring stations usually looks something like the following:

# Download and install (once only):
install.packages("rdwd")
# Load the package into library (needed in every R session):
library(rdwd)

# select a dataset (e.g. last year's daily climate data from Potsdam city):
link <- selectDWD("Potsdam", res="daily", var="kl", per="recent")

# Actually download that dataset, returning the local storage file name:
file <- dataDWD(link, read=FALSE)
# Read the file from the zip folder:
clim <- readDWD(file, varnames=TRUE) # can happen directly in dataDWD

# Inspect the data.frame:
str(clim)
# Quick time series graphic:
plotDWD(clim, "FM.Windgeschwindigkeit")

For data interpolated onto a 1 km raster, including radar data up to the last hour, see the corresponding chapter on the website.

App

Since April 2023, there is an interactive app to compare weather periods:

With rdwd::app(), you can run this locally with cached data, i.e. faster responses.

New to R

If you're new to R, these links might help you to get started:

back to rdwd:

Installation

Normal

install.packages("rdwd")

Latest version

rdwd::updateRdwd()
# checks version and (if needed) calls  remotes::install_github("brry/rdwd", build_vignettes=TRUE)

Full

Suggested (not mandatory) dependencies:

install.packages("rdwd", dependencies="Suggests") 
  • RCurl for indexFTP and selectDWD(..., current=TRUE)
  • data.table, bit64 for readDWD(..., fread=TRUE)
  • terra, stars, R.utils, ncdf4, dwdradar for readDWD with gridded data
  • readr for readDWD.stand(..., fast=TRUE)
  • knitr, rmarkdown, testthat, roxygen2, devtools, remotes, XML, gsheet for local testing, development and documentation
  • leaflet, OSMscale for interactive/static maps, see OSMscale installation tips
  • shiny for the interactive weather comparison app

Note: on Linux (Ubuntu), install RCurl via the terminal (CTRL+ALT+T, note lowercase rcurl):

sudo apt install r-cran-rcurl