Download PDF
Download page SnowPAC: Snowmelt Parametric Aggregation Calculator.
SnowPAC: Snowmelt Parametric Aggregation Calculator
Overview
The Snowmelt Parametric Aggregation Calculator (SnowPAC) is a numerical tool for estimating ATI-Meltrate functions for use in Temperature Index snowmelt modeling in HEC-HMS. The tool requires daily historical time series data of temperature, snow water equivalent (SWE), and precipitation. Originally implemented as a Jython script for CWMS and DSSVue, SnowPAC is now integrated into HEC-HMS, streamlining the automated development of ATI-Meltrate paired data tables essential for snowmelt simulation using the Temperature Index method.
Snowmelt significantly contributes to runoff in various watersheds, especially in regions with substantial snowfall. Accurate modeling of snowmelt processes is crucial for hydrologic simulations, flood forecasting, and water resource management. One of the commonly used snowmelt methods in HEC-HMS is the Temperature Index method. This method simulates snow accumulation and melt and requires the specification of an ATI-Meltrate function, which is a paired data table that provides the meltrate for a given Antecedent Temperature Index (ATI).

Tutorial & Guide
For a step-by-step example for using SnowPAC, refer to the tutorial linked here.
Input Data
Input time series must be selected for precipitation, snow water equivalent (SWE), and temperature. The time series must have already been added to the HEC-HMS project as Time-Series Data gages. It is important to perform quality control on your data prior to beginning the analysis. Quality control should include: ensuring all three datasets contain data for the analysis period of interest, checking for erroneous values, and filling in missing data. The development of ATI-Meltrate functions performs best using daily data due to the natural fluctuations of higher resolution data (like hourly). For this reason, all input data must be provided at a time interval of 1 day.

ATI-Meltrate Function
When snow melts, the ice that composes the snow is converted into water. This process is called ablation. The water content of a snowpack is typically expressed as snow water equivalent (SWE), which is the depth of water that results from melting a unit column of the snowpack. Since the conversion from ice to water requires the input of energy (or heat), the process of snowmelt is linked to the flow and storage of energy into and through the snowpack. Estimates of snowmelt amounts are derived using the energy balance equation or by an empirically defined snowmelt index.
HEC-HMS uses the Temperature Index method to model snow accumulation and ablation. The Temperature Index snowmelt model requires temperature and precipitation data. In its simplest form, a Temperature Index model is based on the hypothesis that snowmelt is proportional to the difference between air temperature and a threshold melt temperature. The method has been widely used with good results, but it requires parameter calibration.
The ATI-Meltrate function is often one of the snowmelt model parameters with the greatest impact on results. Snowmelt rates are a function of the physical characteristics of a region, including: forest cover, topography, and average weather conditions. Typically during a simulation when snow is only present for a few days, or the SWE is only a few inches in depth, a constant ATI-Meltrate function should be used where the meltrate does not change with ATI. Otherwise, when snow cover lasts longer than a month, or the max SWE is greater than 10 inches, then a variable ATI-Meltrate function is most appropriate.
When developing the ATI-Meltrate function it is important to understand how the basin characteristics affect the melt rates. Observed data within the basin can be used to develop the ATI-Meltrate function that best fits across multiple sites and years. To develop this table, two parameters need to be calculated: ATI and cumulative melt.
Melt Events
Note: SnowPAC defines individual "melt events" as periods of time in which there is a positive ATI (that is, periods when the average air temperature is continuously above the base temperature). When the air temperature dips below the base temperature, both the ATI and cumulative melt are reset to 0. In this way, each "melt event" will start with an ATI of 0 and a cumulative melt of 0 at the beginning of the event.
ATI
The ATI-Meltrate function relates the sensitivity of the meltrate throughout the season to the accumulated thawing degree days, or Antecedent Temperature Index (ATI). ATI is calculated in the Temperature Index method at time step t as:
| ATI_{(t-1)} = (ATIMR_{coeff} * ATI_{(t)})+(T_{a}-T_{base})*S |
where ATIMR_{coeff} is the ATI-Meltrate coefficient, T_{a} is the air temperature, T_{base} is the base temperature, and S is the model time step (in days).
The base temperature, T_{base}, is typically 32 degrees Fahrenheit, but can vary by approximately ±2 degrees in certain cases. A value of 1.0 is typically used for the ATI-Meltrate coefficient, which would simplify the equation to:
| ATI_{(t-1)} = ATI_{(t)}+(T_{a}-T_{base})*S |
In short, ATI accumulates whenever the air temperature for time t is above the base temperature. ATI should be a monotonically increasing function; that is, ATI should not decrease on days when the air temperature is less than the base temperature (T_{a} < T_{base}). Instead, ATI would be reset to 0 until the temperature again rises above the base temperature.
From observed data, the ATI can be calculated at a location using temperature and SWE data. ATI accumulates over each timestep while there is SWE available at a location. The amount of ATI that accumulates is the difference in the temperature and the base temperature (typically 32 degrees Fahrenheit). For example, the table below illustrates ATI accumulating over time for a daily timestep.
| Date | Air Temperature (Ta) | Ta - Tbase (Tbase = 32) | ATI (Degree Days) |
|---|---|---|---|
| 01-Jan | 32 | 0 | 0 |
| 02-Jan | 33 | 1 | 1 |
| 03-Jan | 35 | 3 | 4 |
| 04-Jan | 40 | 8 | 12 |
| 05-Jan | 30 | -2 | 0 |
| 06-Jan | 34 | 2 | 2 |
Cumulative Melt
Cumulative melt is calculated primarily using SWE data, but also considers ATI and precipitation to ensure the proper conditions are met for melt to occur. The following conditions must be met: SWE must be decreasing (snow is melting, not accumulating), the ATI should be greater than zero, and it should not be raining. This last condition is checked by comparing the daily precipitation accumulation against a specified threshold, called the rain rate limit. If the precipitation accumulation is above the rain rate limit, then the melt should not be counted. The rain rate limit is typically 0 (meaning, no melt is counted if any amount of rain occurs), but the rain rate limit may also be set to match the parameter used in the Temperature Index method, which is typically 0–0.1 inches.
If (Precipt < rain rate limit) and (ATI > 0), cumulative melt is calculated as:
| Cumulative Melt_{(t)}=CumulativeMelt_{(t-1)}+SWE_{(t-1)}-SWE_{(t)} |
| Date | Precipitation (in) (rain rate limit = 0.0) | ATI (Degree Days) | SWE (in) | Incremental Melt (in) | Cumulative Melt (in) |
|---|---|---|---|---|---|
| 01-Jan | 0.0 | 0 | 30 | 0 | 0 |
| 02-Jan | 0.0 | 3 | 28 | 2 | 2 |
| 03-Jan | 0.0 | 8 | 28 | 0 | 2 |
| 04-Jan | 0.0 | 15 | 27 | 1 | 3 |
| 05-Jan | 0.2* | 26 | 25 | 2 → 0* | 3 |
| 06-Jan | 0.0 | 33 | 26 | -1 → 0* | 3 |
| 07-Jan | 0.0 | 43 | 24 | 2 | 5 |
| 08-Jan | 0.0 | 59 | 22 | 2 | 7 |
| 09-Jan | 0.0 | 0 | 22 | 0 | 0* |
ATI-Meltrate
Once ATI and cumulative melt are calculated, the meltrate can be determined based on the relationship between ATI and cumulative melt. The meltrate represents the slope of ATI versus cumulative melt.
Within SnowPAC, there are two options for developing ATI-Meltrate functions from the raw (observed) time series data: linear and cubic spline.
Linear Interpolation Method
This method performs linear interpolation of the raw (observed) ATI versus Melt data. Users specify ATI values, and the tool will perform linear interpolation of melt between the specified ATI points. As the ATI versus Melt is linear, the resulting ATI-Meltrate will consist of stepped constant values, such as the example below.


Cubic Spline Interpolation Method
This method was developed to better represent natural conditions where meltrate changes gradually, rather than abruptly. This method is preferred when the melt is not well represented by a linear function. When the cubic spline method is selected, SnowPAC will automatically fit a cubic spline to the raw ATI-Melt data. The cubic spline is defined by 6 knots (one at the minimum ATI of 0, one at the maximum ATI, and four in between). The location of the knots is optimized over 100,000 iterations to minimize the sum of squared error. The user then must input both ATI and Meltrate ordinates to define a function. The ATI-Meltrate is represented by a stepwise-linear function, and the resulting ATI-Melt is a quadratic function.
This method requires significant engineering judgement. It is recommended to iterate over the function by first entering ATI-Meltrate ordinates to match the trend of the cubic spline ATI-Meltrate, then check values using the ATI-Melt curve. Balancing the area under the curve between the cubic spline ATI-Meltrate and the user-entered ATI-Meltrate is a good starting point. Consider whether an over- or under-fit of the raw (observed) data is appropriate for the modeling purposes. In many cases, it is recommended to find a balance. An example function using the cubic spline method is shown below.

