编辑特征 (空间分析)
用法
-
编辑特征工具允许您通过以下所有操作或某一操作来修改现有特征文件:
- 合并一组特征类
- 重新编号特征类 ID
- 删除不需要的特征
-
输入特征文件必须是 ASCII 特征文件。该文件可以是任何用于生成包含所需统计信息的文件的“多元分析”工具(如 Iso 聚类和创建特征)的输出。该文件必须至少包含两个类。可通过 .gsg 扩展名来识别此类文件。
-
输入特征重映射文件是 ASCII 文件,其每一行有两列值与之对应,以冒号分隔。第一列是原始类 ID 值。第二列包含用于在特征文件中更新的新类 ID。文件中的所有条目必须基于第一列以升序进行排序。
要合并一组类,请为该组各类 ID 的第二个值放置相同的新类 ID。只有需要编辑的类才必须被放入特征重映射文件;任何在重映射文件中不存在的类将保持不变。要删除类特征,请使用 -9999 作为该类第二列的值。此外,还可将类 ID 重新编号为某个不存在于输入特征文件中的值。以下是输入特征重映射文件的示例:
2 : 3 4 : 11 5 : -9999 9 : 3
上例将使用 3 合并类 2 和 类 9,使用 11 合并类 4,并将删除类 5。
-
如果输入特征文件中包含类特征名称,并且输入特征重映射文件中的特征要进行合并,则合并值的关联名称将被传输至输出特征文件。
-
如果输入为创建自多波段栅格(超过三个波段)的图层,则操作将会考虑与源数据集相关联的所有波段,而不仅仅是由图层加载(符号化)的三个波段。
您可以使用多种方式将多波段栅格的波段子集指定为工具的输入。
语法
参数 | 说明 | 数据类型 |
in_raster_bands [in_raster_band,...] |
要编辑特征的输入栅格波段。 | Raster Layer |
in_signature_file |
要编辑类特征的输入特征文件。 需要使用一个 .gsg 扩展名。 | File |
in_signature_remap_file |
包含要进行合并、重新编号或删除的类 ID 的输入 ASCII 重映射表。 扩展名可以是 .rmp、.asc 或 .txt。默认值为 .rmp。 | File |
out_signature_file |
输出特征文件。 必须指定一个 .gsg 扩展名。 | File |
sample_interval (可选) |
采样所使用的间隔。 默认值为 10。 | Long |
代码实例
本例将基于输入重映射文件编辑特征文件。
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
EditSignatures("redl123", "c:/sapyexamples/data/zsamp12.gsg",
"c:/sapyexamples/data/zsamp7.rmp",
"c:/sapyexamples/output/redlremap.gsg", "")
本例将基于输入重映射文件编辑特征文件。
# Name: EditSignatures_Ex_02.py
# Description: Edits and updates a signature file by merging, renumbering,
# and deleting class signatures.
# 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 = "redl123"
oldSig = "c:/sapyexamples/data/zsamp12.gsg"
sigRemap = "c:/sapyexamples/data/zsamp7.rmp"
outNewSig = "c:/sapyexamples/output/redlsig.gsg"
interval = ""
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute EditSignatures
EditSignatures(inRaster, oldSig, sigRemap, outNewSig, interval)