GitHub Actions
April 21, 2026 ยท View on GitHub
deep-snow includes GitHub Actions workflows for running tiled predictions and time-series jobs from the GitHub web interface.
If you want the scientific background behind these workflows, see scientific-context.md and the preprint.
Before you begin
- Fork the repository to your own GitHub account.
- Open your fork.
- Go to the
Actionstab.
Available workflows
batch_predict_sd
Use this workflow when you want snow-depth output for one target date over one area of interest.
What it does:
- splits the AOI into tiles when needed
- runs a prediction workflow for each tile
- uploads the results as GitHub artifacts
batch_sd_timeseries
Use this workflow when you want outputs for a range of target dates.
What it does:
- generates target dates across the requested range
- derives a snow-off date for each target date from the supplied
snow_off_day - calls the batch prediction workflow for each date
Required inputs
For batch_predict_sd
target_date: date to predict inYYYYmmddformatsnow_off_date: snow-free reference date inYYYYmmddformataoi: bounding box asminlon minlat maxlon maxlatcloud_cover: maximum allowed Sentinel-2 cloud-cover percentage
Optional but important:
selection_strategy:compositeornearest_usables1_orbit_selection:descendingoralluse_ensemble:TrueorFalsepredict_swe:TrueorFalse
For batch_sd_timeseries
begin_date: first target date inYYYYmmddformatend_date: last target date inYYYYmmddformatsnow_off_day: month and day inmmddformat, usually a late-summer dateaoi: bounding box asminlon minlat maxlon maxlatcloud_cover: maximum allowed Sentinel-2 cloud-cover percentage
Optional but important:
selection_strategy:compositeornearest_usables1_orbit_selection:descendingoralluse_ensemble:TrueorFalsepredict_swe:TrueorFalse
How the key options change behavior
selection_strategy
selection_strategy controls how the package turns the available satellite scenes in the search window into a single input mosaic.
composite:
- computes a median composite across all usable acquisitions in the window
- usually produces the most spatially complete and stable mosaic
- is the recommended default for most users
nearest_usable:
- prioritizes the acquisition closest in time to the requested date
- fills missing areas with additional acquisitions only when needed
- is useful when temporal proximity matters more than a full-window composite
In practice, composite is often the safer default for large AOIs or patchy cloud conditions, while nearest_usable is a better choice when you want the inputs to stay as close as possible to the requested date.
s1_orbit_selection
descending is the default and generally recommended option. Limiting Sentinel-1 to descending passes helps reduce the influence of wet-snow conditions that are more likely later in the day.
all uses all available Sentinel-1 passes.
use_ensemble
False uses the packaged default single model.
True uses the packaged ensemble of five models. The preprint reports the strongest performance from the ensemble path, so this is a reasonable option when you want a more conservative operational result.
predict_swe
False keeps the original depth-only behavior.
True also applies the Hill et al. depth-to-SWE model after depth prediction and uploads *_swe.tif and *_density.tif artifacts for each tile.
Search windows and retries
The Actions workflows use the package's internal acquisition-search behavior. In the current implementation, predictions begin with a default search window around the requested dates, and the underlying local prediction workflow will expand that window if it cannot find usable acquisitions.
This is helpful operationally, but it also means the final inputs may come from a broader temporal window than you initially expected. The prediction summary and provenance metadata are therefore important for interpretation.
Artifacts
The tile prediction workflow uploads these outputs when present:
*_sd.tif: predicted snow-depth raster*_swe.tif: predicted snow water equivalent raster*_density.tif: predicted bulk snow density raster*_input_gaps.tif: combined raster showing where required inputs were missing*_input_gaps.nc: detailed gap information
For large AOIs or time-series jobs, expect multiple artifacts because work is split across tiles and dates.
Tips
- Keep the AOI small for first-time runs.
- Use a realistic late-summer
snow_off_dateorsnow_off_day. - Start with the default
selection_strategyunless temporal proximity is more important than a full composite. - Keep
s1_orbit_selection=descendingunless you have a specific reason to broaden the Sentinel-1 inputs. - Consider
use_ensemble=Truefor more conservative science-facing runs.
When to switch to local runs
Consider moving to local execution if:
- you want to inspect intermediate files in detail
- you want notebook-based exploration
- you need to debug repeated failures
- you want to build a custom workflow around the package
See local-prediction.md.