Экспортировать кэш картографического сервиса (Сервер)

Уровень лицензии:BasicStandardAdvanced

Краткая информация

Экспортирует листы из кэша картографического сервиса или сервиса изображений в качестве набора данных кэша или в виде пакета листов в папку на диске. Листы либо могут быть импортированы в другие кэши, либо могут быть доступны в ArcGIS for Desktop или с мобильных устройств как набор растровых данных, независимо от родительского сервиса.

Использование

Синтаксис

ExportMapServerCache_server (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, выберите свой сервис в дереве каталога и обратите внимание на текст на панели инструментов Местоположение (Location). Затем поменяйте обратные косые черты на прямые, например GIS Servers/arcgis on MYSERVER (admin)/USA.MapServer.

String
target_cache_path

Папка, в которую будет экспортирован кэш. Эта папка не должна быть зарегистрированной директорией кэша сервера. Учетная запись ArcGIS for Server должна иметь право на запись в целевую папку кэша. Если учетной записи сервера не может быть предоставлен доступ на запись в папку назначения, но у клиента ArcGIS for Desktop такой доступ есть, то выберите параметр Копировать данные с сервера (Copy data from server).

Folder
export_cache_type

Выберите экспорт кэша в виде набора данных кэша или пакета листов. Пакеты листов предназначены для распространения ArcGIS Runtime и ArcGIS for Windows Mobile.

  • CACHE_DATASETКэш картографического сервиса или сервиса изображений, созданный с применением ArcGIS for Server. Доступен в ArcMap и используется картографическими сервисами и сервисами изображений ArcGIS for Server. Это значение используется по умолчанию.
  • TILE_PACKAGEОдин сжатый файл, где набор данных кэша добавляется как слой и объединяется, так что его можно легко сделать доступным для совместного использования. Используется в ArcGIS for Desktop, а также в ArcGIS Runtime и в мобильных приложениях.
String
copy_data_from_server

Установите эту опцию на COPY_DATA, только если учетной записи ArcGIS for Server не может быть предоставлен доступ на запись в целевую папку, а у клиента ArcGIS for Desktop такой доступ уже есть. Программное обеспечение экспортирует листы в выходную директорию сервера, прежде чем переместить их в целевую папку.

  • COPY_DATAЛисты помещаются в выходную директорию сервера, а затем перемещаются в целевую папку. Клиент ArcGIS for Desktop должен иметь право на запись в целевую папку.
  • DO_NOT_COPYЛисты экспортируются непосредственно в целевую папку. Учетная запись ArcGIS for Server должна иметь право на запись в целевую папку. Это значение используется по умолчанию.
Boolean
storage_format_type

Формат хранения экспортированного кэша.

  • COMPACTЛисты группируются в пакетные файлы для экономии места на диске и ускорения копирования кэша. Это значение по умолчанию, если Типом экспорта кэша (Export cache type) (export_cache_type в Python) является пакет листов.
  • EXPLODEDКаждый лист хранится в виде отдельного файла (способ, которым кэши хранились всегда до ArcGIS for Server версии 10).
String
scales
[scales,...]

Список уровней масштаба, на которых будут экспортированы листы.

Double
num_of_caching_service_instances
(дополнительно)

Общее количество экземпляров сервиса System/CachingTools, которые вы хотите выделить для работы этого инструмента. Вы можете увеличить Максимальное число экземпляров на компьютер (maximum number of instances per machine) сервиса System/CachingTools с помощью окна Редактор сервисов (Service Editor), доступного через административное подключение к ArcGIS for Server. Убедитесь, что ваши серверы смогут поддерживать выбранное количество экземпляров.

Long
area_of_interest
(дополнительно)

Полигон области интереса, ограничивающий в пространстве область, где листы экспортируются из кэша. Это может быть класс объектов или функция, интерактивно определенная в ArcMap. Этот параметр полезен, если вы хотите экспортировать области неправильной формы, т. к. инструмент обрезает набор данных кэша на пиксельном разрешении.

Если область интереса не указана, экспортируется полный экстент карты.

Feature Set
export_extent
(дополнительно)

Прямоугольный экстент определяет листы, которые должны быть экспортированы. По умолчанию экстент соответствует полному экстенту картографического сервиса, в который вы производите импорт. Обратите внимание на необязательный параметр этого инструмента Область интереса (Area Of Interest), позволяющий импортировать альтернативно с помощью полигона. Рекомендуется не указывать значения обоих параметров для задания. Если значения приведены для обоих параметров, Область интереса (Area of Interest) имеет приоритет над Экстентом импорта (Import Extent)

Extent
overwrite
(дополнительно)
  • OVERWRITEПри экспорте все пикселы области интереса замещаются, что позволяет перезаписать кэш назначения листами из исходного кэша.
  • MERGEПри импорте листов прозрачные пикселы исходного кэша по умолчанию игнорируются. Это позволяет получить объединенное или смешанное изображение в кэше назначения. Это поведение по умолчанию.
Boolean

Пример кода

Пример 1 ExportMapServerCache

Экспорт листов кэша для класса объектов при изменении формата хранения с 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()

Пример 2 ExportMapServerCache

Экспорт кэша в качестве TILE_PACKAGE, когда папка назначения недоступна для экземпляров ArcGIS for Server.

# 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()

Параметры среды

Этот инструмент не использует параметры среды геообработки

Связанные темы

Информация о лицензировании

ArcGIS for Desktop Basic: Да
ArcGIS for Desktop Standard: Да
ArcGIS for Desktop Advanced: Да
5/25/2014