Package 'nixmass'

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

Help Index


Daily snow depth data for a northern alpine station

Description

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.

Usage

data("hsdata")

Format

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.

Examples

## 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)

SWE modeling with the delta.snow process based model and several emprical regression models.

Description

Snow Water Equivalent (SWE) is modeled either exclusiveley from daily snow depth changes or statistically depending on snow depth, altitude, date and climate class.

Usage

nixmass(data, model = c("delta.snow","jo09","pi16","st10","gu19"), 
       alt, region.jo09, region.gu19, snowclass.st10, verbose = FALSE)

Arguments

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 YYYY-MM-DD. Values in the hs column must be snow depth values of class numeric 0\ge 0 in m. No gaps or NA are allowed.

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 "jo09". Station elevation in meters

region.jo09

Must be given if one of model is "jo09". This must be an integer number between 1 and 7 of the Swiss region where the station belongs to, according to Fig. 1 in the original reference.

region.gu19

If model contains "gu19" this must be one of "italy", "southwest", "central" or "southeast" as described in the original reference.

snowclass.st10

Must be given if one of model is "st10". Must be one of the following character strings: "alpine","maritime","prairie","tundra","taiga" as outlined in the original reference.

verbose

Logical. Should additional information be given during runtime?

Details

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.

Value

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 YYYY-MM-DD.

hs

Vector of snow depth values used to compute SWE.

Author(s)

Harald Schellander, Michael Winkler

References

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.

Examples

## 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.

Description

Plot modeled SWE values of a nixmass object.

Usage

## S3 method for class 'nixmass'
plot(x, title = NULL, ...)

Arguments

x

nixmass object.

title

Main plot title.

...

Further graphical parameters may also be supplied as arguments. See plot.

Value

Does not return anything. A plot is produced.


Print summary of a nixmass object.

Description

Print summary of a nixmass object.

Usage

## S3 method for class 'nixmass'
summary(object, ...)

Arguments

object

nixmass object.

...

additional arguments affecting the summary produced.

Value

Summary information of SWE values calculated with selected models is printed to the screen.


SWE modeling from daily snow depth differences

Description

Model daily values of Snow Water Equivalent (SWE) solely from daily differences of snow depth.

Usage

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)

Arguments

data

A data.frame with at least two columns named date and hs. They should contain date and corresponding daily observations of snow depth hs0hs \ge 0 measured at one site. The unit must be meters (m). No gaps or NA are allowed.

rho.max

Maximum density of an individual snow layer produced by the deltasnow model [kg/m3], rho.max>0rho.max > 0

rho.null

Fresh snow density for a newly created layer [kg/m3], rho.null>0rho.null > 0

c.ov

Overburden factor due to fresh snow [-], c.ov>0c.ov > 0

k.ov

Defines the impact of the individual layer density on the compaction due to overburden [-], k.ov[0,1]k.ov \in [0,1].

k

Exponent of the exponential-law compaction [m3/kg], k>0k > 0.

tau

Uncertainty bound [m], tau>0tau > 0.

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 TRUE or FALSE.

Details

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:

ρi(ti+1)=ρi(ti)(1+(SWEg)/η0expk2ρi(ti))\rho_i(t_{i+1}) = \rho_i(t_i)*(1+(SWE*g)/\eta_0 * exp^{-k_2*\rho_i(t_i)})

with ρi(ti+1)andρi(ti)\rho_i(t_{i+1}) and \rho_i(t_i) being tomorrow's and today's respective density of layer i, the gravitational acceleration g=9.8ms2g = 9.8ms^{-2}, viscosity η0\eta_0 [Pa] and factor k2[m3kg1k2 [m^3kg^{-1}], determining the importance of today's for tomorrow's density.

Value

A vector with daily SWE values in mm.

Author(s)

Harald Schellander, Michael Winkler

References

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.


Statistical SWE modeling based on a quadratic dependance on the day-of-year

Description

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.

Usage

swe.gu19(data, region.gu19, n0=NA ,n1=NA, n2=NA)

Arguments

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 YYYY-MM-DD. The hs column must be snow depth values 0\ge 0 in m.

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 no, n1 and n2 refer to Intercept, slope and quadratic dependence of an empirical regression between densities and the day-of-year (see details)

Details

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.

Value

A vector with daily SWE values in mm.

References

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.


Statistical SWE modeling depending on month and climatic region in Switzerland

Description

Snow Water Equivalent (SWE) is modeled statistically depending on snow depth, altitude, date and region in Switzerland.

Usage

swe.jo09(data, alt, region.jo09)

Arguments

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 YYYY-MM-DD. The hs column must be snow depth values 0\ge 0 in m.

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.

Details

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.

Value

A list with SWE values for each region in mm.

References

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.


Statistical SWE modeling depending on the day-of-year

Description

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.

Usage

swe.pi16(data, rho_0=200, K=1)

Arguments

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 YYYY-MM-DD. The hs column must be snow depth values 0\ge 0 in m.

rho_0

Intercept of the linear regression between observed snow depths and SWE values. rho_0 is set to 200 as default, which is the value from the original reference. It can however be set to any value according to regression modeling with other datasets.

K

Slope of the linear regression between observed densities and the day-of-year as defined in the original reference. K is set to 1 as default, which is the value from the original reference. It can however be set to any value according to regression modeling with other datasets.

Details

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.

Value

A vector with daily SWE values in mm.

References

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.


Statistical SWE modeling depending on day of year and a climatic region

Description

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.

Usage

swe.st10(data,snowclass.st10)

Arguments

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 YYYY-MM-DD. The hs column must be snow depth values 0\ge 0 in m.

snowclass.st10

Must be one of the following character strings: "alpine","maritime","prairie","tundra","taiga".

Details

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.

Value

A vector with daily SWE values in mm.

References

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.