Published June 18, 2025 | Version 1.0.0
Dataset Open

Global MODIS-derived seasonal snow cover (snow appearance date, disappearance date, and max consec snow days), water years 2015–2024

  • 1. ROR icon University of Washington

Description

Overview

This dataset provides annual global maps of seasonal snow cover metrics derived from the MODIS MOD10A2 product for water years 2015–2024. For each year, the dataset includes:

  • Maximum number of consecutive snow days for each pixel [max_consec_snow_days]. 
  • Date of snow appearance / first day of snow cover for the max snow cover snow period [SAD_DOWY].
  • Date of snow disappearance / first day of no snow cover for the max snow snow period [SDD_DOWY].

Data Details

  • Product Source: MODIS MOD10A2 (Microsoft Planetary Computer)
  • Processing: Cloud-filled and darkness-corrected using methods similar to Wrzesien et al. (2019), with pixelwise seasonal metrics aggregated by water year (Oct–Sep NH, Apr–Mar SH).
  • Format: Cloud-optimized Zarr archive, compressed as .tar.lzma
  • Spatial Coverage: Global land areas, MODIS grid tiles overlapping land
  • Temporal Coverage: Water Years 2015–2024
  • Variables: SAD_DOWY, SDD_DOWY, max_consec_snow_days (per water year)
    • note that SAD_DOWY and SDD_DOWY dates are represented as day of water year, e.g. DOWY 1 in NH is October 1st
  • Projection: MODIS Sinusoidal Grid
  • Data type: int16
  • Nodata: -32768

Example Usage  
The zarr dataset is stored here as a compressed tar.lzma archive. First decompress the archive. Below is an example of how to open and use the data in Python:

import xarray as xr
import rioxarray

# 1. Open the global snow cover Zarr dataset
global_snow_cover_ds = xr.open_zarr("global_modis_snow_cover.zarr", decode_coords="all", consolidated=True)

# 2. Clip to a bounding box around Mount Rainier in EPSG:4326 (lon/lat)
rainier_snow_cover_ds = global_snow_cover_ds.rio.clip_box(
    minx=-121.95, miny=46.7, maxx=-121.45, maxy=46.95, crs="EPSG:4326"
)

# 3. Select the 'max_consec_snow_days' variable for Water Year 2020
rainier_max_snow_days_2020_da = rainier_snow_cover_ds['max_consec_snow_days'].sel(water_year=2020)

# 4. Reproject out of weird MODIS sinusoidal grid to UTM Zone 10N
rainier_max_snow_days_2020_da_utm = rainier_max_snow_days_2020_da.rio.reproject("EPSG:32610")

# 5. Plot the result
rainier_max_snow_days_2020_da_utm.plot.imshow(cmap='viridis', vmin=0, vmax=365)

Processing pipeline
The dataset was generated using a reproducible, open-source workflow available at:
https://github.com/egagli/MODIS_seasonal_snow_mask
Key steps include: MODIS MOD10A2 (8 day maximum snow extent) data ingestion, cloud and darkness gap-filling, per-pixel snow metric extraction, and writing to a global Zarr store.

Resources

 

Files

Files (3.4 GB)

Name Size Download all
md5:3856bb646e5a775b1b7e1ae31bf602c8
3.4 GB Download

Additional details

Related works

Cites
Dataset: 10.5281/zenodo.2626737 (DOI)