Skip to main content

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.

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 environment
pixi run test-unit    # offline tests (no network, no credentials)
pixi run test-live    # live tests against the data providers (credentialed ones skip without secrets)
pixi run 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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

easysnowdata-0.2.0.tar.gz (611.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

easysnowdata-0.2.0-py3-none-any.whl (334.5 kB view details)

Uploaded Python 3

File details

Details for the file easysnowdata-0.2.0.tar.gz.

File metadata

  • Download URL: easysnowdata-0.2.0.tar.gz
  • Upload date:
  • Size: 611.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.14

File hashes

Hashes for easysnowdata-0.2.0.tar.gz
Algorithm Hash digest
SHA256 1b01cdb16f32a56f576a4b102cde099359db1df0e2222c32cda504ee89a83ea6
MD5 486e60d1975f00b2ab87aebb8ac83880
BLAKE2b-256 e653fd0ec701406a9402f95085689568044078bdaebdd1700437e4ca0bc01e65

See more details on using hashes here.

File details

Details for the file easysnowdata-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: easysnowdata-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 334.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.14

File hashes

Hashes for easysnowdata-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a580565061dad9acd202dec4f15f1b3b720034e7984676dcfc64eaffb69ef334
MD5 36391e3248d47fcc7e82129498abc0f0
BLAKE2b-256 4e4708bcdd103f19069021e0e64bc28cd391421d22f866c3a90a7d21516eeed2

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 files

0.0.25

2 files

0.0.24

2 files

0.0.22

2 files

0.0.20

2 files

0.0.19

2 files

0.0.18

2 files

0.0.17

2 files

0.0.16

2 files

0.0.15

2 files

0.0.14

2 files

0.0.13

2 files

0.0.12

2 files

0.0.11

2 files

0.0.10

2 files

0.0.9

2 files

0.0.8

2 files

0.0.7

2 files

0.0.6

2 files

0.0.5

2 files

0.0.4

2 files

0.0.3

2 files

0.0.2

2 files

0.0.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page