A Python package to easily retrieve data relevant to snow science
Project description
easysnowdata
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
Data Source Status
Last updated: 2026-06-15 10:11 UTC
⚠️ = skipped (credentials not available in this run)
| Data Source | Latest (Jun 15) | Jun 8 | Jun 5 |
|---|---|---|---|
| SNOTEL/CCSS station list (GitHub) | ✅ | ✅ | ✅ |
| SNOTEL/CCSS station CSV (GitHub) | ✅ | ✅ | ✅ |
| HydroATLAS basins (figshare) | ✅ | ✅ | ✅ |
| GRDC major river basins (World Bank) | ✅ | ✅ | ✅ |
| GRDC WMO basins | ❌ | ❌ | ❌ |
| Köppen-Geiger classification (figshare) | ✅ | ✅ | ✅ |
| Sturm & Liston snow classification (Azure) | ❌ | ❌ | ❌ |
| Forest cover fraction (Zenodo) | ✅ | ✅ | ✅ |
| Mountain snow mask (Zenodo) | ✅ | ✅ | ✅ |
| ARCO-ERA5 (GCS anonymous) | ✅ | ✅ | ✅ |
| Copernicus DEM (Planetary Computer) | ✅ | ✅ | ✅ |
| ESA WorldCover (Planetary Computer) | ✅ | ✅ | ✅ |
| HUC geometries (GEE/USGS WBD) | ❌ | ❌ | ❌ |
| SNODAS (GEE/Climate Engine) | ❌ | ❌ | ❌ |
| ERA5 (Google Earth Engine) | ❌ | ❌ | ❌ |
| CHILI (GEE/CSP ERGo) | ❌ | ❌ | ❌ |
| NLCD (GEE/USGS) | ❌ | ❌ | ❌ |
| UCLA Snow Reanalysis (NASA NSIDC) | ⚠️ | ⚠️ | ⚠️ |
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-fast # run credential-free tests
pixi run test # run all tests (requires API 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 |
earthengine.google.com |
| NASA EarthData | EARTHDATA_USERNAME, EARTHDATA_PASSWORD |
urs.earthengine.nasa.gov |
Planetary Computer and anonymous GCS access require no credentials.
Modules
| Module | What it provides |
|---|---|
automatic_weather_stations |
SNOTEL & CCSS station metadata + time-series data |
hydroclimatology |
ERA5, SNODAS, UCLA snow reanalysis, HUC boundaries, HydroATLAS, GRDC basins, 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 config |
Quick Start
import easysnowdata
# ── Automatic weather stations ─────────────────────────────────────────────
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() # pandas DataFrame for one station
# ── Topography ─────────────────────────────────────────────────────────────
bbox = (-121.94, 46.72, -121.54, 46.99) # Mount Rainier, WA
dem = easysnowdata.topography.get_copernicus_dem(bbox_input=bbox, resolution=30)
dem.plot() # xarray DataArray
# ── Hydroclimatology ───────────────────────────────────────────────────────
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()
# ── Remote sensing ─────────────────────────────────────────────────────────
snow_class = easysnowdata.remote_sensing.get_seasonal_snow_classification(bbox)
snow_class.attrs["example_plot"](snow_class)
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:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file easysnowdata-0.0.24.tar.gz.
File metadata
- Download URL: easysnowdata-0.0.24.tar.gz
- Upload date:
- Size: 46.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
644d31956a1214aefd5fdb80b67795f0335e8899b97b927f86d94f773261d8c0
|
|
| MD5 |
b30c361fe7937361b89be41d1c9b4a01
|
|
| BLAKE2b-256 |
54fc4f67c52abcfb49965c40222ce962ae8324fddd26a96dd57c29e261e4eda7
|
File details
Details for the file easysnowdata-0.0.24-py3-none-any.whl.
File metadata
- Download URL: easysnowdata-0.0.24-py3-none-any.whl
- Upload date:
- Size: 54.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
87b7da9734192200e6aa34b104975db67ba5b9ef551aa236576783bbe8553e4c
|
|
| MD5 |
9b0444a3e4ea89226f8f8bc773f7d34e
|
|
| BLAKE2b-256 |
aab7354513b3f4d280563e25f8093b20678b2d91fae1511ce35e2df73f6af2a8
|