Skip to content

easysnowdata

PyPI conda-forge DOI CI License: MIT

A Python package to easily retrieve data relevant to snow science.

easysnowdata unifies access to a wide range of snow-relevant geospatial datasets under a consistent API that returns xarray objects. The emphasis is on minimising downloads and local computation by leveraging cloud-optimised data formats (Zarr, COGs, STAC) wherever possible.

easysnowdata gallery


Modules at a glance

Module Contents
automatic_weather_stations SNOTEL & CCSS station metadata + multi-variable time series
hydroclimatology ERA5, SNODAS, UCLA snow reanalysis, watershed/basin geometries, Köppen-Geiger
remote_sensing Sentinel-1, Sentinel-2, HLS, MODIS snow, ESA WorldCover, forest cover, snow classification
topography Copernicus DEM (30 m / 90 m), CHILI topographic index
utils Shared helpers: bbox conversion, water-year utilities, STAC configs

Installation

1
pip install easysnowdata
1
2
3
conda install -c conda-forge easysnowdata
# or
mamba install -c conda-forge easysnowdata
1
2
3
4
git clone https://github.com/egagli/easysnowdata.git
cd easysnowdata
pixi install
pixi run test-fast   # credential-free tests

Five-minute quickstart

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import easysnowdata

bbox = (-121.94, 46.72, -121.54, 46.99)  # Mount Rainier, WA

# Automatic weather station data
sc = easysnowdata.automatic_weather_stations.StationCollection()
sc.get_data(stations="679_WA_SNTL", variables=["WTEQ", "SNWD"],
            start_date="2023-10-01", end_date="2024-06-30")
sc.data.plot()

# Copernicus DEM
dem = easysnowdata.topography.get_copernicus_dem(bbox_input=bbox, resolution=30)
dem.plot()

# ERA5 hourly (anonymous GCS access — no credentials needed)
era5 = easysnowdata.hydroclimatology.get_era5(
    bbox_input=bbox, source="GCS",
    start_date="2023-01-01", end_date="2023-01-31"
)
era5["2m_temperature"].mean("time").plot()

# Seasonal snow classification
snow_class = easysnowdata.remote_sensing.get_seasonal_snow_classification(bbox)
snow_class.attrs["example_plot"](snow_class)

Services requiring account setup

Some data sources require free accounts:

Service Env vars needed Sign-up link
Google Earth Engine EARTHENGINE_TOKEN earthengine.google.com
NASA EarthData EARTHDATA_USERNAME, EARTHDATA_PASSWORD urs.earthdata.nasa.gov

Planetary Computer and anonymous GCS (ERA5) require no credentials.


Citing

If you use easysnowdata in your research, please cite the Zenodo archive:

1
2
Gagliano, E. (2024). easysnowdata (Version 0.0.21) [Software].
Zenodo. https://doi.org/10.5281/zenodo.14741502