vignettes/snotelr-vignette.Rmd
      snotelr-vignette.RmdThe SNOTEL network is composed of over 800 automated data collection sites located in remote, high-elevation mountain watersheds in the western U.S. They are used to monitor snowpack, precipitation, temperature, and other climatic conditions. The data collected at SNOTEL sites are transmitted to a central database. This package queries this centralized database to provide easy access to these data and additional seasonal metrics of snow accumulation (snow phenology).
The SNOTEL network consists of a vast number of observation sites,
all of them listed together with their meta-data on the SNOTEL website.
The snotel_info() function allows you to query this table
and import it as a neat table into R. Some of the
meta-data, in particular the site id (site_id), you will
need of you want to download the data for a site. You can save this
table to disk using the path variable to specify a location
on your computer where to store the data as a csv. If this parameter is
missing the data is returned as an R variable.
# download and list site information
site_meta_data <- snotel_info()
head(site_meta_data)
#>   network state            site_name
#> 1    SNTL    AK     elmendorf field 
#> 2    SNTL    UT           elk ridge 
#> 3    SNTL    AK              hoonah 
#> 4    SNTL    AK pilgrim hot springs 
#> 5    SNTL    AK          seven mile 
#> 6    SNTL    CA          lost lakes 
#>                                       description      start        end
#> 1                Outlet Ship Creek (190204010404) 2024-10-01 2024-11-20
#> 2                 Cottonwood Creek (140802010402) 2024-10-01 2024-11-20
#> 3 Port Fredrick-Frontal Icy Strait (190102110906) 2023-10-01 2024-11-20
#> 4    Paystreak Creek-Pilgrim River (190501050702) 2024-07-01 2024-11-20
#> 5                 Outlet Ray River (190804040306) 2024-09-01 2024-11-20
#> 6     Upper West Fork Carson River (160502010301) 2024-09-01 2024-11-20
#>   latitude longitude elev        county site_id
#> 1    61.25   -149.82   52     Anchorage    1332
#> 2    37.82   -109.77 2600      San Juan    1323
#> 3    58.12   -135.41  472 Hoonah-angoon    1318
#> 4    65.09   -164.92    6          Nome    1327
#> 5    65.94   -149.86  201 Yukon-koyukuk    1330
#> 6    38.65   -119.95 2633        Alpine    1331If you downloaded the meta-data for all sites you can make a
selection using either geographic coordinates, or state
columns. For the sake of brevity I’ll only query data for one site using
its site_id below. By default the data, reported in
imperial values, are converted to metric measurements.
# downloading data for a random site
snow_data <- snotel_download(
  site_id = 670,
  internal = TRUE
  )
#> Downloading site: northeast entrance , with id: 670
# show the data
head(snow_data)
#>   network state           site_name                           description
#> 1    SNTL    MT northeast entrance  Upper Soda Butte Creek (100700010602)
#> 2    SNTL    MT northeast entrance  Upper Soda Butte Creek (100700010602)
#> 3    SNTL    MT northeast entrance  Upper Soda Butte Creek (100700010602)
#> 4    SNTL    MT northeast entrance  Upper Soda Butte Creek (100700010602)
#> 5    SNTL    MT northeast entrance  Upper Soda Butte Creek (100700010602)
#> 6    SNTL    MT northeast entrance  Upper Soda Butte Creek (100700010602)
#>        start        end latitude longitude elev                    county
#> 1 1937-10-01 2024-11-20    45.01   -110.01 2240 Yellowstone National Park
#> 2 1937-10-01 2024-11-20    45.01   -110.01 2240 Yellowstone National Park
#> 3 1937-10-01 2024-11-20    45.01   -110.01 2240 Yellowstone National Park
#> 4 1937-10-01 2024-11-20    45.01   -110.01 2240 Yellowstone National Park
#> 5 1937-10-01 2024-11-20    45.01   -110.01 2240 Yellowstone National Park
#> 6 1937-10-01 2024-11-20    45.01   -110.01 2240 Yellowstone National Park
#>   site_id       date snow_water_equivalent snow_depth precipitation_cumulative
#> 1     670 1966-10-01                   0.0         NA                       NA
#> 2     670 1966-10-02                   7.6         NA                       NA
#> 3     670 1966-10-03                   0.0         NA                       NA
#> 4     670 1966-10-04                   0.0         NA                       NA
#> 5     670 1966-10-05                   0.0         NA                       NA
#> 6     670 1966-10-06                   0.0         NA                       NA
#>   temperature_max temperature_min temperature_mean precipitation
#> 1              NA              NA               NA            NA
#> 2              NA              NA               NA            NA
#> 3              NA              NA               NA            NA
#> 4              NA              NA               NA            NA
#> 5              NA              NA               NA            NA
#> 6              NA              NA               NA            NA
# A plot of snow accummulation through the years
plot(as.Date(snow_data$date),
     snow_data$snow_water_equivalent,
     type = "l",
     xlab = "Date",
     ylab = "SWE (mm)"
    )
Although the main function of the package is to provide easy access
to the SNOTEL data a function snotel_phenology() is
provided to calculate seasonal metrics of snow deposition.
# calculate snow phenology
phenology <- snotel_phenology(snow_data)
#> Joining with `by = join_by(date)`
# subset data to the first decade of the century
snow_data_subset <- subset(snow_data, as.Date(date) > as.Date("2000-01-01") &
                             as.Date(date) < as.Date("2010-01-01"))
# plot the snow water equivalent time series
plot(as.Date(snow_data_subset$date),
     snow_data_subset$snow_water_equivalent,
     type = "l",
     xlab = "Date",
     ylab = "SWE (mm)"
  )
# plot the dates of first snow accumulation as a red dot
points(phenology$first_snow_acc,
       rep(1,nrow(phenology)),
       col = "red",
       pch = 19,
       cex = 0.5
      )
A list of all provided snow phenology statistics is provided below.
| Value | Description | 
|---|---|
| year | The year in which the an event happened | 
| first_snow_melt | day of first full snow melt (in DOY) | 
| cont_snow_acc | start of continuous snow accumulation / retention (in DOY) | 
| last_snow_melt | day on which all snow melts for the remaining year (in DOY) | 
| first_snow_acc | day on which the first snow accumulates (in DOY) | 
| max_swe | maximum snow water equivalent value during a given year (in mm) | 
| max_swe_doy | day on which the maximum snow water equivalent value is reached (in DOY) |