打包图层 (数据管理)
摘要
对一个或多个图层以及所有引用的数据源进行打包可创建经过压缩的单个 .lpk 文件。
插图
用法
当使用此工具遇到不支持的图层类型(逻辑示意图或工具图层)时将会发出警告。不支持的图层将不会被写入到输出。
输入图层必须具有相应描述此工具才能执行。要添加描述,请右键单击该图层并单击属性,然后输入描述。
合并图层或打包图层时,将使用命名约定整数 + 图层名称来重命名结果图层(例如 0001fGDB_Polylayer.lyr)。将添加数字序号以保持这些图层在内容列表中显示的顺序。解包时,数字序号越小的图层在内容列表中位于越靠前的位置。
图层包向后与 ArcGIS 9.3.1 兼容。要创建与 9.3.1 版兼容的图层包,请在可选版本参数中选中 9.3.1 选项。需要特别注意的是,由于某些地理数据库元素进行了更新并且其功能也得到了增强,因此并不是所有图层包都可以向后与 9.3.1 版本兼容。
选中将数据转换为文件地理数据库时
- 每个数据源都将在合并文件夹中创建唯一的文件地理数据库。
- 压缩栅格和矢量格式将被转换为文件地理数据库,并且原来的数据压缩将会丢失。
取消选中将数据转换为文件地理数据库时
- 将保留输入图层的格式,但有一个例外:在个人地理数据库中引用数据的图层将始终转换为文件地理数据库。
- 每个数据源都将保留其原始格式。文件地理数据库将被合并到版本特定的文件夹中,所有其他格式将被合并到 commonData 文件夹中。
- 指向 ArcSDE 数据源的图层将保留其连接信息并保持指向合并的文件夹或数据包中的 ArcSDE 数据源。
- ADRG、CADRG/ECRG、CIB 和 RPF 栅格格式将始终转换为文件地理数据库栅格。ArcGIS 无法直接写出这些格式。为了提高效率,它们将始终被转换为文件地理数据库栅格。
- 即使在范围参数中指定了范围,也不会裁剪压缩栅格和矢量格式。
-
对于包含连接的图层或加入到关系类中的图层,所有连接的或相关的数据源将被合并到输出文件夹中。
-
对于要素图层,范围参数用于选择将被合并的要素。对于栅格图层,范围参数用于裁剪栅格数据集。
-
某些数据集会引用其他数据集。例如,您可能有一个引用了四个要素类的拓扑数据集。引用了其他数据集的其他数据集示例包括几何网络、网络和定位器。基于这些类型的数据集合并或打包图层时,也将合并或打包这些参与的数据集。
如果选中仅方案参数,将仅合并该输入数据源的方案。方案是某个要素类或表的结构或设计,此表由字段和表定义、坐标系属性、符号系统、定义查询等组成。数据或记录不会被合并。
不会合并或打包不支持“仅方案”的数据源。如果选中了仅方案参数且工具遇到了不支持“仅方案”的图层,将显示警告信息并跳过此图层。如果指定的唯一图层不支持“仅方案”,则该工具将失败。
合并或打包 Coverage 或 VPF 图层会将整个 Coverage 或 VPF 数据集复制到合并的文件夹或数据包中。
-
要对某个图层包进行解包,可将 .lpk 文件拖到 ArcMap 中或者右键单击 .lpk 文件然后选择解包。或者可使用“提取包”工具并指定一个输出文件夹。
解包将始终按照以下路径将图层包提取到用户配置文件中:
- XP - C:\Documents and Settings\用户名\My Documents\ArcGIS\Packages
- Vista 和 Windows 7 - C:\Users\用户名\Documents\ArcGIS\Packages
语法
参数 | 说明 | 数据类型 |
in_layer [in_layer,...] |
要打包的图层。 | Layer |
output_file |
要创建的输出包文件 (.lpk) 的位置和名称。 | File |
convert_data (可选) |
指定输入图层是转换为文件地理数据库还是保留原始格式。
| Boolean |
convert_arcsde_data (可选) |
指定输入图层是转换为文件地理数据库还是保留原始格式。
| Boolean |
extent (可选) |
通过使用格式 X-Min Y-Min X-Max Y-Max 在范围参数中手动输入坐标的方式来指定范围。此外,如果要使用特定图层的范围,只需将该图层名称添加到范围参数中即可。
| Extent |
apply_extent_to_arcsde (可选) |
指定将用于选择 ArcSDE 数据源的范围。
| Boolean |
schema_only (可选) |
指定是合并还是打包输入图层的方案。
| Boolean |
version [version,...] (可选) |
指定输入图层是转换为文件地理数据库还是保留原始格式。如果存在多种版本,请使用分号来分隔各个参数。例如:"CURRENT;9.3.1"
| String |
代码示例
以下 Python 脚本演示了如何在 Python 窗口中使用 PackageLayer 工具。
import arcpy arcpy.env.workspace = "C:/arcgis/ArcTutor/BuildingaGeodatabase/Layers" arcpy.PackageLayer_management('Parcel.lyr', 'Parcel.lpk', "PRESERVE", "CONVERT_ARCSDE", "#", "ALL", "AlL", "CURRENT")
查找位于指定文件夹中的所有图层文件,然后分别为这些文件创建独立的图层包。
# Name: PackageLayerEx1.py # Description: Find all the layer files that reside in a specified folder and create a layer package for each layer file. # Author: ESRI # import system modules import os import arcpy from arcpy import env # Set environment settings env.overwriteOutput = True env.workspace = "C:/arcgis/ArcTutor/BuildingaGeodatabase/Layers" # Loop through the workspace, find all the layer files (.lyr) and create a layer package using the same name as the original layer file. for lyr in arcpy.ListFiles("*.lyr"): print "Packaging " + lyr arcpy.PackageLayer_management(lyr, os.path.splitext(lyr)[0] + '.lpk', "PRESERVE", "CONVERT_ARCSDE", "#", "ALL", "ALL", "CURRENT")
查找位于指定文件夹中的所有图层文件,然后分别为这些文件创建独立的图层包。
# Name: PackageLayerEx2.py # Description: Find all the layer files that reside in a specified folder and create a single layer package that will contain all layers found. # Author: ESRI # import system modules import os import arcpy from arcpy import env # Set environment settings env.overwriteOutput = True env.workspace = "C:/arcgis/ArcTutor/BuildingaGeodatabase/Layers" # Find all the layer files (.lyr) in a workspace and create a single layer package. lyrs = arcpy.ListFiles("*.lyr") arcpy.PackageLayer_management(lyrs, 'all_layers.lpk', "PRESERVE", "CONVERT_ARCSDE", "#", "ALL", "ALL", "CURRENT")