提取包 (数据管理)

摘要

将包中的内容提取到指定文件夹。 将使用输入包中所提取的内容更新输出文件夹。

使用情况

  • 受支持的包类型如下:

    • 地理处理包(.gpk.gpkx
    • 图层包(.lpk.lpkx
    • 定位器包 (.gcpk)
    • 地图包(.mpk.mpkx
    • 移动地图包 (.mmpk)
    • 工程包和工程模板(.ppkx.aptx
    • 场景图层包 (.slpk)
    • 切片包(.tpk.tpkx
    • 矢量切片包 (.vtpk)

  • 输出文件夹可以是一个新建文件夹,也可以是一个现有文件夹。 提取到现有文件夹时,包中的内容会被追加到现有文件和文件夹。 如果输出文件夹包含包中提取的内容,则现有内容将被覆盖。

  • 具有附件的包会将其附加文件解包到输出文件夹中的 commondata\userdata\ 子文件夹中。 通常,包中的文件均为支持文件,如 .pdf.docx 或图像。 在 Microsoft File Explorer 中浏览至解压缩的目录以打开这些文件。

  • 在提取矢量切片包 (.vtpk) 时,会将包的内容提取到输出文件夹。 可以使用存储格式类型参数将缓存存储格式从紧凑型(.bundle 文件)转换为松散型(.pbf 文件)。 如有需要,您可在其他客户端应用程序(如 Mapbox)中使用提取出的 .pbf 文件。

    注:

    提取平面缓存可能会很慢,并且会导致提取数十亿个切片,具体取决于数据范围、包的细节层次和硬件配置。

  • 当提取矢量、切片或场景图层包(.vtpk.tpk.tpkx.slpk)时,缓存包参数处于非活动状态。

  • 当提取矢量、切片或者 1.7 及更高版本的场景图层包时,可以将包的内容提取到文件系统中的文件夹或者位于云端的对象存储,例如 Amazon S3Azure Blob 存储或 Alibaba OSS。 此内容已准备好用作切片或场景图层,并且所选位置必须在 ArcGIS Enterprise 中注册为用户管理的数据存储

  • 可以使用创建云存储连接文件工具构建连接文件 (.acs)。

  • 可以使用升级场景图层工具将较低版本的场景图层包升级至最新版本。

  • 注:

    将场景图层包提取到云端中的对象存储 (.i3sREST) 时,场景缓存存储格式将与提取到文件系统 (.eslpk) 中的文件夹时不同,并且两种格式不可互换。

参数

标注说明数据类型
输入包

要执行提取操作的输入包。

File
输出文件夹
(可选)

将包含包内容的输出文件夹。

如果指定的文件夹不存在,将创建一个文件夹。

Folder
缓存包
(可选)

指定是否将包的副本缓存到您的配置文件中。

在提取包时,首先会将输出提取到您的用户配置文件并附加一个唯一 ID,然后再将副本复制到输出文件夹参数中指定的目录。 下载并提取同一包的后续版本将仅更新此位置。 当使用此参数时,您无需在用户配置文件中手动创建包的缓存版本。 如果输入包为矢量切片包 (.vtpk) 或切片包(.tpk.tpkx),则此参数处于非活动状态。

  • 选中 - 将提取包的副本并将其缓存到您的配置文件中。 这是默认设置。
  • 未选中 - 仅将包的副本提取到指定的输出参数;将不会对其进行缓存。
Boolean
存储格式类型
(可选)

指定将用于已提取缓存的存储格式。 仅当输入包为矢量切片包 (.vtpk) 时,此参数才适用。

  • 紧凑型将使用 Compact V2 存储格式将这些切片分组到包文件中。 此格式将在网络共享和云存储目录上提供更好的性能。 这是默认设置。
  • 松散型每个切片都将以单个文件的形式存储。
String
创建即用型缓存数据集
(可选)

指定是否将为 ArcGIS Enterprise 创建即用型格式。 仅当输入包为矢量切片包 (.vtpk) 或切片包 (.tpkx) 时,此参数才会处于活动状态。

  • 选中 - 将创建具有在 ArcGIS Enterprise 中可用于创建切片图层的已提取缓存的文件夹结构。 文件夹的文件扩展名表示其存储的内容:.tiles(缓存数据集)用于切片图层包或 .vtiles(矢量缓存数据集)用于矢量切片包。
  • 未选中 - 将创建具有已提取包内容的文件夹结构。 这是默认设置。
Boolean
目标云连接
(可选)

包内容将提取到的目标 .acs 文件。 仅当输入包为场景图层包 (.slpk)、矢量切片包 (.vtpk) 或切片包 (.tpkx) 时,才会启用此参数。

Folder

arcpy.management.ExtractPackage(in_package, {output_folder}, {cache_package}, {storage_format_type}, {create_ready_to_serve_format}, {target_cloud_connection})
名称说明数据类型
in_package

要执行提取操作的输入包。

File
output_folder
(可选)

将包含包内容的输出文件夹。

如果指定的文件夹不存在,将创建一个文件夹。

Folder
cache_package
(可选)

指定是否将包的副本缓存到您的配置文件中。

在提取包时,首先会将输出提取到您的用户配置文件并附加一个唯一 ID,然后再将副本复制到 output_folder 参数中指定的目录。 下载并提取同一包的后续版本将仅更新此位置。 当使用此参数时,您无需在用户配置文件中手动创建包的缓存版本。 如果输入包为矢量切片包 (.vtpk) 或切片包(.tpk.tpkx),则将禁用此参数。

  • CACHE将提取包的副本并将其缓存到您的配置文件中。 这是默认设置。
  • NO_CACHE仅将包的副本提取到指定的输出参数;将不会对其进行缓存。
Boolean
storage_format_type
(可选)

指定将用于已提取缓存的存储格式。 仅当输入包为矢量切片包 (.vtpk) 时,此参数才适用。

  • COMPACT将使用 Compact V2 存储格式将这些切片分组到包文件中。 此格式将在网络共享和云存储目录上提供更好的性能。 这是默认设置。
  • EXPLODED每个切片都将以单个文件的形式存储。
String
create_ready_to_serve_format
(可选)

指定是否将为 ArcGIS Enterprise 创建即用型格式。 仅当输入包为矢量切片包 (.vtpk) 或切片包 (.tpkx) 时,才会启用此参数。

  • READY_TO_SERVE_CACHE_DATASET将创建具有在 ArcGIS Enterprise 中可用于创建切片图层的已提取缓存的文件夹结构。 文件夹的文件扩展名表示其存储的内容:.tiles(缓存数据集)用于切片图层包或 .vtiles(矢量缓存数据集)用于矢量切片包。
  • EXTRACTED_PACKAGE将创建具有已提取包内容的文件夹结构。 这是默认设置。
Boolean
target_cloud_connection
(可选)

包内容将提取到的目标 .acs 文件。 仅当输入包为场景图层包 (.slpk)、矢量切片包 (.vtpk) 或切片包 (.tpkx) 时,才会启用此参数。

Folder

代码示例

ExtractPackage 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何使用 ExtractPackage 函数生成可用于 ArcGIS Enterprise 发布工作流的即用型缓存数据集。

import arcpy
arcpy.management.ExtractPackage(r"C:\Data\packages\MyVectorPackage.vtpk", 
                                r"C:\Data\packages\Extracted", "CACHE", 
                                "COMPACT", "READY_TO_SERVE_CACHE_DATASET")
ExtractPackage 示例 2(Python 窗口)

以下 Python 窗口脚本演示了如何使用 ExtractPackage 函数将场景图层包提取到可用于 ArcGIS Enterprise 发布工作流的对象存储中。

import arcpy
arcpy.management.ExtractPackage(r"C:\Data\packages\ChicagoBuildings.slpk", 
                                None, "CACHE", 
                                "COMPACT", "EXTRACTED_PACKAGE", 
                                r"C:\CloudConnections\AWS.acs")
ExtractPackage 示例 3(Python 窗口)

以下 Python 窗口脚本演示了如何使用 ExtractPackage 函数将矢量切片图层包提取到可用于 ArcGIS Enterprise 发布工作流的对象存储中。

import arcpy
arcpy.management.ExtractPackage(r"C:\Data\packages\London.vtpk", 
                                None, "CACHE", 
                                "COMPACT", "EXTRACTED_PACKAGE", 
                                r"C:\CloudConnections\AWS.acs")
ExtractPackage 示例 4(独立脚本)

查找指定文件夹中的所有地理处理包,并使用 ExtractPackage 函数将内容提取到指定文件夹中。

# Name: ExtractPackage.py
# Description: Find geoprocessing packages in a specified folder and extract 
#              contents.

import arcpy
import os

arcpy.env.overwriteOutput = True

# set folder that contains packages to extract
arcpy.env.workspace = "C:/geoprocessing/gpks" 
wrksp = arcpy.env.workspace

for gpk in arcpy.ListFiles("*.gpk"):
    print("Extracting... " + gpk)
    arcpy.management.ExtractPackage(gpk, os.path.splitext(gpk)[0])

print("done")