Model Description¶
This section provides an overview of the physical processes and model structure implemented in pySnowClim.
Model Overview¶
pySnowClim is a physically-based energy balance snow model that simulates snow accumulation and melt. The model is implemented as a Python translation of the original SnowClim model written in MATLAB (Lute et al., 2022) , maintaining the same core physics while providing improved computational efficiency and modern data handling capabilities.
Core Model Philosophy:
The model operates on the principle that snow evolution is fundamentally controlled by energy exchanges at the snow surface. All physical processes (melting, sublimation, refreezing, densification) are driven by the surface energy balance, making the model suitable for a wide range of climatic conditions and applications.
Model Structure:
pySnowClim consists of three main components:
Model Engine (
snowclim_model.py): Core physics calculations and timestep processingModel Runner (
runsnowclim_model.py): Data management, I/O operations, and model coordinationCommand Interface (
run_main.py): Command-line interface for operational use
Fundamental Physics¶
Energy Balance Framework¶
The model is built around the surface energy balance equation:
Where:
\(SW\) = shortwave radiation fluxes
\(LW\) = longwave radiation fluxes
\(H\) = sensible heat flux
\(E\) = latent heat flux of ice (i) and water (w)
\(G\) = ground heat flux
\(P\) = advected heat flux from precipitation
Mass Balance¶
Mass balance of the solid \((M_{s})\) and liquid \((M_{l})\) portions of the snowpack are governed by:
Where:
\(M_{snow}\) = mass of new snowfall
\(M_{ref}\) = mass of the snowpack liquid water that has been refrozen
\(M_{melt}\) = mass of snow that has melted
\(M_{dep}\) = mass of deposition
\(M_{sub}\) = mass of sublimation
\(M_{rain}\) = mass of rain added to the snowpack
\(M_{runoff}\) = mass of liquid water that has left the snowpack as runoff
\(M_{cond}\) = mass of condensation
\(M_{evap}\) = mass of evaporation
Model Implementation¶
Core Model Engine¶
File: snowclim_model.py
The main model engine implements the physics through the run_snowclim_model() function, which processes each timestep through several phases:
1. Precipitation Processing
Determines rain/snow partitioning using temperature and humidity:
Logistic regression model separates rain from snow
Fresh snow density calculated from air temperature
New snow temperature and cold content computed
2. Energy Balance Calculation
Computes all surface energy flux components:
Shortwave radiation (accounting for albedo)
Longwave radiation (Stefan-Boltzmann law)
Turbulent fluxes (bulk aerodynamic formulas)
Ground heat flux (constant value)
Precipitation heat flux
3. Energy Distribution
Available energy is allocated sequentially:
Cold Content: Energy to warm snowpack to 0°C
Refreezing: Energy to refreeze liquid water
Melting: Energy to melt snow/ice
Sublimation: Mass exchange with atmosphere
4. State Updates
Physical properties are updated:
Snow density evolution through compaction
Liquid water content and drainage
Surface albedo changes
Internal snowpack temperature
Key Model Features¶
Albedo Parameterizations¶
Three albedo options accommodate different applications:
Option 1: Essery et al. (2013)
Option 2: Utah Energy Balance (UEB)
Option 3: VIC model
Snow Density Evolution¶
Realistic density changes through:
Fresh snow density as function of temperature
Compaction based on overburden pressure and temperature
Density updates after new snowfall events
Advanced Energy Balance¶
Energy processing includes:
Atmospheric stability corrections for turbulent fluxes
Energy smoothing to reduce numerical instabilities
"Cold content tax" system for improved convergence
Multiple measurement height corrections
Liquid Water Processes¶
Comprehensive liquid water handling:
Rain-on-snow events
Internal liquid water storage and drainage
Refreezing when snowpack has cold content
Runoff generation with realistic drainage rates
Snow Tower Management¶
Optional radiation enhancement to reduce excessive snow accumulation:
Downward longwave radiation is enhanced by a multiplicative factor when snowpack exceeds a threshold during specified months to increase energy available for melt
Implementation is controlled by four adjustable parameters:
max_swe_height: SWE threshold above which radiation enhancement should be implemented
downward_longwave_radiation_factor_start_month: first month to consider applying radiation enhancement
downward_longwave_radiation_factor_end_month: last month to consider applying radiation enhancement
downward_longwave_radiation_factor: multiplicative factor applied to downward longwave radiation when SWE threshold is exceeded and month requirement is met
Mimics the change in energy balance that would result following downslope movement of excessive snowpack via gravitational or wind redistribution or glacier flow
Model Validation and Applications¶
Scientific Basis¶
pySnowClim physics are based on established snow science literature:
Energy balance formulations from classical snow physics texts
Parameterizations from peer-reviewed publications
Validation against field observations and other snow models
Calibration using SNOTEL network data across western United States
Appropriate Applications¶
The model is suitable for:
Research: Detailed energy balance studies and process investigations
Operations: Water resource forecasting and management
Education: Teaching snow physics and energy balance concepts
Climate Studies: Long-term snow evolution under changing conditions
Spatial Scales: Point locations to continental domains
Temporal Scales: Sub-daily to multi-decadal simulations
Environments: All snow climates from maritime to continental
Model Limitations¶
Physical Limitations:
Single-layer snowpack with separate surface and pack temperatures (but no internal temperature gradients)
No explicit snow grain evolution
Vegetation not included
Ground heat flux assumed constant
No snow redistribution via gravity or wind
For comprehensive scientific background, algorithm details, and validation results, please refer to the original SnowClim publication (Lute et al., 2022).