合并工程 (数据管理)

摘要

将工程(.aprx 文件)与引用的地图和数据合并到一个指定的输出文件夹。

使用情况

  • 工程的所有元素都将合并,并包括在 .aprx 文件中,这些元素中包括地图、图层引用的数据、工具箱、样式、布局和连接(如果适用)。

  • 在组织外共享参数控制数据是否合并到文件夹。

    • 未选中 - 将为内部环境创建包,表示将不合并数据。 UNC 路径以及企业级地理数据库图层、样式和连接仍将在合并工程中引用。
    • 选中 - 将包的所有所需数据源复制到合并文件夹。 网络外不可用的项目(例如企业级地理数据库连接和 UNC 文件夹路径)将不包括在内。 但是,如果这些源中的数据包括在工程内的地图或布局中,则这些数据将会复制到输出文件夹。

    注:

    如果工程通过本地路径(例如 c:\gisdata\landrecords.gdb\)引用数据和地图,则将合并这些数据和地图(不考虑在组织外共享参数设置)。

  • 可使用合并为模板参数创建模板。 使用工程模板,可以定义图层、地图和数据以及创建工程时所需的连接。

    了解有关创建工程模板的详细信息

  • 在执行合并例程之前,将使用针对 Pro 分析工具工具分析属于工程组成部分的工具箱。 识别出的错误将停止合并进程。 您必须修复这些错误,或从工程中移除工具。 无论数据是否属于工程中地图的一部分,都将合并工具所需的输入数据。

  • 连接(例如文件夹、服务器、数据库、工作流以及数据质检)将仅包含在内部包中。 如果创建包的目的是要在组织外共享,则将移除这些项目。

  • 如果项目(例如附件、样式和任务)为 UNC 路径中的工程的一部分,则将对内部包引用项目。 在所有其他情况下,都将对这些项目进行复制和打包。

  • 对于要素图层,使用范围参数选择将要合并的要素。 对于栅格图层,使用范围参数裁剪栅格数据集。

参数

标注说明数据类型
输入工程

要合并的工程(.aprx 文件)。

File
输出文件夹

此输出文件夹将包含合并的工程和数据。 如果指定的文件夹不存在,将创建一个文件夹。

Folder
在组织外共享
(可选)

指定是将工程和所有数据合并到单个文件夹(在组织外共享)还是引用这些工程和数据(在组织内共享)。 通过企业级地理数据库或 UNC 文件系统引用的数据路径可在内部共享。 如果工程并非通过此类数据路径构建,则数据将合并到工程包中。

注:

如果工程通过本地路径(例如 c:\gisdata\landrecords.gdb\)引用数据和地图,则将对这些数据和地图进行合并和打包(不考虑该参数设置)。

  • 未选中 - 工程及其数据源将不会合并到输出文件夹。 这是默认设置。 该参数适用于企业级地理数据库数据源,其中包括通过 UNC 路径引用的企业级地理数据库和文件夹。
  • 选中 - 工程及其数据源将被复制和保留(如有可能)。
Boolean
范围
(可选)

指定用于选择或裁剪要素的范围。

  • 当前显示范围 地图视图 - 范围基于活动地图或场景。 仅在存在活动地图时,才可使用此选项。
  • 绘制范围 构造直角并完成草图 - 范围将基于在地图或场景上绘制的矩形。 此选项将在工程地理数据库中创建要素类并将图层添加至地图。 该要素类的坐标系将与地图相同。
    注:

    环境对话框中不提供此选项。 只能在具有范围数据类型的工具参数中或工具对话框的环境选项卡中找到此选项。

    注:

    当选中从“编辑”选项卡启用和禁用编辑编辑选项时,必须在编辑功能区选项卡上启用编辑才能绘制范围。

  • 图层范围 Layer - 范围基于活动地图图层。 使用下拉列表选择可用图层,或使用所有图层中数据的范围选项获取所有活动地图图层(不包括底图)的组合范围。 仅在存在具有图层的活动地图时,才可使用此选项。

    每个地图图层具有以下选项:

    • 所有要素 全选 - 图层中所有要素的范围。
    • 选定要素Area from Selected Features - 图层中选定要素的范围。
    • 可见要素 Extent Indicator - 图层中可见要素的范围。
      注:

      选定要素 Area from Selected Features可见要素 Extent Indicator 选项中的范围仅适用于要素图层。

  • 浏览 浏览 - 范围基于现有数据集。
  • 输入的交集 相交 - 范围将基于所有输入的最小或交叉范围。 如果输入未重叠,则结果为包含所有零值的空范围。
  • 输入的并集 联合 - 范围将基于所有输入的最大或合并范围。
  • 剪贴板 粘贴 - 可在剪贴板中复制和粘贴范围。
    • 复制范围 复制 - 将范围坐标和坐标系复制到剪贴板。
    • 粘贴范围 粘贴 - 从剪贴板粘贴范围坐标和(可选)坐标系。 如果剪贴板值不包含坐标系,则范围将使用地图的坐标系。
    注:

    将使用与 ArcPy Extent 对象相同的格式和顺序从剪贴板中复制和粘贴范围坐标:x-min、y-min、x-max、y-max 和空间参考。

  • 重置范围 重置 - 将范围重置为默认值。
  • 手动输入坐标 - 坐标必须是数值,并且与活动地图的坐标系相匹配。
    警告:

    地图可能使用与输入的坐标不同的显示单位。 不支持使用主方向(N、S、E、W)。 在南纬和西经坐标中使用负号。

Extent
仅将范围应用到企业级地理数据库图层
(可选)

指定将范围参数值应用到所有图层,还是仅应用到企业级地理数据库图层。

  • 未选中 - 范围将应用到所有图层。 这是默认设置。
  • 选中 - 范围将仅应用到企业级地理数据库图层。

Boolean
合并为模板
(可选)

指定将工程作为模板工程还是规则工程进行合并。 模板可以包含地图、布局、数据库和服务器的连接等。 通过工程模板,您可以标准化一系列地图以在工程中使用,并确保人们可立即使用正确的图层。

  • 未选中 - 该工程将被作为工程合并到文件夹中。 这是默认设置。
  • 选中 - 该工程将被作为模板合并到文件夹中。

Boolean
保留移动地理数据库
(可选)

用于指定是保留移动地理数据库还是将其转换为文件地理数据库。

注:

该参数仅适用于移动地理数据库 (.geodatabase),主要用于 ArcGIS Runtime 应用程序中的离线工作流。 文件扩展名为 .sqlite.gpkgSQLite 数据库将转换为文件地理数据库。

  • 未选中 - 移动地理数据库将被转换为文件地理数据库。 这是默认设置。
  • 选中 - 将保留移动地理数据库。

Boolean
版本
(可选)

指定合并工程的另存 ArcGIS AllSource 版本。 保存到较早版本可以确保工具向后兼容。 如果尝试将工具箱合并到较早版本,而工具箱中包含仅在较新版本中可用的功能,则会发生错误。 您必须移除与较早版本不兼容的工具或指定兼容的版本。

  • 当前版本合并的文件夹将包含与当前版本兼容的地理数据库和地图。
  • ArcGIS AllSource 2.2合并的文件夹将包含与 2.2 版本兼容的地理数据库和地图。
  • ArcGIS AllSource 2.3合并的文件夹将包含与 2.3 版本兼容的地理数据库和地图。
  • ArcGIS AllSource 2.4合并的文件夹将包含与 2.4 版本兼容的地理数据库和地图。
  • ArcGIS AllSource 2.5合并的文件夹将包含与 2.5 版本兼容的地理数据库和地图。
  • ArcGIS AllSource 2.6合并的文件夹将包含与 2.6 版本兼容的地理数据库和地图。
  • ArcGIS AllSource 2.7合并的文件夹将包含与 2.7 版本兼容的地理数据库和地图。
  • ArcGIS AllSource 2.8合并的文件夹将包含与 2.8 版本兼容的地理数据库和地图。
  • ArcGIS AllSource 2.9合并的文件夹将包含与 2.9 版本兼容的地理数据库和地图。
  • ArcGIS AllSource 3.0合并的文件夹将包含与 3.0 版本兼容的地理数据库和地图。
  • ArcGIS AllSource 3.1合并的文件夹将包含与 3.1 版本兼容的地理数据库和地图。
  • ArcGIS AllSource 3.2合并的文件夹将包含与 3.2 版本兼容的地理数据库和地图。
  • ArcGIS AllSource 3.3合并的文件夹将包含与 3.3 版本兼容的地理数据库和地图。
String
仅保留与范围内要素相关的行
(可选)

指定是否将指定的范围应用至相关数据源。

  • 未选中 - 相关的数据源将全部合并。 这是默认设置。
  • 选中 - 仅合并指定范围内与记录对应的相关数据。
Boolean

arcpy.management.ConsolidateProject(in_project, output_folder, {sharing_internal}, {extent}, {apply_extent_to_enterprise_geo}, {package_as_template}, {preserve_sqlite}, {version}, {select_related_rows})
名称说明数据类型
in_project

要合并的工程(.aprx 文件)。

File
output_folder

此输出文件夹将包含合并的工程和数据。 如果指定的文件夹不存在,将创建一个文件夹。

Folder
sharing_internal
(可选)

指定是否将工程和所有数据合并到输出文件夹,以便在外部共享。

  • INTERNAL工程及其数据源将不会合并到输出文件夹。 这是默认设置。
    注:

    该参数适用于企业级地理数据库数据源,其中包括通过 UNC 路径引用的企业级地理数据库和文件夹。

  • EXTERNAL将工程及其数据源合并(复制)到输出文件夹(如有可能)。
Boolean
extent
(可选)

指定用于选择或裁剪要素的范围。

  • MAXOF - 将使用的所有输入的最大范围。
  • MINOF - 将使用的所有输入共用的最小范围。
  • DISPLAY - 范围与可见显示范围相等。
  • 图层名称 - 将使用指定图层的范围。
  • Extent 对象 - 将使用指定对象的范围。
  • 以空格分隔的坐标字符串 - 将使用指定字符串的范围。 坐标以 x-min,y-min,x-max,y-max 的顺序表示。
Extent
apply_extent_to_enterprise_geo
(可选)

指定将 extent 参数值应用到所有图层,还是仅应用到企业级地理数据库图层。

  • ALL该范围将应用到所有图层。 这是默认设置。
  • ENTERPRISE_ONLY该范围将仅应用到企业级地理数据库图层。
Boolean
package_as_template
(可选)

指定将工程作为模板工程还是规则工程进行合并。 模板可以包含地图、布局、数据库和服务器的连接等。 通过工程模板,您可以标准化一系列地图以在工程中使用,并确保人们可立即使用正确的图层。

了解有关创建工程模板的详细信息

  • PROJECT_PACKAGE该工程将被作为工程合并到文件夹中。 这是默认设置。
  • PROJECT_TEMPLATE该工程将被作为模板合并到文件夹中
Boolean
preserve_sqlite
(可选)

用于指定是保留移动地理数据库还是将其转换为文件地理数据库。

注:

该参数仅适用于移动地理数据库 (.geodatabase),主要用于 ArcGIS Runtime 应用程序中的离线工作流。 文件扩展名为 .sqlite.gpkgSQLite 数据库将转换为文件地理数据库。

  • CONVERT_SQLITE移动地理数据库将转换为文件地理数据库。 这是默认设置。
  • PRESERVE_SQLITE将保留移动地理数据库。
Boolean
version
(可选)

指定合并工程的另存 ArcGIS AllSource 版本。 保存到较早版本可以确保工具向后兼容。 如果尝试将工具箱合并到较早版本,而工具箱中包含仅在较新版本中可用的功能,则会发生错误。 您必须移除与较早版本不兼容的工具或指定兼容的版本。

  • CURRENT合并的文件夹将包含与当前版本兼容的地理数据库和地图。
  • 2.2合并的文件夹将包含与 2.2 版本兼容的地理数据库和地图。
  • 2.3合并的文件夹将包含与 2.3 版本兼容的地理数据库和地图。
  • 2.4合并的文件夹将包含与 2.4 版本兼容的地理数据库和地图。
  • 2.5合并的文件夹将包含与 2.5 版本兼容的地理数据库和地图。
  • 2.6合并的文件夹将包含与 2.6 版本兼容的地理数据库和地图。
  • 2.7合并的文件夹将包含与 2.7 版本兼容的地理数据库和地图。
  • 2.8合并的文件夹将包含与 2.8 版本兼容的地理数据库和地图。
  • 2.9合并的文件夹将包含与 2.9 版本兼容的地理数据库和地图。
  • 3.0合并的文件夹将包含与 3.0 版本兼容的地理数据库和地图。
  • 3.1合并的文件夹将包含与 3.1 版本兼容的地理数据库和地图。
  • 3.2合并的文件夹将包含与 3.2 版本兼容的地理数据库和地图。
  • 3.3合并的文件夹将包含与 3.3 版本兼容的地理数据库和地图。
String
select_related_rows
(可选)

指定是否将指定的范围应用至相关数据源。

  • KEEP_ONLY_RELATED_ROWS仅合并指定范围内与记录对应的相关数据。
  • KEEP_ALL_RELATED_ROWS相关的数据源将全部合并。 这是默认设置。
Boolean

代码示例

ConsolidateProject 示例 1(Python 窗口)

以下 Python 脚本演示了如何在 Python 窗口中使用 ConsolidateProject 函数。

import arcpy
arcpy.management.ConsolidateProject('c:\\projects\\SE_Pipelines\\PipeDevelopment.aprx', 
                                    'E:\\gisShare\\projects\\Pipelines\\SE_Pipeline',
                                    'INTERNAL')
ConsolidateProject 示例 2(独立脚本)

以下脚本采用输入目录(其中工程文件 (.aprx) 位于 UNC 共享中)并将工程合并到本地驱动器。 由于使用了 INTERNAL 关键字,该数据现在仍可供本地工程访问。

import os
import arcpy

enterpriseProjectDir = "\\\\centralFileServer\\gisData\\ArcGISProProjects"
localProjectDir = "c:\\GISdata\\localProjects"

walk = arcpy.da.Walk(enterpriseProjectDir, datatype="Project")

for dirpath, dirnames, filenames in walk:
    for fname in filenames:
        project = os.path.join(dirpath, fame)
        outputFolder = os.path.join(localProjectDir, 
                                    os.path.splitext(os.path.basename(project))[0])
        print("Consolidating: {0} to {1}".format(project, outputFolder))
        arcpy.management.ConsolidateProject(project, outputFolder, "INTERNAL")

环境

特殊情况

并行处理因子

如果未指定环境,该工具将使用可用内核的二分之一。

相关主题