GenerateTrend

获得 Image Analyst 许可后可用。

描述

用于面向多维栅格中一个或多个变量估计每个像素沿维度的趋势。

讨论

有关此函数工作原理的详细信息,请参阅生成趋势栅格函数。

栅格对象的引用栅格数据集是临时的。要将其设置为永久,可以调用栅格对象的 save 方法。

语法

GenerateTrend (raster, dimension_name, {regression_type}, {cycle_length}, {cycle_unit}, {harmonic_frequency}, {polynomial_order}, {ignore_nodata}, {rmse}, {r2}, {slope_p_value}, {seasonal_period})
参数说明数据类型
raster

输入多维栅格。

Raster
dimension_name

维度的名称;将沿此维度为分析中所选的一个或多个变量提取趋势。

String
regression_type

指定用于拟合沿维度像素值的线的类型。

  • LINEAR将沿线性趋势线拟合变量像素值。这是默认设置。
  • HARMONIC将沿谐波趋势线拟合变量像素值。
  • POLYNOMIAL将沿二阶多项式趋势线拟合变量像素值。
  • MANN-KENDALL将使用 Mann-Kendall 趋势测试对变量像素值进行单调性趋势评估。
  • SEASONAL-KENDALL将使用 Seasonal-Kendall 趋势测试对变量像素值进行单调性趋势评估。

(默认值为 LINEAR)

String
cycle_length

要进行建模的周期性变化的长度。regression_type 设置为 HARMONIC 时需要此参数。例如,叶绿度通常在一年中具有一个较强的变化周期,因此 cycle_length 为 1 年。每小时温度数据在一天中具有一个较强的变化周期,因此 cycle_length 为 1 天。默认值为 1。

(默认值为 1)

Integer
cycle_unit

指定用于谐波周期长度的时间单位。

  • DAYS谐波周期的长度单位为天。
  • YEARS谐波周期的长度单位为年。这是默认设置。

(默认值为 YEARS)

String
harmonic_frequency

regression_typeHARMONIC 时,趋势拟合中使用的模型数量。默认为 1 或每年一个谐波周期。

仅当分析的维度是时间时,趋势分析中才会包含此参数。

(默认值为 1)

Integer
polynomial_order

regression_typePOLYNOMIAL 时,趋势拟合中使用的多项式阶数。默认为 2 或二阶多项式。

仅当分析的维度是时间时,趋势分析中才会包含此参数。

(默认值为 2)

Integer
ignore_nodata

指定分析中是否忽略 NoData 值。

  • True - 分析将包括沿给定维度的所有有效像素,并忽略所有 NoData 像素。这是默认设置。
  • False - 如果沿给定维度的像素包含任意 NoData 值,则分析结果将变为 NoData。

(默认值为 True)

Boolean
rmse

指定是否将计算趋势拟合线的均方根误差 (RMSE)。

  • True - 将计算 RMSE。这是默认设置。
  • False - 将不计算 RMSE。

(默认值为 True)

Boolean
r2

指定是否将为趋势拟合线计算 R 平方拟合优度统计数据。

  • True - 将计算 R 平方值。
  • False - 将不计算 R 平方值。这是默认设置。

(默认值为 False)

Boolean
slope_p_value

指定是否将为趋势线的斜率系数计算 p 值统计数据。

  • True - 将计算 p 值。
  • False - 将不计算 p 值。这是默认设置。

(默认值为 False)

Boolean
seasonal_period

指定要用于季节性期间的单位。当将 regression_type 参数设置为 SEASONAL-KENDALL 时,此为必需项。

  • DAYS季节性期间的长度单位为天。这是默认设置。
  • MONTHS季节性期间的长度单位为月。

(默认值为 DAYS)

String
返回值
数据类型说明
Raster

输出栅格。

代码示例

GenerateTrendRaster 示例

本示例将计算沿 NDVI 时间序列的谐波趋势拟合。

# Import system modulesimport arcpy
import arcpy
from arcpy.ia import *

# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")

# Set the local variables
in_multidimensional_raster = "C:/data/ndvi_time_series.crf"
dimension_name = "StdTime"
regression_type = "HARMONIC"
cycle_length = 1
cycle_unit = "YEARS"
harmonic_frequency = 1
polynomial_order = None
ignore_nodata = True

rmse = True
r2 = False
slope_p_value = False
seasonal_period = None

# Apply GenerateTrendRaster function
trend_raster = arcpy.ia.GenerateTrend(in_multidimensional_raster,
                dimension_name, regression_type, cycle_length, cycle_unit, 
				harmonic_frequency, polynomial_order, ignore_nodata, rmse,
				r2, slope_p_value, seasonal_period)

# Save the output
trend_raster.save("C:/arcpyExamples/outputs/ndvi_trend_raster.crf")