Skip to content

Repository files navigation

easysnowdata

PyPI conda-forge DOI CI

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

easysnowdata unifies access to a wide range of snow-relevant geospatial datasets — weather stations, satellite imagery, climate reanalysis, DEMs, and more — under a consistent API that returns xarray objects. The emphasis is on minimising downloads and local computation by leveraging cloud-optimised data formats wherever possible.

Gallery

easysnowdata example gallery

One executed script per product — browse them, each with the code, the figure and a downloadable notebook.

Data Source Status

Every route of every product is probed weekly. A failure opens an issue labelled data-source and a recovery closes it; latency and DMR++ readiness are on the status page.

Last updated: 2026-09-17 21:39 UTC
⚠️ = skipped (credentials not available in this run). Latency and virtualization probes are on the status page.

Data Source Latest (Sep 17) Sep 14 Sep 7 Aug 31
AWDB stations (NRCS REST API)
CDEC stations (JSON data servlet)
BC snow stations (DataBC WFS)
NVE stations (HydAPI) ⚠️
Yukon stations (AquaCache API)
SNOTEL/CCSS station list (GitHub)
Snow station archive tarball (global_snow_networks)
SNOTEL/CCSS station CSV (GitHub)
ARCO-ERA5 (GCS anonymous)
ERA5 (Google Earth Engine)
Köppen-Geiger classification (figshare)
HUC geometries (USGS WBD REST)
HUC geometries (GEE/USGS WBD)
HydroATLAS basins (figshare)
HydroBASINS (HydroSHEDS regional zip)
HydroBASINS (GEE/HydroATLAS)
GRDC major river basins (World Bank)
GRDC WMO basins
MODIS snow cover MOD10A1F (NASA NSIDC)
MODIS snow cover MOD10A1 (Planetary Computer)
Mountain snow mask (Zenodo)
SNODAS (NSIDC G02158)
SNODAS (GEE/Climate Engine)
Sturm & Liston snow classification (NSIDC-0768)
Sturm & Liston snow classification (Azure)
UCLA Snow Reanalysis (NASA NSIDC) ⚠️ ⚠️ ⚠️
HMA Snow Reanalysis (NASA NSIDC)
VIIRS snow cover VNP10A1F (NASA NSIDC)
Forest cover fraction (Zenodo)
Forest cover fraction (GEE/CGLS-LC100)
ESA WorldCover (Planetary Computer)
ESA WorldCover (AWS bucket)
Annual NLCD (GEE community asset)
NLCD (GEE/USGS)
HLS L30 (CMR-STAC LPCLOUD)
HLS S30 (Planetary Computer)
PlanetScope (Planet Data API) ⚠️
Sentinel-2 L2A (Planetary Computer)
Sentinel-2 L2A (Earth Search)
Sentinel-1 RTC (Planetary Computer)
Sentinel-1 RTC OPERA (CMR-STAC ASF)
Sentinel-1 RTC OPERA (Earth Engine)
Sentinel-1 static layers (CMR-STAC ASF)
Copernicus DEM for the incidence angle (Planetary Computer)
Sentinel-1 GRD angle band (Earth Engine)
CHILI (GEE/CSP ERGo)
Copernicus DEM (Planetary Computer)
Copernicus DEM (Earth Search)

Installation

pip install easysnowdata
conda install -c conda-forge easysnowdata
mamba install -c conda-forge easysnowdata

Development install (with pixi)

git clone https://github.com/egagli/easysnowdata.git
cd easysnowdata
pixi install                          # sets up the environments
pixi run -e test-py313 test-unit      # offline tests (no network, no credentials)
pixi run -e test-py313 test-live      # live tests against the data providers (credentialed ones skip without secrets)
pixi run -e docs docs-serve           # preview the docs locally

Services that require account setup

Some data sources need free accounts and credentials passed as environment variables:

Service Env vars Sign-up
Google Earth Engine EARTHENGINE_TOKEN (or ~/.config/earthengine/credentials from ee.Authenticate()) earthengine.google.com
NASA Earthdata EARTHDATA_TOKEN (recommended), or EARTHDATA_USERNAME + EARTHDATA_PASSWORD, or a ~/.netrc entry from earthaccess.login(persist=True) urs.earthdata.nasa.gov

Planetary Computer and anonymous GCS access require no credentials.

What is in it

28 products across 8 themes, each with one or more access routes:

theme products open without an account
climate era5, koppen-geiger 2 of 2
hydro grdc-major-river-basins, grdc-wmo-basins, huc, hydrobasins 4 of 4
land esa-worldcover, forest-cover-fraction, nlcd 2 of 3
optical hls, planetscope, sentinel-2-l2a 2 of 3
sar sentinel-1-local-incidence-angle, sentinel-1-rtc 2 of 2
snow modis-snow, mountain-snow-mask, snodas, snow-classification, ucla-snow-reanalysis, viirs-snow 4 of 6
stations awdb-stations, cdec-stations, databc-stations, nve-stations, snow-station-archive, yukon-stations 5 of 6
terrain chili, copernicus-dem 1 of 2

Every product's routes, resolution, credentials, licence and health are on its own page: https://egagli.github.io/easysnowdata/catalog/.

Quick Start

import easysnowdata as esd

aoi = (-121.94, 46.72, -121.54, 46.99)          # Mount Rainier; any AOI form works

# Snow stations: which are here, then one water year of observations
inv = esd.stations.inventory(aoi, daily_only=True)
obs = esd.stations.load(inv, variables=["swe", "snwd"], time="2023-10/2024-09")

# Terrain, SAR and snow water equivalent — lazy, Dask-backed, CRS attached
dem = esd.terrain.dem.load(aoi)                             # Copernicus GLO-30
s1 = esd.sar.sentinel1.load(aoi, "2024-03", units="dB")     # Sentinel-1 RTC
swe = esd.snow.snodas.load(aoi, "2024-03")                  # SNODAS, no account

# Optical, masked and turned into a snow index
s2 = esd.optical.sentinel2.load(aoi, "2024-03", mask="scl-default")
ndsi = esd.processing.ndsi(s2)

# Categorical products carry CF flag attrs, so the legend draws itself
esd.plotting.categorical(esd.land.landcover.load(aoi))

# What is available, and what it needs
esd.catalog.search("swe")
esd.catalog.describe("snodas")
esd.auth.status()

The pre-0.1 API (easysnowdata.remote_sensing.get_*, automatic_weather_stations.StationCollection, …) still works and emits a DeprecationWarning naming its replacement. It is removed one minor release after 0.1.

Documentation

Full API reference and example notebooks: https://egagli.github.io/easysnowdata

Contributing

Contributions welcome! See CONTRIBUTING for guidelines.

Citing

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

DOI

About

package for snow science data, providing streamlined access to satellite imagery (Sentinel-1/2, HLS, MODIS, etc), weather station data, climate reanalysis, land cover data, DEMs, and derived snow products as xarray objects.

Topics

Resources

Contributing

Stars

15 stars

Watchers

3 watching

Forks

Releases

Used by

Contributors

Languages