ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

ArcMap

  • 主页
  • 入门
  • 地图
  • 分析
  • 管理数据
  • 工具
  • 扩展模块

导出地图服务器缓存

  • 描述
  • 使用方法
  • 语法
  • 代码示例
  • 环境
  • 许可信息

描述

用于将地图或影像服务缓存的切片作为缓存数据集或切片包导出至磁盘上的文件夹中。切片可导入至其他缓存中,也可以以独立于其父服务的方式,作为一个栅格数据集从 ArcGIS Desktop 或移动设备中进行访问。

使用方法

    旧版本:

    在 10.1 版本中,此工具的各个参数均发生了变化。在 10.1 版本之前使用该工具编写的模型或脚本均需要经过修改才能在 10.1 版本中使用。

    在迁移至 10.1 Service Pack 1 时,必须打开并验证使用该工具的模型,因为该工具具有新参数。此过程将在使用地理处理工具自动执行缓存创建和更新中进行说明。

  • 运行此工具前,请在磁盘上创建文件夹,以保存导出的切片。

  • 在 10.1 Service Pack 1 中,向该工具中添加了覆盖切片参数,此参数允许导出的切片完全覆盖目标缓存中的切片,而不是混合图像。仍可将导出的切片限制在感兴趣区域。

语法

arcpy.server.ExportMapServerCache(input_service, target_cache_path, export_cache_type, copy_data_from_server, storage_format_type, scales, {num_of_caching_service_instances}, {area_of_interest}, {export_extent}, {overwrite})
参数说明数据类型
input_service

带有要导出的缓存切片的地图或影像服务。

这是一个包含服务器和服务器信息的字符串。 要查看构建此字符串的方法,请打开 ArcCatalog,选择目录树中的服务,并注意位置工具栏中的文本。 将反斜线改为正斜线,例如 GIS Servers/arcgis on MYSERVER (admin)/USA.MapServer。

Image Service; MapServer
target_cache_path

缓存将被导出到的目标文件夹。此文件夹不必是一个已注册的服务器缓存目录。ArcGIS Server 帐户必须拥有对目标缓存文件夹的写入权限。如果无法对服务器帐户授予目标文件夹的写入权限,但 ArcGIS Desktop 或 ArcGIS Pro 客户端拥有目标文件夹的写入权限,请选择从服务器复制数据参数。

Folder
export_cache_type

将缓存作为缓存数据集或切片包导出。切片包适用于 ArcGIS Runtime 和 ArcGIS Mobile 部署。

  • CACHE_DATASET —使用 ArcGIS Server 生成的地图或影像服务缓存。其可用于 ArcGIS Desktop 并通过 ArcGIS Server 地图或影像服务对其进行使用。这是默认设置。
  • TILE_PACKAGE —将缓存数据集作为图层添加并合并以便实现共享的单个压缩文件。其可用于 ArcGIS Desktop、ArcGIS Runtime 和移动应用程序。
String
copy_data_from_server

在以下情况,请将此参数设置为 COPY_DATA:无法向 ArcGIS Server 帐户授予目标文件夹的写入权限,但 ArcGIS Desktop 或 ArcGIS Pro 客户端拥有目标文件夹的写入权限。软件会在将服务器输出目录中的切片移至目标文件夹前将其导出。

  • COPY_DATA —将切片放到服务器输出目录中,随后将其移至目标文件夹。ArcGIS Desktop 或 ArcGIS Pro 客户端必须具有对目标文件夹的写入权限。
  • DO_NOT_COPY —将切片直接导出到目标文件夹。ArcGIS Server 帐户必须具有对目标文件夹的写入权限。这是默认设置。
Boolean
storage_format_type

导出的缓存的存储格式。

  • COMPACT — 切片被组织到包和 bundlex 文件中以节省磁盘空间并允许以较快的速度复制缓存。若将 export_cache_type 参数设置为 Tile package,则此为默认设置。
  • COMPACT_V2 — 仅能将切片组织到包文件中。这种格式使得网络共享和云存储目录拥有了更好的性能。如果将 export_cache_type 参数设置为 Tile package,则切片包的扩展名为较新版本的 ArcGIS 平台,如 ArcGIS Online、ArcGIS Enterprise 10.9.1 和 ArcGIS Runtime 100.5 均支持的 (.tpkx)。
  • EXPLODED —每个文件都将作为单个文件进行存储(在 ArcGIS Server 之前的版本中,均以这种方式存储缓存)。
String
scales
[scales,...]

导出切片时使用的比例级别列表。

默认情况下,工具对话框中所列出的比例介于该服务的最小和最大缓存比例之间。要更新比例范围,请转至服务编辑器 > 缓存选项卡,然后使用滑块更新最小和最大缓存比例。

Double
num_of_caching_service_instances
(可选)

专用于运行该工具的 System/CachingTools 服务实例的总数。 您可以通过 ArcGIS Server 的管理连接,使用服务编辑器窗口,增加 System/CachingTools 服务的每台计算机的最大实例数设置。 确保您的服务器计算机可以支持所选数量的实例。

Long
area_of_interest
(可选)

对从缓存中导出切片的位置进行空间约束的感兴趣区。由于该工具在像素级别上裁剪缓存数据集,所以此参数在您想要导出形状不规则的区域时非常有用。

若未指定感兴趣区,则会导出地图的全图范围。

Feature Set
export_extent
(可选)

定义要导出的切片的矩形范围。默认情况下,此范围将设置为要导入切片所属的地图服务的全图范围。请注意此感兴趣区工具中的可选参数,它允许您使用面要素进行导入操作。建议不要为一个作业的两个参数都提供值。如果为两个参数都提供了值,则感兴趣区参数的优先级高于导入范围。

Extent
overwrite
(可选)

指定接收缓存中的图像是与原始缓存中的切片合并,还是被其覆盖。

  • OVERWRITE —导出过程会替换感兴趣区域的所有像素,并用原始缓存中的切片有效覆盖目标缓存中的切片。
  • MERGE —导入切片后,默认情况下将忽略原始缓存中的透明像素。将导致目标缓存中的图像合并或混合。这是默认设置。
Boolean

派生输出

名称说明数据类型
output_cache_path

缓存已被导出到的目标文件夹。

字符串

代码示例

ExportMapServerCache 示例 1(独立脚本)

将存储格式从 EXPLODED 更改为 COMPACT 时导出某一要素类的缓存切片。

# Name: ExportMapServerCache.py for ArcGIS Server 
# Description: The following stand-alone script demonstrates how to export 
# cache as CACHE_DATASET in COMPACT storage format and MERGE tiles using
# an AREA_OF_INTEREST to TARGET_CACHE_PATH which is accessible to server
# instances 

# Requirements: os, sys, time and traceback modules
# Any line that begins with a pound sign is a comment and will not be executed
# Empty quotes take the default value.
# To accept arguments from the command line replace values of variables to
# "sys.argv[]"

# Import system modules
import arcpy
from arcpy import env
import os, sys, time, datetime, traceback, string

# Set environment settings
env.workspace = "C:/data"

# List of input variables for map service properties
connectionFile = r"C:\Users\<username>\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog"
server 			= "arcgis on MyServer_6080 (publisher)"
serviceName 		= "Rainfall.MapServer"
inputService 		= connectionFile + "\\" + server + "\\" + serviceName
targetCachePath 	= "C:/data/temp"
exportCacheType 	= "CACHE_DATASET"
copyDataFromServer 	= "DO_NOT_COPY"
storageFormat 		= "COMPACT"
scales 			= [500000,250000,125000,64000]
numOfCachingServiceInstances = "2"
areaOfInterest 		= "C:/data/101/Portland/Metro.shp"
exportExtents 		= ""
overwriteTiles 		= "MERGE"

currentTime = datetime.datetime.now()
arg1 	= currentTime.strftime("%H-%M")
arg2 	= currentTime.strftime("%Y-%m-%d %H:%M")
file 	= "C:/data/report_%s.txt" % arg1

# print results of the script to a report
report = open(file,'w')

# use "scaleValues[0]","scaleValues[-1]","scaleValues[0:3]"

# Enter rectangular custom extent values for the "exportExtents" variable to
# constrain the exporting cache along the rectangular extents

try:
    starttime = time.clock()
    result = arcpy.ExportMapServerCache_server(inputService, targetCachePath,
                                               exportCacheType,
                                               copyDataFromServer,
                                               storageFormat, scales, 
                                               numOfCachingServiceInstances, 
                                               areaOfInterest, exportExtents, 
					       overwriteTiles)
    finishtime = time.clock()
    elapsedtime = finishtime - starttime

    #print messages to a file
    while result.status < 4:
        time.sleep(0.2)
    resultValue = result.getMessages()
    report.write ("completed " + str(resultValue))

    print "Exported cache successfully for mapservice " + serviceName +\
    " to " + targetCachePath + "\n using " + areaOfInterest + "\n in " +\
    str(elapsedtime) + " sec \n on " + arg2
    
except Exception, e:
    # If an error occurred, print line number and error message
    tb = sys.exc_info()[2]
    report.write("Failed at \n" "Line %i" % tb.tb_lineno)
    report.write(e.message)

print "Exported Map server Cache  using area of Interest"

report.close()
ExportMapServerCache 示例 2(独立脚本)

ArcGIS Server 实例无法访问目标文件夹时将缓存导出为 TILE_PACKAGE。

# Name: ExportMapServerCache.py
# Description: The following stand-alone script demonstrates how to export cache
# as TILE_PACKAGE for default number of scales of a service, to a 
# TARGET_CACHE_PATH which is inaccessible to server instances using
# COPY_DATA_FROM_SERVER

# Requirements: os, sys, time and traceback modules

# Any line that begins with a pound sign is a comment and will not be executed
# Empty quotes take the default value.
# To accept arguments from the command line replace values of variables to
# "sys.argv[]"

# Import system modules
import arcpy
from arcpy import env
import os, sys, time, datetime, traceback, string

# Set environment settings
env.workspace = "C:/data"

# List of input variables for map service properties
connectionFile = r"C:\Users\<username>\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog"
server = "arcgis on MyServer_6080 (publisher)"
serviceName = "Rainfall.MapServer"
inputService = connectionFile + "\\" + server + "\\" + serviceName
targetCachePath = "C:/temp/usa"
exportCacheType = "TILE_PACKAGE"
copyDataFromServer = "COPY_DATA"
storageFormat = "COMPACT"
scaleValues = [500000,250000,125000,64000]
numOfCachingServiceInstances = "2"
exportExtents = ""
areaOfInterest = ""
overwriteTiles = "MERGE"

currentTime = datetime.datetime.now()
arg1 = currentTime.strftime("%H-%M")
arg2 = currentTime.strftime("%Y-%m-%d %H:%M")
file = "C:/data/report_%s.txt" % arg1

# print results of the script to a report
report = open(file,'w')

# use "scaleValues[0]","scaleValues[-1]","scaleValues[0:3]"

try:
    starttime = time.clock()
    result = arcpy.ExportMapServerCache_server(inputService, targetCachePath,
                                               exportCacheType,
                                               copyDataFromServer,
                                               storageFormat, scales,
                                               numOfCachingServiceInstances,
                                               areaOfInterest,
                                               exportExtents, overwriteTiles)
    finishtime = time.clock()
    elapsedtime = finishtime - starttime

    #print messages to a file
    while result.status < 4:
        time.sleep(0.2)
    resultValue = result.getMessages()
    report.write ("completed " + str(resultValue))

    print "Exported cache successfully for mapservice " + serviceName +\
    + " to " + targetCachePath + " in " + str(elapsedtime) + " sec \n on" +\
    + arg2

except Exception, e:
    # If an error occurred, print line number and error message
    tb = sys.exc_info()[2]
    report.write("Failed at step 1 \n" "Line %i" % tb.tb_lineno)
    report.write(e.message)
    
print "Exported Map server Cache "

report.close()

环境

此工具不使用任何地理处理环境。

许可信息

  • Basic: 是
  • Standard: 是
  • Advanced: 是

相关主题

  • 缓存工具集概述

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • Esri 博客
  • 用户大会
  • 开发者峰会
Esri
分享您的想法。
Copyright © 2021 Esri. | 隐私政策 | 法律声明