Download PDF
Download page Estimating ATI-Meltrate using SnowPAC.
Estimating ATI-Meltrate using SnowPAC
Overview
This tutorial provides examples for using the Snowmelt Parametric Aggregation Calculator (SnowPAC) tool in HEC-HMS. SnowPAC aids in rapid estimation of ATI-Meltrate functions for use in the Temperature Index snowmelt method in HMS. SnowPAC uses three inputs of daily time series data: temperature, precipitation, and snow water equivalent (SWE). ATI-Meltrate functions can be estimated for multiple "melt events" across multiple water years for a single combination of gage inputs. ATI-Meltrate functions can be exported to DSS and to the HMS project. This tutorial was created in HEC-HMS version 4.14.
Webinar
For more information and a live demo of SnowPAC, check out the HEC-HMS FY 2026 Q1 Quarterly Webinar.
Task 1: Data
In this task, time series gage data will be downloaded from SNOTEL using HEC-DSSVue. If you would like to skip this step, starting files with pre-downloaded data are provided in Task 2 below.
Step 1) Import Data from SNOTEL
- Open DSSVue and create a new DSS file titled "SNOTEL.dss".
- From the toolbar, select Data > Import > SnoTel.
- In the Download window, leave the Data Type as Daily. Select the radio button for Start Water Year and End Water Year and set the values to 2003 and 2009, respectively.
- Select the Get Site List By State button and select Colorado.
- Scroll to select the Site Name Lily Pond, Slumgullion, and Upper Rio Grande. The download window should look like the figure below.

- Select Import to DSS.
- View the records that were added to DSSVue. We will need the records for "PRECIP-INC", "SWE", and "Temperature-Air-Avg" for each analysis point. Plot the datasets and check for errors or missing data before continuing.

Step 2) Create Gages in HMS
Next, we will create an HEC-HMS project and create time-series gages for precipitation, SWE, and temperature data.
- Open HEC-HMS and create a new project titled "Rio_Grande_Snow".
- Copy your "SNOTEL.dss" file into the HMS project's /data folder.
- In the toolbar, under Components, select Time-Series Data Manager.
- Select Precipitation Gages under the Data Type.
- Select New to create three new gages: LILY POND, SLUMGULLION, and UPPER RIO GRANDE.

- Repeat this process to create the three gages for Snow Water Equivalent Gages and Temperature Gages.
- In the project tree, select each newly created gage and set the Data Source to Single Record HEC-DSS. Select the "SNOTEL.dss" file in the project /data folder. Then, select the DSS Pathname for each gage. For precipitation gages, use the "PRECIP-INC" pathnames. For SWE, use the "SWE" pathnames. For temperature, use the "Temperature-Air-Average" pathnames.
- The project tree should resemble the below figure.

Task 2: Develop ATI-Meltrate Functions
Once all daily time series for precipitation, SWE, and temperature have been added, the SnowPAC tool can be used. The SnowPAC tool can be accessed within HMS from Tools > Snowmelt > SnowPAC.

The SnowPAC tool can be performed for one analysis point at a time (one combination of precipitation, SWE, and temperature gages). For each analysis point, multiple "melt events" over multiple years of data can be analyzed in parallel.
Project Files
Step 1) 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 of a daily (1 Day) time interval.
- Select the U.S. Customary unit system. This selection is the unit system that will be used for the display plots and the output curves. The units of the input data will automatically be converted, if needed.
- Select the LILY POND gage for Precipitation, SWE, and Temperature.
- Select Next to continue.

Step 2) Select Analysis Window
The analysis window can be selected in this step. This allows the user to restrict the analysis to a smaller continuous time period, such as a single water year. The Minimum and Maximum dates in magenta are determined based on the period of overlapping data between all three datasets (precipitation, SWE, and temperature). The analysis window cannot be selected outside of these minimum and maximum limits. Dates must be entered in the format DDMMMYYYY. If the Start and/or End dates are left blank, the minimum and/or maximum dates will be adopted by default.
The plot on the right displays the daily time-series for the selected inputs for precipitation (middle viewport), SWE (middle viewport), and temperature (bottom viewport) data. The calculated ATI is displayed on the top viewport.
- Based on the calculated ATI (top plot), the water year 2004 was relatively low and could be removed.
- Enter a Start date of 01Jan2005 and select Update Plot.
- Confirm the dates using the plot, then select Next to continue.

Step 3) Define Melt Events
A "melt event" is defined as a period of time where the temperature is continuously above freezing (the Base Temperature) and where ATI is increasing. In this step, individual "melt events" can be selected for further analysis. Typically, events with a large maximum ATI and large total melt are desirable for developing ATI-Meltrate curves since they provide a better picture of melt over the entire spring season.
- Leave the default Base Temperature, ATI Threshold, and Rain rate limit.
- Select Filter Melt Events to calculate the melt events based on the default parameters.
- This list includes all melt events above the ATI Threshold, which is 0 by default. Notice there are many small events included that we likely do not wish to include. Now, filter the table to only include the largest events (largest maximum ATI). From the plot on the right, an ATI threshold of 100 was selected to include only the five largest melt events.
- Enter an ATI Threshold of 100 and select Filter Melt Events.
- Select all filtered events and hit Next to continue.

Step 4) Refine ATI-Meltrate Functions
Each melt event can be refined to develop ATI-Meltrate functions. The melt events selected in the previous step are displayed in the top table. The red "Raw" status for each event indicates that an ATI-Meltrate function has not yet been developed. Select a melt event row to create or edit the ATI-Meltrate function in the bottom table. There are two methods available to develop an ATI-Meltrate function: Linear or Cubic Spline.
A plot on the right displays ATI versus Melt (when Display Melt is selected) or ATI versus Meltrate (when Display Meltrate is selected). The Meltrate represents the slope of the Melt curve.

- Select the first melt event (2005 - MAY13 - MAY24 - 150) in the top table to create an ATI-Meltrate Function.
- Select the Linear interpolation method.
- In the Linear method, the user must input the ATI ordinates at which the data will be interpolated.
- Enter the following values into the ATI column and select Calculate: 15, 80, 150

- The green "Processed" status indicates that an ATI-Meltrate function has now been created for that event. You can return to this event at any time to edit or remove the function.
- View the Meltrate plot by selecting the Display Meltrate radio button above the plot. This plot displays how the curve will appear in HMS as an ATI-Meltrate function.

- Return to the Melt plot. The curve could be improved in the range of ATI 100-150. Edit the ordinates to achieve a desirable fit.
- Next, select the second melt event (2006 - APR30 - MAY13 - 126)
- Notice how the melt for this event flatlines above approximately 85 ATI. This portion of the curve should be removed (truncated), as it likely does not represent generalized snowmelt conditions that can be applied for snowmelt modeling (unless the modeling effort aims to exactly reproduce historical conditions).
- Select the Linear interpolation method and enter the ATI values: 20, 50, 83

- Next, select the third melt event (2008 - MAY3 - MAY21 - 171)
- Select the Cubic Spline interpolation method.
- This method, rather than performing linear interpolation of melt (which results in a constant Meltrate), uses a quadratic function for melt to develop a piecewise-linear Meltrate. The black line fits a cubic spline function to the raw data to aid the user in estimating both ATI and Meltrate ordinates to define the function.
- View the Display Meltrate plot. The goal is to balance the area under the curve. There is also a balance between over- and under-fitting the ATI-Meltrate function. A good rule of thumb is to use approximately three to six points to define the ATI-Meltrate function.
- Enter the below ATI and Meltrate values into the table, which were selected using the Meltrate plot, then select Calculate.
ATI Meltrate 0 0.04 50 0.12 90 0.10 170 0.13
- These values aim to balance the area under the curve of the Cubic Spline ATI-Meltrate, while simultaneously simplifying the raw data into a smoother curve.


- To better understand the impacts of curve fitting, try over-fitting (using many points to closely match the Meltrate plot) and under-fitting (using as few points as possible) the function by entering ATI and Meltrate values into the table. See the challenge question at the end of this section for an example.
- Next, select the fourth melt event (2008 - OCT 23 - NOV4 - 113)
- Notice the cumulative melt for this event is very low, even though the ATI is high. This is likely due to low depths of snow in the early season (October-November). This event should not be used to develop ATI-Meltrate functions, and therefore it will be left in a "Raw" status, which will not be carried forward.
- Continue with creating a function for the fifth melt event. Feel free to go back and make any refinements to the other melt events. Functions with a green "Processed" status (where a function has been created) will be carried forward. Select Next to continue when you are satisfied with all functions.
The Cubic Spline method is best applied using the Meltrate plot and by fitting a piecewise-linear function that best balances the area under the curve (compared to the fitted cubic spline function in grey). As there are many ways to fit a piecewise-linear function, there is a lot of engineering judgement. The goal is to best represent the scenario you want to model. If the goal is to simulate and perfectly reproduce a historical event, then it may be desired to more closely match the observed data. If the goal is to simulate a variety of scenarios across the basin, a more generalized curve may be desired.
Here is an example of a function that has been over-fit or would be best applied to historical simulations:


Here is an example of a function that has been under-fit or would be best applied to generalized or hypothetical simulations:


Here is an additional example of various ways to fit a function that all balance the area under the curve using a different number of points and level of detail:

While none of these examples are "wrong" versus "right", their usefulness may differ based on the modeling goals. Be sure to consider the goals of the analysis while developing your ATI-Meltrate functions.
Cubic Spline Tips
When fitting a cubic spline function, consider these tips:
- Use the Meltrate plot to create a piecewise-linear function
- Identify inflection points in the grey cubic spline curve
- Try to balance the area under the curve (between your edited blue curve and the spline grey curve)
- Verify using the Melt plot and make adjustments as needed to increase or decrease melt volume
Extrapolation
ATI-Meltrate functions developed in SnowPAC cannot extrapolate beyond the observed data. Once functions are created and added to HEC-HMS, they can be extrapolated by editing the table in HMS or by editing the DSS files.
Step 5) Review ATI-Meltrate Functions
Once ATI-Meltrate functions have been created based on the historical melt events, the functions can be viewed and compared. In this step, the final functions are selected that will be exported to the HEC-HMS project.
- All ATI-Meltrate functions created in Step 4 can be viewed together and compared. By default, the Melt plot is displayed.
- Notice the difference in the magnitudes of melt. Some curves may better represent "wet" versus "dry" snow year conditions.
- Select the Display Meltrate radio button to display the Meltrate plot. A typical range of meltrate values is 0.0115 - 0.2 in/degree-F day.
- Notice how linear functions result in a stepped-constant ATI-Meltrate function, and cubic spline functions result in a stepped-linear ATI-Meltrate function. In general, stepped-linear is more representative of natural conditions, as it better captures gradual variability, particularly if the rate of melt changes over time.
- In the below example, there is a sharp jump at an ATI of 79 in the red function (2005-MAY13:MAY24). In this example, it would be recommended to instead use a cubic spline function rather than a linear function.

- Return to the Melt plot.
- Select the following two functions to export to HMS:
Selected Function Representation Paired Data Name 2008-MAY3:MAY21 High melt year 2008-HIGH 2009-APR27:MAY12 Average melt year 2009-AVG 
Step 6) Export
In this step, the functions selected on Step 5 will be exported to DSS and to the HEC-HMS project.
- Enter the "Paired Data Name" as shown in the table in Step 5.7 above. This will be the name of the function as it appears in HEC-HMS in the tree. The event identifier is provided by default.
- Enter "LILY POND" under "Part A" for both functions. Recall, this is the name of the SNOTEL gage used to develop these functions.
- The HEC-DSS File can optionally be selected for the output destination file. By default, the functions will be exported to the HMS project file.
- The inputs should match the figure below.

- Select Next to export. If a warning appears, select "Yes" to continue.
- Upon Export, the ATI-Meltrate functions will be added to the HMS project

Task 3: Develop Additional ATI-Meltrate Functions
Continue practicing and developing ATI-Meltrate functions for the other SNOTEL gages that were collected: SLUMGULLION and UPPER RIO GRANDE.
