需要 Spatial Analyst 许可。
使用方法
编辑特征文件工具允许您通过以下所有操作或某一操作来修改现有特征文件:
- 合并一组类的特征
- 重新编号特征类 ID
- 删除多余特征
将多波段栅格指定为输入栅格波段(Python 中的 in_raster_bands)之一时,将使用所有波段。
要处理一系列来自多波段栅格的波段,可先用波段合成工具创建由这些特定波段组成的新栅格数据集,并在输入栅格波段(Python 中的 in_raster_bands)列表中使用该结果。
输入特征文件必须是 ASCII 特征文件。该文件可以是任何用于生成包含所需统计信息的文件的多元分析工具(如 Iso 聚类和创建特征)的输出。该文件必须至少包含两个类。可通过 .gsg 扩展名来识别此类文件。
输入特征重映射文件是 ASCII 文件,其每一行有两列值与之对应,以冒号分隔。第一列为原始类 ID 的值。第二列中包含新的类 ID,以便在特征文件中更新。文件中的所有条目必须基于第一列以升序进行排序。
在某些情况下,所需的一些类在统计上彼此可能过于相似,因此,为唯一的类分配像元可能不可靠。例如,您可能需要湿地类和森林湿地的单独类。但是,很难区分这两个类。有这种情况下,可能需要将森林湿地类合并到更常用的湿地类中。或者,如果两个类之间没有统计意义上的差异,由于这两个类在本质上都代表相同的类,因此可以移除其中一个类。
要合并一组类,请为该组各类 ID 的第二个值放置相同的新类 ID。只有需要编辑的类才必须被放入特征重映射文件;任何在重映射文件中不存在的类将保持不变。要删除类特征,请使用 -9999 作为该类第二列的值。此外,还可将类 ID 重新编号为某个不存在于输入特征文件中的值。
以下是输入特征重映射文件的示例:
2 : 3 4 : 11 5 : -9999 9 : 3
此例将使用 3 合并类 2 和 类 9,使用 11 合并类 4,并将删除类 5。
如果输入特征文件中包含类特征名称,并且输入特征重映射文件中的特征要进行合并,则合并值的关联名称将被传输至输出特征文件。
有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 Spatial Analyst。
语法
EditSignatures(in_raster_bands, in_signature_file, in_signature_remap_file, out_signature_file, {sample_interval})
参数 | 说明 | 数据类型 |
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 = ""
# Execute EditSignatures
EditSignatures(inRaster, oldSig, sigRemap, outNewSig, interval)
许可信息
- Basic: 需要 Spatial Analyst
- Standard: 需要 Spatial Analyst
- Advanced: 需要 Spatial Analyst