Learn R Programming

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:

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")
# update to the most recent fileIndex (ca monthly):
rdwd::updateRdwd() 
# 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 rJava 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

Copy Link

Version

Install

install.packages('rdwd')

Monthly Downloads

681

Version

1.9.3

License

GPL (>= 2)

Maintainer

Berry Boessenkool

Last Published

August 18th, 2025

Functions in rdwd (1.9.3)

index

Indexes of files and metadata on the DWD CDC FTP server
nearbyStations

Find DWD stations close to given coordinates
newColumnNames

Enhance readDWD column names
lldist

distance between lat-long coordinates
fileType

determine DWD file type
findID

find DWD weather station ID from name
plotDWD

Quickly plot time series
metaInfo

Information for a station ID on the DWD CDC FTP server
indexFTP

Create a recursive index of an FTP Server
readDWD.data

read regular dwd data
readDWD.deriv

read derived dwd data
readDWD.binary

read dwd gridded radolan binary data
rdwdquiet

global quiet option for rdwd
readDWD.asczip

read dwd gridded asc data
readDWD.asc

read dwd gridded radolan asc data
rdwd

Handle Climate Data from DWD (German Weather Service)
projectRasterDWD

project DWD raster data
plotRadar

plot radar products on a pretty map
readDWD.grib2

read nwp forecast data
readDWD.rklim

read dwd gridded radklim binary data
readDWD.raster

read dwd gridded raster data
readDWD

Process data from the DWD CDC FTP Server
readDWD.radar

read dwd gridded radolan radar data
readDWD.hyras

read dwd hyras netcdf data
readDWD.nc

read dwd netcdf data
readDWD.stand

read subdaily/standard_format dwd data
readDWD.meta

read dwd metadata (Beschreibung*.txt files)
readDWD.multia

read multi_annual dwd data
readDWD.pdf

open pdf data
updateRdwd

Update rdwd development version
readMeta

Process data from the DWD CDC FTP Server
validFileTypes

valid fileType values
rowDisplay

Create leaflet map popup from data.frame rows
selectDWD

Select data from the DWD CDC FTP Server
release_questions

Reminders when using devtools::release
readVars

Process data from the DWD CDC FTP Server
runLocalTests

run local tests of rdwd
updateIndexes

update rdwd indexes
app

Launch interactive weather analysis app
checkUpdates

check some historical files for updates by DWD
checkIndex

check indexes
dwdparams

DWD parameter explanations
dwdbase

DWD FTP Server base URL
checkSuggestedPackage

check suggested package for availability
createIndex

Create file and meta index of the DWD CDC FTP Server
dirDWD

directory management for rdwd
addBorders

add country and Bundesland borders to a map
dataDWD

Download data from the DWD CDC FTP Server
locdir

local data directory