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 |
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).
data(goe)
data(goe)
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 |
Prof. Dr. Peter Werner (PIK)
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
data(goe) str(goe)
data(goe) str(goe)
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).
read.DWDdata( id, type = "climate", period = "recent", resolution = "daily", file = NULL, destdir = NULL, quiet = FALSE )
read.DWDdata( id, type = "climate", period = "recent", resolution = "daily", file = NULL, destdir = NULL, quiet = FALSE )
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
|
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. |
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.
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) |
Freely accessible DWD data available via the Climate Data Center.
## 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)
## 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)
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.
read.DWDstations(type = "climate", period = "recent", resolution = "daily")
read.DWDstations(type = "climate", period = "recent", resolution = "daily")
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. |
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.
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.
Freely accessible DWD data available via the Climate Data Center.
## 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)
## 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)
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.
vegperiod( dates, Tavg, start.method, end.method, Tsum.out = FALSE, Tsum.crit = 0, species = NULL, est.prev = 0, check.data = TRUE )
vegperiod( dates, Tavg, start.method, end.method, Tsum.out = FALSE, Tsum.crit = 0, species = NULL, est.prev = 0, check.data = TRUE )
dates |
vector of calendar dates (objects of class |
Tavg |
vector of daily average air temperatures in degree Celsius.
Same length as |
start.method |
name of method to use for vegetation start. One of
|
end.method |
name of method to use for vegetation end. One of
|
Tsum.out |
boolean. Return the sum of daily mean temperatures above
|
Tsum.crit |
threshold for sum of day degrees. Only daily mean temperatures
|
species |
name of tree species (required if Must be one of |
est.prev |
number of years to estimate previous year's chill
days for the first year (required if
|
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. |
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.
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.
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.
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.
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.
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")
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")