Gradient
汇总
计算沿 x、y、x,y 或给定维度的梯度。
讨论
Gradient 函数适用于单波段输入。 如果输入为多波段,则会使用第一个波段。 使用 ExtractBand 函数指定需要的波段。
对于包含多个变量的多维输入,将会处理所有变量。 如果变量不包含指定的 gradient_dimension 参数,则其会被忽略。 使用 多维过滤器 函数选择所需变量。
多维过滤器函数也可以用于定义要应用函数的维度范围。
下表列出了多种梯度计算的等式。
|
梯度类型 |
等式 |
|---|---|
|
梯度 X |
\((右侧像素 \space - \space 当前像素)/分母单位\) |
|
梯度 Y |
\((下方像素 \space - \space 当前像素)/分母单位\) |
|
维度的梯度 |
\((下一个剖切片 \space - \space 当前剖切片)/分母单位\) |
语法
Gradient(raster, {gradient_dimension}, {denominator_unit})
| 参数 | 说明 | 数据类型 |
|---|---|---|
|
raster |
The input raster or list of rasters. |
Raster |
|
gradient_dimension |
The available dimensions for which the gradient will be calculated. For nonmultidimensional input, available dimension options are For multidimensional input, available dimension options are The (默认值为 X) |
String |
|
denominator_unit |
The unit of the gradient denominator. The unit depends on the The following options are available for
The following options are available for
The following options are available for dimensions other than time dimensions:
(默认值为 DEFAULT) |
String |
返回值
| 数据类型 | 说明 |
|---|---|
|
Raster |
输出栅格。 |
代码示例
计算 Landsat 图像在 x 和 y 维度上的梯度。
# Import system modules
import arcpy
from arcpy.ia import *
arcpy.ia.Gradient(raster, gradient_dimension, denominator_unit)
# Set local variables
input_raster = in_multidimensional_raster = "C:/data/landsat.crf"
gradient_dimension = "XY"
denominator_unit = "Cellsize"
# Apply Gradient function
gradient_raster = arcpy.ia.Gradient (raster, gradient_dimension, denominator_unit)
# Save the output
gradient_raster.save("C:/output/landsat_xy_gradient.crf")
该示例计算了 NDVI 时间序列在 StdTime 维度上的梯度。
# Import system modules
import arcpy
from arcpy.ia import *
arcpy.ia.Gradient (raster, gradient_dimension, denominator_unit)
# Set local variables
input_raster = in_multidimensional_raster = "C:/data/ndvi_time_series.crf"
gradient_dimension = "StdTime"
denominator_unit = "Per Year"
# Apply Gradient function
gradient_raster = arcpy.ia.Gradient (raster, gradient_dimension, denominator_unit)
# Save the output
gradient_raster.save("C:/output/ndvi_stdtime_gradient.crf")