标注 | 说明 | 数据类型 |
输入图层 | 将合并的输入图层。 | Layer |
输出文件夹 | 包含图层文件和合并数据的输出文件夹。 如果指定的文件夹不存在,将创建一个新文件夹。 | Folder |
将数据转换为文件地理数据库 (可选) | 指定输入图层是转换为文件地理数据库还是保留原始格式。
| Boolean |
包括企业级地理数据库数据,而不是引用该数据 (可选) | 指定是将输入企业级地理数据库图层转换为文件地理数据库,还是保留其原始格式。
| Boolean |
范围 (可选) | 指定用于选择或裁剪要素的范围。
| Extent |
仅将范围应用到企业级地理数据库图层 (可选) | 指定是将指定范围应用到所有图层,还是仅应用到企业级地理数据库图层。
| Boolean |
仅方案 (可选) | 指定是否仅合并或打包输入图层的方案。
| Boolean |
仅保留与范围内要素相关的行 (可选) | 指定是否将指定的范围应用至相关数据源。
| Boolean |
保留移动地理数据库 (可选) | 指定输入移动地理数据库数据是保留在输出中还是写入文件地理数据库格式。 如果输入数据是移动地理数据库网络数据集,则输出将为移动地理数据库。 当输入数据为移动地理数据库时,此参数将覆盖将数据转换为文件地理数据库参数。
| Boolean |
排除网络数据集 (可选) | 对于网络分析图层,指定是否还将对网络数据集进行合并。
| Boolean |
摘要
通过将所有引用的数据源复制到一个文件夹中来合并一个或多个图层。
使用情况
此工具遇到不支持的图层类型时会发出警告。 不受支持的图层类型将不会写出到输出。
选中将数据转换为文件地理数据库参数时,将出现以下情况:
- 每个唯一数据会具有一个在合并文件夹或包中创建的文件地理数据库。
- 压缩栅格和矢量格式会转换为一个文件地理数据库,并且原来的数据压缩将会丢失。
- 不会合并企业级地理数据库数据。 要将企业级地理数据库数据转换为文件地理数据库,请选中包括企业级地理数据库数据,而不是仅引用该数据参数。
未选中将数据转换为文件地理数据库参数时,将出现以下情况:
- 将保留输入图层的数据源格式(如果可能)。
- ADRG、CADRG/ECRG、CIB 和 RPF 栅格格式将转换为文件地理数据库栅格。 ArcGIS 本身不能写出这些格式。 出于效率方面的考虑,这些格式将转换为文件地理数据库栅格。
- 在输出文件夹结构中,文件地理数据库将合并到一个特定于版本的文件夹中,并且所有其他格式都将合并到 commonData 文件夹中。
- 即使在范围参数中指定了范围,也不会裁剪压缩栅格和矢量格式。
对于包含连接或参与关系类的图层,所有连接或相关的数据源都将合并到输出文件夹。 默认情况下,连接或关联数据源将全部合并,或根据为范围参数指定的范围,由选择相关行参数值决定。
对于要素图层,范围参数用来选择将要合并的要素。 对于栅格图层,范围参数用来裁剪栅格数据集。
有些数据集会引用其他数据集。 例如,您可能拥有一个引用了四个要素类的拓扑数据集。 引用其他数据集的数据集示例还包括几何网络、网络和定位器。 基于这些数据集类型合并或打包图层时,参与数据集也将被合并或打包。
如果选中仅方案参数,则将仅合并或打包输入数据源的方案。 方案是由字段和表定义、坐标系属性、符号系统、定义查询等组成的要素类或表的结构或设计。 将不会合并或打包所有数据和记录。
不支持“仅方案”的数据源不能进行合并和打包。 如果选中仅方案参数,并且此工具遇到“仅方案”不支持的图层,则会显示一条警告消息,并会跳过该图层。 如果仅方案不支持指定的唯一图层,则该工具将失败。
参数
arcpy.management.ConsolidateLayer(in_layer, output_folder, {convert_data}, {convert_arcsde_data}, {extent}, {apply_extent_to_arcsde}, {schema_only}, {select_related_rows}, {preserve_sqlite}, {exclude_network_dataset})
名称 | 说明 | 数据类型 |
in_layer [in_layer,...] | 将合并的输入图层。 | Layer |
output_folder | 包含图层文件和合并数据的输出文件夹。 如果指定的文件夹不存在,将创建一个新文件夹。 | Folder |
convert_data (可选) | 指定输入图层是转换为文件地理数据库还是保留原始格式。
| Boolean |
convert_arcsde_data (可选) | 指定是将输入企业级地理数据库图层转换为文件地理数据库,还是保留其原始格式。
| Boolean |
extent (可选) | 指定用于选择或裁剪要素的范围。
| Extent |
apply_extent_to_arcsde (可选) | 指定是将指定范围应用到所有图层,还是仅应用到企业级地理数据库图层。
| Boolean |
schema_only (可选) | 指定是否仅合并或打包输入图层的方案。
| Boolean |
select_related_rows (可选) | 指定是否将指定的范围应用至相关数据源。
| Boolean |
preserve_sqlite (可选) | 指定移动地理数据库数据是保留在输出中还是写入文件地理数据库格式。 如果输入数据是移动地理数据库网络数据集,则输出将为移动地理数据库。 当输入数据为移动地理数据库时,此参数将覆盖 convert_data 参数。
| Boolean |
exclude_network_dataset (可选) | 对于网络分析图层,指定是否还将对网络数据集进行合并。
| Boolean |
代码示例
以下 Python 窗口脚本演示了如何在即时模式下使用 ConsolidateLayer 函数。
import arcpy
arcpy.env.workspace = 'C:/arcgis/ArcTutor/BuildingaGeodatabase/Layers'
arcpy.management.ConsolidateLayer('Parcels.lyr', 'Consolidated_folder', 'PRESERVE', 'CONVERT_ARCSDE')
查找位于指定文件夹中的所有图层文件,并为其创建独立的合并文件夹。
# Import system modules
import os
import arcpy
# Set environment settings
arcpy.env.workspace = 'C:/arcgis/ArcTutor/BuildingaGeodatabase/Layers'
# Loop through the workspace, find all the layer files (.lyr) and create a consolidated folder for each
# layer file found using the same name as the original layer file.
for lyr in arcpy.ListFiles('*.lyr'):
print('Consolidating {}'.format(lyr))
arcpy.management.ConsolidateLayer(lyr, os.path.splitext(lyr)[0], 'PRESERVE', 'CONVERT_ARCSDE')