标注 | 说明 | 数据类型 |
输入时空立方体
| netCDF 立方体包含用于预测未来时间步的变量。此文件必须具有 .nc 文件扩展名,并且必须使用通过聚合点创建时空立方体、通过已定义位置创建时空立方体或通过多维栅格图层创建时空立方体工具进行创建。 | File |
分析变量
| netCDF 文件中的数值变量,用于预测未来时间步长。 | String |
输出要素 |
时空立方体中所有位置的输出要素类,其中的预测值将存储为字段。 该图层显示对最后的时间步长的预测,并包含弹出图表,其中显示每个位置的时间序列、预测和 90% 的置信界限。 | Feature Class |
输出时空立方体
(可选) | 新的时空立方体(.nc 文件),其中包含输入时空立方体的值,并追加了预测时间步长。可视化 3D 时空立方体工具可用于同时查看所有观测值和预测值。 | File |
预测时间步长数
(可选) | 正整数,用于指定预测时间步长数。此值不能大于输入时空立方体中的时间步长数的百分之五十。默认值为一个时间步长。 | Long |
季节长度
| 各位置一个季节对应的时间步长数。如果数据中具有多个季节,建议您使用最长的季节以生成最可靠的结果。如果未指定任何值,则使用光谱密度函数为每个位置估算季节长度。 | Long |
为进行验证排除的时间步长数
(可选) | 为进行验证,在每个时间序列末尾排除的时间步长数。默认值为输入时间步长的 10%(向下舍入),且该值不能大于时间步长的 25%。要不排除任何时间步长,请提供值 0。 | Long |
异常值选项
(可选) | 指定是否将识别具有统计意义的时间序列异常值。
| String |
置信度级别 (可选) | 指定时间序列异常值测试的置信度。
| String |
最大异常值数
| 每个位置可以声明为异常值的最大时间步数。默认值对应于输入时空立方体的时间步数的 5%(向下舍入)(将始终使用至少为 1 的值)。该值不能超过时间步数的 20%。 | Long |
插图
使用情况
此工具接受通过聚合点创建时空立方体、通过已定义要素创建时空立方体以及通过多维栅格图层创建时空立方体工具创建的 netCDF 文件。
与时间序列预测工具集中的其他预测工具相比,建议将此工具用于趋势平缓且季节性行为强烈的数据。指数平滑模型时,假设可以分隔季节性行为和趋势,因此对于趋势随时间逐渐变化并遵循一致季节性模式的数据,此模型最为有效。
可以使用按位置评估预测工具来比较和合并多个预测的时空立方体。由此即可使用不同的预测工具和参数来创建多个预测立方体,并且该工具将使用“预测均方根误差 (RMSE)”或“验证 RMSE”值来识别每个位置的最佳预测。
对于输入时空立方体参数中的每个位置,该工具会构建两个用于不同目的的模型。
- 预测模型 - 通过对时间序列的值执行指数平滑并将曲线外推到未来时间步长,来预测时空立方体的值。预测模型与时空立方体的值的拟合度将通过“预测 RMSE”值进行度量。
- 验证模型 - 此模型用于验证预测模型并测试其预测值的准确性。如果为为进行验证排除的时间步长数参数指定了大于 0 的数字,则此模型将拟合到包含的时间步长并用于预测已排除的时间步长值。这将允许您查看模型预测值的准确程度。预测值与排除值的拟合度将通过“验证 RMSE”值进行度量。
输出要素参数值将添加到基于最终预测时间步进行渲染的内容窗格中。
-
该工具会创建地理处理消息和弹出图表,以用于了解和可视化预测结果。 这些消息将包含有关时空立方体结构以及 RMSE 值和季节长度汇总统计数据的信息。 使用浏览导航工具单击要素以在弹出窗格中显示一个折线图,图中会显示该时空立方体的值、拟合的森林值、预测值和该位置的置信界限。
可使用异常值选项参数检测每个位置的时间序列值中具有统计意义的异常值。
确定针对验证排除的时间步长数是一项重要选择。排除的时间步长越多,则用于评估验证模型的时间步长越少。但是,如果排除的时间步长过少,则将使用少量数据来评估“验证 RMSE”,并且可能会产生误导。建议您排除尽可能多的时间步长,同时保持足够的时间步来估计验证模型。如果时空立方体具有足够的时间步长来执行此操作,则建议您至少保留与预测时间步长相同数量的验证时间步长。
指数平滑模型假设所有分量都是可相加和线性的。需要始终使用衰减趋势,同时支持(但并非必须)要求添加季节性。置信区间是在假设残差可相加和正态分布的前提下构造的。
参数
arcpy.stpm.ExponentialSmoothingForecast(in_cube, analysis_variable, output_features, {output_cube}, {number_of_time_steps_to_forecast}, season_length, {number_for_validation}, {outlier_option}, {level_of_confidence}, maximum_number_of_outliers)
名称 | 说明 | 数据类型 |
in_cube | netCDF 立方体包含用于预测未来时间步的变量。此文件必须具有 .nc 文件扩展名,并且必须使用通过聚合点创建时空立方体、通过已定义位置创建时空立方体或通过多维栅格图层创建时空立方体工具进行创建。 | File |
analysis_variable | netCDF 文件中的数值变量,用于预测未来时间步长。 | String |
output_features |
时空立方体中所有位置的输出要素类,其中的预测值将存储为字段。 该图层显示对最后的时间步长的预测,并包含弹出图表,其中显示每个位置的时间序列、预测和 90% 的置信界限。 | Feature Class |
output_cube (可选) | 新的时空立方体(.nc 文件),其中包含输入时空立方体的值,并追加了预测时间步长。可视化 3D 时空立方体工具可用于同时查看所有观测值和预测值。 | File |
number_of_time_steps_to_forecast (可选) | 正整数,用于指定预测时间步长数。此值不能大于输入时空立方体中的时间步长数的百分之五十。默认值为一个时间步长。 | Long |
season_length | 各位置一个季节对应的时间步长数。如果数据中具有多个季节,建议您使用最长的季节以生成最可靠的结果。如果未指定任何值,则使用光谱密度函数为每个位置估算季节长度。 | Long |
number_for_validation (可选) | 为进行验证,在每个时间序列末尾排除的时间步长数。默认值为输入时间步长的 10%(向下舍入),且该值不能大于时间步长的 25%。要不排除任何时间步长,请提供值 0。 | Long |
outlier_option (可选) | 指定是否将识别具有统计意义的时间序列异常值。
| String |
level_of_confidence (可选) | 指定时间序列异常值测试的置信度。
| String |
maximum_number_of_outliers | 每个位置可以声明为异常值的最大时间步数。默认值对应于输入时空立方体的时间步数的 5%(向下舍入)(将始终使用至少为 1 的值)。该值不能超过时间步数的 20%。 | Long |
代码示例
以下 Python 脚本演示了如何使用 ExponentialSmoothingForecast 工具。
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)
以下 Python 脚本演示了如何使用 ExponentialSmoothingForecast 工具以预测温度。
# 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,
"IDENTIFY", "90%", 4)
# Create a feature class visualizing the forecasts.
arcpy.stpm.VisualizeSpaceTimeCube3D("outForecastCube.nc", "Temp_NONE_ZEROS",
"VALUE", "Analysis.gdb/ForecastsFC")