摘要
将一个或多个地理处理结果(包括所有工具以及输入和输出数据集)打包为单个压缩文件 (.gpk)。
用法
执行工具时,执行过程的相关信息会作为结果写入 结果窗口。使用拖放功能,可直接通过结果窗口将结果作为输入项添加,或者也可将已保存为结果文件 (.rlt) 的结果作为输入项添加。
如果选中支持 ArcGIS Runtime(Python 中的 arcgisruntime="RUNTIME"),则可在 ArcGIS Runtime SDK 环境中使用创建的地理处理包。要支持运行时环境
- 所有非地理数据库数据源都将转换为文件地理数据库。
- 在针对发布而配置的新工具箱中创建将打包的工具副本。
- 可能创建地图服务定义文件 (.msd),并将其添加到包。显示初始工具输出时,将添加 .msd 文件,执行时地图以及这些输出图层将被添加到 ArcMap 内容列表。
选中将数据转换为文件地理数据库时(Python 中的 convert_data='CONVERT'),将出现以下情况:
- 对于每个唯一数据源,都会在合并文件夹或包中创建一个文件地理数据库。
- 压缩栅格和矢量格式会转换为一个文件地理数据库,并且原来的数据压缩将会丢失。
- 不会合并企业级地理数据库数据。要将企业级地理数据库数据转换为文件地理数据库,请选中包括企业级地理数据库数据,而不是仅引用该数据。
取消选中将数据转换为文件地理数据库时(Python 中的 convert_data='PRESERVE'),将出现以下情况:
- 将保留输入图层的数据源格式。例外格式包括诸如个人地理数据库数据 (.mdb)、VPF 数据和基于 Excel 电子表格或 OLEDB 连接的表等格式。64x 环境下不支持这些格式,因此始终会将其转换为文件地理数据库。
- ADRG、CADRG/ECRG、CIB 和 RPF 栅格格式将始终转换为文件地理数据库栅格。ArcGIS 本身不能写出这些格式。出于效率方面的考虑,这些格式将始终转换为文件地理数据库栅格。
- 在输出文件夹结构中,文件地理数据库将合并到一个特定于版本的文件夹中,并且所有其他格式都将合并到 commonData 文件夹中。
- 即使在范围参数中指定了范围,也不会裁剪压缩栅格和矢量格式。
对于包含连接或参与关系类的图层,所有连接或相关的数据源都将合并到输出文件夹。
对于要素图层,范围参数用来选择将要合并的要素。对于栅格图层,范围参数用来裁剪栅格数据集。
有些数据集引用其他数据集。例如,您可能有一个引用四个要素类的拓扑数据集。引用其他数据集的数据集示例还包括“几何网络”、“网络”和“定位器”。基于这些数据集类型合并或打包图层时,参与数据集也将被合并或打包。
如果选中仅方案参数,则将仅合并或打包输入和输出数据源的方案。方案是由字段和表定义、坐标系属性、符号系统、定义查询等组成的要素类或表的结构或设计。不会合并或打包数据或记录。
不支持仅方案的数据源不能进行合并和打包。如果选中仅方案参数,并且此工具遇到“仅方案”不支持的图层,则会显示一条警告消息,并会跳过该图层。如果仅方案不支持指定的唯一图层,则该工具将失败。
不能通过失败的结果创建包。但是,可以使用合并结果工具创建一个文件夹,其中包含失败的结果所使用的所有数据和工具。
要对地理处理包进行解包,可将 .gpk 文件拖动到 ArcMap 中,或者右键单击 .gpk 文件,然后单击解包。或者可使用提取包工具并指定一个输出文件夹。
默认情况下,会将包提取到您的用户配置文件中。
要更改解包所使用的默认位置,请从自定义菜单中打开 ArcMap 选项。在共享选项卡中找到打包部分,选中使用用户指定的位置,然后浏览到一个新的文件夹位置。
语法
PackageResult_management (in_result, output_file, {convert_data}, {convert_arcsde_data}, {extent}, {apply_extent_to_arcsde}, {schema_only}, {arcgisruntime}, {additional_files}, {summary}, {tags}, {version})
参数 | 说明 | 数据类型 |
in_result [in_result,...] | 要打包的结果。 输入可以是通过直接从结果窗口中拖放进行添加的结果,也可以是通过浏览到结果文件 (.rlt) 进行添加的结果。 | File; String |
output_file | 输出包文件 (.gpk) 的名称和位置。 | File |
convert_data (可选) | 指定是将输入图层转换为文件地理数据库,还是保留其原始格式。
| Boolean |
convert_arcsde_data (可选) | 指定是将输入企业级地理数据库图层转换为文件地理数据库,还是保留其原始格式。
| Boolean |
extent (可选) | 使用格式 X-Min Y-Min X-Max Y-Max 在范围参数中手动输入坐标指定范围。要使用特定图层的范围,请指定图层名称。
| Extent |
apply_extent_to_arcsde (可选) | 确定指定范围是应用到所有图层,还是仅应用到企业级地理数据库图层。
| Boolean |
schema_only (可选) | 指定是否仅合并或打包输入和输出数据集的方案。
| Boolean |
arcgisruntime (可选) | 指定包是否支持 ArcGIS Runtime。要支持 ArcGIS Runtime,所有数据源都将转换为文件地理数据库。
| Boolean |
additional_files [additional_files,...] (可选) | 将附加文件添加到包中。诸如 .doc、.txt、.pdf 等附加文件可用于提供有关打包内容和目的的详细信息。 | File |
summary (可选) | 将摘要信息添加到包的属性中。 | String |
tags (可选) | 将标签信息添加到包的属性中。可以添加多个标签,标签之间用逗号或分号进行分隔。 | String |
version [version,...] (可选) | 指定将在生成的包中创建的地理数据库版本。指定版本可实现与之前版本的 ArcGIS 共享包,并可支持向后兼容。
| String |
代码示例
PackageResult 示例 1(Python 窗口)
以下 Python 脚本演示了如何在 Python 窗口中使用 PackageResult 工具。
import arcpy
arcpy.env.workspace = "C:/ResultFiles"
arcpy.PackageResult_management('Parcel.rlt', 'Parcel.gpk', "PRESERVE",
"CONVERT_ARCSDE", "#", "ALL", "ALL",
"DESKTOP", r"C:\docs\readme.txt",
"Summary text", "Tag1; tag2; tag3")
PackageResult 示例 2(独立 Python 脚本)
以下 Python 脚本演示了如何通过 Python 窗口或具有自定义工具 Result 对象的脚本使用 PackageResult 工具。
import arcpy
# Import toolbox with custom model inside
arcpy.ImportToolbox("c:/gisworkflows/ParcelTools.tbx")
# Run the tool and assign to a result variable
parcelUpdate = arcpy.ParcelUpdater_ParcelTools("c:/data/parcels.gdb/ward3", "UPDATE")
arcpy.PackageResult_management(parcelUpdate, "c:/gpks/parcelgpk.gpkx",
"PRESERVE", "CONVERT_ARCSDE", "#", "ALL",
"ALL", "DESKTOP", "#", "Summary text", "Tag1")
PackageResult 示例 3(独立脚本)
查找位于指定文件夹中的所有结果文件,然后分别为这些结果文件创建独立的地理处理包。
# Name: PackageResultEx1.py
# Description: Find all the result files that reside in a specified
# folder and create a geoprocessing package for each
# result file.
# import system modules
import os
import arcpy
# Set environment settings
arcpy.env.overwriteOutput = True
arcpy.env.workspace = "C:/ResultFiles"
# Loop through the workspace, find all the result files (.rlt) and
# create a geoprocessing package using the same name as the original
# result file.
for rlt in arcpy.ListFiles("*.rlt"):
print("Packaging " + rlt)
arcpy.PackageResult_management(rlt, os.path.splitext(lyr)[0] + '.gpk',
"PRESERVE", "CONVERT_ARCSDE", "#", "ALL",
"ALL", "DESKTOP", r"C:\docs\readme.txt",
"Summary text", "Tag1; tag2; tag3")
PackageResult 示例 4(独立脚本)
查找位于指定文件夹中的所有结果文件,然后分别为这些结果文件创建一个地理处理包。
# Name: PackageResultEx2.py
# Description: Find all the result files that reside in a specified
# folder and create a single geoprocessing package.
# import system modules
import arcpy
# Set environment settings
arcpy.env.overwriteOutput = True
arcpy.env.workspace = "C:/ResultFiles"
# Find all the result files (.rlt) in a workspace and create a single
# geoprocessing package.
rlts = arcpy.ListFiles("*.rlt")
arcpy.PackageResult_management(rlts, "all_layers.gpk", "PRESERVE",
"CONVERT_ARCSDE", "#", "ALL", "ALL", "DESKTOP",
r"C:\docs\readme.txt", "Summary text",
"Tag1; tag2; tag3")
环境
此工具不使用任何地理处理环境。
许可信息
- ArcGIS Desktop Basic: 是
- ArcGIS Desktop Standard: 是
- ArcGIS Desktop Advanced: 是