追加 (Data Management)
插图
用法
-
使用该工具,可将多个数据集中的新要素或其他数据添加至现有数据集。该工具可将点、线、面要素类、表、栅格、栅格目录、注记要素类或尺寸要素类追加到现有的相同类型数据集中。例如,可将多个表追加到现有表中,或将多个栅格追加到现有栅格数据集中,但是不能将线要素类追加至点要素类中。
-
“追加”工具的字段映射控件可用于控制如何将输入数据集字段中的属性信息传输到目标数据集。只有在指定方案类型 NO_TEST 的情况下,才能使用“字段映射”控件。
-
向目标数据集添加要素时,此工具不会打断要素。输入要素类和目标要素类中的所有要素都将在追加后保持原样,即使出现要素相互叠置情况也是如此。要合并或打断要素几何,请使用联合工具。
-
如果已指定方案类型 TEST,则输入数据集的方案(字段定义)必须与目标数据集的方案相匹配,然后才能追加要素。如果已指定方案类型 NO_TEST,则输入数据集的方案(字段定义)不必与目标数据集的方案相匹配。但是,如果输入数据集的任何字段与目标数据集的字段不匹配,将不会被映射到目标数据集,除非在“字段映射”控件中对映射进行了显式设置。
-
由于输入数据集的数据被写入具有预定义方案(字段定义)的现有目标数据集中,因此“字段映射”控件不允许在目标数据集中添加或移除字段。
-
如果输入要素类和目标要素类的空间参考不匹配,“追加”工具会将输入要素类中的要素投影到目标要素类所使用的坐标系中。
-
此工具不执行边匹配,即不会对要素的几何进行调整。
-
可将地图图层用作输入数据集。如果图层具有选定内容,则“追加”工具只会使用所选记录(要素或表行)。
-
此工具不能使用具有相同名称的多个输入图层。虽然 ArcMap 可显示具有相同名称的图层,但不得使用这些图层。要解决此限制,请使用工具对话框浏览按钮来浏览各输入数据集的完整路径。
-
要使用子类型参数,目标数据集必须已定义子类型字段且已分配子类型代码。在子类型参数中,提供子类型描述以将该子类型分配给已追加到目标数据集中的所有新数据。
语法
参数 | 说明 | 数据类型 |
inputs [inputs,...] |
数据将被追加到目标数据集的输入数据集。输入数据集可以是点、线、面要素类、表、栅格、栅格目录、注记要素类或尺寸要素类。各输入数据集的数据类型必须与目标数据集的数据类型相匹配。 | Table View; Raster Layer |
target |
将追加输入数据集数据的现有数据集。各输入数据集的数据类型必须与目标数据集的数据类型相匹配。 | Table View; Raster Layer |
schema_type (可选) |
指定输入数据集的方案(字段定义)是否必须与目标数据集的方案相匹配才能追加要素。
| String |
field_mapping (可选) |
控制如何将输入数据集字段中的属性信息传输到目标数据集。只有在指定方案类型 NO_TEST 的情况下,才能使用这个参数。 由于输入数据集的数据被追加到具有预定义方案(字段定义)的现有目标数据集中,因此不允许在目标数据集中添加或移除字段。 合并规则用于指定如何将两个或更多个输入字段的值合并为一个输出值。有以下几个合并规则可供使用:
| Field Mapping |
subtype (可选) |
用于将子类型分配给已追加到目标数据集中的所有新数据的子类型描述。 | String |
代码实例
以下 Python 窗口脚本演示了如何在即时模式下使用“追加”工具。
import arcpy
arcpy.env.workspace = "C:/data/"
arcpy.Append_management(["north.shp", "south.shp", "east.shp", "west.shp"], "wholecity.shp", "TEST","","")
以下脚本演示了如何使用“追加”工具。
# Name: Append.py
# Description: Use the Append tool to combine several shapefiles
# import system modules
import arcpy, os
from arcpy import env
# Set environment settings
env.workspace = "C:/data"
# Set local variables
outLocation = "C:/Output"
emptyFC = "MA_towns.shp"
schemaType = "NO_TEST"
fieldMappings = ""
subtype = ""
try:
# Process: Create a new empty feature class to append shapefiles into
arcpy.CreateFeatureclass_management(outLocation, emptyFC, "POLYGON", "amherst.shp")
# All polygon FCs in the workspace are MA town shapefiles, we want to append these to the empty FC
fcList = arcpy.ListFeatureClasses("","POLYGON")
# list will resemble ["amherst.shp", "hadley.shp", "pelham.shp", "coldspring.shp"]
# Process: Append the feature classes into the empty feature class
arcpy.Append_management(fcList, outLocation + os.sep + emptyFC, schemaType, fieldMappings, subtype)
except:
# If an error occurred while running a tool print the messages
print arcpy.GetMessages()