Summary
Forecasts the future values of each location of a spacetime cube using the HoltWinters exponential smoothing method by decomposing the time series at each location cube into seasonal and trend components
Illustration
Usage
This tool accepts netCDF files created by the Create Space Time Cube By Aggregating Points, Create Space Time Cube From Defined Features, and Create Space Time Cube from Multidimensional Raster Layer tools.
Compared to other forecasting tools in the Time Series Forecasting toolset, this tool is recommended for data that has moderate trends and strong seasonal behavior. The exponential smoothing model assumes that the seasonal behavior and the trend can be separated, so it will be most effective for data whose trend changes gradually and follows consistent seasonal patterns over time.
Multiple forecasted spacetime cubes can be compared and merged using the Evaluate Forecasts by Location tool. This allows you to create multiple forecast cubes using different forecasting tools and parameters, and the tool will identify the best forecast for each location using either Forecast root mean square error (RMSE) or Validation RMSE.
For each location in the Input Space Time Cube, the tool builds two models that serve different purposes.
 Forecast modelâ€”This model is used to forecast future values of the spacetime cube by performing exponential smoothing to the values of the time series and extending this smoothing to future time steps. The fit of the forecast model to the values of the spacetime cube is measured by the Forecast RMSE value.
 Validation modelâ€”This model is used to validate the forecast model and test how accurately it can forecast future values. If a number greater than 0 is specified for the Number of Time Steps to Exclude for Validation parameter, this model is fitted to the time steps that were not excluded and is used to forecast the values of the time steps that were excluded. This allows you to see how well the model can forecast future values. The fit of the forecasted values to the excluded values is measured by the Validation RMSE value.
Learn more about the forecast model, validation model, and RMSE statistics
The Output Features will be added to the Contents pane with rendering based on the final forecasted time step.

This tool creates geoprocessing messages and popup charts to help you understand and visualize the forecast results. The messages contain information about the structure of the spacetime cube and summary statistics of the RMSE values and season lengths. Clicking a feature using the Explore navigation tool displays a line chart in the Popup pane showing the values of the spacetime cube, fitted forest values, forecasted values, and confidence bounds for that location.
Deciding how many time steps to exclude for validation is an important choice. The more time steps are excluded, the fewer time steps remain to estimate the validation model. However, if too few time steps are excluded, the Validation RMSE will be estimated using a small amount of data and may be misleading. It is recommended that you exclude as many time steps as possible while still maintaining sufficient time steps to estimate the validation model. It is also suggested that you withhold at least as many time steps for validation as the number of time steps you intend to forecast, if your spacetime cube has enough time steps to allow this.
This tool assumes that all components of the exponential smoothing model are additive and linear. Damped trend is always used, and additive seasonality is supported but not required. Residuals of the model are assumed to be additive and normally distributed and are used to compute confidence intervals.
Learn more about the components of the exponential smoothing model
Syntax
ExponentialSmoothingForecast(in_cube, analysis_variable, output_features, {output_cube}, {number_of_time_steps_to_forecast}, season_length, {number_for_validation})
Parameter  Explanation  Data Type 
in_cube  The netCDF cube containing the variable you want to forecast to future time steps. This file must have an .nc file extension and must have been created using the Create Space Time Cube By Aggregating Points, Create Space Time Cube From Defined Locations, or Create Space Time Cube From Multidimensional Raster Layer tools.  File 
analysis_variable 
The numeric variable in the netCDF file that will be forecasted to future time steps.  String 
output_features 
The output feature class of all locations in the spacetime cube with forecasted values stored as fields. The layer displays the forecast for the final time step and contains popup charts showing the time series, forecasts, and 90 percent confidence bounds for each location.  Feature Class 
output_cube (Optional) 
A new spacetime cube (.nc file) containing the values of the input spacetime cube with the forecasted time steps appended. The Visualize Space Time Cube in 3D tool can be used to see all of the observed and forecasted values simultaneously.  File 
number_of_time_steps_to_forecast (Optional) 
A positive integer specifying the number of time steps to forecast. This value cannot be larger than 50 percent of the total time steps in the input spacetime cube. The default value is one time step.  Long 
season_length  The number of time steps corresponding to one season at each location. If there are multiple seasons in your data, it is recommended that you use the longest season to produce a most reliable result. If left empty, a season length will be estimated by the tool at each location using a spectral density function.  Long 
number_for_validation (Optional)  The number of time steps at the end of each time series to exclude for validation. The default value is 10 percent (rounded down) of the number of input time steps, and this value cannot be larger than 25 percent of the number of time steps. Provide the value 0 to not exclude any time steps.  Long 
Code sample
The following Python script demonstrates how to use the ExponentialSmoothingForecast tool:
import arcpy
arcpy.env.workspace = "C:/Analysis"
# Forecast four time steps using exponential smoothing.
arcpy.stpm.ExponentialSmoothingForecast("Temperature.nc","Temp_NONE_ZEROS",
"Analysis.gdb/Forecasts",
"outForecastCube.nc", 4, 2, 5)
The following Python script demonstrates how to use the ExponentialSmoothingForecast tool to forecast temperature:
# Forecast temperature using exponential smoothing.
# Import system modules.
import arcpy
# Set property to overwrite existing output.
arcpy.env.overwriteOutput = True
# Set workspace.
workspace = r"C:\Analysis"
arcpy.env.workspace = workspace
# Forecast three time steps.
arcpy.stpm.ExponentialSmoothingForecast("Temperature.nc","Temp_NONE_ZEROS",
"Analysis.gdb/Forecasts",
"outForecastCube.nc", 3, 2, 5)
12345678901234567890123456789012345671234567890123456789012345678901234567890890
# Create a feature class visualizing the forecasts.
arcpy.stpm.VisualizeSpaceTimeCube3D("outForecastCube.nc", "Temp_NONE_ZEROS",
"VALUE", "Analysis.gdb/ForecastsFC")
Environments
Licensing information
 Basic: Yes
 Standard: Yes
 Advanced: Yes