Title: | Snow Water Equivalent Modeling with the 'Delta.snow' Model and Empirical Regression Models |
---|---|
Description: | Snow water equivalent is modeled with the process based 'delta.snow' model and empirical regression models using relationships between density and diverse at-site parameters. The methods are described in Winkler et al. (2021) <doi:10.5194/hess-25-1165-2021>, Guyennon et al. (2019) <doi:10.1016/j.coldregions.2019.102859>, Pistocchi (2016) <doi:10.1016/j.ejrh.2016.03.004>, Jonas et al. (2009) <doi:10.1016/j.jhydrol.2009.09.021> and Sturm et al. (2010) <doi:10.1175/2010JHM1202.1>. |
Authors: | Harald Schellander [aut, cre], Michael Winkler [ctb] |
Maintainer: | Harald Schellander <[email protected]> |
License: | GPL-2 | GPL-3 |
Version: | 1.0.2 |
Built: | 2024-11-22 06:27:16 UTC |
Source: | CRAN |
Gapless daily snow depth observations for a winter season from 1.8. - 31.7. from a station situated in the northern earstern alps at an altitude of 600 m. For anonymization the years are intentionally set to 1900 - 1901.
This data series is free of gaps with a minimum of 0 and a maximum of 1.3 meters. It is intended to be used as is as input data for the package nixmass
to calculate snow water equivalent and bulk snow density with the delta.snow method and several empirical regression models from the literature.
data("hsdata")
data("hsdata")
A data.frame
named data
with columns date
and hs
. The date column contains character strings of the format "YYYY-MM-DD" and is of class character
. The hs column holds daily observed snow depths in meters and is of class numeric
.
## Load example data data("hsdata") ## explore dataset head(hsdata) plot(hsdata$hs, type="o") ## compute snow water equivalents o <- nixmass(hsdata, model="delta.snow",verbose=TRUE) plot(o) o1 <- nixmass(hsdata, alt=600, region.jo09 = 6, region.gu19 = "central", snowclass.st10 = "alpine", verbose = FALSE) plot(o1) summary(o1)
## Load example data data("hsdata") ## explore dataset head(hsdata) plot(hsdata$hs, type="o") ## compute snow water equivalents o <- nixmass(hsdata, model="delta.snow",verbose=TRUE) plot(o) o1 <- nixmass(hsdata, alt=600, region.jo09 = 6, region.gu19 = "central", snowclass.st10 = "alpine", verbose = FALSE) plot(o1) summary(o1)
Snow Water Equivalent (SWE) is modeled either exclusiveley from daily snow depth changes or statistically depending on snow depth, altitude, date and climate class.
nixmass(data, model = c("delta.snow","jo09","pi16","st10","gu19"), alt, region.jo09, region.gu19, snowclass.st10, verbose = FALSE)
nixmass(data, model = c("delta.snow","jo09","pi16","st10","gu19"), alt, region.jo09, region.gu19, snowclass.st10, verbose = FALSE)
data |
A data.frame of daily observations with two columns named date and hs referring to day and snow depth at that day. Values in the date column must be of class character with format |
model |
Defines model for SWE computation. Can be one, several or all of "delta.snow","jo09","pi16","st10","gu19". If no model is given, all models are computed. |
alt |
Must be given if one of model is |
region.jo09 |
Must be given if one of model is |
region.gu19 |
If model contains |
snowclass.st10 |
Must be given if one of model is |
verbose |
Logical. Should additional information be given during runtime? |
nixmass
This function is a wrapper for the computation of SWE with different models. The process based model delta.snow
can be chosen, as well as different empirical regression models of Jonas,Pistocchi, Sturm
and Guyennon.
For the "delta.snow" model and the ones of "Pistocchi" and "Guyennon", the needed parameters and coefficients from the original references are set as default. They can however be changed according to results from other datasets. For the other models of "Jonas" and "Sturm" regression coefficients are fixed.
The computation is quite fast and there does not exist any restriction regarding the length of the data. However, if many years have to be modeled at once, it is recommended to split the computation into single years, separated by zero snow depth values.
A list of class "nixmass"
with components:
swe |
Contains a list of numerical vectors. Each entry refers to SWE values computed with the selected model(s). |
date |
Character vector of date strings in the format |
hs |
Vector of snow depth values used to compute SWE. |
Harald Schellander, Michael Winkler
Guyennon, N., Valt, M., Salerno, F., Petrangeli, A., Romano, E. (2019) 'Estimating the snow water equivalent from snow depth measurements in the Italian Alps', Cold Regions Science and Technology. Elsevier, 167 (August), p. 102859. doi: 10.1016/j.coldregions.2019.102859.
Jonas, T., Marty, C. and Magnusson, J. (2009) "Estimating the snow water equivalent from snow depth measurements in the Swiss Alps"", Journal of Hydrology, 378(1 - 2), pp. 161 - 167. doi: 10.1016/j.jhydrol.2009.09.021.
Pistocchi, A. (2016) "Simple estimation of snow density in an Alpine region", Journal of Hydrology: Regional Studies. Elsevier B.V., 6(Supplement C), pp. 82 - 89. doi: 10.1016/j.ejrh.2016.03.004.
Sturm, M. et al. (2010) "Estimating Snow Water Equivalent Using Snow Depth Data and Climate Classes", Journal of Hydrometeorology, 11(6), pp. 1380 - 1394. doi: 10.1175/2010JHM1202.1.
Winkler, M., Schellander, H., and Gruber, S.: Snow water equivalents exclusively from snow depths and their temporal changes: the delta.snow model, Hydrol. Earth Syst. Sci., 25, 1165-1187, doi: 10.5194/hess-25-1165-2021, 2021.
## Load example data with realistic snow depth values ## from a station at 600 meters in the northern Alps ## Note that the winter season is set to an arbitrary date ## to mask its origin data("hsdata") o <- nixmass(hsdata, model="delta.snow",verbose=TRUE) plot(o) o1 <- nixmass(hsdata, alt=600, region.jo09=6, region.gu19 = "central", snowclass.st10 = "alpine", verbose = FALSE) plot(o1) summary(o1)
## Load example data with realistic snow depth values ## from a station at 600 meters in the northern Alps ## Note that the winter season is set to an arbitrary date ## to mask its origin data("hsdata") o <- nixmass(hsdata, model="delta.snow",verbose=TRUE) plot(o) o1 <- nixmass(hsdata, alt=600, region.jo09=6, region.gu19 = "central", snowclass.st10 = "alpine", verbose = FALSE) plot(o1) summary(o1)
Plot modeled SWE values of a nixmass object.
## S3 method for class 'nixmass' plot(x, title = NULL, ...)
## S3 method for class 'nixmass' plot(x, title = NULL, ...)
x |
nixmass object. |
title |
Main plot title. |
... |
Further graphical parameters may also be supplied as arguments. See |
Does not return anything. A plot is produced.
Print summary of a nixmass object.
## S3 method for class 'nixmass' summary(object, ...)
## S3 method for class 'nixmass' summary(object, ...)
object |
nixmass object. |
... |
additional arguments affecting the summary produced. |
Summary information of SWE values calculated with selected models is printed to the screen.
Model daily values of Snow Water Equivalent (SWE) solely from daily differences of snow depth.
swe.delta.snow(data, rho.max=401.2588, rho.null=81.19417, c.ov=0.0005104722, k.ov=0.37856737,k=0.02993175, tau=0.02362476, eta.null=8523356, timestep=24, verbose=FALSE)
swe.delta.snow(data, rho.max=401.2588, rho.null=81.19417, c.ov=0.0005104722, k.ov=0.37856737,k=0.02993175, tau=0.02362476, eta.null=8523356, timestep=24, verbose=FALSE)
data |
A data.frame with at least two columns named |
rho.max |
Maximum density of an individual snow layer produced by the deltasnow model [kg/m3], |
rho.null |
Fresh snow density for a newly created layer [kg/m3], |
c.ov |
Overburden factor due to fresh snow [-], |
k.ov |
Defines the impact of the individual layer density on the compaction due to overburden [-], |
k |
Exponent of the exponential-law compaction [m3/kg], |
tau |
Uncertainty bound [m], |
eta.null |
Effective compactive viscosity of snow for "zero-density" [Pa s]. |
timestep |
Timestep between snow depth observations in hours. Default is 24 hours, i.e. daily snow depth observations. |
verbose |
Should additional information be given during runtime? Can be |
swe.delta.snow
computes SWE solely from daily changes of snow depth at an observation site.
Compression of a snow layer without additional load on top is computed on the basis of Sturm and Holmgren (1998), who regard snow as a viscous fluid:
with being tomorrow's and today's respective density of layer i, the gravitational acceleration
, viscosity
[Pa] and factor
], determining the importance of today's for tomorrow's density.
A vector with daily SWE values in mm.
Harald Schellander, Michael Winkler
Gruber, S. (2014) "Modelling snow water equivalent based on daily snow depths", Masterthesis, Institute for Atmospheric and Cryospheric Sciences, University of Innsbruck.
Martinec, J., Rango, A. (1991) "Indirect evaluation of snow reserves in mountain basins". Snow, Hydrology and Forests in High Alpine Areas. pp. 111-120.
Sturm, M., Holmgren, J. (1998) "Differences in compaction behavior of three climate classes of snow". Annals of Glaciology 26, 125-130.
Winkler, M., Schellander, H., and Gruber, S.: Snow water equivalents exclusively from snow depths and their temporal changes: the delta.snow model, Hydrol. Earth Syst. Sci., 25, 1165-1187, doi: 10.5194/hess-25-1165-2021, 2021.
This model parameterizes bulk snow density with day-of-the-year as the only input similar to swe.pi16
but adds a quadratic dependance. It was calibrated for the regions of the whole Italian alps, and the subregions South-West, Central and South-East. By setting the cofficients of the empirical regression it can however be used with results from other datasets.
swe.gu19(data, region.gu19, n0=NA ,n1=NA, n2=NA)
swe.gu19(data, region.gu19, n0=NA ,n1=NA, n2=NA)
data |
A data.frame of daily observations with two columns named date and hs referring to day and snow depth at that day. The date column must be a character string with the format |
region.gu19 |
Must be one of the italian subalpine regions italy, southwest, central or southeast, defined in the original reference (see details), or myregion, in which case the coefficients n0, n1 and n2 have to be set. |
n0 , n1 , n2
|
Values |
swe.gu19
Similar to the model of Pistocchi (2016), this function uses only the day-of-year (DOY) as parameterization for bulk snow density and hence SWE. In contrast to the latter, here, a quadratic term for DOY was added, to reflect non-linearity in the snow bulk density variability. The datums in the input data.frame are converted to DOY as days spent since November 1st. Regression coefficients depend on regions defined in Guyennon et al. (2019), which are italy for the Italian Alps, southwest for the South-western Italian Alps, central for the Central Italian Alpes or southeast for the South-western Italian Alps.
If region.gu19
is set to myregion, the coefficients no
, n1
and n2
must be set to values, obtained from a regression between densities and day-of-year from another dataset. It has to have the form density ~ DOY + DOY^2, where DOY is the day-of-year as defined in the original reference.
Non computable values are returned as NA.
A vector with daily SWE values in mm.
Guyennon, N., Valt, M., Salerno, F., Petrangeli, A., Romano, E. (2019) 'Estimating the snow water equivalent from snow depth measurements in the Italian Alps', Cold Regions Science and Technology. Elsevier, 167 (August), p. 102859. doi: 10.1016/j.coldregions.2019.102859.
Pistocchi, A. (2016) 'Simple estimation of snow density in an Alpine region', Journal of Hydrology: Regional Studies. Elsevier B.V., 6 (Supplement C), pp. 82 - 89. doi: 10.1016/j.ejrh.2016.03.004.
Snow Water Equivalent (SWE) is modeled statistically depending on snow depth, altitude, date and region in Switzerland.
swe.jo09(data, alt, region.jo09)
swe.jo09(data, alt, region.jo09)
data |
A data.frame of daily observations with two columns named date and hs referring to day and snow depth at that day. The date column must be a character string with the format |
alt |
station elevation in meters |
region.jo09 |
Integer number of the Swiss region where the station belongs to, according to Fig. 1 in the original reference. Must be one of 1,2,3,4,5,6,7. |
swe.jo09
This model parametrizes bulk snow density using snow depth, season (i.e. month), site altitude and site location. The location is implemented by a density offset according to the region in Switzerland, where the station belongs to. Non computable values are returned as NA.
A list with SWE values for each region in mm.
Jonas, T., Marty, C. and Magnusson, J. (2009) 'Estimating the snow water equivalent from snow depth measurements in the Swiss Alps', Journal of Hydrology, 378(1 - 2), pp. 161 - 167. doi: 10.1016/j.jhydrol.2009.09.021.
This model parameterizes bulk snow density with day-of-the-year as the only input. It was calibrated for the region of South Tyrol, Italy, and is therefore called ST model in the original reference.
swe.pi16(data, rho_0=200, K=1)
swe.pi16(data, rho_0=200, K=1)
data |
A data.frame of daily observations with two columns named date and hs referring to day and snow depth at that day. The date column must be a character string with the format |
rho_0 |
Intercept of the linear regression between observed snow depths and SWE values. |
K |
Slope of the linear regression between observed densities and the day-of-year as defined in the original reference. |
swe.pi16
This function uses only the day-of-year (DOY) as parameterization for bulk snow density and hence SWE. Here, the datums in the input data.frame are converted to DOY as defined in the original reference: negative values between 1.10. and 31.12. DOY=-92 at 1.10. In leap years 31.12. has DOY = 0, in non-leap years 31.12. has DOY = -1 with no day being 0. Non computable values are returned as NA.
A vector with daily SWE values in mm.
Pistocchi, A. (2016) 'Simple estimation of snow density in an Alpine region', Journal of Hydrology: Regional Studies. Elsevier B.V., 6(Supplement C), pp. 82 - 89. doi: 10.1016/j.ejrh.2016.03.004.
The Sturm model parametrizes bulk snow density with day of the year and a snowclass.st10. It was trained on historical snow depth - density - SWE data from the United States, Canada, and Switzerland.
swe.st10(data,snowclass.st10)
swe.st10(data,snowclass.st10)
data |
A data.frame of daily observations with two columns named date and hs referring to day and snow depth at that day. The date column must be a character string with the format |
snowclass.st10 |
Must be one of the following character strings: "alpine","maritime","prairie","tundra","taiga". |
swe.st10
This model converts snow depth to SWE using snow depth, day of year and station location (from which a climate class of snow can be inferred. The day of year (DOY) is the day-number of in the season 1.10. - 30.6. The 1.10. refers to DOY = -92. The 1.2. would be DOY = 32, while 15.11. would be DOY = -47. The snowclass.st10 must be one out of the character strings "alpine","maritime","prairie","tundra" and "taiga". For the Alps probably "alpine" would be the most appropriate climate classification.
Non computable values are returned as NA.
A vector with daily SWE values in mm.
Sturm, M. et al. (2010) 'Estimating Snow Water Equivalent Using Snow Depth Data and Climate Classes', Journal of Hydrometeorology, 11(6), pp. 1380 - 1394. doi: 10.1175/2010JHM1202.1.