NbrWeight

需要 Spatial Analyst 许可。

获得 Image Analyst 许可后可用。

摘要

定义一个权重邻域,该邻域是使用核文件创建的,该核文件指定了邻域内要乘以像元的值。

插图

FocalStatistics 函数的 NbrWeight 邻域
FocalStatistics 函数的 NbrWeight 邻域示例。
BlockStatistics 函数的 NbrWeight 邻域
BlockStatistics 函数的 NbrWeight 邻域示例。

说明

使用邻域权重对象的工具包括:块统计焦点统计

许可:

如果您拥有 Image Analyst 扩展模块许可,也可以使用该类,但仅限于焦点统计工具。

将使用核文件指定权重邻域。 核文件将标识应包含在邻域内的像元位置,以及输入栅格上将用于乘以像元值的权重。

对于焦点工具,邻域范围内待处理像元相对于邻域左上角的 x,y 位置可通过以下方程式来确定:

x = (宽度 + 1)/2 y = (高度 + 1)/2

如果输入像元数为偶数,则将使用截断来计算 x 和 y 坐标。

核文件:

  • 核文件是一个 ASCII 文本文件,用于定义权重邻域的值和形状。

  • 第一行指定了邻域的宽度和高度(x 方向的像元数,后跟一个空格,以及 y 方向的像元数)。

  • 随后的几行将提供邻域中每个位置的权重值。 这些值的输入配置与其所代表的邻域中显示的配置相同。 正值、负值和小数值均可用作权重。 每个值之间必须存在一个空格。

  • 对于不属于计算范围的邻域中的位置,请在核文件中的相应位置处使用值 0。

语法

NbrWeight (inKernelFile)
参数说明数据类型
inKernelFile

An ASCII text file that defines the shape of the neighborhood and the weight of each cell in that neighborhood. A value of 0 for a cell position indicates that the cell is not a member of the neighborhood, and a number at a corresponding cell's position indicates that the cell value be included as a member of the neighborhood. The nonzero value will also serve as the weight to multiply the corresponding cell value.

File

属性

属性说明数据类型
inKernelFile
(可读写)

inKernelFile 是一种 ASCII 文本文件,用于定义邻域的形状及领域中各像元的权重。 像元位置值为 0 表示该像元并非领域的成员,而当像元位置对应数值时则表示该像元值已被包括在领域成员中。 非零值也可用作权重以与相应像元值相乘。

String

代码示例

NbrWeight 示例 1(Python 窗口)

演示如何创建 NbrWeight 类以及如何在 Python 窗口的 BlockStatistics 工具中使用该类。

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outNbrWF = BlockStatistics("block", NbrWeight("weight.txt"))
outNbrWF.save("C:/sapyexamples/output/blstatsnbrwf2")
NbrWeight 示例 2(独立脚本)

使用 NbrWeight 类执行 BlockStatistics 工具。

# Name: NbrWeight_Ex_02.py
# Description: Uses the NbrWeight object to execute BlockStatistics tool.
# Requirements: Spatial Analyst Extension

# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *

# Set environment settings
env.workspace = "C:/sapyexamples/data"

# Set local variables
inRaster = "block"

# Create the Neighborhood Object
inWeightFile = "C:/data/weight.txt"
myNbrWeight = NbrWeight(inWeightFile)

# Execute BlockStatistics
outBlStats =  BlockStatistics(inRaster, myNbrWeight, "MINIMUM", "DATA")

# Save the output 
outBlStats.save("C:/sapyexamples/output/blstat_wght3")

相关主题