Skip to main content

GenerateTrend

汇总

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

讨论

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

栅格对象所引用的栅格数据集是临时性的。 要将其设置为永久,可以调用栅格对象的 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 *

# 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")