Package 'macroBiome'

Title: A Tool for Mapping the Distribution of the Biomes and Bioclimate
Description: Procedures for simulating biomes by equilibrium vegetation models, with a special focus on paleoenvironmental applications. Three widely used equilibrium biome models are currently implemented in the package: the Holdridge Life Zone (HLZ) system (Holdridge 1947, <doi:10.1126/science.105.2727.367>), the Köppen-Geiger classification (KGC) system (Köppen 1936, <https://koeppen-geiger.vu-wien.ac.at/pdf/Koppen_1936.pdf>) and the BIOME model (Prentice et al. 1992, <doi:10.2307/2845499>). Three climatic forest-steppe models are also implemented. An approach for estimating monthly time series of relative sunshine duration from temperature and precipitation data (Yin 1999, <doi:10.1007/s007040050111>) is also adapted, allowing process-based biome models to be combined with high-resolution paleoclimate simulation datasets (e.g., CHELSA-TraCE21k v1.0 dataset: <https://chelsa-climate.org/chelsa-trace21k/>).
Authors: Zoltán Szelepcsényi [aut, cre, cph]
Maintainer: Zoltán Szelepcsényi <[email protected]>
License: GPL (>= 3)
Version: 0.3.0
Built: 2025-03-12 02:58:30 UTC
Source: https://github.com/szelepcsenyi/macrobiome

Help Index


A Tool for Mapping the Distribution of the Biomes and Bioclimate

Description

Procedures for simulating biomes by equilibrium vegetation models, with a special focus on paleoenvironmental applications.

Three widely used equilibrium biome models are currently implemented in the package: the Holdridge Life Zone (HLZ) system (Holdridge 1947, 1967), the Köppen-Geiger classification (KGC) system (Köppen 1936) and the BIOME model (Prentice et al. 1992). Three climatic forest-steppe models are also implemented.

In the BIOME model, the water balance module used to calculate daily radiation, evapotranspiration and soil moisture was replaced by the SPLASH v.1.0 model (Davis et al. 2017). The methodology used in this model was modified in two aspects: the 'bucket size' was made freely adjustable, and variations of the Earth's orbital parameters were taken into account by implementing the procedure proposed by Berger and Loutre (1991).

The application of process-based models, besides temperature and precipitation data, requires also a meteorological variable directly related to radiation. Sunshine duration or cloud cover can be such a variable. Unfortunately, paleoclimatic datasets developed to support paleoecological studies using correlative species distribution models do not include such variables. For example, see the CHELSA-TraCE21k v1.0 dataset (https://chelsa-climate.org/chelsa-trace21k/).

However, estimating relative sunshine duration data from commonly available meteorological variables may be a solution to overcome the lack of data. To achieve this goal, here, the procedure described by Yin (1999) is recommended with some minor modifications. Evidences of validity of the procedures implemented in the package were shown by Szelepcsényi et al. (2022).

The use of 'Grid' functions allows to generate distribution maps of biomes (and bioclimatic indices used in the given procedure) in a fast and controlled way given the appropriate raster datasets.

References

Berger A, Loutre MF (1991) Insolation values for the climate of the last 10 million years. Quat Sci Rev 10(4):297-317. doi:10.1016/0277-3791(91)90033-Q

Davis TW, Prentice IC, Stocker BD, Thomas RT, Whitley RJ, Wang H, Evans BJ, Gallego-Sala AV, Sykes MT, Cramer W (2017) Simple process-led algorithms for simulating habitats (SPLASH v.1.0): robust indices of radiation, evapotranspiration and plant-available moisture. Geosci Model Dev 10(2):689–708. doi:10.5194/gmd-10-689-2017

Holdridge LR (1947) Determination of World Plant Formations From Simple Climatic Data. Science 105(2727):367–368. doi: 10.1126/science.105.2727.367

Holdridge LR (1967) Life zone ecology. Tropical Science Center, San Jose, Costa Rica

Köppen W (1936) Das geographische System der Klimate. In: Köppen W, Geiger R (eds) Handbuch der Klimatologie. Verlag von Gebrüder Borntraeger, Berlin, Germany, pp 1–44

Prentice IC, Cramer W, Harrison SP, Leemans R, Monserud RA, Solomon AM (1992) A Global Biome Model Based on Plant Physiology and Dominance, Soil Properties and Climate. J Biogeogr 19(2):117–134. doi:10.2307/2845499

Szelepcsényi Z, Breuer H, Fodor N (2022) Estimating relative sunshine duration from commonly available meteorological variables for simulating biome distribution in the Carpathian Region. Hung Geogr Bull 71(1):3–19. doi:10.15201/hungeobull.71.1.1

Yin X (1999) Bright Sunshine Duration in Relation to Precipitation, Air Temperature and Geographic Location. Theor Appl Climatol 64(1–2):61–68. doi:10.1007/s007040050111


Estimator for Daily Solar Irradiance/Irradiation

Description

Calculates monthly averages of daily solar irradiance/irradiation under cloudless-sky conditions, for a given latitude, elevation and year. In addition, it also optionally computes monthly means for daylength (accumulated hours of daylight), for a given latitude, elevation and year. In addition to monthly averages, daily values can also be directly access.

Usage

cliAvgDlySolIrrPoints(
  lat,
  elv = NULL,
  year = 2000,
  aprchSIM = c("Solar123", "SPLASH"),
  aprchTR = c("daily", "hourly"),
  daily = FALSE,
  mlyOpVar = c("R_E")
)

Arguments

lat

'numeric' vector with the latitude coordinates (in decimal degrees)

elv

'numeric' vector with the elevation values (in meters above sea level)

year

'numeric' vector with values of the year (using astronomical year numbering)

aprchSIM

'character' vector of length 1 that indicates the formula used to estimate the value of solar irradiance/irradiation for a specific day. Valid values are as follows:
(a) 'Solar123' - in this approach, first, the mean hourly solar irradiance under cloudless-sky conditions is calculated as proposed by Yin (1997b), with a minor modification, using the daytime means of optical air mass and cosine zenith; the former is computed as recommended by Yin (1997b), while the latter is estimated by using Eq 5 of Yin (1997a); however, in contrast to the original approach, where the solar constant was fixed at 4.9212MJm2hr14.9212 MJ m^{-2} hr^{-1}, according to Yin (1999), its value is corrected by calendar day for the variable ellipticity of the Earth's orbit, by using the scheme of Brock (1981); in the calculations, the values of solar declination and daylength are derived by using the approach of Brock (1981);
(b) 'SPLASH' - in this approach, first, under varying orbital parameters, the daily solar radiation at the top of the atmosphere is calculated (H0H_{0}, Eq 7 in Davis et al. (2017)), and then this value is multiplied by the atmospheric transmittivity to obtain the value of daily surface radiation; in this case as well, cloudless conditions are assumed, i.e., the transmission coefficient is taken into account with an universal value of 0.75, however, its value is modified as a function of elevation, by using the scheme of Allen (1996); the daylength is calculated via Eq 1.6.11 in Duffie and Beckman (1991), using the sunset hour angle (hsh_{s}, Eq 8. in Davis et al. (2017)); finally, the mean hourly surface radiation is derived as the quotient of the daily surface radiation and the daylength.

aprchTR

'character' vector of length 1 that indicates that the daily solar irradiance/irradiation is estimated with a daily or hourly time resolution. Valid values are as follows:
(a) 'daily' - it is calculated as a daily amount (in MJm2dy1MJ m^{-2} dy^{-1});
(b) 'hourly' - it is estimated as an hourly mean (in MJm2hr1MJ m^{-2} hr^{-1}).

daily

'logical' scalar that indicates whether or not daily values should also be computed.

mlyOpVar

'character' vector of at least one length that indicates the variable(s) for which monthly time series are to be calculated. Valid values are as follows:
(a) 'R_E' - monthly averages of daily solar irradiance/irradiation under cloudless-sky conditions (depending on the time resolution in MJm2dy1MJ m^{-2} dy^{-1} or MJm2hr1MJ m^{-2} hr^{-1});
(b) 'DL' - monthly means for daylength (accumulated hours of daylight) (in hours).

Details

To estimate the monthly averages of relative sunshine duration, Yin (1999) uses estimated values of the mean hourly solar irradiance under cloudless-sky conditions ('R_E_MJ.m2.hr1'), which is calculated via the scheme of Yin (1997b), with some minor modifications. Furthermore, in the approach proposed by Yin (1999), the monthly means of daylength ('DL_moa_hr') is used to estimate monthly averages of daily potential evapotranspiration. The solar irradiance model presented by Yin (1997b) and slightly modified by Yin (1999) is labelled 'Solar123' here.
The approach 'SPLASH' uses a different radiation model, which is based on the procedure described by Davis et al. (2017). The approach used here differs from the base scheme only in that it takes into account changes in orbital parameters of the Earth over time. Temporal variability of orbital parameters is considered through the implementation of the procedure as proposed by Berger and Loutre (1991). In the SPLASH algorithm, the daily top-of-the-atmosphere solar radiation is computed as twice the integral of the extraterrestrial radiation flux realized from local solar noon to sunset (see Davis et al. 2017). Using this physical amount, the daily solar radiation at the surface of the Earth under clear-sky conditions ('R_E_MJ.m2.dy1') can be easily estimated. The hourly mean surface radiation is finally obtained as the quotient of this integrated value and the daylength.
In the both approach, the daylength is computed by using the sunset hour angle, however, due to differences in the calculation of the solar declination, the results obtained by the two procedures differ. The approach 'Solar123' gives time-independent results, while using the approach 'SPLASH', varying results over time are obtained through the variable orbital parameters.
The two radiation models therefore differ significantly both in terms of conceptual frameworks and assumptions. The approach 'Solar123' converts hourly mean values into daily amounts, while in the approach 'SPLASH', the integrated daily values are transformed to hourly averages. However, in terms of atmospheric transmittivity, both models consider the universal value of 0.75 as a basic value. To conclude, depending on the scope of application, both methods can give valid results, but for paleo-climatological and paleo-environmental studies, the approach 'SPLASH' is clearly recommended.

Value

If daily values are also requested (daily = TRUE), the function returns a list of lists with daily and monthly data. If daily = FALSE, the return object is a list with the monthly means. The character vector 'mlyOpVar' determines for which variables the monthly averages are calculated. Daily values also become available only for this/these variable(s). Each matrix in the list of daily data consists of 365 or 366 columns, while monthly data are available, of course, as 12-column matrices. The former are accessible in the list 'dly', while the latter can be found in the list labelled as 'mly'. Here, matrices with monthly data contain averages of the daily values. See the argument 'mlyOpVar' for the content of matrices.

Note

As with any function with a point mode, a set of basic input data is defined here. In this case, it is as follow: 'lat' (latitude coordinates in decimal degrees). The length of this vector determines the number of rows in matrices of the return list. In the case of arguments that do not affect the course of the calculation procedure or the structure of the return object, scalar values (i.e., 'numeric' vector of length 1) may also be allowed. In this case, they are as follows: 'elv' (elevation in meters above sea level), and 'year' (year using astronomical year numbering). These scalars are converted to vectors by the function during the error handling, and these vectors are applied in the further calculations. If these data are stored in vectors of length at least 2, their length must be the same size of first dimension of the matrix containing the basic data.

References

Allen RG (1996) Assessing integrity of weather data for reference evapotranspiration estimation. J Irrig Drain Eng 122(2):97–106. doi:10.1061/(ASCE)0733-9437(1996)122:2(97)

Berger A, Loutre MF (1991) Insolation values for the climate of the last 10 million years. Quat Sci Rev 10(4):297-317. doi:10.1016/0277-3791(91)90033-Q

Brock TD (1981) Calculating solar radiation for ecological studies. Ecol Model 14(1–2):1-19. doi:10.1016/0304-3800(81)90011-9

Davis TW, Prentice IC, Stocker BD, Thomas RT, Whitley RJ, Wang H, Evans BJ, Gallego-Sala AV, Sykes MT, Cramer W (2017) Simple process-led algorithms for simulating habitats (SPLASH v.1.0): robust indices of radiation, evapotranspiration and plant-available moisture. Geosci Model Dev 10(2):689–708. doi:10.5194/gmd-10-689-2017

Duffie JA, Beckman WA (1991) Solar Engineering of Thermal Processes. Second Edition. Wiley-Interscience, New York, NY

Yin X (1997a) Calculating daytime mean relative air mass. Agric For Meteorol 87(2-3):85-90. doi:10.1016/S0168-1923(97)00029-4

Yin X (1997b) Optical Air Mass: Daily Integration and its Applications. Meteorol Atmos Phys 63(3-4):227-233. doi:10.1007/BF01027387

Yin X (1999) Bright Sunshine Duration in Relation to Precipitation, Air Temperature and Geographic Location. Theor Appl Climatol 64(1–2):61–68. doi:10.1007/s007040050111

Examples

library(graphics)

# Monthly average of the mean hourly solar irradiance under cloudless-sky conditions at sea level,
# in June 2000 along a meridian, according to the two different radiation models
lats <- seq(-90, 90, 10)
models <- c("Solar123", "SPLASH")
R_E_moa_MJ.m2.hr1 <- matrix(nrow = 2, ncol = length(lats), dimnames = list(models, lats))
R_E_moa_MJ.m2.hr1[1, ] <- cliAvgDlySolIrrPoints(lats, elv = 0,
    aprchTR = "hourly")$R_E_moa_MJ.m2.hr1[, "Jun"]
R_E_moa_MJ.m2.hr1[2, ] <- cliAvgDlySolIrrPoints(lats, elv = 0, aprchSIM = "SPLASH",
    aprchTR = "hourly")$R_E_moa_MJ.m2.hr1[, "Jun"]
cols <- c("black", "green")
matplot(t(R_E_moa_MJ.m2.hr1), type = "l", lwd = 2, col = cols, xaxt = "n",
    xlab = "Geographical latitude (degrees)",
    ylab = "Mean hourly solar irradiance (MJ m-2 hr-1)")
axis(1, at = seq(1, ncol(R_E_moa_MJ.m2.hr1)), labels = colnames(R_E_moa_MJ.m2.hr1))
legend(1, 2, legend = rownames(R_E_moa_MJ.m2.hr1), col = cols, lty = 1 : 2, lwd = 2, xpd = TRUE)


# Daylength at latitude 75N in the year 2000, according to the two different radiation models
DL_hr <- matrix(nrow = 2, ncol = 366, dimnames = list(c("Solar123", "SPLASH"), seq(1, 366)))
DL_hr[1, ] <- cliAvgDlySolIrrPoints(75., 0., daily = TRUE, mlyOpVar = "DL")$dly$DL_hr
DL_hr[2, ] <- cliAvgDlySolIrrPoints(75., 0., aprchSIM = "SPLASH", daily = TRUE,
    mlyOpVar = "DL")$dly$DL_hr
cols <- c("black", "green")
matplot(t(DL_hr), type = "l", lwd = 2, col = cols, xaxt = "n", xlab = "Day number in the year",
    ylab = "Daylength (hr)")
axis(1, at = seq(1, ncol(DL_hr)), labels = colnames(DL_hr))
legend(1, 20, legend = rownames(DL_hr), col = cols, lty = 1 : 2, lwd = 2, xpd = TRUE)

Calculator for Bioclimatic Indices

Description

Calculates the values of selected bioclimatic indices, for a given region and year/epoch, by using the monthly time series of temperature, precipitation and relative sunshine duration, and the elevation data.

Usage

cliBioCliIdxGrid(
  rs.temp,
  rs.prec,
  rs.bsdf = NULL,
  rl.elv = NULL,
  sc.year = 2000,
  rl.MSMC = 150,
  aprchTEMP = c("hip", "tsi", "const"),
  aprchPREC = c("tsi", "hip", "const"),
  aprchBSDF = c("hip", "const"),
  dvTEMP = rep(0.7, 12),
  dvPREC = rep(0.7, 12),
  bciOpVar = c("abt", "tap", "per", "fai"),
  filename = "",
  ...
)

Arguments

rs.temp

multi-layer Raster* object with one-year time series of monthly mean air temperature (in °C)

rs.prec

multi-layer Raster* object with one-year time series of monthly precipitation sum (in mm)

rs.bsdf

multi-layer Raster* object with one-year time series of monthly mean relative sunshine duration (dimensionless)

rl.elv

single-layer Raster* object with the elevation values (in meters above sea level)

sc.year

'numeric' scalar with the value of the year (using astronomical year numbering)

rl.MSMC

'numeric' scalar or single-layer Raster* object with the value/values of the maximum soil moisture capacity (aka 'bucket size') (in mm)

aprchTEMP

'character' vector of length 1 that indicates the scheme used to generate daily values of the daily mean air temperature for a specific year. Valid values are as follows:
(a) 'hip' - this scheme applies the mean-preserving 'harmonic' interpolation method of Epstein (1991) to the values of monthly mean air temperature in order to generate daily values;
(b) 'tsi' - this scheme uses an iterative interpolation technique (Lüdeke et al. 1994) to time series of the monthly mean air temperature, in order to generate a synthetic time series of the selected meteorological variable at a temporal resolution that is higher than the daily scale; finally, this synthetic time series is upscaled to a daily resolution;
(c) 'const' - this scheme is assumed that values of the daily mean air temperature are constant within each month.

aprchPREC

'character' vector of length 1 that indicates the scheme to generate daily values of the daily precipitation sum. Valid values are as follows:
(a) 'tsi' - this scheme uses an iterative interpolation technique (Lüdeke et al. 1994) to time series of the monthly mean precipitation intensity, in order to generate a synthetic time series of the selected meteorological variable at a temporal resolution that is higher than the daily scale; finally, this synthetic time series is upscaled to a daily resolution;
(b) 'hip' - this scheme applies the mean-preserving 'harmonic' interpolation method of Epstein (1991) to the values of monthly mean precipitation intensity in order to generate daily values;
(c) 'const' - this scheme is assumed that values of the daily precipitation sum are constant within each month (the monthly precipitation sum is divided equally across each day of the month).

aprchBSDF

'character' vector of length 1 that indicates the scheme used to generate daily values of the daily fractional sunshine duration for a specific year. Valid values are as follows:
(a) 'hip' - this scheme applies the mean-preserving 'harmonic' interpolation method of Epstein (1991) to the values of monthly mean relative sunshine duration in order to generate daily values;
(b) 'const' - this scheme is assumed that values of the daily relative sunshine duration are constant within each month.

dvTEMP

'numeric' vector of length 12 with monthly values of the damping variable for the air temperature data.

dvPREC

'numeric' vector of length 12 with monthly values of the damping variable for the precipitation data.

bciOpVar

'character' vector of at least one length that indicates which of the bioclimatic indices is/are to be computed. Valid values are as follows:
(a) 'abt' - Mean Annual Biotemperature (in °C);
(b) 'tap' - Total Annual Precipitation (in mm);
(c) 'per' - Potential Evapotranspiration Ratio (dimensionless);
(d) 'fai' - Forestry Aridity Index (dimensionless);
(e) 'gdd0' - Growing Degree-Days on 0°C base (in °C day);
(f) 'gdd5' - Growing Degree-Days on 5°C base (in °C day);
(g) 'bdi' - Budyko's Dryness Index (dimensionless);
(h) 'cci' - Condrad's Continentality Index (in per cent);
(i) 'mat' - Mean Annual Temperature (in °C);
(j) 'tc' - Mean Temperature of the Coldest Month (in °C);
(k) 'tw' - Mean Temperature of the Warmest Month (in °C);
(l) 'tm10' - Number of Months with Mean Temperature above 10°C (dimensionless);
(m) 'pdry' - Precipitation Sum of the Driest Month (in mm);
(n) 'psdry' - Precipitation Sum of the Driest Month in the Summer Half-Year (in mm);
(o) 'pwdry' - Precipitation Sum of the Driest Month in the Winter Half-Year (in mm);
(p) 'pswet' - Precipitation Sum of the Wettest Month in the Summer Half-Year (in mm);
(q) 'pwwet' - Precipitation Sum of the Wettest Month in the Winter Half-Year (in mm);
(r) 'ps' - Precipitation Sum of the Summer Half-Year (in mm);
(s) 'pw' - Precipitation Sum of the Winter Half-Year (in mm);
(t) 'ptc' - Priestley–Taylor Coefficient (dimensionless).

filename

output filename

...

additional arguments passed on to writeRaster

Details

See cliBioCliIdxPoints.

Value

A RasterStack with one or more layers where each layer contain the values of a given bioclimatic index.

Note

The objects 'rs.temp', 'rs.prec' and 'rs.bsdf' must be 12-layer Raster* objects, while the object 'rl.elv' has to be a single-layer Raster* object. The object 'rl.MSMC' must be either a single positive number (a universal bucket size) or a single-layer Raster* object (a regionally-specified bucket size). These Raster* objects must have the same bounding box, projection, and resolution. The object 'sc.year' has to be a single integer number.

References

Epstein ES (1991) On Obtaining Daily Climatological Values from Monthly Means. J Clim 4(3):365–368. doi:10.1175/1520-0442(1991)004<0365:OODCVF>2.0.CO;2

Lüdeke MKB, Badeck FW, Otto RD, Häger C, Dönges S, Kindermann J, Würth G, Lang T, Jäkel U, Klaudius A, Ramge P, Habermehl S, Kohlmaier GH (1994) The Frankfurt Biosphere Model: A global process-oriented model of seasonal and long-term CO2 exchange between terrestrial ecosystems and the atmosphere. I. Model description and illustrative results for cold deciduous and boreal forests. Clim Res 4(2):143-166. doi:10.3354/cr004143

Examples

# Loading mandatory data for the Example 'Climate Normal Grid'
data(inp_exClnrGrid)

# Calculate values of all default bioclimatic indices with default settings
# for Csongrad-Csanad County (for the normal period 1981-2010)
with(inp_exClnrGrid, {
rs.bci1 <- cliBioCliIdxGrid(temp, prec)
rs.bci1
})


# Calculate values of all selected bioclimatic indices with default settings
# for Csongrad-Csanad County (for the normal period 1981-2010)
with(inp_exClnrGrid, {
year <- trunc(mean(seq(1981, 2010)))
bciOpVar <- c("gdd5", "bdi", "cci", "tc", "gdd0", "tw", "ptc")
rs.bci2 <- cliBioCliIdxGrid(temp, prec, bsdf, elv, sc.year = year, bciOpVar = bciOpVar)
rs.bci2
})

Calculator for Bioclimatic Indices

Description

Calculates the values of selected bioclimatic indices, for a given geographical location (latitude and elevation) and year/epoch, by using the monthly time series of temperature, precipitation and relative sunshine duration.

Usage

cliBioCliIdxPoints(
  temp,
  prec,
  bsdf = NULL,
  lat = NULL,
  elv = NULL,
  year = 2000,
  MSMC = 150,
  aprchTEMP = c("hip", "tsi", "const"),
  aprchPREC = c("tsi", "hip", "const"),
  aprchBSDF = c("hip", "const"),
  dvTEMP = rep(0.7, 12),
  dvPREC = rep(0.7, 12),
  bciOpVar = c("abt", "tap", "per", "fai"),
  argCkd = FALSE
)

Arguments

temp

'numeric' R object with one-year time series of monthly mean air temperature (in °C)

prec

'numeric' R object with one-year time series of monthly precipitation sum (in mm)

bsdf

'numeric' R object with one-year time series of monthly mean relative sunshine duration (dimensionless)

lat

'numeric' vector with the latitude coordinates (in decimal degrees)

elv

'numeric' vector with the elevation values (in meters above sea level)

year

'numeric' vector with values of the year (using astronomical year numbering)

MSMC

'numeric' vector with values of the maximum soil moisture capacity (aka 'bucket size') (in mm)

aprchTEMP

'character' vector of length 1 that indicates the scheme used to generate daily values of the daily mean air temperature for a specific year. Valid values are as follows:
(a) 'hip' - this scheme applies the mean-preserving 'harmonic' interpolation method of Epstein (1991) to the values of monthly mean air temperature in order to generate daily values;
(b) 'tsi' - this scheme uses an iterative interpolation technique (Lüdeke et al. 1994) to time series of the monthly mean air temperature, in order to generate a synthetic time series of the selected meteorological variable at a temporal resolution that is higher than the daily scale; finally, this synthetic time series is upscaled to a daily resolution;
(c) 'const' - this scheme is assumed that values of the daily mean air temperature are constant within each month.

aprchPREC

'character' vector of length 1 that indicates the scheme to generate daily values of the daily precipitation sum. Valid values are as follows:
(a) 'tsi' - this scheme uses an iterative interpolation technique (Lüdeke et al. 1994) to time series of the monthly mean precipitation intensity, in order to generate a synthetic time series of the selected meteorological variable at a temporal resolution that is higher than the daily scale; finally, this synthetic time series is upscaled to a daily resolution;
(b) 'hip' - this scheme applies the mean-preserving 'harmonic' interpolation method of Epstein (1991) to the values of monthly mean precipitation intensity in order to generate daily values;
(c) 'const' - this scheme is assumed that values of the daily precipitation sum are constant within each month (the monthly precipitation sum is divided equally across each day of the month).

aprchBSDF

'character' vector of length 1 that indicates the scheme used to generate daily values of the daily fractional sunshine duration for a specific year. Valid values are as follows:
(a) 'hip' - this scheme applies the mean-preserving 'harmonic' interpolation method of Epstein (1991) to the values of monthly mean relative sunshine duration in order to generate daily values;
(b) 'const' - this scheme is assumed that values of the daily relative sunshine duration are constant within each month.

dvTEMP

'numeric' vector of length 12 with monthly values of the damping variable for the air temperature data.

dvPREC

'numeric' vector of length 12 with monthly values of the damping variable for the precipitation data.

bciOpVar

'character' vector of at least one length that indicates which of the bioclimatic indices is/are to be computed. Valid values are as follows:
(a) 'abt' - Mean Annual Biotemperature (in °C);
(b) 'tap' - Total Annual Precipitation (in mm);
(c) 'per' - Potential Evapotranspiration Ratio (dimensionless);
(d) 'fai' - Forestry Aridity Index (dimensionless);
(e) 'gdd0' - Growing Degree-Days on 0°C base (in °C day);
(f) 'gdd5' - Growing Degree-Days on 5°C base (in °C day);
(g) 'bdi' - Budyko's Dryness Index (dimensionless);
(h) 'cci' - Condrad's Continentality Index (in per cent);
(i) 'mat' - Mean Annual Temperature (in °C);
(j) 'tc' - Mean Temperature of the Coldest Month (in °C);
(k) 'tw' - Mean Temperature of the Warmest Month (in °C);
(l) 'tm10' - Number of Months with Mean Temperature above 10°C (dimensionless);
(m) 'pdry' - Precipitation Sum of the Driest Month (in mm);
(n) 'psdry' - Precipitation Sum of the Driest Month in the Summer Half-Year (in mm);
(o) 'pwdry' - Precipitation Sum of the Driest Month in the Winter Half-Year (in mm);
(p) 'pswet' - Precipitation Sum of the Wettest Month in the Summer Half-Year (in mm);
(q) 'pwwet' - Precipitation Sum of the Wettest Month in the Winter Half-Year (in mm);
(r) 'ps' - Precipitation Sum of the Summer Half-Year (in mm);
(s) 'pw' - Precipitation Sum of the Winter Half-Year (in mm);
(t) 'ptc' - Priestley–Taylor Coefficient (dimensionless).

argCkd

'logical' scalar that indicates whether or not the checking and correction of arguments can be omitted.

Details

Taking into account all implemented bioclimatic indices, the following five require only temperature data:

  • abt: Mean Annual Biotemperature (Eq 1 in Szelepcsényi et al. (2014); in °C)

  • mat: Mean Annual Temperature (in °C)

  • tc: Mean Temperature of the Coldest Month (in °C)

  • tw: Mean Temperature of the Warmest Month (in °C)

  • tm10: Number of Months with Mean Temperature above 10°C (dimensionless)

  • gdd5: Growing Degree-Days on 5°C base (in °C day)

  • gdd0: Growing Degree-Days on 0°C base (in °C day)

Monthly data are sufficient to calculate values of the mean temperatures of the coldest and warmest months, the mean annual temperature/biotemperature and the number of months with temperature > 10°C, while daily values are needed to compute values of the growing degree-days. If only a set of these bioclimatic indices has to be calculated, the setting prec = NULL must be used.
An important bioclimatic index for both the Holdridge life zone system and Köppen-Geiger climate classification system is the total annual precipitation, for the calculation of which requires only monthly precipitation data. If only this bioclimatic index has to be computed, the setting temp = NULL must be used. The same setting has to be used for calculation of the precipitation sum of the driest month.
In addition to monthly temperature data, latitude coordinates are also required to calculate the Condrad's Continentality Index (cci: Eq 4 in Conrad (1946); in per cent).
For calculating values of the Potential Evapotranspiration Ratio used in the Holdridge life zone system (per: Eq 4 in Szelepcsényi et al. (2014); dimensionless) and the Forestry Aridity Index introduced by the forestry climate classification (fai: Eq 1 in Führer et al. (2011); dimensionless), both temperature and precipitation data at a monthly timescale are also required. Same data are needed to calculate most precipitation statistics used by the Köppen-Geiger climate classification system:

  • psdry: Precipitation Sum of the Driest Month in the Summer Half-Year (in mm)

  • pwdry: Precipitation Sum of the Driest Month in the Winter Half-Year (in mm)

  • pswet: Precipitation Sum of the Wettest Month in the Summer Half-Year (in mm)

  • pwwet: Precipitation Sum of the Wettest Month in the Winter Half-Year (in mm)

  • ps: Precipitation Sum of the Summer Half-Year (in mm)

  • pw: Precipitation Sum of the Winter Half-Year (in mm)

For these bioclimatic indices, summer (winter) half-year is defined as the warmer (cooler) six month period of AMJJAS (from April to September) and ONDJFM (from October to March).
The computation of the Budyko's Dryness Index (bdi, dimensionless) and the Priestley–Taylor Coefficient (ptc, dimensionless) requires a simulation of evapotranspiration at daily time step via the implementation of the SPLASH algorithm (Davis et al. 2017) (see dlyEngWtrFluxPoints). In addition to one-year time series of daily temperature and precipitation data, the application of the SPLASH algorithm requires values of the relative sunshine duration at a daily timescale, latitude coordinate, altitude, year/epoch, and the so-called 'bucket size'. The Dryness Index is a ratio of annual potential evapotranspiration to precipitation (see Monserud et al. 1993). The value of the Priestley–Taylor coefficient is calculated as the ratio of actual evapotranspiration to equilibrium evapotranspiration, which represents the fraction of plant-available surface moisture (see Prentice et al. 1992, Davis et al. 2017).
The function applies only monthly time series to compute values of each bioclimatic index, considering the field of application of the package. However, as we can see, in some cases there is a need for daily time series that are here generated by using the function dlyWeaGenPoints.

Value

A matrix with one or more columns where each column contain the values of a given bioclimatic index.

Note

As with any function with a point mode, a set of basic input data is defined here. In this case, they are as follows: 'temp' (one-year time series of monthly mean air temperature), 'prec' (one-year time series of monthly precipitation sum), and 'bsdf' (one-year time series of monthly mean relative sunshine duration). The objects 'temp', 'prec' and 'bsdf' must be either vectors of length 12 or 12-column matrices. The first dimensions of these matrices have to be the same length. The function automatically converts vectors into single-row matrices during the error handling, and then uses these matrices. The first dimensions of these matrices determines the number of rows in the result matrix. In the case of arguments that do not affect the course of the calculation procedure or the structure of the return object, scalar values (i.e., 'numeric' vector of length 1) may also be allowed. In this case, they are as follows: 'lat' (latitude coordinates in decimal degrees), 'elv' (elevation in meters above sea level), 'year' (year using astronomical year numbering), and 'MSMC' ('bucket size' in mm). These scalars are converted to vectors by the function during the error handling, and these vectors are applied in the further calculations. If these data are stored in vectors of length at least 2, their length must be the same size of first dimension of the matrices containing the basic data.

References

Conrad V (1964) Usual formulas of continentality and their limits of validity. EOS, Trans Am Geophys Union 27(5):663-664. doi:10.1029/TR027i005p00663

Davis TW, Prentice IC, Stocker BD, Thomas RT, Whitley RJ, Wang H, Evans BJ, Gallego-Sala AV, Sykes MT, Cramer W (2017) Simple process-led algorithms for simulating habitats (SPLASH v.1.0): robust indices of radiation, evapotranspiration and plant-available moisture. Geosci Model Dev 10(2):689–708. doi:10.5194/gmd-10-689-2017

Epstein ES (1991) On Obtaining Daily Climatological Values from Monthly Means. J Clim 4(3):365–368. doi:10.1175/1520-0442(1991)004<0365:OODCVF>2.0.CO;2

Führer E, Horváth L, Jagodics A, Machon A, Szabados I (2011) Application of a new aridity index in Hungarian forestry practice. Időjárás 115(3):205–216

Lüdeke MKB, Badeck FW, Otto RD, Häger C, Dönges S, Kindermann J, Würth G, Lang T, Jäkel U, Klaudius A, Ramge P, Habermehl S, Kohlmaier GH (1994) The Frankfurt Biosphere Model: A global process-oriented model of seasonal and long-term CO2 exchange between terrestrial ecosystems and the atmosphere. I. Model description and illustrative results for cold deciduous and boreal forests. Clim Res 4(2):143-166. doi:10.3354/cr004143

Monserud RA, Denissenko OV, Tchebakova NM (1993) Comparison of Siberian paleovegetation to current and future vegetation under climate change. Clim Res 3(3):143–159. doi:10.3354/cr003143

Prentice IC, Cramer W, Harrison SP, Leemans R, Monserud RA, Solomon AM (1992) A Global Biome Model Based on Plant Physiology and Dominance, Soil Properties and Climate. J Biogeogr 19(2):117–134. doi:10.2307/2845499

Szelepcsényi Z, Breuer H, Sümegi P (2014) The climate of Carpathian Region in the 20th century based on the original and modified Holdridge life zone system. Cent Eur J Geosci 6(3):293–307. doi:10.2478/s13533-012-0189-5

Examples

# Loading mandatory data for the Example 'Points'
data(inp_exPoints)

# Calculate values of all default bioclimatic indices with default settings,
# at a grid cell near Szeged, Hungary (46.3N, 20.2E) (for the normal period 1981-2010)
with(inp_exPoints, {
bci1 <- cliBioCliIdxPoints(colMeans(temp), colMeans(prec))
bci1
})


# Calculate values of all selected bioclimatic indices with default settings,
# at a grid cell near Szeged, Hungary (46.3N, 20.2E) (for the normal period 1981-2010)
with(inp_exPoints, {
year <- trunc(mean(seq(1981, 2010)))
bciOpVar <- c("gdd5", "bdi", "cci", "tc", "gdd0", "tw", "ptc")
bci2 <- cliBioCliIdxPoints(colMeans(temp), colMeans(prec), colMeans(bsdf), lat, elv,
   year = year, bciOpVar = bciOpVar)
bci2
})

Vegetation Classifier Using the BIOME Model

Description

Calculates the values of bioclimatic indices used in the BIOME model developed by Prentice et al. (1992), and designates the biome type using these values, for a given region and year/epoch, by using the monthly time series of temperature, precipitation and relative sunshine duration, and the elevation data.

Usage

cliBIOMEGrid(
  rs.temp,
  rs.prec,
  rs.bsdf,
  rl.elv,
  sc.year = 2000,
  rl.MSMC = 150,
  aprchTEMP = c("hip", "tsi", "const"),
  aprchPREC = c("tsi", "hip", "const"),
  aprchBSDF = c("hip", "const"),
  dvTEMP = rep(0.7, 12),
  dvPREC = rep(0.7, 12),
  verbose = FALSE,
  filename = "",
  ...
)

Arguments

rs.temp

multi-layer Raster* object with one-year time series of monthly mean air temperature (in °C)

rs.prec

multi-layer Raster* object with one-year time series of monthly precipitation sum (in mm)

rs.bsdf

multi-layer Raster* object with one-year time series of monthly mean relative sunshine duration (dimensionless)

rl.elv

single-layer Raster* object with the elevation values (in meters above sea level)

sc.year

'numeric' scalar with the value of the year (using astronomical year numbering)

rl.MSMC

'numeric' scalar or single-layer Raster* object with the value/values of the maximum soil moisture capacity (aka 'bucket size') (in mm)

aprchTEMP

'character' vector of length 1 that indicates the scheme used to generate daily values of the daily mean air temperature for a specific year. Valid values are as follows:
(a) 'hip' - this scheme applies the mean-preserving 'harmonic' interpolation method of Epstein (1991) to the values of monthly mean air temperature in order to generate daily values;
(b) 'tsi' - this scheme uses an iterative interpolation technique (Lüdeke et al. 1994) to time series of the monthly mean air temperature, in order to generate a synthetic time series of the selected meteorological variable at a temporal resolution that is higher than the daily scale; finally, this synthetic time series is upscaled to a daily resolution;
(c) 'const' - this scheme is assumed that values of the daily mean air temperature are constant within each month.

aprchPREC

'character' vector of length 1 that indicates the scheme to generate daily values of the daily precipitation sum. Valid values are as follows:
(a) 'tsi' - this scheme uses an iterative interpolation technique (Lüdeke et al. 1994) to time series of the monthly mean precipitation intensity, in order to generate a synthetic time series of the selected meteorological variable at a temporal resolution that is higher than the daily scale; finally, this synthetic time series is upscaled to a daily resolution;
(b) 'hip' - this scheme applies the mean-preserving 'harmonic' interpolation method of Epstein (1991) to the values of monthly mean precipitation intensity in order to generate daily values;
(c) 'const' - this scheme is assumed that values of the daily precipitation sum are constant within each month (the monthly precipitation sum is divided equally across each day of the month).

aprchBSDF

'character' vector of length 1 that indicates the scheme used to generate daily values of the daily fractional sunshine duration for a specific year. Valid values are as follows:
(a) 'hip' - this scheme applies the mean-preserving 'harmonic' interpolation method of Epstein (1991) to the values of monthly mean relative sunshine duration in order to generate daily values;
(b) 'const' - this scheme is assumed that values of the daily relative sunshine duration are constant within each month.

dvTEMP

'numeric' vector of length 12 with monthly values of the damping variable for the air temperature data.

dvPREC

'numeric' vector of length 12 with monthly values of the damping variable for the precipitation data.

verbose

'logical' scalar that indicates whether or not values of the bioclimatic indices used should be added to the output.

filename

output filename

...

additional arguments passed on to writeRaster

Details

See cliBIOMEPoints.

Value

Depending on the setting, a RasterStack with one or more layers where the numeric integers encoding the biome type are stored at the last layer, while the additional layers contain the values of bioclimatic indices used. The meaning of integers is given in the data frame vegClsNumCodes. If verbose = FALSE, the return object is a single-layer RasterStack with numeric integers encoding the biome type.

Note

The objects 'rs.temp', 'rs.prec' and 'rs.bsdf' must be 12-layer Raster* objects, while the object 'rl.elv' has to be a single-layer Raster* object. The object 'rl.MSMC' must be either a single positive number (a universal bucket size) or a single-layer Raster* object (a regionally-specified bucket size). These Raster* objects must have the same bounding box, projection, and resolution. The object 'sc.year' has to be a single integer number.

References

Epstein ES (1991) On Obtaining Daily Climatological Values from Monthly Means. J Clim 4(3):365–368. doi:10.1175/1520-0442(1991)004<0365:OODCVF>2.0.CO;2

Lüdeke MKB, Badeck FW, Otto RD, Häger C, Dönges S, Kindermann J, Würth G, Lang T, Jäkel U, Klaudius A, Ramge P, Habermehl S, Kohlmaier GH (1994) The Frankfurt Biosphere Model: A global process-oriented model of seasonal and long-term CO2 exchange between terrestrial ecosystems and the atmosphere. I. Model description and illustrative results for cold deciduous and boreal forests. Clim Res 4(2):143-166. doi:10.3354/cr004143

Prentice IC, Cramer W, Harrison SP, Leemans R, Monserud RA, Solomon AM (1992) A Global Biome Model Based on Plant Physiology and Dominance, Soil Properties and Climate. J Biogeogr 19(2):117–134. doi:10.2307/2845499

Examples

# Loading mandatory data for the Example 'Climate Normal Grid'
data(inp_exClnrGrid)
inp_exClnrGrid <- lapply(inp_exClnrGrid, crop, extent(20.15, 20.25, 46.25, 46.35))

# Designate the biome type (using the related bioclimatic indices), with default settings,
# at a grid cell near Szeged, Hungary (46.3N, 20.2E) (for the normal period 1981-2010)
with(inp_exClnrGrid, {
year <- trunc(mean(seq(1981, 2010)))
rs.BIOME <- cliBIOMEGrid(temp, prec, bsdf, elv, sc.year = year, verbose = TRUE)
rs.BIOME
})

Vegetation Classifier Using the BIOME Model

Description

Calculates the values of bioclimatic indices used in the BIOME model developed by Prentice et al. (1992), and designates the biome type using these values, for a given geographical location (latitude and elevation) and year/epoch, by using the monthly time series of temperature, precipitation and relative sunshine duration.

Usage

cliBIOMEPoints(
  temp,
  prec,
  bsdf,
  lat,
  elv,
  year = 2000,
  MSMC = 150,
  aprchTEMP = c("hip", "tsi", "const"),
  aprchPREC = c("tsi", "hip", "const"),
  aprchBSDF = c("hip", "const"),
  dvTEMP = rep(0.7, 12),
  dvPREC = rep(0.7, 12),
  verbose = FALSE
)

Arguments

temp

'numeric' R object with one-year time series of monthly mean air temperature (in °C)

prec

'numeric' R object with one-year time series of monthly precipitation sum (in mm)

bsdf

'numeric' R object with one-year time series of monthly mean relative sunshine duration (dimensionless)

lat

'numeric' vector with the latitude coordinates (in decimal degrees)

elv

'numeric' vector with the elevation values (in meters above sea level)

year

'numeric' vector with values of the year (using astronomical year numbering)

MSMC

'numeric' vector with values of the maximum soil moisture capacity (aka 'bucket size') (in mm)

aprchTEMP

'character' vector of length 1 that indicates the scheme used to generate daily values of the daily mean air temperature for a specific year. Valid values are as follows:
(a) 'hip' - this scheme applies the mean-preserving 'harmonic' interpolation method of Epstein (1991) to the values of monthly mean air temperature in order to generate daily values;
(b) 'tsi' - this scheme uses an iterative interpolation technique (Lüdeke et al. 1994) to time series of the monthly mean air temperature, in order to generate a synthetic time series of the selected meteorological variable at a temporal resolution that is higher than the daily scale; finally, this synthetic time series is upscaled to a daily resolution;
(c) 'const' - this scheme is assumed that values of the daily mean air temperature are constant within each month.

aprchPREC

'character' vector of length 1 that indicates the scheme to generate daily values of the daily precipitation sum. Valid values are as follows:
(a) 'tsi' - this scheme uses an iterative interpolation technique (Lüdeke et al. 1994) to time series of the monthly mean precipitation intensity, in order to generate a synthetic time series of the selected meteorological variable at a temporal resolution that is higher than the daily scale; finally, this synthetic time series is upscaled to a daily resolution;
(b) 'hip' - this scheme applies the mean-preserving 'harmonic' interpolation method of Epstein (1991) to the values of monthly mean precipitation intensity in order to generate daily values;
(c) 'const' - this scheme is assumed that values of the daily precipitation sum are constant within each month (the monthly precipitation sum is divided equally across each day of the month).

aprchBSDF

'character' vector of length 1 that indicates the scheme used to generate daily values of the daily fractional sunshine duration for a specific year. Valid values are as follows:
(a) 'hip' - this scheme applies the mean-preserving 'harmonic' interpolation method of Epstein (1991) to the values of monthly mean relative sunshine duration in order to generate daily values;
(b) 'const' - this scheme is assumed that values of the daily relative sunshine duration are constant within each month.

dvTEMP

'numeric' vector of length 12 with monthly values of the damping variable for the air temperature data.

dvPREC

'numeric' vector of length 12 with monthly values of the damping variable for the precipitation data.

verbose

'logical' scalar that indicates whether or not values of the bioclimatic indices used should be added to the output.

Details

To classify vegetation, the BIOME model developed by Prentice et al. (1992) uses the values of the following 5 bioclimatic indices:

  • tc: Mean Temperature of the Coldest Month (in °C)

  • tw: Mean Temperature of the Warmest Month (in °C)

  • gdd5: Growing Degree-Days on 5°C base (in °C day)

  • gdd0: Growing Degree-Days on 0°C base (in °C day)

  • ptc: Priestley–Taylor Coefficient (dimensionless)

For details about calculating bioclimatic indices, see the function cliBioCliIdxPoints. The Priestley–Taylor coefficient (ptc, dimensionless) is exceptional because its computation requires a simulation of evapotranspiration at daily time step via the implementation of the SPLASH algorithm (Davis et al. 2017) (see dlyEngWtrFluxPoints). The application of the SPLASH algorithm requires, among other things, one-year time series of the climate variables at daily scale, which are generated from average monthly values using the function dlyWeaGenPoints.
The designation of the biome type is implemented as a two-step procedure. First, the presence of each plant functional type (PFT) is estimated under the given climatic conditions. Subsequently, the biome type is designated by combining PFTs occurring at the maximal dominance level with each other (see Table 5 in Prentice et al. (1992)). Each PFT is described by constraints of bioclimatic variables associated with their climatic tolerances and requirements (see Table 1 in Prentice et al. (1992)). In the initial version of the BIOME model, a total of 17 biome types are distinguished (see vegClsNumCodes).

Value

Depending on the setting, a data frame with one or more columns where the biome types are stored in the last (character) column, while the additional columns contain the values of bioclimatic indices used. The abbreviations of biome types can be found in the data frame vegClsNumCodes. If verbose = FALSE, the return object is a one-column data frame with the biome types.

Note

As with any function with a point mode, a set of basic input data is defined here. In this case, they are as follows: 'temp' (one-year time series of monthly mean air temperature), 'prec' (one-year time series of monthly precipitation sum), and 'bsdf' (one-year time series of monthly mean relative sunshine duration). The objects 'temp', 'prec' and 'bsdf' must be either vectors of length 12 or 12-column matrices. The first dimensions of these matrices have to be the same length. The function automatically converts vectors into single-row matrices during the error handling, and then uses these matrices. The first dimensions of these matrices determines the number of rows in the result matrix. In the case of arguments that do not affect the course of the calculation procedure or the structure of the return object, scalar values (i.e., 'numeric' vector of length 1) may also be allowed. In this case, they are as follows: 'lat' (latitude coordinates in decimal degrees), 'elv' (elevation in meters above sea level), 'year' (year using astronomical year numbering), and 'MSMC' ('bucket size' in mm). These scalars are converted to vectors by the function during the error handling, and these vectors are applied in the further calculations. If these data are stored in vectors of length at least 2, their length must be the same size of first dimension of the matrices containing the basic data.

References

Davis TW, Prentice IC, Stocker BD, Thomas RT, Whitley RJ, Wang H, Evans BJ, Gallego-Sala AV, Sykes MT, Cramer W (2017) Simple process-led algorithms for simulating habitats (SPLASH v.1.0): robust indices of radiation, evapotranspiration and plant-available moisture. Geosci Model Dev 10(2):689–708. doi:10.5194/gmd-10-689-2017

Epstein ES (1991) On Obtaining Daily Climatological Values from Monthly Means. J Clim 4(3):365–368. doi:10.1175/1520-0442(1991)004<0365:OODCVF>2.0.CO;2

Lüdeke MKB, Badeck FW, Otto RD, Häger C, Dönges S, Kindermann J, Würth G, Lang T, Jäkel U, Klaudius A, Ramge P, Habermehl S, Kohlmaier GH (1994) The Frankfurt Biosphere Model: A global process-oriented model of seasonal and long-term CO2 exchange between terrestrial ecosystems and the atmosphere. I. Model description and illustrative results for cold deciduous and boreal forests. Clim Res 4(2):143-166. doi:10.3354/cr004143

Prentice IC, Cramer W, Harrison SP, Leemans R, Monserud RA, Solomon AM (1992) A Global Biome Model Based on Plant Physiology and Dominance, Soil Properties and Climate. J Biogeogr 19(2):117–134. doi:10.2307/2845499

Examples

# Loading mandatory data for the Example 'Points'
data(inp_exPoints)

# Designate the biome type (using the related biolcimatic indices), with default settings,
# at a grid cell near Szeged, Hungary (46.3N, 20.2E) (for the normal period 1981-2010)
with(inp_exPoints, {
year <- trunc(mean(seq(1981, 2010)))
BIOME <- cliBIOMEPoints(colMeans(temp), colMeans(prec), colMeans(bsdf), lat, elv,
    year = year, verbose = TRUE)
numCode <- which(sapply(vegClsNumCodes$Code.BIOME, identical, BIOME[, "vegCls"]))
cbind(BIOME[,-c(6)], vegClsNumCodes[numCode, c("Name.BIOME", "Code.BIOME")])
})

Estimator for Fraction of Bright Sunshine Duration

Description

Estimates monthly averages for daily fraction of bright sunshine duration, for a given region and year, by using the monthly time series of temperature and precipitation, and the elevation data.

Usage

cliBrtSunDurFrcGrid(
  rs.temp,
  rs.prec,
  rl.elv,
  sc.year = 2000,
  aprchSIM = c("Solar123", "SPLASH"),
  filename = "",
  ...
)

Arguments

rs.temp

multi-layer Raster* object with one-year time series of monthly mean air temperature (in °C)

rs.prec

multi-layer Raster* object with one-year time series of monthly precipitation sum (in mm)

rl.elv

single-layer Raster* object with the elevation values (in meters above sea level)

sc.year

'numeric' scalar with the value of the year (using astronomical year numbering)

aprchSIM

'character' vector of length 1 that indicates the formula used to estimate the value of solar irradiance/irradiation for a specific day. Valid values are as follows:
(a) 'Solar123' - in this approach, first, the mean hourly solar irradiance under cloudless-sky conditions is calculated as proposed by Yin (1997b), with a minor modification, using the daytime means of optical air mass and cosine zenith; the former is computed as recommended by Yin (1997b), while the latter is estimated by using Eq 5 of Yin (1997a); however, in contrast to the original approach, where the solar constant was fixed at 4.9212MJm2hr14.9212 MJ m^{-2} hr^{-1}, according to Yin (1999), its value is corrected by calendar day for the variable ellipticity of the Earth's orbit, by using the scheme of Brock (1981); in the calculations, the values of solar declination and daylength are derived by using the approach of Brock (1981);
(b) 'SPLASH' - in this approach, first, under varying orbital parameters, the daily solar radiation at the top of the atmosphere is calculated (H0H_{0}, Eq 7 in Davis et al. (2017)), and then this value is multiplied by the atmospheric transmittivity to obtain the value of daily surface radiation; in this case as well, cloudless conditions are assumed, i.e., the transmission coefficient is taken into account with an universal value of 0.75, however, its value is modified as a function of elevation, by using the scheme of Allen (1996); the daylength is calculated via Eq 1.6.11 in Duffie and Beckman (1991), using the sunset hour angle (hsh_{s}, Eq 8. in Davis et al. (2017)); finally, the mean hourly surface radiation is derived as the quotient of the daily surface radiation and the daylength.

filename

output filename

...

additional arguments passed on to writeRaster

Details

See cliBrtSunDurFrcPoints.

Value

A 12-layer RasterStack with one-year time series of monthly mean relative sunshine duration.

Note

The objects 'rs.temp' and 'rs.prec' must be 12-layer Raster* objects, while the object 'rl.elv' has to be a single-layer Raster* object. These Raster* objects must have the same bounding box, projection, and resolution. The object 'sc.year' has to be a single integer number.

References

Allen RG (1996) Assessing integrity of weather data for reference evapotranspiration estimation. J Irrig Drain Eng 122(2):97–106. doi:10.1061/(ASCE)0733-9437(1996)122:2(97)

Berger A, Loutre MF (1991) Insolation values for the climate of the last 10 million years. Quat Sci Rev 10(4):297-317. doi:10.1016/0277-3791(91)90033-Q

Brock TD (1981) Calculating solar radiation for ecological studies. Ecol Model 14(1–2):1-19. doi:10.1016/0304-3800(81)90011-9

Davis TW, Prentice IC, Stocker BD, Thomas RT, Whitley RJ, Wang H, Evans BJ, Gallego-Sala AV, Sykes MT, Cramer W (2017) Simple process-led algorithms for simulating habitats (SPLASH v.1.0): robust indices of radiation, evapotranspiration and plant-available moisture. Geosci Model Dev 10(2):689–708. doi:10.5194/gmd-10-689-2017

Duffie JA, Beckman WA (1991) Solar Engineering of Thermal Processes. Second Edition. Wiley-Interscience, New York, NY

Yin X (1997a) Calculating daytime mean relative air mass. Agric For Meteorol 87(2-3):85-90. doi:10.1016/S0168-1923(97)00029-4

Yin X (1997b) Optical Air Mass: Daily Integration and its Applications. Meteorol Atmos Phys 63(3-4):227-233. doi:10.1007/BF01027387

Yin X (1999) Bright Sunshine Duration in Relation to Precipitation, Air Temperature and Geographic Location. Theor Appl Climatol 64(1–2):61–68. doi:10.1007/s007040050111

Examples

# Loading mandatory data for the Example 'Single-Year Grid'
data(inp_exSglyGrid)
inp_exSglyGrid <- lapply(inp_exSglyGrid, crop, extent(20.15, 20.25, 46.25, 46.35))

# Estimate values of the monthly mean relative sunshine duration
# at a grid cell near Szeged, Hungary (46.3N, 20.2E), in the year 2010
with(inp_exSglyGrid, {
rs.bsdf <- cliBrtSunDurFrcGrid(temp, prec, elv, sc.year = 2010)
rs.bsdf
})

Estimator for Fraction of Bright Sunshine Duration

Description

Estimates monthly averages for daily fraction of bright sunshine duration, for a given geographical location (latitude, longitude, and elevation) and year, by using the monthly time series of temperature and precipitation.

Usage

cliBrtSunDurFrcPoints(
  temp,
  prec,
  lat,
  lon,
  elv,
  year = 2000,
  aprchSIM = c("Solar123", "SPLASH")
)

Arguments

temp

'numeric' R object with one-year time series of monthly mean air temperature (in °C)

prec

'numeric' R object with one-year time series of monthly precipitation sum (in mm)

lat

'numeric' vector with the latitude coordinates (in decimal degrees)

lon

'numeric' vector with the longitude coordinates (in decimal degrees)

elv

'numeric' vector with the elevation values (in meters above sea level)

year

'numeric' vector with values of the year (using astronomical year numbering)

aprchSIM

'character' vector of length 1 that indicates the formula used to estimate the value of solar irradiance/irradiation for a specific day. Valid values are as follows:
(a) 'Solar123' - in this approach, first, the mean hourly solar irradiance under cloudless-sky conditions is calculated as proposed by Yin (1997b), with a minor modification, using the daytime means of optical air mass and cosine zenith; the former is computed as recommended by Yin (1997b), while the latter is estimated by using Eq 5 of Yin (1997a); however, in contrast to the original approach, where the solar constant was fixed at 4.9212MJm2hr14.9212 MJ m^{-2} hr^{-1}, according to Yin (1999), its value is corrected by calendar day for the variable ellipticity of the Earth's orbit, by using the scheme of Brock (1981); in the calculations, the values of solar declination and daylength are derived by using the approach of Brock (1981);
(b) 'SPLASH' - in this approach, first, under varying orbital parameters, the daily solar radiation at the top of the atmosphere is calculated (H0H_{0}, Eq 7 in Davis et al. (2017)), and then this value is multiplied by the atmospheric transmittivity to obtain the value of daily surface radiation; in this case as well, cloudless conditions are assumed, i.e., the transmission coefficient is taken into account with an universal value of 0.75, however, its value is modified as a function of elevation, by using the scheme of Allen (1996); the daylength is calculated via Eq 1.6.11 in Duffie and Beckman (1991), using the sunset hour angle (hsh_{s}, Eq 8. in Davis et al. (2017)); finally, the mean hourly surface radiation is derived as the quotient of the daily surface radiation and the daylength.

Details

To estimate the monthly averages of relative sunlight duration, the approach presented by Yin (1999) is implemented here. Many variables in this estimation scheme can be easily and unambiguously determined, but the approach uses two important quantities, the calculation method of which can be chosen here depending on the purpose of the investigations. One of them is the estimated value of the mean hourly solar irradiance under cloudless-sky conditions. This quantity can be estimated in this implementation of the approach with the original method (aprchSIM = 'Solar123') or with the solar radiation model used in the SPLASH algorithm, considering the variability of orbital parameters of the Earth over time (aprchSIM = 'SPLASH'). The latter is recommended for paleo-climatological and paleo-environmental studies. These solar radiation models is also applied to calculate the daylength, whose monthly averages are used to estimate monthly averages of daily potential evapotranspiration (Eqs. A10 and A11 in Yin (1998)).
The procedure proposed by Yin (1999) requires the calculation of several regional factors (see Eq 3.3 in Yin (1999)). Each regional factor is activated as a function of latitude and longitude. However, it is important to note that in this implementation, these factors are activated with the current configuration of continents and islands. Continents and regions are classified using the high-resolution world map of the rworldxtra-package. In checking whether or not a given geographic location can be defined as an island, the high-resolution world map of the rnaturalearth is applied.

Value

A 12-column matrix with monthly averages of relative sunshine duration.

Note

As with any function with a point mode, a set of basic input data is defined here. In this case, they are as follows: 'temp' (one-year time series of monthly mean air temperature), and 'prec' (one-year time series of monthly precipitation sum). The objects 'temp' and 'prec' must be either 12-length vectors or 12-column matrices. The first dimensions of these matrices have to be the same length. The function automatically converts vectors into single-row matrices during the error handling, and then uses these matrices. The first dimensions of these matrices determines the number of rows in the result matrix. In the case of arguments that do not affect the course of the calculation procedure or the structure of the return object, scalar values (i.e., 'numeric' vector of length 1) may also be allowed. In this case, they are as follows: 'lat' (latitude coordinates in decimal degrees), 'lon' (longitude coordinates in decimal degrees), 'elv' (elevation in meters above sea level), and 'year' (year using astronomical year numbering). These scalars are converted to vectors by the function during the error handling, and these vectors are applied in the further calculations. If these data are stored in vectors of length at least 2, their length must be the same size of first dimension of the matrices containing the basic data.

References

Allen RG (1996) Assessing integrity of weather data for reference evapotranspiration estimation. J Irrig Drain Eng 122(2):97–106. doi:10.1061/(ASCE)0733-9437(1996)122:2(97)

Berger A, Loutre MF (1991) Insolation values for the climate of the last 10 million years. Quat Sci Rev 10(4):297-317. doi:10.1016/0277-3791(91)90033-Q

Brock TD (1981) Calculating solar radiation for ecological studies. Ecol Model 14(1–2):1-19. doi:10.1016/0304-3800(81)90011-9

Davis TW, Prentice IC, Stocker BD, Thomas RT, Whitley RJ, Wang H, Evans BJ, Gallego-Sala AV, Sykes MT, Cramer W (2017) Simple process-led algorithms for simulating habitats (SPLASH v.1.0): robust indices of radiation, evapotranspiration and plant-available moisture. Geosci Model Dev 10(2):689–708. doi:10.5194/gmd-10-689-2017

Duffie JA, Beckman WA (1991) Solar Engineering of Thermal Processes. Second Edition. Wiley-Interscience, New York, NY

Yin X (1997a) Calculating daytime mean relative air mass. Agric For Meteorol 87(2-3):85-90. doi:10.1016/S0168-1923(97)00029-4

Yin X (1997b) Optical Air Mass: Daily Integration and its Applications. Meteorol Atmos Phys 63(3-4):227-233. doi:10.1007/BF01027387

Yin X (1998) The Albedo of Vegetated Land Surfaces: Systems Analysis and Mathematical Modeling. Theor Appl Climatol 60(1–4):121–140. doi:10.1007/s007040050038

Yin X (1999) Bright Sunshine Duration in Relation to Precipitation, Air Temperature and Geographic Location. Theor Appl Climatol 64(1–2):61–68. doi:10.1007/s007040050111

Examples

library (graphics)

# Loading mandatory data for the Example 'Points'
data(inp_exPoints)

# Measured and estimated one-year time series of the monthly mean relative sunshine duration,
# at a grid cell near Szeged, Hungary (46.3N, 20.2E), in the year 2010
with(inp_exPoints, {
bsdf01 <- matrix(nrow = 0, ncol = 12, dimnames = list(NULL, month.abb))
bsdf01 <- rbind(bsdf01, "Measured" = bsdf["2010", ])
bsdf01 <- rbind(bsdf01, "Solar123" = cliBrtSunDurFrcPoints(temp["2010", ], prec["2010", ],
    lat, lon, elv, year = 2010))
bsdf01 <- rbind(bsdf01, "SPLASH" = cliBrtSunDurFrcPoints(temp["2010", ], prec["2010", ],
    lat, lon, elv, year = 2010, aprchSIM = "SPLASH"))
cols <- c("black", "green", "blue")
matplot(t(bsdf01), type = "l", lwd = 2, col = cols, xaxt = "n", xlab = "Month",
    ylab = "Average relative sunshine duration (unitless)")
axis(1, at = seq(1, ncol(bsdf01)), labels = colnames(bsdf01))
legend(1, 0.7, legend = rownames(bsdf01), col = cols, lty = 1 : 2, lwd = 2, xpd = TRUE)
})


# Relative root mean square error between measured and estimated values for the 'bsdf',
# at a grid cell near Szeged, Hungary (46.3N, 20.2E), in the period 1981-2010
with(inp_exPoints, {
years <- seq(1981, 2010)
bsdf02 <- cliBrtSunDurFrcPoints(temp, prec, lat, lon, elv, year = years)
rrmse <- function(pre, obs) { (sqrt(mean((pre - obs) ^ 2.)) / mean(obs)) * 100. }
rrmse_bsdf <- sapply(1 : 12, function(i) { rrmse(bsdf02[, i], bsdf[, i])  })
cols <- c("black", "green")
plot(rrmse_bsdf, type = "l", lwd = 2, col = cols, xaxt = "n", xlab = "Month",
    ylab = "Relative root mean square error (%)")
axis(1, at = 1 : 12, labels = month.abb)
})

Forest-Steppe Models

Description

Calculates the values of bioclimatic indices used in forest-steppe models with different theoretical backgrounds, and estimates the presence/absence of 'forest-steppe' ecotone, for a given region and year/epoch, by using the monthly time series of climate variables, and the elevation data.

Usage

cliForestSteppeGrid(
  rs.temp,
  rs.prec,
  rs.bsdf = NULL,
  rl.elv = NULL,
  sc.year = 2000,
  aprchTEMP = c("hip", "tsi", "const"),
  aprchBSDF = c("hip", "const"),
  dvTEMP = rep(0.7, 12),
  verbose = FALSE,
  filename = "",
  ...
)

Arguments

rs.temp

multi-layer Raster* object with one-year time series of monthly mean air temperature (in °C)

rs.prec

multi-layer Raster* object with one-year time series of monthly precipitation sum (in mm)

rs.bsdf

multi-layer Raster* object with one-year time series of monthly mean relative sunshine duration (dimensionless)

rl.elv

single-layer Raster* object with the elevation values (in meters above sea level)

sc.year

'numeric' scalar with the value of the year (using astronomical year numbering)

aprchTEMP

'character' vector of length 1 that indicates the scheme used to generate daily values of the daily mean air temperature for a specific year. Valid values are as follows:
(a) 'hip' - this scheme applies the mean-preserving 'harmonic' interpolation method of Epstein (1991) to the values of monthly mean air temperature in order to generate daily values;
(b) 'tsi' - this scheme uses an iterative interpolation technique (Lüdeke et al. 1994) to time series of the monthly mean air temperature, in order to generate a synthetic time series of the selected meteorological variable at a temporal resolution that is higher than the daily scale; finally, this synthetic time series is upscaled to a daily resolution;
(c) 'const' - this scheme is assumed that values of the daily mean air temperature are constant within each month.

aprchBSDF

'character' vector of length 1 that indicates the scheme used to generate daily values of the daily fractional sunshine duration for a specific year. Valid values are as follows:
(a) 'hip' - this scheme applies the mean-preserving 'harmonic' interpolation method of Epstein (1991) to the values of monthly mean relative sunshine duration in order to generate daily values;
(b) 'const' - this scheme is assumed that values of the daily relative sunshine duration are constant within each month.

dvTEMP

'numeric' vector of length 12 with monthly values of the damping variable for the air temperature data.

verbose

'logical' scalar that indicates whether or not values of the bioclimatic indices used should be added to the output.

filename

output filename

...

additional arguments passed on to writeRaster

Details

See cliForestSteppePoints.

Value

Depending on the settings, a RasterStack with two or more layers where the presence/absence data are stored in layers labelled 'fsp_hlz', 'fsp_fai' and 'fsp_svm', while the additional layers contain the values of bioclimatic indices used. If verbose = FALSE, the return object is a two- or three-layer RasterStack with presence/absence data, depending on the available data.

Note

The objects 'rs.temp', 'rs.prec' and 'rs.bsdf' must be 12-layer Raster* objects, while the object 'rl.elv' has to be a single-layer Raster* object. These Raster* objects must have the same bounding box, projection, and resolution. The object 'sc.year' has to be a single integer number.

References

Epstein ES (1991) On Obtaining Daily Climatological Values from Monthly Means. J Clim 4(3):365–368. doi:10.1175/1520-0442(1991)004<0365:OODCVF>2.0.CO;2

Lüdeke MKB, Badeck FW, Otto RD, Häger C, Dönges S, Kindermann J, Würth G, Lang T, Jäkel U, Klaudius A, Ramge P, Habermehl S, Kohlmaier GH (1994) The Frankfurt Biosphere Model: A global process-oriented model of seasonal and long-term CO2 exchange between terrestrial ecosystems and the atmosphere. I. Model description and illustrative results for cold deciduous and boreal forests. Clim Res 4(2):143-166. doi:10.3354/cr004143

Examples

# Loading mandatory data for the Example 'Climate Normal Grid'
data(inp_exClnrGrid)

# Predict the 'forest-steppe' ecotone (using the related bioclimatic indices),
# with default settings, for Csongrad-Csanad County (for the normal period 1981-2010)
with(inp_exClnrGrid, {
year <- trunc(mean(seq(1981, 2010)))
rs.fsp1 <- cliForestSteppeGrid(temp, prec, verbose = TRUE)
rs.fsp1
})


# Predict the 'forest-steppe' ecotone (using the related bioclimatic indices),
# with default settings, for Csongrad-Csanad County (for the normal period 1981-2010)
with(inp_exClnrGrid, {
year <- trunc(mean(seq(1981, 2010)))
rs.fsp2 <- cliForestSteppeGrid(temp, prec, bsdf, elv, sc.year = year, verbose = TRUE)
rs.fsp2
})

Forest-Steppe Models

Description

Calculates the values of bioclimatic indices used in forest-steppe models with different theoretical backgrounds, and estimates the presence/absence of 'forest-steppe' ecotone, for a given geographical location (latitude and elevation) and year/epoch, by using the monthly time series of climate variables.

Usage

cliForestSteppePoints(
  temp,
  prec,
  bsdf = NULL,
  lat = NULL,
  elv = NULL,
  year = 2000,
  aprchTEMP = c("hip", "tsi", "const"),
  aprchBSDF = c("hip", "const"),
  dvTEMP = rep(0.7, 12),
  verbose = FALSE
)

Arguments

temp

'numeric' R object with one-year time series of monthly mean air temperature (in °C)

prec

'numeric' R object with one-year time series of monthly precipitation sum (in mm)

bsdf

'numeric' R object with one-year time series of monthly mean relative sunshine duration (dimensionless)

lat

'numeric' vector with the latitude coordinates (in decimal degrees)

elv

'numeric' vector with the elevation values (in meters above sea level)

year

'numeric' vector with values of the year (using astronomical year numbering)

aprchTEMP

'character' vector of length 1 that indicates the scheme used to generate daily values of the daily mean air temperature for a specific year. Valid values are as follows:
(a) 'hip' - this scheme applies the mean-preserving 'harmonic' interpolation method of Epstein (1991) to the values of monthly mean air temperature in order to generate daily values;
(b) 'tsi' - this scheme uses an iterative interpolation technique (Lüdeke et al. 1994) to time series of the monthly mean air temperature, in order to generate a synthetic time series of the selected meteorological variable at a temporal resolution that is higher than the daily scale; finally, this synthetic time series is upscaled to a daily resolution;
(c) 'const' - this scheme is assumed that values of the daily mean air temperature are constant within each month.

aprchBSDF

'character' vector of length 1 that indicates the scheme used to generate daily values of the daily fractional sunshine duration for a specific year. Valid values are as follows:
(a) 'hip' - this scheme applies the mean-preserving 'harmonic' interpolation method of Epstein (1991) to the values of monthly mean relative sunshine duration in order to generate daily values;
(b) 'const' - this scheme is assumed that values of the daily relative sunshine duration are constant within each month.

dvTEMP

'numeric' vector of length 12 with monthly values of the damping variable for the air temperature data.

verbose

'logical' scalar that indicates whether or not values of the bioclimatic indices used should be added to the output.

Details

Here, three forest-steppe models with different theoretical backgrounds are implemented:

  • fsp_hlz: A modified variant of the widely used Holdridge life zone (HLZ) system (see for the basic concept Holdridge 1947, 1967; for a proposed variant Szelepcsényi et al. 2014).

  • fsp_fai: A clarified version of the forestry climate classification (see for the basic concept Führer et al. 2011; for a proposed variant Mátyás et al. 2018)

  • fsp_svm: An initial version of the Siberian Vegetation Model (see Monserud et al. 1993)

The HLZ system classifies the vegetation type based on the distance from the ideal (theoretical) point in the 3-dimensional space of the following bioclimatic indices:

  • abt: Mean Annual Biotemperature (Eq 1 in Szelepcsényi et al. (2014); in °C)

  • tap: Total Annual Precipitation (in mm)

  • per: Potential Evapotranspiration Ratio (Eq 4 in Szelepcsényi et al. (2014); dimensionless)

The plotting of thresholds of the above-mentioned bioclimatic indices in the HLZ chart leads to emerge a set of hexagons and triangles. The hexagons indicate the so-called core HLZ types, while the so-called transitional HLZ types are circumscribed by equilateral triangles in the HLZ chart (see Szelepcsényi et al. 2014). However, in contrast to this study, here, the transitional types are defined as separate zones designated by the centres of the triangles. As a result, hexagons appear around the triangles in the HLZ chart, and in parallel, the size of the hexagons denoting the core types also decreases. Thus, the size of the core and transitional types are the same in this approach. During the classification, all forest-steppe types designated by Szelepcsényi et al. (2014) (and redefined by us) are aggregated into one class.
The forestry climate classification developed by Führer et al. (2011) was reworked by Mátyás et al. (2018). In the context of assessing the effects of future climate change, the 'forest-steppe' climate class was introduced in the model. In the work of Mátyás et al. (2018), this type is characterized by the Forestry Aridity Index (fai, dimensionless) values between 7.25 and 8. This definition is used here.
The Siberian Vegetation Model (Monserud et al. 1993) defines numerous types of forest-steppe on the basis of values of the Growing Degree-Days above 5°C (gdd5, in °C day), the Budyko's Dryness Index (bdi, dimensionless), and the Condrad's Continentality Index (cci, in per cent). Here, all such ecotone types are aggregated into one class, in order to estimate the presence/absence of the ‘forest-steppe’ ecotone.

Value

Depending on the setting, a data frame with three or more columns where the presence/absence data are stored in the last three columns labelled 'fsp_hlz', 'fsp_fai' and 'fsp_svm', while the additional columns contain the values of bioclimatic indices used. If verbose = FALSE, the return object is a two- or three-column data frame with the presence/absence data, depending on the available data.

Note

As with any function with a point mode, a set of basic input data is defined here. In this case, they are as follows: 'temp' (one-year time series of monthly mean air temperature), 'prec' (one-year time series of monthly precipitation sum), and 'bsdf' (one-year time series of monthly mean relative sunshine duration). The objects 'temp', 'prec' and 'bsdf' must be either vectors of length 12 or 12-column matrices. The first dimensions of these matrices have to be the same length. The function automatically converts vectors into single-row matrices during the error handling, and then uses these matrices. The first dimensions of these matrices determines the number of rows in the result matrix. In the case of arguments that do not affect the course of the calculation procedure or the structure of the return object, scalar values (i.e., 'numeric' vector of length 1) may also be allowed. In this case, they are as follows: 'lat' (latitude coordinates in decimal degrees), 'elv' (elevation in meters above sea level), and 'year' (year using astronomical year numbering). These scalars are converted to vectors by the function during the error handling, and these vectors are applied in the further calculations. If these data are stored in vectors of length at least 2, their length must be the same size of first dimension of the matrices containing the basic data.

References

Epstein ES (1991) On Obtaining Daily Climatological Values from Monthly Means. J Clim 4(3):365–368. doi:10.1175/1520-0442(1991)004<0365:OODCVF>2.0.CO;2

Führer E, Horváth L, Jagodics A, Machon A, Szabados I (2011) Application of a new aridity index in Hungarian forestry practice. Időjárás 115(3):205–216

Holdridge LR (1947) Determination of World Plant Formations From Simple Climatic Data. Science 105(2727):367–368. doi:10.1126/science.105.2727.367

Holdridge LR (1967) Life zone ecology. Tropical Science Center, San Jose, Costa Rica

Lüdeke MKB, Badeck FW, Otto RD, Häger C, Dönges S, Kindermann J, Würth G, Lang T, Jäkel U, Klaudius A, Ramge P, Habermehl S, Kohlmaier GH (1994) The Frankfurt Biosphere Model: A global process-oriented model of seasonal and long-term CO2 exchange between terrestrial ecosystems and the atmosphere. I. Model description and illustrative results for cold deciduous and boreal forests. Clim Res 4(2):143-166. doi:10.3354/cr004143

Mátyás Cs, Berki I, Bidló A, Csóka Gy, Czimber K, Führer E, Gálos B, Gribovszki Z, Illés G, Hirka A, Somogyi Z (2018) Sustainability of Forest Cover under Climate Change on the Temperate-Continental Xeric Limits. Forests 9(8):489. doi:10.3390/f9080489

Monserud RA, Denissenko OV, Tchebakova NM (1993) Comparison of Siberian paleovegetation to current and future vegetation under climate change. Clim Res 3(3):143–159. doi:10.3354/cr003143

Szelepcsényi Z, Breuer H, Sümegi P (2014) The climate of Carpathian Region in the 20th century based on the original and modified Holdridge life zone system. Cent Eur J Geosci 6(3):293–307. doi:10.2478/s13533-012-0189-5

Examples

# Loading mandatory data for the Example 'Points'
data(inp_exPoints)

# Predict the 'forest-steppe' ecotone (using the related bioclimatic indices),
# with default settings, at a grid cell near Szeged, Hungary (46.3N, 20.2E)
# (for the normal period 1981-2010)
with(inp_exPoints, {
year <- trunc(mean(seq(1981, 2010)))
fsp <- cliForestSteppePoints(colMeans(temp), colMeans(prec), colMeans(bsdf), lat, elv,
    year = year, verbose = TRUE)
fsp
})

Vegetation Classifier Using the HLZ System

Description

Calculates the values of bioclimatic indices used in the Holdridge life zone (HLZ) system (Holdridge 1947, 1967), and designates the HLZ type using these values, for a given region, by using the monthly time series of temperature and precipitation.

Usage

cliHoldridgeGrid(rs.temp, rs.prec, verbose = FALSE, filename = "", ...)

Arguments

rs.temp

multi-layer Raster* object with one-year time series of monthly mean air temperature (in °C)

rs.prec

multi-layer Raster* object with one-year time series of monthly precipitation sum (in mm)

verbose

'logical' scalar that indicates whether or not values of the bioclimatic indices used should be added to the output.

filename

output filename

...

additional arguments passed on to writeRaster

Details

See cliHoldridgePoints.

Value

Depending on the setting, a RasterStack with one or more layers where the numeric integers encoding the HLZ type are stored at the last layer, while the additional layers contain the values of bioclimatic indices used. The meaning of integers is given in the data frame vegClsNumCodes. If verbose = FALSE, the return object is a single-layer RasterStack with numeric integers encoding the HLZ type.

Note

The objects 'rs.temp' and 'rs.prec' must be 12-layer Raster* objects. These Raster* objects must have the same bounding box, projection, and resolution.

References

Holdridge LR (1947) Determination of World Plant Formations From Simple Climatic Data. Science 105(2727):367–368. doi:10.1126/science.105.2727.367

Holdridge LR (1967) Life zone ecology. Tropical Science Center, San Jose, Costa Rica

Examples

# Loading mandatory data for the Example 'Climate Normal Grid'
data(inp_exClnrGrid)

# Designate the HLZ types (using the related bioclimatic indices)
# for Csongrad-Csanad County (for the normal period 1981-2010)
with(inp_exClnrGrid, {
rs.HLZ <- cliHoldridgeGrid(temp, prec, verbose = TRUE)
rs.HLZ
})

Vegetation Classifier Using the HLZ System

Description

Calculates the values of bioclimatic indices used in the Holdridge life zone (HLZ) system (Holdridge 1947, 1967), and designates the HLZ type using these values, by using the monthly time series of temperature and precipitation.

Usage

cliHoldridgePoints(temp, prec, verbose = FALSE)

Arguments

temp

'numeric' R object with one-year time series of monthly mean air temperature (in °C)

prec

'numeric' R object with one-year time series of monthly precipitation sum (in mm)

verbose

'logical' scalar that indicates whether or not values of the bioclimatic indices used should be added to the output.

Details

To classify vegetation, the HLZ system developed by Holdridge (1947, 1967) uses the values of the following 3 bioclimatic indices:

  • abt: Mean Annual Biotemperature (Eq 1 in Szelepcsényi et al. (2014); in °C)

  • tap: Total Annual Precipitation (in mm)

  • per: Potential Evapotranspiration Ratio (Eq 4 in Szelepcsényi et al. (2014); dimensionless)

For details about calculating bioclimatic indices, see the function cliBioCliIdxPoints.
The HLZ system classifies the vegetation type based on the distance from the ideal (theoretical) point in the 3-dimensional space of bioclimatic indices. Numerous variants of the HLZ system are known (e.g., Henderson-Sellers 1994; Yates et al. 2000). Here, one of its most widely used versions ('version with no altitudinal belts') is implemented, in accordance with works of Szelepcsényi et al. (2014, 2018). In this version, a total of 39 HLZ types are distinguished (see vegClsNumCodes).

Value

Depending on the setting, a data frame with one or more columns where the HLZ types are stored in the last (character) column, while the additional columns contain the values of bioclimatic indices used. The abbreviations of HLZ types can be found in the data frame vegClsNumCodes. If verbose = FALSE, the return object is a one-column data frame with the HLZ types.

Note

As with any function with a point mode, a set of basic input data is defined here. In this case, they are as follows: 'temp' (one-year time series of monthly mean air temperature), and 'prec' (one-year time series of monthly precipitation sum). The objects 'temp' and 'pre' must be either vectors of length 12 or 12-column matrices. The first dimensions of these matrices have to be the same length. The function automatically converts vectors into single-row matrices during the error handling, and then uses these matrices. The first dimensions of these matrices determines the number of rows in the result matrix.

References

Henderson-Sellers A (1994) Global terrestrial vegetation ‘prediction’: the use and abuse of climate and application models. Prog Phys Geogr 18(2):209–246. doi:10.1177/030913339401800203

Holdridge LR (1947) Determination of World Plant Formations From Simple Climatic Data. Science 105(2727):367–368. doi:10.1126/science.105.2727.367

Holdridge LR (1967) Life zone ecology. Tropical Science Center, San Jose, Costa Rica

Szelepcsényi Z, Breuer H, Sümegi P (2014) The climate of Carpathian Region in the 20th century based on the original and modified Holdridge life zone system. Cent Eur J Geosci 6(3):293–307. doi:10.2478/s13533-012-0189-5

Szelepcsényi Z, Breuer H, Kis A, Pongrácz R, Sümegi P (2018) Assessment of projected climate change in the Carpathian Region using the Holdridge life zone system. Theor Appl Climatol 131(1–2):593–610. doi:10.1007/s00704-016-1987-3

Yates DN, Kittel TGF, Cannon RF (2000) Comparing the Correlative Holdridge Model to Mechanistic Biogeographical Models for Assessing Vegetation Distribution Response to Climatic Change. Clim Chang 44(1–2):59–87. doi:10.1023/A:1005495908758

Examples

# Loading mandatory data for the Example 'Points'
data(inp_exPoints)

# Designate the HLZ type (using the related bioclimatic indices),
# at a grid cell near Szeged, Hungary (46.3N, 20.2E) (for the normal period 1981-2010)
with(inp_exPoints, {
HLZ <- cliHoldridgePoints(colMeans(temp), colMeans(prec), verbose = TRUE)
numCode <- which(sapply(vegClsNumCodes$Code.HLZ, identical, HLZ[, "vegCls"]))
cbind(HLZ[,-c(4)], vegClsNumCodes[numCode, c("Name.HLZ", "Code.HLZ")])
})

Vegetation Classifier Using the KGC System

Description

Calculates the values of bioclimatic indices used in the Köppen-Geiger classification (KGC) system (Köppen 1936), and designates the KGC type using these values, by using the monthly time series of temperature and precipitation. The classification scheme is based on the procedure described by Köppen (1936) and follows the modifications described by Peel et al. (2007).

Usage

cliKoppenGrid(rs.temp, rs.prec, verbose = FALSE, filename = "", ...)

Arguments

rs.temp

multi-layer Raster* object with one-year time series of monthly mean air temperature (in °C)

rs.prec

multi-layer Raster* object with one-year time series of monthly precipitation sum (in mm)

verbose

'logical' scalar that indicates whether or not values of the bioclimatic indices used should be added to the output.

filename

output filename

...

additional arguments passed on to writeRaster

Details

See cliKoppenPoints.

Value

Depending on the setting, a RasterStack with one or more layers where the numeric integers encoding the KGC type are stored at the last layer, while the additional layers contain the values of bioclimatic indices used. The meaning of integers is given in the data frame vegClsNumCodes. If verbose = FALSE, the return object is a single-layer RasterStack with numeric integers encoding the KGC type.

Note

The objects 'rs.temp' and 'rs.prec' must be 12-layer Raster* objects. These Raster* objects must have the same bounding box, projection, and resolution.

References

Köppen W (1936) Das geographische System der Klimate. In: Köppen W, Geiger R (eds) Handbuch der Klimatologie. Verlag von Gebrüder Borntraeger, Berlin, Germany, pp 1–44

Peel MC, Finlayson BL, McMahon TA (2007) Updated world map of the Köppen-Geiger climate classification. Hydrol Earth Syst Sci 11(5):1633–1644. doi:10.5194/hess-11-1633-2007

Examples

# Loading mandatory data for the Example 'Climate Normal Grid'
data(inp_exClnrGrid)

# Designate the KGC types (using the related bioclimatic indices)
# for Csongrad-Csanad County (for the normal period 1981-2010)
with(inp_exClnrGrid, {
rs.KGC <- cliKoppenGrid(temp, prec, verbose = TRUE)
rs.KGC
})

Vegetation Classifier Using the KGC System

Description

Calculates the values of bioclimatic indices used in the Köppen-Geiger classification (KGC) system (Köppen 1936), and designates the KGC type using these values, by using the monthly time series of temperature and precipitation. The classification scheme is based on the procedure described by Köppen (1936) and follows the modifications described by Peel et al. (2007).

Usage

cliKoppenPoints(temp, prec, verbose = FALSE)

Arguments

temp

'numeric' R object with one-year time series of monthly mean air temperature (in °C)

prec

'numeric' R object with one-year time series of monthly precipitation sum (in mm)

verbose

'logical' scalar that indicates whether or not values of the bioclimatic indices used should be added to the output.

Details

To classify vegetation, the KGC system developed by Köppen (1936) and fine-tuned by Peel. et al. (2007) uses the values of the following 13 bioclimatic indices:

  • tap: Total Annual Precipitation (in mm)

  • mat: Mean Annual Temperature (in °C)

  • tw: Mean Temperature of the Warmest Month (in °C)

  • tc: Mean Temperature of the Coldest Month (in °C)

  • tm10: Number of Months with Mean Temperature above 10°C (dimensionless)

  • pdry: Precipitation Sum of the Driest Month (in mm)

  • psdry: Precipitation Sum of the Driest Month in the Summer Half-Year (in mm)

  • pwdry: Precipitation Sum of the Driest Month in the Winter Half-Year (in mm)

  • pswet: Precipitation Sum of the Wettest Month in the Summer Half-Year (in mm)

  • pwwet: Precipitation Sum of the Wettest Month in the Winter Half-Year (in mm)

  • ps: Precipitation Sum of the Summer Half-Year (in mm)

  • pw: Precipitation Sum of the Winter Half-Year (in mm)

  • pth: Dryness Threshold (in mm)

For details about calculating bioclimatic indices, see the function cliBioCliIdxPoints. Since pth is more of a technical measure, it is not calculated by the function cliBioCliIdxPoints. The value of pth depends on mean annual temperature and annual cycle of precipitation: pth = 2 * mat if >70 in winter half-year, (b) pth = 2 * mat + 28 if >70 otherwise pth = 2 * mat + 14. For this index, the same definitions are used for seasons as in the function cliBioCliIdxPoints, i.e., summer (winter) half-year is defined as the warmer (cooler) six month period of AMJJAS (from April to September) and ONDJFM (from October to March).
Numerous variants of the Köppen classification system are known (e.g., Köppen-Geiger classification: Köppen 1936; Köppen-Trewartha classification: Trewartha and Horn 1980). Here, one of the most widely used versions of the Köppen-Geiger classification system is implemented, in accordance with works of Peel et al. (2007) and Beck et al. (2018). This classification system is the same as that presented by Köppen (1936) with three differences. First, classes 'C' (temperate) and 'D' (cold) are distinguished using a 0°C threshold instead of a -3°C threshold, following Russell (1931). Second, the sub-classes of the class 'B' (arid) are identified depending on whether 70 half-year. Third, the sub-classes 's' (dry summer) and 'w' (dry winter) within the classes 'C' and 'D' are made mutually exclusive by assigning 's' when more precipitation falls in winter than in summer and assigning 'w' otherwise. In this version, a total of 30 KGC types are distinguished (see vegClsNumCodes).

Value

Depending on the setting, a data frame with one or more columns where the KGC types are stored in the last (character) column, while the additional columns contain the values of bioclimatic indices used. The abbreviations of KGC types can be found in the data frame vegClsNumCodes. If verbose = FALSE, the return object is a one-column data frame with the KGC types.

Note

As with any function with a point mode, a set of basic input data is defined here. In this case, they are as follows: 'temp' (one-year time series of monthly mean air temperature), and 'prec' (one-year time series of monthly precipitation sum). The objects 'temp' and 'pre' must be either vectors of length 12 or 12-column matrices. The first dimensions of these matrices have to be the same length. The function automatically converts vectors into single-row matrices during the error handling, and then uses these matrices. The first dimensions of these matrices determines the number of rows in the result matrix.

References

Beck HE, Zimmermann NE, McVicar TR, Vergopolan N, Berg A, Wood EF (2018) Present and future Köppen-Geiger climate classification maps at 1-km resolution. Sci Data 5:180214. doi:10.1038/sdata.2018.214

Köppen W (1936) Das geographische System der Klimate. In: Köppen W, Geiger R (eds) Handbuch der Klimatologie. Verlag von Gebrüder Borntraeger, Berlin, Germany, pp 1–44

Peel MC, Finlayson BL, McMahon TA (2007) Updated world map of the Köppen-Geiger climate classification. Hydrol Earth Syst Sci 11(5):1633–1644. doi:10.5194/hess-11-1633-2007

Russell RJ (1931) Dry Climates of the United States: I. Climatic Map. University of California, Publications in Geography 5:1–41

Trewartha GT, Horn LH (1980) An Introduction to Climate. Fifth Edition. McGraw-Hill, New York, NY

Examples

# Loading mandatory data for the Example 'Points'
data(inp_exPoints)

# Designate the KGC type (using the related bioclimatic indices),
# at a grid cell near Szeged, Hungary (46.3N, 20.2E) (for the normal period 1981-2010)
with(inp_exPoints, {
KGC <- cliKoppenPoints(colMeans(temp), colMeans(prec), verbose = TRUE)
numCode <- which(sapply(vegClsNumCodes$Code.KGC, identical, KGC[, "vegCls"]))
cbind(KGC[,-c(14)], vegClsNumCodes[numCode, c("Name.KGC", "Code.KGC")])
})

Estimator for Daily Amounts of Energy and Water Fluxes

Description

Estimates the daily amounts of energy and water fluxes and the associated monthly bioclimatic variables, by using the SPLASH algorithm described by Davis et al. (2017). This version of the algorithm is directly suitable for paleoclimate applications because it takes into account the time variability of the Earth's orbital elements, and thus changes in the seasonal cycle of insolation.

Usage

dlyEngWtrFluxPoints(
  TEMP,
  PREC,
  BSDF,
  lat,
  elv,
  year = 2000,
  MSMC = 150,
  daily = TRUE,
  mlyOpVar = c("EET", "PET", "AET")
)

Arguments

TEMP

'numeric' R object with one-year time series of daily mean air temperature (in °C)

PREC

'numeric' R object with one-year time series of daily precipitation sum (in mm)

BSDF

'numeric' R object with one-year time series of daily fractional sunshine duration (dimensionless)

lat

'numeric' vector with the latitude coordinates (in decimal degrees)

elv

'numeric' vector with the elevation values (in meters above sea level)

year

'numeric' vector with values of the year (using astronomical year numbering)

MSMC

'numeric' vector with values of the maximum soil moisture capacity (aka 'bucket size') (in mm)

daily

'logical' scalar that indicates whether or not daily values should also be computed.

mlyOpVar

'character' vector of at least one length that indicates the bioclimatic variable(s) for which monthly time series are to be calculated. Valid values are as follows:
(a) 'EET' - monthly amounts of the equilibrium evapotranspiration (in mm);
(b) 'PET' - monthly amounts of the potential evapotranspiration (in mm);
(c) 'AET' - monthly amounts of the actual evapotranspiration (in mm);
(d) 'PTC' - monthly values of the Priestley–Taylor coefficient (dimensionless);
(e) 'CWD' - monthly values of the climatic water deficit (in mm).

Details

To estimate the daily radiation, evapotranspiration and soil moisture for an equilibrium year, the SPLASH algorithm described by Davis et al. (2017) is implemented with two slight amendments. In accordance with Davis et al. (2017), daily insolation (incoming solar radiation at the top of the atmosphere) is estimated by using Eq 1.10.3 in Duffie and Beckman (1991), with the remark that orbital parameters of the Earth are not assumed to be constant. Temporal variability of orbital parameters is considered through the implementation of the procedure as proposed by Berger and Loutre (1991). To simulate seasonal changes in the climatic water balance, the simple 'bucket model' proposed by Cramer and Prentice (1988) is applied in accordance with the SPLASH v.1.0 model. In this model, the daily value of actual evapotranspiration is estimated as an the analytical integral of the minimum of the instantaneous evaporative supply and demand rates over a single day (see Eq 27 in Davis et al. (2017)). The SPLASH algorithm is modified in a further aspect: in the 'bucket model', the 'bucket size' is freely changeable, i.e., it can be specified regionally. Its value is set to 150 mm by default, in accordance with Cramer and Prentice (1988).
The function provides daily estimates for the following key quantities: daily insolation ('H_0_J.m2.dy1'), daily net surface radiation ('H_np_J.m2.dy1', and 'H_nn_J.m2.dy1'); photosynthetic photon flux density ('PPFD_mol.m2.dy1'); daily condensation, soil moisture and runoff ('CN_mm.dy1', 'SM_mm.dy1', and 'RO_mm.dy1', respectively); and daily equilibrium, potential, and actual evapotranspiration ('EET_mm.dy1', 'PET_mm.dy1', and 'AET_mm.dy1'). It also integrates daily data for bioclimatic variables relevant to ecoclimatological studies at a monthly timescale: monthly equilibrium, potential and actual evapotranspiration ('EET_mo_mm.mo1', 'PET _mo_mm.mo1', and 'AET_mo_mm.mo1'), monthly Priestley–Taylor coefficient ('PTC_mo'), monthly climatic water deficit ('CWD_mo_mm.mo1').

Value

If daily values are also requested (daily = TRUE), the function returns a list of lists with daily and monthly data. If daily = FALSE, the return object is a list with the monthly values. The character vector 'mlyOpVar' determines for which variables are integrated at monthly scale (for explanations see 'Details'). Daily data is available for the following quantities:

  • H_0_J.m2.dy1: daily solar irradiation (in J m-2)

  • H_np_J.m2.dy1: daily positive (daytime) net surface radiation (in J m-2)

  • H_nn_J.m2.dy1: daily negative (nighttime) net surface radiation (in J m-2)

  • PPFD_mol.m2.dy1: daily photosynthetically active radiation (in mol m-2)

  • CN_mm.dy1: daily condensation (in mm)

  • SM_mm.dy1: daily soil moisture (in mm)

  • RO_mm.dy1: daily runoff (in mm)

  • EET_mm.dy1: daily equilibrium evapotranspiration (in mm)

  • PET_mm.dy1: daily potential evapotranspiration (in mm)

  • AET_mm.dy1: daily actual evapotranspiration (in mm)

Each matrix in the list of daily data consists of 365 or 366 columns, while monthly data are available, of course, as 12-column matrices. The former are accessible in the list 'dly', while the latter can be found in the list labelled as 'mly'.

Note

As with any function with a point mode, a set of basic input data is defined here. In this case, they are as follows: 'TEMP' (one-year time series of daily mean air temperature), 'PREC' (one-year time series of daily precipitation sum), and 'BSDF' (one-year time series of daily mean relative sunshine duration). The objects 'TEMP', 'PREC' and 'BSDF' must be either vectors of length 365 (or 366) or 365-column (or 366-column) matrices. The first dimensions of these matrices have to be the same length. The function automatically converts vectors into single-row matrices during the error handling, and then uses these matrices. The first dimensions of these matrices determines the number of rows in the result matrices. In the case of arguments that do not affect the course of the calculation procedure or the structure of the return object, scalar values (i.e., 'numeric' vector of length 1) may also be allowed. In this case, they are as follows: 'lat' (latitude coordinates in decimal degrees), 'elv' (elevation in meters above sea level), 'year' (year using astronomical year numbering), and 'MSMC' ('bucket size' in mm). These scalars are converted to vectors by the function during the error handling, and these vectors are applied in the further calculations. If these data are stored in vectors of length at least 2, their length must be the same size of first dimension of the matrices containing the basic data.

References

Berger A, Loutre MF (1991) Insolation values for the climate of the last 10 million years. Quat Sci Rev 10(4):297-317. doi:10.1016/0277-3791(91)90033-Q

Cramer W, Prentice IC (1988) Simulation of regional soil moisture deficits on a European scale. Nor J Geogr 42(2-3):149–151. doi:10.1080/00291958808552193

Davis TW, Prentice IC, Stocker BD, Thomas RT, Whitley RJ, Wang H, Evans BJ, Gallego-Sala AV, Sykes MT, Cramer W (2017) Simple process-led algorithms for simulating habitats (SPLASH v.1.0): robust indices of radiation, evapotranspiration and plant-available moisture. Geosci Model Dev 10(2):689–708. doi:10.5194/gmd-10-689-2017

Duffie JA, Beckman WA (1991) Solar Engineering of Thermal Processes. Second Edition. Wiley-Interscience, New York, NY

Examples

library(graphics)

# Loading mandatory data for the Example 'Points'
data(inp_exPoints)

with(inp_exPoints, {
# Estimates the daily amounts of energy and water fluxes with default settings,
# at a grid cell near Szeged, Hungary (46.3N, 20.2E) (for the normal period 1981-2010)
year <- trunc(mean(seq(1981, 2010)))
wea <- dlyWeaGenPoints(colMeans(temp), colMeans(prec), colMeans(bsdf), year = year)
ewf <- dlyEngWtrFluxPoints(wea$TEMP, wea$PREC, wea$BSDF, lat, lon, elv, year = year)

# Check daily energy and water fluxes
opar <- par(no.readonly = TRUE)
par(mfrow = c(4, 1))
var <- list(t(ewf$dly$H_np_J.m2.dy1) * 1e-6, t(ewf$dly$SM_mm.dy1), t(wea$PREC))
lbl <- list(expression(italic(H[N])~(MJ~m^{-2})), expression(italic(SM[n])~(mm)),
    expression(italic(P[n])~(mm)))
at <- list(seq(0, 16, 4), seq(0, 80, 20), seq(0, 4))
txt <- list("(a)", "(b)", "(c)")
for (i in 1 : length(var)) {
  par(mar = c(1, 5, 1, 1))
  plot(var[[i]], type = "l", lwd = 2, xlab = NA, ylab = NA, axes = FALSE)
  axis(side = 1, las = 1, tck = -0.03, labels = NA, at = seq(-60, 720, 30))
  axis(side = 2, las = 1, tck = -0.03, labels = NA, at = at[[i]])
  axis(side = 2, las = 1, lwd = 0, line = -0.4, cex.axis = 1.6, at = at[[i]])
  mtext(side = 2, lbl[[i]], line = 3, cex = 1.1)
  text(-12, max(at[[i]]) / 4, txt[[i]], pos = 4, cex = 1.7)
}
par(mar = c(2, 5, 1, 1))
plot(t(ewf$dly$PET_mm.dy1), type = "l", lwd = 2, xlab = NA, ylab = NA, axes = FALSE,
  ylim = c(0, max(t(ewf$dly$PET_mm.dy1))))
lines(t(ewf$dly$AET_mm.dy1), lty = 2, lwd = 2, col = "green")
axis(side = 1, las = 1, tck = -0.03, labels = NA, at = seq(-60, 720, 30))
axis(side = 1, las = 1, lwd = 0, line = -0.4, at = seq(-60, 720, 30), cex.axis = 1.6)
axis(side = 2, las = 1, tck = -0.03, labels = NA, at = seq(-1, 6, 1))
axis(side = 2, las = 1, lwd = 0, line = -0.4, cex.axis = 1.6, at = seq(-1, 6, 1))
legend("topright", legend = c(expression(italic(E[n]^{q})), expression(italic(E[n]^{a}))),
    col = c("black", "green"), lty = c(1, 2), cex = 1.6, inset = 0.02,
    adj = c(0.5, 0.5), lwd = c(2, 2), horiz = TRUE, bty = "n", seg.len = 1)
mtext(side = 2, expression(italic(E[n])~(mm)), line = 3, cex = 1.1)
text(-12, 1.5, "(d)", pos = 4, cex = 1.7)
par(opar)

# Check monthly water balance quantities
plot(t(ewf$mly$PET_mo_mm.mo1), type = "l", lwd = 2, ylim = c(0, 1.1 * max(ewf$mly$PET_mo_mm.mo1)),
    xlab = NA, ylab = NA, axes = FALSE)
lines(t(ewf$mly$EET_mo_mm.mo1), lty = 1, lwd = 2, col = "green")
lines(t(ewf$mly$AET_mo_mm.mo1), lty = 2, lwd = 2, col = "blue")
box(lwd = 2)
axis(side = 1, las = 1, tck = -0.02, labels = NA, at = seq(1, 12))
axis(side = 1, las = 1, lwd = 0, line = -0.4, labels = month.abb, at = seq(1, 12), cex.axis = 1.2)
axis(side = 2, las = 1, tck = -0.02, labels = NA, at = seq(-20, 200, 20))
axis(side = 2, las = 1, lwd = 0, line = -0.4, at = seq(-20, 200, 20), cex.axis = 1.2)
mtext(side = 2, expression(list(Evapotranspiration, mm~month^{-1})), line = 2, cex = 1.2)
legend("top", legend = c("Potential", "Equilibrium", "Actual"), col = c("black", "green", "blue"),
    lty = c(1, 1, 2), lwd = c(2, 2, 2), inset = 0.01, x.intersp = 1.1, y.intersp = 2.0,
    horiz = TRUE, bty = "n", cex = 1.2)
})

Daily Weather Generator

Description

Generates quasi-daily time series from the monthly mean values of temperature, precipitation and sunshine data.

Usage

dlyWeaGenPoints(
  temp,
  prec,
  bsdf,
  year = 2000,
  aprchTEMP = c("hip", "tsi", "const"),
  aprchPREC = c("tsi", "hip", "const"),
  aprchBSDF = c("hip", "const"),
  dvTEMP = rep(0.7, 12),
  dvPREC = rep(0.7, 12),
  argCkd = FALSE
)

Arguments

temp

'numeric' R object with one-year time series of monthly mean air temperature (in °C)

prec

'numeric' R object with one-year time series of monthly precipitation sum (in mm)

bsdf

'numeric' R object with one-year time series of monthly mean relative sunshine duration (dimensionless)

year

'numeric' vector with values of the year (using astronomical year numbering)

aprchTEMP

'character' vector of length 1 that indicates the scheme used to generate daily values of the daily mean air temperature for a specific year. Valid values are as follows:
(a) 'hip' - this scheme applies the mean-preserving 'harmonic' interpolation method of Epstein (1991) to the values of monthly mean air temperature in order to generate daily values;
(b) 'tsi' - this scheme uses an iterative interpolation technique (Lüdeke et al. 1994) to time series of the monthly mean air temperature, in order to generate a synthetic time series of the selected meteorological variable at a temporal resolution that is higher than the daily scale; finally, this synthetic time series is upscaled to a daily resolution;
(c) 'const' - this scheme is assumed that values of the daily mean air temperature are constant within each month.

aprchPREC

'character' vector of length 1 that indicates the scheme to generate daily values of the daily precipitation sum. Valid values are as follows:
(a) 'tsi' - this scheme uses an iterative interpolation technique (Lüdeke et al. 1994) to time series of the monthly mean precipitation intensity, in order to generate a synthetic time series of the selected meteorological variable at a temporal resolution that is higher than the daily scale; finally, this synthetic time series is upscaled to a daily resolution;
(b) 'hip' - this scheme applies the mean-preserving 'harmonic' interpolation method of Epstein (1991) to the values of monthly mean precipitation intensity in order to generate daily values;
(c) 'const' - this scheme is assumed that values of the daily precipitation sum are constant within each month (the monthly precipitation sum is divided equally across each day of the month).

aprchBSDF

'character' vector of length 1 that indicates the scheme used to generate daily values of the daily fractional sunshine duration for a specific year. Valid values are as follows:
(a) 'hip' - this scheme applies the mean-preserving 'harmonic' interpolation method of Epstein (1991) to the values of monthly mean relative sunshine duration in order to generate daily values;
(b) 'const' - this scheme is assumed that values of the daily relative sunshine duration are constant within each month.

dvTEMP

'numeric' vector of length 12 with monthly values of the damping variable for the air temperature data.

dvPREC

'numeric' vector of length 12 with monthly values of the damping variable for the precipitation data.

argCkd

'logical' scalar that indicates whether or not the checking and correction of arguments can be omitted.

Details

For relative sunshine duration and air temperature, it is recommended the 'harmonic' interpolation technique ('hip') described by Epstein (1991), with a correction of physically impossible values. This technique can also be used to values of the mean precipitation intensity, however, in the case of precipitation, the temporal scaling ('tsi') using an iterative interpolation technique described by Lüdeke et al. (1994) is recommended, with a damping variable of 0.7 for each month. The damping variable can be set separately for each month and must be between 0 and 1. This iterative scheme can also be applied to monthly mean data of air temperature. Furthermore, for all three climate variables, it is possible to ignore intra-month variability. For this, the setting 'const' must be used.

Value

A list with three 365- or 366-column matrices that contain quasi-daily time series for the three basic climate variables:

  • TEMP: daily mean air temperature (in °C)

  • PREC: daily precipitation sum (in mm)

  • BSDF: daily fractional sunshine duration (dimensionless)

Note

As with any point function, a set of basic input data is defined here. In this case, they are as follows: 'temp' (one-year time series of monthly mean air temperature), 'prec' (one-year time series of monthly precipitation sum), and 'bsdf' (one-year time series of monthly mean relative sunshine duration.) The objects 'temp', 'prec' and 'bsdf' must be either vectors of length 12 or 12-column matrices. The first dimensions of these matrices have to be the same length. The function automatically converts vectors into single-row matrices during the error handling, and then uses these matrices. The first dimensions of these matrices determines the number of rows in the result matrix. In the case of arguments that do not affect the course of the calculation procedure or the structure of the return object, scalar values (i.e., 'numeric' vector of length 1) may also be allowed. In this case, it is as follow: 'year' (year using astronomical year numbering). This scalar is converted to a vector by the function during the error handling, and this vector is applied in the further calculations. If these data are stored in vectors of length at least 2, their length must be the same size of first dimension of the matrices containing the basic data.

References

Epstein ES (1991) On Obtaining Daily Climatological Values from Monthly Means. J Clim 4(3):365–368. doi:10.1175/1520-0442(1991)004<0365:OODCVF>2.0.CO;2

Lüdeke MKB, Badeck FW, Otto RD, Häger C, Dönges S, Kindermann J, Würth G, Lang T, Jäkel U, Klaudius A, Ramge P, Habermehl S, Kohlmaier GH (1994) The Frankfurt Biosphere Model: A global process-oriented model of seasonal and long-term CO2 exchange between terrestrial ecosystems and the atmosphere. I. Model description and illustrative results for cold deciduous and boreal forests. Clim Res 4(2):143-166. doi:10.3354/cr004143

Examples

library(graphics)

# Loading mandatory data for the Example 'Points'
data(inp_exPoints)

with(inp_exPoints, {
# Generate quasi-daily time series for basic climate variables with default settings,
# at a grid cell near Szeged, Hungary (46.3N, 20.2E) (for the normal period 1981-2010)
year <- trunc(mean(seq(1981, 2010)))
wea01 <- dlyWeaGenPoints(colMeans(temp), colMeans(prec), colMeans(bsdf), year = year)

# Modify the daily weather data generation techniques
# To temperature data, apply the iterative interpolation technique with basic settings
# To precipitation data, change the value of the damping variable, over the whole year
# To sunshine data, assume that its values are constant within each month
wea02 <- dlyWeaGenPoints(colMeans(temp), colMeans(prec), colMeans(bsdf), aprchTEMP = "tsi",
    aprchBSDF = "const", dvPREC = rep(0.6, 12), year = year)

# Check the differences
vars <- c("TEMP", "PREC", "BSDF")
lbls <- list(expression(italic(T[a])~(~degree*C)), expression(italic(P[n])~(mm)),
    expression(italic(S[f])~(unitless)))
ys <- c(20, 2.5, 0.6)
ats <- list(seq(-4, 24, 4), seq(0, 3, 0.5), seq(0., 0.8, 0.2))
cols <- c("black", "green")
opar <- par(no.readonly = TRUE)
par(mfrow = c(3, 1))
for (i in 1 : length(vars)) {
  par(mar = c(2, 5, 1, 1))
  matplot(t(rbind(wea01[[vars[i]]], wea02[[vars[i]]])), type = "l", lwd = 2, col = cols,
      xaxt = "n", xlab = NA, ylab = NA, axes = FALSE)
  axis(side = 1, las = 1, tck = -0.03, labels = NA, at = seq(-60, 720, 30))
  axis(side = 2, las = 1, tck = -0.03, labels = NA, at = ats[[i]])
  axis(side = 2, las = 1, lwd = 0, line = -0.4, cex.axis = 1.6, at = ats[[i]])
  if (i == length(vars)) {
    axis(side = 1, las = 1, lwd = 0, line = -0.4, at = seq(-60, 720, 30), cex.axis = 1.6)
  }
  mtext(side = 2, lbls[[i]], line = 3, cex = 1.1)
  legend(1, ys[i], legend = c("default", "modified"), col = cols, lty = 1 : 2, lwd = 2, xpd = TRUE)
}
par(opar)
})

Mandatory Data for the Example 'Climate Normal Grid'

Description

Data needed to demonstrate the working of functions with a grid mode. Average monthly time series of three measured basic climate variables for the normal period 1981-2010 retrieved from the the CarpatClim database (Spinoni et al. 2015), for Csongrád-Csanád County; supplemented with a digital elevation model. Monthly mean relative sunshine duration has been obtained as a ratio of monthly total of sunshine duration and maximum potential number of sunshine hours under clear-sky conditions. Daylength (accumulated hours of daylight) was calculated via Eq 1.6.11 in Duffie and Beckman (1991), according to the SPLASH radiation model (see cliAvgDlySolIrrPoints). For all grids, the WGS84 (EPSG:4326) coordinate system was used with a horizontal resolution of 0.1°.

Format

A list with three RasterBricks and one RasterLayer.

Each of the RasterBricks contains a one-year average monthly time series for the normal period 1981-2010, for the following climate variables:

  • temp: mean air temperature (in °C)

  • prec: precipitation sum (in mm)

  • bsdf: mean relative sunshine duration (dimensionless)

Elevation data can be extracted from a single RasterLayer: elv.

References

Duffie JA, Beckman WA (1991) Solar Engineering of Thermal Processes. Second Edition. Wiley-Interscience, New York, NY

Spinoni J, Szalai S, Szentimrey T, Lakatos M, Bihari Z, Nagy A, Németh Á, Kovács T, Mihic D, Dacic M, Petrovic P, Kržič A, Hiebl J, Auer I, Milkovic J, Štepánek P, Zahradnícek P, Kilar P, Limanowka D, Pyrc R, Cheval S, Birsan M-V, Dumitrescu A, Deak G, Matei M, Antolovic I, Nejedlík P, Štastný P, Kajaba P, Bochnícek O, Galo D, Mikulová K, Nabyvanets Y, Skrynyk O, Krakovska S, Gnatiuk N, Tolasz R, Antofie T, Vogt J (2015) Climate of the Carpathian Region in the period 1961–2010: climatologies and trends of 10 variables. Int J Climatol 35(7):1322-1341. doi:10.1002/joc.4059

Examples

data(inp_exClnrGrid)
str(inp_exClnrGrid)

Mandatory Data for the Example 'Points'

Description

Data needed to demonstrate the working of functions with a point mode. Measured monthly time series of three basic climate variables retrieved from the CarpatClim database (Spinoni et al. 2015), at a grid cell near Szeged, Hungary (46.3° N, 20.2° E), for the period 1981-2010; supplemented with the associated geographical data. Monthly mean relative sunshine duration has been obtained as a ratio of monthly total of sunshine duration and maximum potential number of sunshine hours under clear-sky conditions. Daylength (accumulated hours of daylight) was calculated via Eq 1.6.11 in Duffie and Beckman (1991), according to the SPLASH radiation algorithm (see cliAvgDlySolIrrPoints).

Format

A list with three data frames and three numeric scalars.

Data frames contain one-year monthly time series for the period 1981-2010, for the following climate variables:

  • temp: mean air temperature (in °C)

  • prec: precipitation sum (in mm)

  • bsdf: mean relative sunshine duration (dimensionless)

The following geographical parameters can be extracted from the numeric scalars:

  • lat: latitude coordinate (in decimal degrees)

  • lon: longitude coordinate (in decimal degrees)

  • elv: elevation (in meters above sea level)

References

Duffie JA, Beckman WA (1991) Solar Engineering of Thermal Processes. Second Edition. Wiley-Interscience, New York, NY

Spinoni J, Szalai S, Szentimrey T, Lakatos M, Bihari Z, Nagy A, Németh Á, Kovács T, Mihic D, Dacic M, Petrovic P, Kržič A, Hiebl J, Auer I, Milkovic J, Štepánek P, Zahradnícek P, Kilar P, Limanowka D, Pyrc R, Cheval S, Birsan M-V, Dumitrescu A, Deak G, Matei M, Antolovic I, Nejedlík P, Štastný P, Kajaba P, Bochnícek O, Galo D, Mikulová K, Nabyvanets Y, Skrynyk O, Krakovska S, Gnatiuk N, Tolasz R, Antofie T, Vogt J (2015) Climate of the Carpathian Region in the period 1961–2010: climatologies and trends of 10 variables. Int J Climatol 35(7):1322-1341. doi:10.1002/joc.4059

Examples

data(inp_exPoints)
str(inp_exPoints)

Mandatory Data for the Example 'Single-Year Grid'

Description

Data needed to demonstrate the working of functions with a grid mode. Measured monthly time series of the year 2010 for three basic climate variables retrieved from the the CarpatClim database (Spinoni et al. 2015), for Csongrád-Csanád County; supplemented with a digital elevation model. Monthly mean relative sunshine duration has been obtained as a ratio of monthly total of sunshine duration and maximum potential number of sunshine hours under clear-sky conditions. Daylength (accumulated hours of daylight) was calculated via Eq 1.6.11 in Duffie and Beckman (1991), according to the SPLASH radiation model (see cliAvgDlySolIrrPoints). For all grids, the WGS84 (EPSG:4326) coordinate system was used with a horizontal resolution of 0.1°.

Format

A list with three RasterBricks and one RasterLayer.

Each of the RasterBricks contains a one-year monthly time series for the year 2010, for the following climate variables:

  • temp: mean air temperature (in °C)

  • prec: precipitation sum (in mm)

  • bsdf: mean relative sunshine duration (dimensionless)

Elevation data can be extracted from a single RasterLayer: elv.

References

Duffie JA, Beckman WA (1991) Solar Engineering of Thermal Processes. Second Edition. Wiley-Interscience, New York, NY

Spinoni J, Szalai S, Szentimrey T, Lakatos M, Bihari Z, Nagy A, Németh Á, Kovács T, Mihic D, Dacic M, Petrovic P, Kržič A, Hiebl J, Auer I, Milkovic J, Štepánek P, Zahradnícek P, Kilar P, Limanowka D, Pyrc R, Cheval S, Birsan M-V, Dumitrescu A, Deak G, Matei M, Antolovic I, Nejedlík P, Štastný P, Kajaba P, Bochnícek O, Galo D, Mikulová K, Nabyvanets Y, Skrynyk O, Krakovska S, Gnatiuk N, Tolasz R, Antofie T, Vogt J (2015) Climate of the Carpathian Region in the period 1961–2010: climatologies and trends of 10 variables. Int J Climatol 35(7):1322-1341. doi:10.1002/joc.4059

Examples

data(inp_exSglyGrid)
str(inp_exSglyGrid)

Supplemental Data Frame for Decoding Outputs of Vegetation Classifiers

Description

The key to the classes used by climate-based vegetation classifiers implemented here. Currently, three bioclimatic vegetation classification approaches are implemented:

  • HLZ: a version with no altitudinal belts of the Holdridge life zone (HLZ) system (Holdridge 1947, 1967), in accordance with works of Szelepcsényi et al. (2014, 2018)

  • KGC: the Köppen-Geiger classification (KGC) system (Köppen 1936) with some modifications suggested by Peel et al. (2007)

  • BIOME: the initial version of the BIOME model developed by Prentice et al. (1992)

Format

A data frame that allows for interpreting the return objects provided by climate-based vegetation classifiers implemented here. Two columns belong to each vegetation classification approach. Columns whose names begin with the string 'Name.' contain the full names of the vegetation classes. While columns whose names begin with the string 'Code.' summarize the abbreviations used by functions with a point mode. Row numbers of the data frame have a special role because they are the same as the numbers returned by the functions with a grid mode.

References

Holdridge LR (1947) Determination of World Plant Formations From Simple Climatic Data. Science 105(2727):367–368. doi:10.1126/science.105.2727.367

Holdridge LR (1967) Life zone ecology. Tropical Science Center, San Jose, Costa Rica

Köppen W (1936) Das geographische System der Klimate. In: Köppen W, Geiger R (eds) Handbuch der Klimatologie. Verlag von Gebrüder Borntraeger, Berlin, Germany, pp 1–44

Peel MC, Finlayson BL, McMahon TA (2007) Updated world map of the Köppen-Geiger climate classification. Hydrol Earth Syst Sci 11(5):1633–1644. doi:10.5194/hess-11-1633-2007

Prentice IC, Cramer W, Harrison SP, Leemans R, Monserud RA, Solomon AM (1992) A global biome model based on plant physiology and dominance, soil properties and climate. J Biogeogr 19(2):117–134. doi:10.2307/2845499

Szelepcsényi Z, Breuer H, Sümegi P (2014) The climate of Carpathian Region in the 20th century based on the original and modified Holdridge life zone system. Cent Eur J Geosci 6(3):293–307. doi:10.2478/s13533-012-0189-5

Szelepcsényi Z, Breuer H, Kis A, Pongrácz R, Sümegi P (2018) Assessment of projected climate change in the Carpathian Region using the Holdridge life zone system. Theor Appl Climatol 131(1–2):593–610. doi:10.1007/s00704-016-1987-3

Examples

data(vegClsNumCodes)
str(vegClsNumCodes)