摘要
将多个输入数据集追加到现有目标数据集。输入数据集可以是点、线、面要素类、表、栅格、注记要素类或尺寸要素类。
要将输入数据集合并到新的输出数据集中,请使用合并工具。
插图
用法
使用该工具,可将多个数据集中的新要素或其他数据添加至现有数据集。该工具可将点、线、面要素类、表、栅格、注记要素类或尺寸要素类追加到现有的相同类型数据集中。例如,可将多个表追加到现有表中,或将多个栅格追加到现有栅格数据集中,但是不能将线要素类追加至点要素类中。
追加工具的字段映射控件可用于控制如何将输入数据集字段中的属性信息传输到目标数据集。只有在选择使用字段映射协调方案差异作为方案类型时,才能使用字段映射控件。
向目标数据集添加要素时,此工具不会打断要素。输入要素类和目标要素类中的所有要素都将在追加后保持原样,即使出现要素相互叠置情况也是如此。要合并或打断要素几何,请使用联合工具。
如果选择输入方案必须匹配目标方案作为方案类型(Python 中为 schema_type = "TEST"),则输入数据集的方案(字段定义)必须与目标数据集的方案相匹配,然后才能追加要素。如果选择使用字段映射协调方案差异(Python 中为 schema_type = "NO_TEST"),则输入数据集的方案(字段定义)不必与目标数据集的方案相匹配。但是,如果输入数据集的任何字段与目标数据集的字段不匹配,将不会被映射到目标数据集,除非在字段映射控件中对映射进行了显式设置。
由于输入数据集的数据被写入具有预定义方案(字段定义)的现有目标数据集中,因此“字段映射”控件不允许在目标数据集中添加或移除字段。
如果输入要素类和目标要素类的空间参考不匹配,追加工具会将输入要素类中的要素投影到目标要素类所使用的坐标系中。
此工具不执行边匹配,即不会对要素的几何进行调整。
可将地图图层用作输入数据集。如果图层具有选定内容,则追加工具只会使用所选记录(要素或表行)。
此工具不能使用具有相同名称的多个输入图层。要解决此限制,请使用工具对话框浏览按钮来浏览各输入数据集的完整路径。
要使用子类型参数,目标数据集必须已定义子类型字段且已分配子类型代码。在子类型参数中,提供子类型描述以将该子类型分配给已追加到目标数据集中的所有新数据。
语法
Append_management (inputs, target, {schema_type}, {field_mapping}, {subtype})
参数 | 说明 | 数据类型 |
inputs [inputs,...] | 数据将被追加到目标数据集的输入数据集。输入数据集可以是点、线、面要素类、表、栅格、注记要素类或尺寸要素类。各输入数据集的数据类型必须与目标数据集的数据类型相匹配。 | Table View; Raster Layer |
target | 将追加输入数据集数据的现有数据集。各输入数据集的数据类型必须与目标数据集的数据类型相匹配。 | Table View; Raster Layer |
schema_type (可选) | 指定输入数据集的方案(字段定义)是否必须与目标数据集的方案相匹配才能追加要素。
| String |
field_mapping (可选) | 控制如何将输入数据集中的属性字段传输或映射到目标数据集。只有在指定方案类型 NO_TEST 的情况下,才能使用此参数。 由于输入数据集的数据被追加到具有预定义方案(字段名称和类型)的现有目标数据集中,因此不允许在目标数据集中添加或移除字段。可以为每个输出字段设置合并规则。 合并规则用于指定如何将两个或更多个输入字段的值合并或组合为一个输出值。有多种合并规则可用于确定如何用值填充输出字段。
您可使用 ArcPy FieldMappings 类来定义此参数。 | Field Mapping |
subtype (可选) | 要分配给已追加到目标数据集中的所有新数据的子类型描述。 | String |
代码示例
Append 示例 1(Python 窗口)
以下 Python 窗口脚本演示了如何在即时模式下使用“追加”工具。
import arcpy
arcpy.env.workspace = "C:/data/"
arcpy.Append_management(["north.shp", "south.shp", "east.shp", "west.shp"], "wholecity.shp", "TEST","","")
Append 示例 2(独立 Python 脚本)
以下脚本演示了如何使用“追加”工具。
# Name: Append.py
# Description: Use the Append tool to combine several shapefiles
# import system modules
import arcpy
import os
# Set environment settings
arcpy.env.workspace = "C:/data"
# Set local variables
outLocation = "C:/Output"
outName = "MA_towns.shp"
schemaType = "NO_TEST"
fieldMappings = ""
subtype = ""
# Process: Create a new empty feature class to append shapefiles into
emptyFC = arcpy.CreateFeatureclass_management(outLocation, outName, "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"]
# Create FieldMappings object to manage merge output fields
fieldMappings = arcpy.FieldMappings()
# Add the target table to the field mappings class to set the schema
fieldMappings.addTable(emptyFC)
# Add input fields for the town name into TOWNNAME field that matches the target dataset
# since each input dataset has a different field name for this info
fldMap = arcpy.FieldMap()
fldMap.addInputField("amherst.shp","TOWNNAME")
fldMap.addInputField("hadley.shp","NAME")
fldMap.addInputField("pelham.shp","TOWN_NAME")
fldMap.addInputField("coldspring.shp","TOWN")
# Set name of new output field "TOWNNAME"
townName = fldMap.outputField
townName.name, townName.aliasName, townName.type = "TOWNNAME", "TOWNNAME", "TEXT"
fldMap.outputField = townName
# Add output field to field mappings object
fieldMappings.addFieldMap(fldMap)
# Do the same thing for the POPULATION field
fldMap = arcpy.FieldMap()
fldMap.addInputField("amherst.shp","POPULATION")
fldMap.addInputField("hadley.shp","POP")
fldMap.addInputField("pelham.shp","POP_2010")
fldMap.addInputField("coldspring.shp","POP")
# Set name of new output field "POPULATION"
pop = fldMap.outputField
pop.name, pop.aliasName, pop.type = "POPULATION", "POPULATION", "LONG"
fldMap.outputField = pop
# Add output field to field mappings object
fieldMappings.addFieldMap(fldMap)
# Process: Append the feature classes into the empty feature class
arcpy.Append_management(fcList, outLocation + os.sep + emptyFC, schemaType, fieldMappings, subtype)
环境
许可信息
- ArcGIS Desktop Basic: 是
- ArcGIS Desktop Standard: 是
- ArcGIS Desktop Advanced: 是