Title: | Climate Classification According to Several Indices |
---|---|
Description: | Classification of climate according to Koeppen - Geiger, of aridity indices, of continentality indices, of water balance after Thornthwaite, of viticultural bioclimatic indices. Drawing climographs: Thornthwaite, Peguy, Bagnouls-Gaussen. |
Authors: | Emanuele Eccel [aut, cre], Emanuele Cordano [aut], Giambattista Toller [aut], Fondazione Edmund Mach [cph] |
Maintainer: | Emanuele Eccel <[email protected]> |
License: | GPL (>= 3) |
Version: | 2.1.0 |
Built: | 2024-11-15 04:06:27 UTC |
Source: | https://github.com/cran/ClimClass |
Calculates aridity according to several indices.
arid(clim_norm, coeff_rad = NULL, coeff_Hargr = rep(0.75, 12), monthly = FALSE, indices = 1:6)
arid(clim_norm, coeff_rad = NULL, coeff_Hargr = rep(0.75, 12), monthly = FALSE, indices = 1:6)
clim_norm |
climatic normals |
coeff_rad |
mean monthly solar radiation; used only for Thornthwaite's annual index Im. Default is |
coeff_Hargr |
(vector of monthly) correction coefficient(s) for Hargreaves' equation |
monthly |
logic. Sets calculation to the monthly mode if |
indices |
set of aridity indices to be listed. Default is all indices (1 to 6 for annual, 1 to 2 for monthly). |
clim_norm
is a monthly data frame of climate normals, with column names: "P", "Tn", "Tx", "Tm" (precipitation, minimum, maximum and mean temperature, respectively). It can be the output of function climate
.
Monthly potential evapotranspiration (PE) is calculated via the Hargreaves' formula (Hargreaves and Samani, 1985):
PE = (0.0023*(clim_norm$Tx - clim_norm$Tn)^(0.5)*(clim_norm$Tm+17.8)*coeff_rad)* lmv * coeff_Hargr
where Tn, Tx, Tm are min, max, and mean temperatures, respectively, and lmv is the number of days in any month.
coeff_rad
and coeff_Hargr
are needed only by Thornthwaite's annual index Im
and UNEP's Ai
index, whose PE term is calculated via Hargreaves' equation.
coeff_rad
corresponds to the mean monthly extra-atmospheric radiation (see function ExAtRa
).
coeff_Hargr
is either a single value or a vector of 12 coefficients to adjust Hargreaves' estimation of potential evapotranspiration (implemented in Im
and Ai
indices). From calibration in 6 stations from the same network of Trent_climate
, its average value is 0.75.
When monthly
is TRUE
, a data frame with monthly detail is generated for one station, instead of a synthetic single-line data frame.
indices
' values are the following:
1 De Martonne - Ia (annual or monthly). De Martonne, 1925.
2 Thornthwaite - Im (annual or monthly). Thornthwaite, 1948.
3 Emberger - Q (annual only). Emberger, 1955.
4 Lang - R (annual only) - only for positive mean annual temperature. Lang, R., 1920.
5 Rivas-Martinez - Io (annual only). Rivas - Martinez, website http://www.globalbioclimatics.org/
6 UNEP - Ai (annual only). UNEP, 1997.
A reference for the aridity degree for any index is given in the list object arid_ind_tables
(see Trent_climate
.
Either a single-line data frame (when monthly = FALSE
) with the desired aridity index(es), or a data frame (monthly = TRUE
), with monthly values of the desired index(es).
Emanuele Eccel
De Martonne E., 1925: Traite de Geographie Physique: 3 tomes, Paris.
Emberger, L., 1955. Une classification biogeographique des climats. Receuil des travaux des laboratoires de botanique, geologie et zoologie de la faculte des sciences de l'universite de Montpellier (Serie Botanique), Fascicule 7, 3-43.
Hargreaves, G.H., and Samani, Z.A., 1985. Reference crop evapotranspiratin from temperature. Applied Engineering in Agriculture, 1(2):96-99
Lang, R., 1920. Verwitterung und Bodenbildung als Einfuehrung in die Bodenkunde. Schweizerbart Science Publishers, Stuttgart
Rivas-Martinez - http://www.globalbioclimatics.org/
Thornthwaite, C. W., 1948: An Approach toward a Rational Classification of Climate. Geographical Review, Vol. 38, No. 1(Jan.):55-94.
UNEP (United Nations Environment Programme), 1997. World atlas of desertification 2ED. UNEP, London.
data(Trent_climate) # clima_81_10 is a list of data frames having climatic means of temperature and precipitation # as required by the aridity indices algorithms, each one referring to one station. # It can be the output of function climate. # coeff_rad is a monthly vector of average daily extra-atmospheric solar radiation, # calculated e.g. by function ExAtRa.
data(Trent_climate) # clima_81_10 is a list of data frames having climatic means of temperature and precipitation # as required by the aridity indices algorithms, each one referring to one station. # It can be the output of function climate. # coeff_rad is a monthly vector of average daily extra-atmospheric solar radiation, # calculated e.g. by function ExAtRa.
Used for reference in aridity indices assessment (see function arid
and
references for data sources).
data(Trent_climate)
data(Trent_climate)
List formed by six data frames.
Tranforms a data frame (see example dataset) into a data frame format like 'datcli
' in 'climatol
' package
as.datcli(df, station, MonthField = "month", PrecField = "P", MinTempField = "Tn", MaxTempField = "Tx", MeanTempField = "Tm", AbsMinTempField = "AbsTn", AbsMinTempOffset = 4, StationField = "station")
as.datcli(df, station, MonthField = "month", PrecField = "P", MinTempField = "Tn", MaxTempField = "Tx", MeanTempField = "Tm", AbsMinTempField = "AbsTn", AbsMinTempOffset = 4, StationField = "station")
df |
data frame or list |
station |
name |
MonthField |
character string for month field in |
PrecField |
character string for Mean Precipitation field in |
MinTempField |
character string for Mean Daily Minimum Temperature field in |
MaxTempField |
character string for Mean Daily Maximum Temperature field in |
MeanTempField |
character string for Mean Daily Maximum Temperature field in |
AbsMinTempField |
character string for Absolute Monthly Minimum Temperature field in |
AbsMinTempOffset |
estimated offset between Average Min Temperature and Absolute Min Temperature. |
StationField |
character string for Station field in |
Emanuele Cordano
www.climatol.eu, http://www.zoolex.org/walter.html
### Not Run!! # Install 'climatol' from 'http://www.climatol.eu/' first ### Then load the package, uncomment and run the following line # library(climatol) library(stringr) data(Trent_climate) TrentinoClimateDf <- do.call(rbind,clima_81_10) names <- rownames(TrentinoClimateDf) TrentinoClimateDf$station <- unlist(lapply(X=str_split(names,pattern="[.]"),FUN=function(x) {x[1]})) station <- "T0129" datcli <- as.datcli(TrentinoClimateDf,station=station) ### Not Run!! # Install 'climatol' from 'http://www.climatol.eu/' first ### Then load the package, uncomment and run the following line # diagwl(datcli,est=station,alt=100,per="Period",mlab="en") ## plots a Walter-Lieth's climograph
### Not Run!! # Install 'climatol' from 'http://www.climatol.eu/' first ### Then load the package, uncomment and run the following line # library(climatol) library(stringr) data(Trent_climate) TrentinoClimateDf <- do.call(rbind,clima_81_10) names <- rownames(TrentinoClimateDf) TrentinoClimateDf$station <- unlist(lapply(X=str_split(names,pattern="[.]"),FUN=function(x) {x[1]})) station <- "T0129" datcli <- as.datcli(TrentinoClimateDf,station=station) ### Not Run!! # Install 'climatol' from 'http://www.climatol.eu/' first ### Then load the package, uncomment and run the following line # diagwl(datcli,est=station,alt=100,per="Period",mlab="en") ## plots a Walter-Lieth's climograph
Plots Bagnouls - Gaussen climatic charts of precipitation and temperature. Conventionally, in this chart the scale of precipitation has a double extension with respect to the scale of temperature (Bagnouls and Gaussen, 1953).
bagn_gau(clim_norm_sta, save_dir = NULL, format = NULL, main_title = NULL, st_name = NULL, trace_grid = TRUE, tick_step = 20, bar_width = 30, bar_col = "grey", trace_0.line = TRUE, ...)
bagn_gau(clim_norm_sta, save_dir = NULL, format = NULL, main_title = NULL, st_name = NULL, trace_grid = TRUE, tick_step = 20, bar_width = 30, bar_col = "grey", trace_0.line = TRUE, ...)
clim_norm_sta |
data frame with climatic normals |
save_dir |
name of destination directory for graphs (if any). |
format |
graphical format of graphs; default is NULL. |
main_title |
main title for all charts; e.g., it may include references to station id. Default is |
st_name |
name to be included into graphs titles. Only for file output. Default is |
trace_grid |
logic. If |
tick_step |
step for Y axis (precipitation). Default is 20 (mm) |
bar_width |
width of bars in the chart. Default is 30. |
bar_col |
color of bars. Default is "grey". |
trace_0.line |
logic. If |
... |
arguments to be passed to methods, such as graphical parameters (see |
clim_norm_sta
can be e.g. one element of the output of function climate
. See examples
.
If format
is NULL (default), graphs are sent to the console. Otherwise, a file is produced and saved. format
is used only if the graphs are to be sent to files. Values allowed are: "png", "jpeg", "tiff", "bmp".
If one or more data are missing, the chart is not processed.
Most graphic parameters for functions plot
, axis
, and mtext
are accepted.
Bagnouls - Gaussen's charts of precipitation and temperature.
A conflict is generated if parameters already used by the function are passed (e.g. col
- use col.main
, col.axis
, ..., instead).
Emanuele Eccel
Bagnouls, F., and Gaussen, H., 1953: Saison seche et indice xerothermique. Docum. pour les Cartes des Prod. Veget. Serie: Generalite, 1 (1953), pp. 1-49
data(Trent_climate) # clima_81_10 can be generated from monthly time series by function "climate". par(ask=TRUE) for(sta in 1:length(clima_81_10)) { bagn_gau(clim_norm_sta= clima_81_10 [[sta]], main_title=paste(names(clima_81_10[sta]), " 1981-2010") , bar_width=40) }
data(Trent_climate) # clima_81_10 can be generated from monthly time series by function "climate". par(ask=TRUE) for(sta in 1:length(clima_81_10)) { bagn_gau(clim_norm_sta= clima_81_10 [[sta]], main_title=paste(names(clima_81_10[sta]), " 1981-2010") , bar_width=40) }
Climatic normals of precipitation and temperature (minimum, maximum, and mean) for the
climatic period 1981 - 2010. It has been calculated by function climate
.
data(Trent_climate)
data(Trent_climate)
A list (one table for each station) of 28 monthly climatic normals
Creates climate mean monthly values from a monthly series of temperature and precipitation.
climate(series, first.yr = NULL, last.yr = NULL, max.perc.missing)
climate(series, first.yr = NULL, last.yr = NULL, max.perc.missing)
series |
the monthly series of temperature and precipitation. |
first.yr |
first year of the period over which climatology is calculated |
last.yr |
last year of the period over which climatology is calculated |
max.perc.missing |
maximum acceptable percentage of missing data in the averaging period from |
series
is a data frame with years, months, temperature (and precipitation) values. Names in series columns must include: year, month, Tn and Tx (minimum and maximum temperatures, respectively) or, as an alternative, Tm (mean temperatures).
If first.yr
or last.yr
are NULL (default), the lowest and highest values in series are taken as the period.
A data frame with climatic monthly values of: precipitation, minimum and maximum temperatures (if existing in series), mean temperature (either averaged from existing values in series, or calculated by the function as (Tn + Tx)/2), absolute minimum monthly temperature.
Emanuele Eccel
data(Trent_climate) # clima_81_10 is a list of data frames of the type series, # each one referring to one station # having climatic means of temperature and precipitation clima_81_10<-lapply(lista_cli, FUN=climate, first.yr=1981, last.yr=2010, max.perc.missing=15)
data(Trent_climate) # clima_81_10 is a list of data frames of the type series, # each one referring to one station # having climatic means of temperature and precipitation clima_81_10<-lapply(lista_cli, FUN=climate, first.yr=1981, last.yr=2010, max.perc.missing=15)
Classification of climate according to Koeppen - Geiger, of aridity indices, of continentality indices, of water balance after Thornthwaite, of viticultural bioclimatic indices. Drawing climographs: Thornthwaite, Peguy, Bagnouls-Gaussen.
The package collects several criteria for climate classification. The most general is Koeppen - Geiger's classification, as described in Trewartha (1980), implemented in function koeppen_geiger
.
Almost all sub-classes have been considered, with the only exception of those whose
attribution is based on qualitative assessment of climatic features.
A classic graphical visualization of temperature and precipitation, according to
Bagnouls and Gaussen (1953), is provided by function bagn_gau
. A
similar, but more sophisticated representation of the same variable, is that of
Walter - Lieth (Lieth et al., CD). This function is implemented in
library climatol
(http://www.climatol.eu/).
Function arid
calculates a set of six annual aridity indices (Emberger, 1955;
Lang, R., 1920; Rivas - Martinez, (website); and UNEP, 1997; De Martonne, 1925; Thornthwaite
, 1948). For the latter two also a monthly index is calculated.
A set of five continentality indices is proposed by function contin
(Gorczynski, L., 1920; Conrad, 1946; Gams, 1932; Rivas - Martinez, web page;
Amann, 1929).
Thornthwaite's method for the assessment of soil water balance (Thornthwaite, 1948; Thornthwaite and Mather, 1955; Thornthwaite and Mather, 1957) makes use of monthly series to calculate the main quantities in water balance: evapotranspiration, soil water deficit, soil water surplus. From these series, quantiles are calculated for every month, to infer climatic features concerning soil water.
Function thornthwaite
provides such analysis, and function plot
manages the plot of the quantiles of the relevant quantities.
The assessment of potential evapotranspiration by Thornthwaite and Mather's algorithm
requires the estimation of extra-atmospheric radiation, which is calculated by
function ExAtRa
, based on the algorithm of Allen et al., 2005.
Function as.datcli
tranforms a data frame as in example dataset
Trent_climate
into a data frame format like datcli
in
climatol
package. It can be used to plot Walter - Lieth's climographs
(see examples documentation).
Function oiv_ind
calculates several bioclimatic indices for
viticulture proposed by the International Organization of Viticuture, OIV
(Resolution OIV-VITI 423-2012), plus one index (Branas). One index of OIV's
list, Riou's drought index, needing daily series, is calculated by another
function, RDI
.
The data set included in the library is formed by monthly and daily time
series of temperature and precipitation from Trentino, Italy
(courtesy of Autonomous Province of Trento - Meteotrentino, and of
Fondazione Edmund Mach, San Michele all'Adige). Climatic normals are
calculated, too (output of function climate
). The output
of function thornthwaite
is present in the data set
Trent_climate
, as input for function plot
.
Reference tables for aridity and continentality indices are provided as
lists, to rank the classifications on standard scales
(arid_ind_tables
and continental_ind_tables
,
respectively).
See a first application in Eccel et al., 2015 and an application more focused on viticultural indices in Eccel et al., 2016.
Allen, R.G., Walter, I.A., Elliott, R.L., Howell, T.A., Itenfisu, D., Jensen, M.E., and Snyder, R.L. (eds.), 2005: ASCE Standardized Reference Evapotranspiration Equation. 216 pp.
Amann, J., 1929: L'hygrothermie du climat, facteur determinant la repartition des especes atlantiques. Revue Bryol., 56:126-133.
Amerine, M.A., and Winkler, A.J., 1944: Composition and quality of musts and wines of California grapes. Hilgardia. 15(6): 493-673. xerothermique. Docum. pour les Cartes des Prod. Veget. Serie: Generalite, 1 (1953), pp. 1-49.
Conrad, V. 1946: Usual formulas of continentality and their limits of validity. Transactions, American Geophysical Union, Volume 27, Issue 5, p. 663-664
De Martonne E., 1925: Traite de Geographie Physique: 3 tomes, Paris.
Eccel, E., Cordano, E., Zottele, F., Toller, GB., 2015: ClimClass and ClimClassMap: two R- packages for climatic and agro-bioclimatic indices. An application to Trentino. XVIII National Congress of Agrometeorology, 9-11 June 2015, San Michele all'Adige all\'Adige, Book of Extended Abstract (available from Autors).
Eccel, E., Zollo, A.L., Mercogliano, P., Zorer, R., 2016: Simulations of quantitative shift in bio-climatic indices in the viticultural areas of Trentino (Italian Alps) by an open source R package. Computers and Electronics in Agriculture 127 (2016) 92-100.
Emberger, L., 1955: Une classification biogeographique des climats. Receuil des travaux des laboratoires de botanique, geologie et zoologie de la faculte des sciences de l'universite de Montpellier (Serie Botanique), Fascicule 7, 3-43.
Eynard, I. e Dal Masso, G., 1990: Viticoltura moderna. Manuale pratico. Hoepli Milano. 778 pp.
Fregoni, C., et Pezzutto, S., 2000: Principes et premieres approches de l'indice bioclimatique de qualite Fregoni, Progr.Agric.Vitic. 117: 390-396.
Gams, H., 1932: Die klimatische Begrenzung von Pflanzenarealen und die Verteilung der hygrischen Kontinentalitaet in den Alpen. Zeitschr. Ges. Erdkunde, Berlin.
Gladstones, J.S., 2004: Climate and Australian Viticulture. In 'Viticulture. Volume 1-Resources'. (Eds Dry PR, Coombe BG) pp. 90-118.
Huglin, M.P., 1978: Nouveau mode d'evaluation des possibilites heliothermiques d'un milieu viticole. Comptes Rendus de l'Academie de l'Agriculture de France. 64: 1117-1126.
Gorczynski, L., 1920: Sur le calcul du degre de continentalisme et son application dans la climatologie. Geografiska Annaler 2, 324-331
Hargreaves, G.H., and Samani, Z.A., 1985: Reference crop evapotranspiratin from temperature. Applied Engineering in Agriculture, 1(2):96-99
Lang, R., 1920: Verwitterung und Bodenbildung als Einfuehrung in die Bodenkunde. Schweizerbart Science Publishers, Stuttgart
Lebourgeoise, F., 2010: Cours de bioclimatologie a l'usage des forestiers. Departement SIAFEE, UFR Forets, Arbres et Milieux Naturels. ENGREF, Nancy Cedex.
Lieth, H., Berlekamp, J., Fuest, S., and Riediger, S.: Walter-Lieth: Climate Diagram World Atlas, CD-Series I of Climate and Biosphere, 1st edit.
Michalet, R., and Souchier, B., 1991: Une approche synthetique biopedoclimatique des montagnes mediterraneennes: l'exemple du Maroc septemptrional. Thesis, Univ. J. Fourier, Grenoble, 273 pp
Rivas-Martinez: http://www.globalbioclimatics.org/
Thornthwaite, C. W., 1948: An Approach toward a Rational Classification of Climate. Geographical Review, Vol. 38, No. 1(Jan.):55-94.
Thornthwaite, C. W., and Mather, J.R., 1955: The water balance. Publications in Climatology, Volume 8(1), Laboratory of Climatology
Thornthwaite, C. W., and Mather, J.R., 1957: Instructions and tables for computing potential evapotranspiration and the water balance. Publications in climatology, Volume 10(3), Laboratory of Climatology.
Tonietto, J., and Carbonneau, A., 2004: A multicriteria climatic classification system for grape-growing regions worldwide. Agricultural and Forest Meteorology. 124(1/2): 81-97.
Trewartha, G.T. and Lyle, H.H., 1980: An Introduction to Climate. MacGraw - Hill, 5th Ed. Appendix: Koeppen's Classification of Climates.
UNEP (United Nations Environment Programme), 1997: World atlas of desertification 2ED. UNEP, London
"Radiative energy coefficients" for Hargreaves' equation, corresponding to the
daily extra-atmospheric solar radiation energy. It is the output of function
ExAtRa
.
data(Trent_climate)
data(Trent_climate)
An array of 12 numerics
Calculates climate continentality / oceanicity according to several indices.
contin(clim_norm, latitude = NULL, elevation = NULL, Michalet_correction = FALSE, indices = 1:5)
contin(clim_norm, latitude = NULL, elevation = NULL, Michalet_correction = FALSE, indices = 1:5)
clim_norm |
climatic normals |
latitude |
station latitude in degrees. Used in Gorczynski's and Conrad's classifications (indices 1 and 2). Default is |
elevation |
station elevation in m. Used in Gams' classification (index 3). Default is |
Michalet_correction |
logic: if |
indices |
set of aridity indices to be listed. Default is all indices (1 to 5). |
clim_norm is a monthly data frame of climate normals, with column names: "P", "Tn", "Tx", "Tm" (precipitation, minimum, maximum and mean temperature, respectively). It can be the output of function climate
.
indices
' values are the following:
1: Gorczynski - K.G. (Gorczynski, L., 1920).
2: Conrad - K.C. (Conrad, 1946).
3: Gams - alpha. (Gams, H., 1932). For Michalet's correction: Michalet and Souchier, 1991.
4: Rivas-Martinez - Ic. (Rivas - Martinez, web page).
5: Amann - H. (Amann, 1929)
A reference for the continentality / oceanicity degree is given in the list object continental_ind_tables
of data set Trent_climate
.
If Michalet's correction is applied to Gams' hygric continentality index, the value of precipitation is proportionally diminished for elevations below 900 m a.s.l. See also Lebourgeoise, 2010.
A single-line data frame with the desired continentality index(es).
Emanuele Eccel
Amann, J., 1929: L'hygrothermie du climat, facteur determinant la repartition des especes atlantiques. Revue Bryol., 56:126-133.
Conrad, V., 1946: Usual formulas of continentality and their limits of validity. Transactions, American Geophysical Union, Volume 27, Issue 5, p. 663-664.
Gams, H., 1932: Die klimatische Begrenzung von Pflanzenarealen und die Verteilung der hygrischen Kontinentalitaet in den Alpen. Zeitschr. Ges. Erdkunde, Berlin.
Gorczynski, L., 1920: Sur le calcul du degre de continentalisme et son application dans la climatologie. Geografiska Annaler 2, 324-331.
Lebourgeoise, F., 2010: Cours de bioclimatologie a l'usage des forestiers. Departement SIAFEE, UFR Forets, Arbres et Milieux Naturels. ENGREF, Nancy Cedex.
Michalet, R., and Souchier, B., 1991: Une approche synthetique biopedoclimatique del montagnes mediterraneennes: l'exemple du Maroc septemptrional. Thesis, Univ. J. Fourier, Grenoble, 273 pp.
Rivas-Martinez: http://www.globalbioclimatics.org/.
data(Trent_climate) # clima_81_10 is a list of data frames having climatic means of temperature and precipitation as # required by the aridity indices algorithms, each one referring to one station. # It can be the output of function climate. # creates a data frame with all the continentality indices for all stations in clima_81_10 latit<-coord_elev$North elev<-coord_elev$Elevation contin_I<-NULL for(i in 1:length(clima_81_10)) { contin_I[[i]]<-contin(clima_81_10[[i]], latitude=latit[i], elevation=elev[i], Michalet_correction=TRUE) } names(contin_I)<-names(clima_81_10)
data(Trent_climate) # clima_81_10 is a list of data frames having climatic means of temperature and precipitation as # required by the aridity indices algorithms, each one referring to one station. # It can be the output of function climate. # creates a data frame with all the continentality indices for all stations in clima_81_10 latit<-coord_elev$North elev<-coord_elev$Elevation contin_I<-NULL for(i in 1:length(clima_81_10)) { contin_I[[i]]<-contin(clima_81_10[[i]], latitude=latit[i], elevation=elev[i], Michalet_correction=TRUE) } names(contin_I)<-names(clima_81_10)
Used for reference in continentality/oceanicity indices assessment (see function
contin
and references for data sources).
data(Trent_climate)
data(Trent_climate)
List of 4 data frames
Coordinates and elevation for each station in the data set. Coordinates are geographical and elevation is measured in meters above mean sea level.
data(Trent_climate)
data(Trent_climate)
Data frame of 40 observations of 4 variables
Calculates Extra-Atmospheric Radiation. Called by function arid
for Thornthwaite's index.
ExAtRa(DOY, latitude, Gsc = 0.082, unit = "mm", T = 12)
ExAtRa(DOY, latitude, Gsc = 0.082, unit = "mm", T = 12)
DOY |
day of the year. |
latitude |
latitude in degrees (negative for S emishpere). |
Gsc |
solar constant in MJ m-2 min-1 (default: 0.0820). |
unit |
unit for solar radiation. Accepted values are "mm" and "MJ". |
T |
temperature in degrees C. Default is 12. |
If unit
= "mm", the calculated value represents the water height evaporated by solar radiation, calculated by the latent heat for vaporization. Otherwise (unit
= "MJ") output is the solar radiation energy in MJ.
Temperature T
is used only for the assessment of latent heat of vaporization, when unit
= "mm".
The daily extra-atmospheric solar radiation energy, espressed either in MJ or in mm of evaporated water.
Emanuele Eccel
data(Trent_climate) # creates a vector with middle days for every month in a year quinci <- paste(15,"/",1:12,"/",2014,sep="") posixlt <- strptime(quinci, format="%d/%m/%Y") yDay <- posixlt$yday+1 # field yday starts from 0 latitude<-46 # generates 12 values, one for each month coeff_rad<- ExAtRa(DOY=yDay,latitude=latitude, unit="mm")
data(Trent_climate) # creates a vector with middle days for every month in a year quinci <- paste(15,"/",1:12,"/",2014,sep="") posixlt <- strptime(quinci, format="%d/%m/%Y") yDay <- posixlt$yday+1 # field yday starts from 0 latitude<-46 # generates 12 values, one for each month coeff_rad<- ExAtRa(DOY=yDay,latitude=latitude, unit="mm")
General climate classification after Koeppen - Geiger.
koeppen_geiger(clim_norm, A_B_C_special_sub.classes = FALSE, clim.resume_verbose = TRUE, class.nr = FALSE)
koeppen_geiger(clim_norm, A_B_C_special_sub.classes = FALSE, clim.resume_verbose = TRUE, class.nr = FALSE)
clim_norm |
average values (climate normals) for the desired period. |
A_B_C_special_sub.classes |
logical. Sets if calculations have to consider sub-classes based on rain features in climate types A, B, and C (see details). Default is |
clim.resume_verbose |
logical. If |
class.nr |
logical. If |
clim_norm
is a monthly data frame of climate normals, with column names: "P", "Tn", "Tx", "Tm" (precipitation, minimum, maximum and mean temperature, respectively). It can be the output of function climate
.
Koeppen - Geiger's classification is based on Trewartha and Lyle, 1980. The function also holds for Southern emisphere, except for the "Gange" sub-type ("Ag" and "Cg"). Type "H" (highland climate) and sub-types "Bn" and "Cn" (where n stands for Nebel) are never attributed, being based on a qualitative description in the quoted reference.
Sub-type "w" (wet-and-dry) or "m" (monsoon) in climate "A" is set according to the definition after Encyclopaedia Britannica (http://www.britannica.com/EBchecked/topic/322068/Koppen-climate-classification): if P in the 4 driest months is less than 1/5 of the wettest months and if both the 4 driest and wettest months are split over non-contiguous seasons (either 2 months per season or 1 and 3 months per season), then sub-type is "".
For climate "A", the letter "m" is attributed to the first sub-type.
Climates "Cx" have P[May + June] >= 1.3 P [Aug. + Sept.] in N emisphere, and P[Nov. + Dec.] >= 1.3 P[Febr. + March] in S emisphere.
A_B_C_special_sub.classes
, if TRUE
, adds a letter to the second sub-type of climates: "i" or "g" (climate A), "w" or "s" (climate B), and "i", "g", or "x" (climate C).
The returned data frame contains the following fields:
T_w.m
= temperature of the warmest month (degrees C)
T_c.m
= temperature of the coldest month (degrees C)
T_avg
= average temperature (degrees C)
P_tot
= total precipitation depth (mm)
P_wint
= precipitation depth in the 6 coldest (winter) months (mm)
P_summ
= precipitation depth in the 6 warmest (summer) months (mm)
P_d.m
= precipitation depth in the driest month (mm)
P_d.m.summ
= precipitation depth in the driest month of "summer" half of the year (mm)
P_d.m.wint
= precipitation depth in the driest month of "winter" half of the year (mm)
P_w.m
= precipitation depth in the wettest month (mm)
P_w.m.summ
= precipitation depth in the driest month of "summer" half of the year (mm)
P_w.m.wint
= precipitation depth in the wettest month of "winter" half of the year (mm)
T_4th_w.m
= temperature of the 4th warmest month (degrees C)
class
= climatic class. If class.nr
=FALSE
(default), it results from the merging of "climate" (A to E) and sub-type(s).
If class.nr
=TRUE
the class comes from the sum of the numeric equivalent of "type" (A,..E) + "first sub type" (only first letter),
according to the following scheme:
A B C D E
10 20 30 40 50
f W s s T –> 1
w S w w F –> 2
m f f –> 3
(e.g: Af = 11, Cw = 32, EF = 52)
A one-line data frame reporting a resume of climatic features useful for the classification (if clim.resume_verbose
is TRUE
), and one last field (1 type - or "climate" - plus 1 or 2 sub-types) reporting Koeppen - Geiger's climate classification. See details.
Emanuele Eccel
Trewartha, G.T. and Lyle, H.H., 1980: An Introduction to Climate. MacGraw - Hill, 5th Ed. Appendix: Koeppen's Classification of Climates.
data(Trent_climate) # clima_81_10 is a list of data frames having climatic means of temperature and precipitation as # required by Koeppen - Geiger classification, each one referring to one station. # It can be the output of function climate. class_clim_l<-lapply(clima_81_10, FUN=koeppen_geiger, A_B_C_special_sub.classes=TRUE)
data(Trent_climate) # clima_81_10 is a list of data frames having climatic means of temperature and precipitation as # required by Koeppen - Geiger classification, each one referring to one station. # It can be the output of function climate. class_clim_l<-lapply(clima_81_10, FUN=koeppen_geiger, A_B_C_special_sub.classes=TRUE)
A list of 28 data frames (one for each station of the meteorological network), with monthly time series of precipitation and temperature (minimum and maximum).
data(Trent_climate)
data(Trent_climate)
List of 28 elements, each is a data frame of 5 variables and 636 observations
Calculation of OIV bio-climatic indices for viticulture (ref.: http://www.oiv.int/oiv/info/enresolution2012?lang=en).
oiv_ind(daily_Tn = NULL, daily_Tx = NULL, daily_Tm = NULL, daily_P = NULL, first.yr = NULL, last.yr = NULL, subs_missing = TRUE, coeff_HI = 1.04, quant_Tn_rest = 0.5, quant_Tn_veg = 0.5, quant_Tx_veg = 0.5, indices = 1:10)
oiv_ind(daily_Tn = NULL, daily_Tx = NULL, daily_Tm = NULL, daily_P = NULL, first.yr = NULL, last.yr = NULL, subs_missing = TRUE, coeff_HI = 1.04, quant_Tn_rest = 0.5, quant_Tn_veg = 0.5, quant_Tx_veg = 0.5, indices = 1:10)
daily_Tn |
series of daily minimum temperature (data frame). Must include the following columns (and names): "year", "month", "day" and one or more station id(s), each column one Tn series. |
daily_Tx |
series of daily maximum temperature (data frame). Must include the following columns (and names): "year", "month", "day" and one or more station id(s), each column one Tx series. |
daily_Tm |
series of daily mean temperature (data frame). Must include the following columns (and names): "year", "month", "day" and one or more station id(s), each column one Tm series. |
daily_P |
series of daily precipitation (data frame). Must include the following columns (and names): "year", "month", "day" and one or more station id(s), each column one P series. |
first.yr |
first year of the period over which indices are calculated |
last.yr |
last year of the period over which indices are calculated |
subs_missing |
logical: if |
coeff_HI |
Huglin's daylength correction, as long as the number of stations, or a single coeffient; in this case it is recycled on all stations. See details. |
quant_Tn_rest |
quantile (0..1) for the choice of the position of the representative year in the series, referred to the minimum temperature during "rest" period. Default is 0.5 (median) |
quant_Tn_veg |
quantile (0..1) for the choice of the position of the representative year in the series, referred to the minimum temperature during the "vegetative" period. Default is 0.5 (median) |
quant_Tx_veg |
quantile (0..1) for the choice of the position of the representative year in the series, referred to the maximum temperature during the "vegetative" period. Default is 0.5 (median) |
indices |
set of OIV indices to be listed. Default is all indices (1 to 10). See details for numbered list of indices. |
General info about OIV indices can be sought at http://www.oiv.int/oiv/info/enresolution2012?lang=en.
In general, if first.yr
or last.yr
are NULL (default), the lowest and highest values in series are taken as begin and end of calculation period.
A coherence check is done on input of start / end years.
If any input is missing, corresponding indices are not be calculated. If daily_Tm
is missing and both daily_Tn
and daily_Tx
are passed to the function,
daily_Tm
is calculated as the mean of daily_Tn
and daily_Tx
.
OIV indices are the following:
Tm_veg
: 1 - mean temperature during vegetation period. The latter is April - October (N emisphere) or October - April (S emisphere). The case (N or S) is automatically recognised by temperature data.
WI
: 2 - Winkler index (degree days with a 10 C base, summation over vegetative period), see note on Tm_veg
. Ref: Amerine and Winkler, 1944.
BEDD
: 3 - biologically active degree days. Degree days with a lower threhold of 10 C and an upper threshold at 19 C. Ref: Gladstone, 2004.
HI
: 4 - heliothermic Huglin index. A degree day summation of the average between mean and maximum temperature above 10 C, corrected by a coefficient of daylength duration.
The coefficient is given by the author in a table according to latitude. If one value is given, it is used for all stations. Default is 1.04 (lat. 44-46). Ref.: Huglin, P., 1978
CNI
: 5 - cool night index. Mean of September (N emisphere) or March (S emisphere) minimum temperatures. Ref.: Tonietto and Carbonneau, 2004.
FSI
: 6 - Fregoni's simplified index. Given by the product between the summation of thermal range (Tx - Tn) and the number of days with Tm > 10 C, for 30 days before ripening.
The period before ripening is taken as September (N emisphere) or March (S emisphere). Ref.: Fregoni et Pezzutto, 2000.
BI
: 7 - Branas' hydrothermic index. The only index not included in OIV list, used for fungine infection proneness.
It is given by the product of precipitation (mm) by the mean temperature (C) during the period April - October (N emisphere) or October - April (S emisphere). Ref: Eynard and Dal Masso, 1990.
Tn_rest
: 8 - minimum temperature during rest period. Useful for assessing winter severity. The rest period is November - March (N emisphere) or May - September (S emisphere).
The case (N or S) is automatically recognised by temperature data.
Tn_veg
: 9 - minimum temperature during vegetative period. Useful for assessing spring frosts. See note on Tm_veg
for periods.
Tx_veg
: 10 - maximum temperature during vegetative period. Useful for assessing summer hot spells. See note on Tm_veg
for periods.
quant_Tn_rest
, quant_Tn_veg
, quant_Tx_veg
define the statistical rank of the year to be chosen as representative for assessing Tn_rest
,
Tn_veg
, and Tx_veg
, respectfully. 0.5 (default) is the median year, 0 is the minimum (lowest temperature), 1 is the maximum (highest temperature).
The only missing index among those selected by OIV is Riou's Drought Index, which is calculated by function RDI
on monthly series.
A table (one line per station) reporting OIV bioclimatic indices. The Branas' index is added.
Emanuele Eccel
Amerine, M.A., and Winkler, A.J., 1944. Composition and quality of musts and wines of California grapes. Hilgardia. 15(6): 493-673.
Eccel, E., Zollo, A.L., Mercogliano, P., Zorer, R., 2016: Simulations of quantitative shift in bio-climatic indices in the viticultural areas of Trentino (Italian Alps) by an open source R package. Computers and Electronics in Agriculture 127 (2016) 92-100.
Eynard, I. e Dal Masso, G., 1990: Viticoltura moderna. Manuale pratico. Hoepli Milano. 778 pp.
Fregoni, C., et Pezzutto, S., 2000 : Principes et premieres approches de l'indice bioclimatique de qualite Fregoni, Progr.Agric.Vitic. 117: 390-396.
Gladstones, J.S., 2004: Climate and Australian Viticulture. In 'Viticulture. Volume 1-Resources'. (Eds Dry PR, Coombe BG) pp. 90-118.
Huglin, M.P., 1978: Nouveau mode d'evaluation des possibilites heliothermiques d'un milieu viticole. Comptes Rendus de l'Academie de l'Agriculture de France. 64: 1117-1126.
Tonietto, J., and Carbonneau, A., 2004. A multicriteria climatic classification system for grape-growing regions worldwide. Agricultural and Forest Meteorology. 124(1/2): 81-97.
data(Trent_climate) oiv_ind(daily_Tn=Tn,daily_Tx=Tx, daily_P=P, first.yr=1981, last.yr=2010, subs_missing=FALSE)
data(Trent_climate) oiv_ind(daily_Tn=Tn,daily_Tx=Tx, daily_P=P, first.yr=1981, last.yr=2010, subs_missing=FALSE)
The daily data frame of precipitation for a number of stations. It is used in function
oiv_ind
data(Trent_climate)
data(Trent_climate)
Data frame: 19358 obervations of 39 variables (stations)
Representation of Peguy Climograph from monthly weather data (Mean Temperature, Precipitation)
peguy(data = NULL, TemperatureTriangleCoords = c(0, 23.4, 15), PrecipitationTriangleCoords = c(0, 40, 200), ylab = "Precipitation[mm]", xlab = "Mean Temperature [degC]", lambda.label = 1.75, climate.label = c("Temperate", "Cool", "Arid", "Hot"), xyField = c("Tn", "P"), pointsField = "month", StationsField = "station", color.scale = "monthly", ...)
peguy(data = NULL, TemperatureTriangleCoords = c(0, 23.4, 15), PrecipitationTriangleCoords = c(0, 40, 200), ylab = "Precipitation[mm]", xlab = "Mean Temperature [degC]", lambda.label = 1.75, climate.label = c("Temperate", "Cool", "Arid", "Hot"), xyField = c("Tn", "P"), pointsField = "month", StationsField = "station", color.scale = "monthly", ...)
data |
input dataset with climatological monthly weather data |
TemperatureTriangleCoords |
Temperature coordinates for triangle vertices in the Peguy Climograph. Default coordinates are expressed in Celsius Degrees. |
PrecipitationTriangleCoords |
Precipitation coordinates for triangle vertices in the Peguy Climograph. Default coordinates are expressed in millimeters. |
xlab , ylab
|
xy axis labels |
lambda.label |
numeric value used to locate climate attribute labels |
climate.label |
string vector containing climate attributes. Default is |
xyField |
column names of |
pointsField |
column name of |
StationsField |
column name of |
color.scale |
character scale indicating a use of a specific color scale. Default is |
... |
further arguments |
Emanuele Cordano
Peguy, C.P. (1970) Precis de climatologie, ed. Masson, Paris.
library(stringr) data(Trent_climate) TrentinoClimateDf <- do.call(rbind,clima_81_10) names <- rownames(TrentinoClimateDf) TrentinoClimateDf$station <- unlist(lapply(X=str_split(names,pattern="[.]"),FUN=function(x) {x[1]})) data <- TrentinoClimateDf[TrentinoClimateDf$station %in% unique(TrentinoClimateDf$station)[1:3],] p <- peguy(data=data)
library(stringr) data(Trent_climate) TrentinoClimateDf <- do.call(rbind,clima_81_10) names <- rownames(TrentinoClimateDf) TrentinoClimateDf$station <- unlist(lapply(X=str_split(names,pattern="[.]"),FUN=function(x) {x[1]})) data <- TrentinoClimateDf[TrentinoClimateDf$station %in% unique(TrentinoClimateDf$station)[1:3],] p <- peguy(data=data)
'plot' method implementation for 12-month quantile climate charts from output of function thornthwaite
(Thornthwaite and Mather's water balance).
## S3 method for class 'thornthwaite' plot(x, save_dir = NULL, format = NULL, variables = c("Precipitation", "Et0", "Storage", "Prec. - Evap.", "Deficit", "Surplus"), title = TRUE, trace_grid = TRUE, st_name = NULL, u_y_scale_magn = 0.2, l_y_scale_magn = 0, leg_pos = "topleft", ...)
## S3 method for class 'thornthwaite' plot(x, save_dir = NULL, format = NULL, variables = c("Precipitation", "Et0", "Storage", "Prec. - Evap.", "Deficit", "Surplus"), title = TRUE, trace_grid = TRUE, st_name = NULL, u_y_scale_magn = 0.2, l_y_scale_magn = 0, leg_pos = "topleft", ...)
x |
a list of quantile data frames of water balance variables to be plotted, as output of function |
save_dir |
name of destination directory for graphs (if any). Default is |
format |
graphic format of graphs; default is NULL (charts are sent to console). |
variables |
character vector of variables to be plotted. |
title |
logic. If |
trace_grid |
logic. If |
st_name |
name to be included into graphs titles. If NULL (default), no title is written. |
u_y_scale_magn |
magnification of range above upper limit, to set upper y-scale limit; default is 0. |
l_y_scale_magn |
magnification of range below lower limit, to set lower y-scale limit; default is 0.1. |
leg_pos |
legend position. Default is "topleft". If NULL, no legend is added. |
... |
arguments to be passed to methods, such as graphical parameters (see |
Default for plot variables is all those calculated by function thornthwaite: "Precipitation", "Et0", "Storage", "Prec. - Evap.", "Deficit", "Surplus". See function thornthwaite
for details on variables.
If format
is NULL (default), graphs are sent to the console. Otherwise, a file is produced and saved to the save_dir
directory. Values allowed are: "png", "jpeg", "tiff", "bmp".
l_y_scale_magn
and u_y_scale_magn
are the magnification coefficients (lower and upper, respectively), for y scale. If rng is the range between maximum and minimum values in all sets of series within a plot, the lower limit for y scale will be (rng * l_y_scale_magn
) below the lower value, and the upper limit will be (rng * u_y_scale_magn
) above the upper value of series.
Allowed values for leg_pos
are the same of x
in function legend
.
Most graphic parameters for functions plot
and legend
are accepted.
Charts of quantiles for water balance variables (12-month climatic values). They can be sent to the console or saved as graphic files.
A conflict is generated if parameters already used by the function are passed (e.g. x for legend
: use leg_pos
instead).
Emanuele Eccel
data(Trent_climate) # quantiles is the list ("thornthwaite" S3 object)of quantile tables generated # by function thornthwaite; # it is the second element of the output list, # which can be split into two separate lists (see function thornthwaite) sta <- 1 # 1st station in the list of quantile tables q_list=quantiles[[sta]] class(q_list) <- "thornthwaite" ## q_list is coerced to a "thornthwaite" S3 object plot(q_list, st_name=names(quantiles)[sta], variables=c("Precipitation", "Et0"), leg_pos = "topleft", col=c(1:6,1), pch=c(1:6,16), lty=1, horiz=TRUE, y.intersp=0.1)
data(Trent_climate) # quantiles is the list ("thornthwaite" S3 object)of quantile tables generated # by function thornthwaite; # it is the second element of the output list, # which can be split into two separate lists (see function thornthwaite) sta <- 1 # 1st station in the list of quantile tables q_list=quantiles[[sta]] class(q_list) <- "thornthwaite" ## q_list is coerced to a "thornthwaite" S3 object plot(q_list, st_name=names(quantiles)[sta], variables=c("Precipitation", "Et0"), leg_pos = "topleft", col=c(1:6,1), pch=c(1:6,16), lty=1, horiz=TRUE, y.intersp=0.1)
The second list (quantiles
) in thornt_lst
organized according to stations.
See Examples in function thornthwaite
for its construction.
data(Trent_climate)
data(Trent_climate)
Data frame of 28 observations of 4 variables
Calculation of Riou's drought index described in OIV bio-climatic indices for viticulture (see references)
RDI(series, clim_norm = NULL, first.yr = NULL, last.yr = NULL, TAW = 200, coeff_rad, coeff_Hargr = rep(0.75, 12), quant = c(0, 0.1, 0.5))
RDI(series, clim_norm = NULL, first.yr = NULL, last.yr = NULL, TAW = 200, coeff_rad, coeff_Hargr = rep(0.75, 12), quant = c(0, 0.1, 0.5))
series |
series of mean monthly weather values |
clim_norm |
the reference climatic values for each month, used for gap filling. Default is |
first.yr |
of the period over which water balance is calculated. Default is |
last.yr |
of the period over which water balance is calculated. Default is |
TAW |
total available water content of soil |
coeff_rad |
vector of solar radiation coefficients (12 values) for calculation of potential evapotranspiration |
coeff_Hargr |
(vector of monthly) correction coefficient(s) for Hargreaves' equation |
quant |
vector of quantiles for the statistical ranking of the year representative for balance (0..1) |
For full description of algorithm see OIV standards at http://www.oiv.int/oiv/info/enresolution2012?lang=en and the references: Riou, 1994; Tonietto, 1999.
Evapotranspiration is calculated by Hargreaves' equation (see arid
).
series
is a data frame of the monthly series (means) of: cumulated precipitation (mm), minimum temperature, maximum temperature, mean temperature (optional)
- all in deg. C. Includes the following columns (and names): "year", "month", "P", "Tn", "Tx", "Tm" (optional), for precipitation, minimum, maximum and
mean temperature, respectively. If Tm
is missing it is calculated as (Tn + Tx)/2. Format is the same of lista_cli
.
clim_norm
is a monthly data frame of 12 climate normals, with the same column names of series
, except "year".
It can be the output of function climate
. If clim_norm
is not NULL
, any missing value in
the monthly series is substituted by the corresponding climatic value in clim_norm
.
A default value of 200 mm for TAW
is suggested by the authors of the index. It can be changed according to the known
pedological features of soil.
coeff_rad
corresponds to the mean monthly extra-atmospheric radiation (see function ExAtRa
). It is required in Hargreaves' equation.
coeff_Hargr
is either a single value or a vector of 12 coefficients to adjust Hargreaves' estimation of potential evapotranspiration.
From calibration in 6 stations from the same network of Trent_climate
, its average value is 0.75.
quant_vector
a vector of minimum one element. 0 yields minimum absolute case, 0.5 the median. Values range from 0 to 1 (inappropropriate if > 0.5).
The algorithm described in OIV assesses water balance at the last month of the ripenining period, early autumn. However, in humid or sub-humid climates the driest period for soil generally falls in summer. For this reason, the output table reports both cases ("harvest" time value and monthly minimum over the season, "WB_harv" and "WB_min", respectfully). Harvest time is conventionally September (N emisphere) or March (S emisphere).
A two-column table reporting Riou's drought indices for each quantile chosen (one line each, minimum is 1). Both "harvest time" and minimum values are calculated (see details).
Emanuele Eccel
Riou, C. 1994. Le determinisme climatique de la maturation du raisin: application au zonage de la teneur en sucre dans la Communaute Europeenne (E. Commission, ed.). Office des Publications Officielles des Communautes Europeennes, Luxembourg, 322p.
Tonietto, J. 1999. Les Macroclimats Viticoles Mondiaux et l'Influence du Mesoclimat sur la Typicite de la Syrah et du Muscat de Hambourg dans le Sud de la France Methodologie de Caracterisation. These de doctorat, Ecole Nationale Superieure Agronomique de Montpellier, Montpellier (France), 216p.
data(Trent_climate) RDI(lista_cli[[1]], clim_norm=clima_81_10[[1]], first.yr=1981, last.yr=2010, coeff_rad=coeff_rad)
data(Trent_climate) RDI(lista_cli[[1]], clim_norm=clima_81_10[[1]], first.yr=1981, last.yr=2010, coeff_rad=coeff_rad)
For every station, the first element (a list, Thornth._W._bal
) reports the monthly
series of water balance quantities for the station, each in one data frame (see function
thornthwaite
for details). The second list (quantiles
) reports the
monthly quantiles for the same quantities.
data(Trent_climate)
data(Trent_climate)
S3 object: a "hyperlist" (list of lists of lists), one list of lists for each station
Calculates Thornthwaite and Mather's water balance from monthly series of precipitation and temperature. Aimed at a classification of a site's climate according to its water balance features.
thornthwaite(series, latitude, clim_norm = NULL, first.yr = NULL, last.yr = NULL, quant = c(0, 0.1, 0.25, 0.5, 0.75, 0.9, 1), snow.init = 20, Tsnow = -1, TAW = 100, fr.sn.acc = 0.95, snow_melt_coeff = 1)
thornthwaite(series, latitude, clim_norm = NULL, first.yr = NULL, last.yr = NULL, quant = c(0, 0.1, 0.25, 0.5, 0.75, 0.9, 1), snow.init = 20, Tsnow = -1, TAW = 100, fr.sn.acc = 0.95, snow_melt_coeff = 1)
series |
the monthly series of temperature and precipitation. |
latitude |
latitude of the station in degrees. |
clim_norm |
climatic normals. |
first.yr |
first year of the period over which water balance is calculated. Default is |
last.yr |
last year of the period over which water balance is calculated. Default is |
quant |
vector of quantiles for which water balance has to be assessed. Default is: min, 10th, 25th 50th, 75th, 90th, max. |
snow.init |
initial water equivalent for snowpack (mm). Default is 20. |
Tsnow |
maximum temperature (monthly mean) for precipitation to be treated as snowfall. Default is -1 degree C. |
TAW |
maximum (field capacity) for soil water retention, and initial soil water content (mm). Default is 100. |
fr.sn.acc |
fraction of snow that contributes to snowpack (0-1). 1 - fr.sn.acc is treated as liquid monthly precipitation Default is 0.95. |
snow_melt_coeff |
monthly coefficient(s) for snowmelt. Default is 1. |
The algorithm for the calculation of water balance is adapted from Thornthwaite, 1948; Thornthwaite and Mather, 1955; Thornthwaite and Mather, 1957.
series
is a data frame with years, months, temperature and precipitation values. Names in series columns must include: year, month, Tn and Tx (minimum and maximum temperatures, respectively) or, as an alternative, Tm (mean temperatures), and P (mandatory).
clim_norm
is a monthly data frame of climate normals, with column names: "P", "Tn", "Tx", "Tm" (precipitation, minimum, maximum and mean temperature, respectively). It can be the output of function climate
. If clim_norm
is not NULL, any missing value in the monthly series is substituted by the corresponding climatic value in clim_norm
.
At any winter season, the maximum monthly snowpack height is attained in the last month before "spring" conditions (Tm
>= Tsnow
), even if a month with Tm < Tsnow may occur later.
snow_melt_coeff
is (are) the coefficient(s) for snow melt fraction(s) at any month where the condition for melting exists. If snow_melt_coeff
= 1 (default), all the melting occurs in the first month when Tm >= Tsnow
; if it is a vector, melting is spread over more than one month. If the sum of coefficients is less than 1, the residual melting occurs in one further month.
The output function is a list of two lists of data frames (balance and quantile). In both lists, data frame (and names) are the following (all variables in mm):
Precipitation
(repeats input values);
Et0
(potential evapotranspiration);
Storage
(water stored in soil);
Prec. - Evap.
(difference between precipitation and potential evapotranspiration);
Deficit
(difference between potential and real evapotranspiration, due to water unavailability in soil);
Surplus
(water surplus in soil, routed to runoff).
Please, refer to the quoted references for details.
This function requires the function daylength
(libr. geosphere
).
A thornthwaite
S3 object, consisting on a list of two lists. The first (name: W_balance) is a list of data frames containing the monthly series of all indices, the second (name: quantiles) the relevant quantiles. See details for meanings of single variables.
Giambattista Toller and Emanuele Eccel
Thornthwaite, C. W., 1948: An Approach toward a Rational Classification of Climate. Geographical Review, Vol. 38, No. 1(Jan.):55-94.
Thornthwaite, C. W., and Mather, J.R., 1955: The water balance. Publications in Climatology, Volume 8(1), Laboratory of Climatology
Thornthwaite, C. W., and Mather, J.R., 1957: Instructions and tables for computing potential evapotranspiration and the water balance. Publications in climatology, Volume 10(3), Laboratory of Climatology
climate
, ExAtRa
, plot.thornthwaite
data(Trent_climate) # lista_cli is a list of data frames of the type "series", # each one referring to one station - see function "climate". # clima_81_10 is a list of data frames having climatic means # of temperature and precipitation, each one referring to one station. # It can be the output of function "climate". library(geosphere) # required for function daylength thornt_lst<-NULL lista_cli <- lista_cli[1:3] ## lista_cli is reduced to diminish elapsed time of execution! for(k in 1 : length(lista_cli[1:3])) { thornt_lst[[k]]<-thornthwaite(series=lista_cli[[k]], clim_norm=clima_81_10[[k]], latitude = 46, first.yr=1981, last.yr=2010, snow_melt_coeff=c(0.5,0.5 ) ) } names(thornt_lst)<-names(lista_cli) # splits list into two lists W_balance<-NULL; quantiles<-NULL for(k in 1 : length(lista_cli)) { W_balance[[k]]<-thornt_lst[[k]]$W_balance quantiles[[k]]<-thornt_lst[[k]]$quantiles } names(W_balance)<-names(thornt_lst); names(quantiles)<-names(thornt_lst)
data(Trent_climate) # lista_cli is a list of data frames of the type "series", # each one referring to one station - see function "climate". # clima_81_10 is a list of data frames having climatic means # of temperature and precipitation, each one referring to one station. # It can be the output of function "climate". library(geosphere) # required for function daylength thornt_lst<-NULL lista_cli <- lista_cli[1:3] ## lista_cli is reduced to diminish elapsed time of execution! for(k in 1 : length(lista_cli[1:3])) { thornt_lst[[k]]<-thornthwaite(series=lista_cli[[k]], clim_norm=clima_81_10[[k]], latitude = 46, first.yr=1981, last.yr=2010, snow_melt_coeff=c(0.5,0.5 ) ) } names(thornt_lst)<-names(lista_cli) # splits list into two lists W_balance<-NULL; quantiles<-NULL for(k in 1 : length(lista_cli)) { W_balance[[k]]<-thornt_lst[[k]]$W_balance quantiles[[k]]<-thornt_lst[[k]]$quantiles } names(W_balance)<-names(thornt_lst); names(quantiles)<-names(thornt_lst)
The daily data frame of mean daily temperature for a number of stations, used in function
oiv_ind
data(Trent_climate)
data(Trent_climate)
Data frame: 19358 obervations of 15 variables (stations)
The daily data frame of minimum daily temperature for a number of stations, used in function
oiv_ind
data(Trent_climate)
data(Trent_climate)
Data frame: 19358 obervations of 15 variables (stations)
A group of datasets used consistently throughout the ClimClass manual and examples. It is used as reference definition of the climate for the Trentino region, Italy. It includes monthly series of temperature and precipitation, and reference tables for the definition of aridity and continentality/oceanicity
data(Trent_climate)
data(Trent_climate)
Series like "Txxxx" were supplied by the Autonomous Province of Trento - Meteotrentino (I). Series like "FEMxx" were supplied by Fondazione Edmund Mach, San Michele all'Adige (I).
The daily data frame of maximum daily temperature for a number of stations, used in function
oiv_ind
data(Trent_climate)
data(Trent_climate)
Data frame: 19358 obervations of 15 variables (stations)
Is the first list (W_balance
) in thornt_lst
organized according to stations.
See Examples in function thornthwaite
for its construction.
data(Trent_climate)
data(Trent_climate)
List of 28 elements, each is a data frame of 5 variables and 636 observations