Package 'vegperiod'

Title: Determine Thermal Vegetation Periods
Description: Collection of common methods to determine growing season length in a simple manner. Start and end dates of the vegetation periods are calculated solely based on daily mean temperatures and the day of the year.
Authors: Robert Nuske [aut, cre] , Nordwestdeutsche Forstliche Versuchsanstalt (NW-FVA) [cph, fnd]
Maintainer: Robert Nuske <[email protected]>
License: GPL (>= 3)
Version: 0.4.0.900
Built: 2024-11-07 04:57:10 UTC
Source: https://github.com/rnuske/vegperiod

Help Index


Ten years of daily average air temperature

Description

A dataset containing ten years (2001-01-01 - 2010-12-31) of average air temperature measured at the weather station Goettingen. The data is the result of a reanalysis of observed data using the STARS model (cf. Orlowsky et al. 2008). They were provided by Prof. Dr. Peter Werner (PIK).

Usage

data(goe)

Format

A data frame with 3652 rows and 6 variables:

Variable Description
date calendar date as object of class Date
year years as integer
month month as integer
day day of month as integer
doy day of year as integer
t average air temperature

Source

Prof. Dr. Peter Werner (PIK)

References

Orlowsky, B., Gerstengarbe, F. W., Werner, P. C. (2008) A resampling scheme for regional climate simulations and its performance compared to a dynamical RCM. Theoretical and Applied Climatology, 92(3–4), 209–223. doi:10.1007/s00704-007-0352-y

Examples

data(goe)
str(goe)

Fetch meteo data of DWD weather stations

Description

Fetch observed meteorological data of German weather stations from freely accessible part of the Climate Data Center of Germany's National Meteorological Service (Deutscher Wetterdienst, DWD).

Usage

read.DWDdata(
  id,
  type = "climate",
  period = "recent",
  resolution = "daily",
  file = NULL,
  destdir = NULL,
  quiet = FALSE
)

Arguments

id

integer. A valid station id (cf. read.DWDstations).

type

string. Stations can be of type ‘⁠"climate"⁠’ offering a range of meteorological parameters or of type ‘⁠"precipitation"⁠’ solely recording rainfall. There are about 400 ‘⁠climate⁠’ and 2000 ‘⁠precipitation⁠’ stations.

period

string specifying a time span. The last 1.5 years are called ‘⁠"recent"⁠’. Data from the individual beginning of measurements up to a year ago are labelled ‘⁠"historical"⁠’. ‘⁠"recent"⁠’ data have not yet gone through the full quality control procedure. ‘⁠"historical"⁠’ data have completed the operational quality control. But be aware there still might be gaps and inhomogeneities.

resolution

string. Temporal resolution of the data can be ‘⁠"daily"⁠’ or ‘⁠"monthly"⁠’. ‘⁠"daily"⁠’ being the common resolution.

file

a string specifying the location of a dataset. ‘⁠"file"⁠’ may point to a file on a FTP server or on the local file system. If the file lives on a FTP server the string must start with 'ftp://'. If it is NULL (the default), data will be downloaded from DWD's FTP server.

destdir

directory (string) where intermediate data (downloaded *.zip file) are stored. If it is NULL (the default) a subdirectory ‘⁠downloaded_packages⁠’ of the session temporary directory will be used (and the files will be deleted at the end of the session). It might be advisable to keep the .zip file since it contains the stations documentation and metadata (e.g. station shift, used devices, downtimes etc.).

quiet

If TRUE, suppress status messages (if any), and the progress bar.

Details

An introduction to the data available at the Climate Data Center can be found in the German Liesmich_intro_CDC_ftp or the translated Readme_intro_CDC_ftp.

The freely accessible part of the Climate Data Center of Germany's National Meteorological Service (Deutscher Wetterdienst, DWD) is part of the DWD's mandate for basic supply of information (termed "Grundversorgung"). These services may be used without any restrictions (no fees will be charged and in general there are no restrictions for the use the data), provided that the source is indicated as laid down in the "GeoNutzV" ordinance. The source reference shall roughly meet the following rules:

  • Where data are used without modification, the source reference shall read "Source: Deutscher Wetterdienst" or just consist of the DWD logo.

  • If the data are modified, the source reference shall specify as precisely as possible the extent of such, e.g. "Based on data from Deutscher Wetterdienst, figures rounded".

A more detailed description of the rules can be found in the official and legally binding German Nutzungsbedingungen or the translated Terms of use.

Value

A data.frame with the observed weather data. Beware of gaps and inhomogeneities! ‘⁠colnames⁠’ contains the original header and hence German terms.

Content of 'climate'-data.frame:

Name Description
STATIONS_ID station id
MESS_DATUM date
QN_3 quality level of next columns (-)
FX daily maximum of wind gust (m/s)
FM daily mean of wind velocity (m/s)
QN_4 quality level of next columns (-)
RSK daily precipitation height (mm)
RSKF precipitation form (-)
SDK daily sunshine duration (h)
SHK_TAG daily snow depth (cm)
NM daily mean of cloud cover (1/8)
VPM daily mean of vapor pressure (hPa)
PM daily mean of pressure (hPa)
TMK daily mean of temperature (°C)
UPM daily mean of relative humidity (%)
TXK daily maximum of temperature at 2m height (°C)
TNK daily minimum of temperature at 2m height (°C)
TGK daily minimum of air temperature at 5cm above ground (°C)

Content of 'precipitation'-data.frame:

Name Description
STATIONS_ID station id
MESS_DATUM date
QN_6 quality level of next columns (-)
RS daily precipitation height (mm)
RSF precipitation form (-)
SH_TAG daily height of snow pack (cm)

References

Freely accessible DWD data available via the Climate Data Center.

Examples

## Not run: 
# fetch last 500 days worth of data from station Göttingen
clim <- read.DWDdata(id=1691)

# save data & metadata (documentation about devices, downtimes etc.)
clim <- read.DWDdata(id=1691, destdir='.')

# find and download historical data from the Brocken
stat.hist <- read.DWDstations(period='historical')
brocken.id <- stat.hist[grep("^Brock", stat.hist$name), ]$id
clim.brocken <- read.DWDdata(id=brocken.id, period='historical')

## End(Not run)

Fetch list of DWD weather stations

Description

Get a listing of advertised stations of Germany's National Meteorological Service (Deutscher Wetterdienst, DWD). The list differs for station type, time period and resolution. The list of advertised stations is usually not identical with currently available stations.

Usage

read.DWDstations(type = "climate", period = "recent", resolution = "daily")

Arguments

type

string. Stations can be of type ‘⁠"climate"⁠’ offering a range of meteorological parameters or of type ‘⁠"precipitation"⁠’ solely recording rainfall.

period

string specifying a time span. The last 1.5 years are called ‘⁠"recent"⁠’. Data from the individual beginning of measurements up to a year ago are labelled ‘⁠"historical"⁠’.

resolution

string. Temporal resolution of the data can be ‘⁠"daily"⁠’ or ‘⁠"monthly"⁠’. ‘⁠"daily"⁠’ being the common resolution.

Details

The freely accessible part of the Climate Data Center of Germany's National Meteorological Service (Deutscher Wetterdienst, DWD) is part of DWD's mandate for basic supply of information (termed "Grundversorgung"). This service may be used without any restrictions (no fees will be charged and in general there are no restrictions for the use the data), provided that the source is indicated as laid down in the "GeoNutzV" ordinance. The source reference shall roughly meet the following rules:

  • Where data are used without modification, the source reference shall read "Source: Deutscher Wetterdienst" or just consist of the DWD logo.

  • If the data are modified, the source reference shall specify as precisely as possible the extent of such, e.g. "Based on data from Deutscher Wetterdienst, figures rounded".

A more detailed description of the rules can be found in the official and legally binding German Nutzungsbedingungen or the translated Terms of use.

Value

A data.frame with all weather stations. It's not guaranteed that all advertised staions are available for download. Watch out for the end data of observation. Stations with recent data have a current end date. The data.frame contains the variables id, from, to, elev, lat, long, name, state.

References

Freely accessible DWD data available via the Climate Data Center.

Examples

## Not run: 
# stations with daily climate data
stations <- read.DWDstations()

# precipitation stations with monthly historical data
precip <- read.DWDstations(type='precip', period='historical',
                           resolution='monthly')

# list stations with daily data updated within last week
stat.daily <- read.DWDstations(period='recent')
stat.daily.recent <- stat.daily[stat.daily$to > (Sys.Date() - 7), ]

## End(Not run)

Determine vegetation period

Description

Calculate start and end date of vegetation periods based on daily average air temperature and the day of the year (DOY). The sum of day degrees within the vegetation period is included for convenience.

Usage

vegperiod(
  dates,
  Tavg,
  start.method,
  end.method,
  Tsum.out = FALSE,
  Tsum.crit = 0,
  species = NULL,
  est.prev = 0,
  check.data = TRUE
)

Arguments

dates

vector of calendar dates (objects of class Date or something understood by as.Date()). Must contain entire years if est.prev > 0 else the first year may comprise only November and December.

Tavg

vector of daily average air temperatures in degree Celsius. Same length as dates.

start.method

name of method to use for vegetation start. One of "Menzel" (needs additional argument species, see below), "StdMeteo" resp. "ETCCDI", "Ribes uva-crispa". Can be abbreviated (partial matching). For further discussion see Details.

end.method

name of method to use for vegetation end. One of "vonWilpert", "LWF-BROOK90", "NuskeAlbert" and "StdMeteo" resp. "ETCCDI". Can be abbreviated (partial matching). For further discussion see Details.

Tsum.out

boolean. Return the sum of daily mean temperatures above Tsum.crit within vegetation period, also known as growing day degrees.

Tsum.crit

threshold for sum of day degrees. Only daily mean temperatures ⁠> Tsum.crit⁠ will be tallied. The default of 0 prevents negative daily temperatures from reducing the sum. Climate change studies often use a threshold of 5.

species

name of tree species (required if start.method="Menzel" ignored otherwise).

Must be one of "Larix decidua", "Picea abies (frueh)", "Picea abies (spaet)", "Picea abies (noerdl.)", "Picea omorika", "Pinus sylvestris", "Betula pubescens", "Quercus robur", "Quercus petraea", "Fagus sylvatica".

est.prev

number of years to estimate previous year's chill days for the first year (required if start.method="Menzel" ignored otherwise).

Menzel requires the number of chill days of previous November and December. If est.prev = 0 the first year is used to get the previous year's chill days and dropped afterwards. Thus, a year from the time series is lost. To avoid losing a year, est.prev = n estimates the previous year's chill days for the first year from the average of n first years of the time series.

check.data

Performs plausibility checks on the temperature data to ensure that the temperatures have not been multiplied by ten. Plausible range is -35 to +40°C.

Details

Common methods for determining the onset and end of thermal vegetation periods are provided, for details see next sections. Popular choices with regard to forest trees in Germany are Menzel and vonWilpert. Climate change impact studies at NW-FVA are frequently conducted using Menzel with "Picea abies (frueh)" and NuskeAlbert for all tree species; with tree species specifics accounted for in subsequent statistical models.

Start methods:

The method Menzel implements the algorithm described in Menzel (1997). The method is parameterized for 10 common tree species. It needs previous year's chill days. ETCCDI resp. StdMeteo is a simple threshold based procedure as defined by the Expert Team on Climate Change Detection and Indices (cf. ETCCDI 2009, Frich et al. 2002, Zhang et al. 2011) leading to quite early vegetation starts. This method is widely used in climate change studies. The method Ribes uva-crispa is based on leaf-out of gooseberry (Janssen 2009). It was developed by the Germany's National Meteorological Service (Deutscher Wetterdienst, DWD) and is more robust against early starts than common simple meteorological procedures.

End methods:

The end method vonWilpert is based on von Wilpert (1990). It was originally developed for Picea abies in the Black Forest but is commonly used for all tree species throughout Germany. As usual, the rules regarding the soilmatrix are neglected in this implementation. LWF-BROOK90 is -for the sake of convenience- a reimplementation of the LWF-BROOK90 VBA (version 3.4) variant of "vonWilpert" (Hammel and Kennel 2001). Their interpretation of von Wilpert (1990) and the somewhat lower precision of VBA was mimicked. NuskeAlbert provide a very simple method which is inspired by standard climatological procedures but employs a 7 day moving average and a 5 °C threshold (cf. Walther and Linderholm 2006). ETCCDI resp. StdMeteo is a simple threshold based procedure as defined by the Expert Team on Climate Change Detection and Indices (cf. ETCCDI 2009, Frich et al. 2002, Zhang et al. 2011) leading to quite late vegetation ends.

Value

A data.frame with year and DOY of start and end day of vegetation period. If Tsum.out=TRUE, the data.frame contains an additional column with the sum of day degrees within vegetation periods.

References

ETCCDI (2009) Climate Change Indices: Definitions of the 27 core indices. http://etccdi.pacificclimate.org/list_27_indices.shtml

Frich, P., Alexander, L., Della-Marta, P., Gleason, B., Haylock, M., Klein Tank, A. and Peterson, T. (2002) Observed coherent changes in climatic extremes during the second half of the twentieth century. Climate Research, 19, 193–212. doi:10.3354/cr019193.

Hammel, K. and Kennel, M. (2001) Charakterisierung und Analyse der Wasserverfügbarkeit und des Wasserhaushalts von Waldstandorten in Bayern mit dem Simulationsmodell BROOK90. Forstliche Forschungsberichte München.

Janssen, W. (2009) Definition des Vegetationsanfanges. Internal Report, Deutscher Wetterdienst, Abteilung Agrarmeteorologie.

Menzel, A. (1997) Phänologie von Waldbäumen unter sich ändernden Klimabedingungen - Auswertung der Beobachtungen in den Internationalen Phänologischen Gärten und Möglichkeiten der Modellierung von Phänodaten. Forstliche Forschungsberichte München.

von Wilpert, K. (1990) Die Jahrringstruktur von Fichten in Abhängigkeit vom Bodenwasserhaushalt auf Pseudogley und Parabraunerde: Ein Methodenkonzept zur Erfassung standortsspezifischer Wasserstreßdispostion. Freiburger Bodenkundliche Abhandlungen.

Walther, A. and Linderholm, H. W. (2006) A comparison of growing season indices for the Greater Baltic Area. International Journal of Biometeorology, 51(2), 107–118. doi:10.1007/s00484-006-0048-5.

Zhang, X., Alexander, L., Hegerl, G. C., Jones, P., Tank, A. K., Peterson, T. C., Trewin, B. and Zwiers, F. W. (2011) Indices for monitoring changes in extremes based on daily temperature and precipitation data. Wiley Interdisciplinary Reviews: Climate Change, 2(6), 851–870. doi:10.1002/wcc.147.

Examples

data(goe)
vegperiod(dates=goe$date, Tavg=goe$t,
          start.method="Menzel", end.method="vonWilpert",
          species="Picea abies (frueh)", est.prev=5)

# take chill days from first year, which is then dropped
vegperiod(dates=goe$date, Tavg=goe$t, start="Menzel", end="vonWilpert",
          species="Picea abies (frueh)", est.prev=0)

# add column with sum of day degrees in vegetation periods
vegperiod(dates=goe$date, Tavg=goe$t, Tsum.out=TRUE,
          start="StdMeteo", end="StdMeteo")