arcpy.server.ImportMapServerCache(input_service, source_cache_type, {source_cache_dataset}, {source_tile_package}, {upload_data_to_server}, {scales}, {num_of_caching_service_instances}, {area_of_interest}, {import_extent}, {overwrite})
|
Имя
|
Объяснение
|
Тип данных
|
|
input_service
|
Слой изображения карты с полистным кэшем для импорта.
|
Image Service; Map Server
|
|
source_cache_type
|
Указывает тип кэша, который будет импортирован в кэшированный картографический сервис или сервис изображений, работающий на сервере.
CACHE_DATASET–Будет импортирован кэш картографического сервиса или сервиса изображений, созданный с применением ArcGIS Server. Он используется в ArcGIS Desktop и картографическими сервисами и сервисами изображений ArcGIS Server.
TILE_PACKAGE–Будет импортирован один сжатый файл, в котором набор данных кэша добавлен в виде слоя и объединен для совместного использования. Он может использоваться в ArcGIS Pro и ArcGIS Maps SDKs for Native Apps.
|
String
|
|
source_cache_dataset
(Дополнительный)
|
Путь к папке кэша, соответствующий имени фрейма данных. Вам не нужно задавать зарегистрированную директорию кэша сервера, обычно вы будете указывать местоположение на диске, куда ранее были экспортированы листы. Это местоположение должно быть доступно для учетной записи ArcGIS Server. Если учетной записи ArcGIS Server не может быть предоставлен доступ к этому месту, присвойте параметру upload_data_to_server значение UPLOAD_DATA.
|
Raster Dataset
|
|
source_tile_package
(Дополнительный)
|
Путь к пакету листов (.tpk или .tpkx), который будет импортирован. Это местоположение должно быть доступно для учетной записи ArcGIS Server. При импорте файла пакета листов в картографический сервис или сервис изображений, параметр upload_data_to_server игнорируется, т.к. ему будет автоматически присвоено значение UPLOAD_DATA.
|
File
|
|
upload_data_to_server
(Дополнительный)
|
Указывает, как листы будут перемещены в директорию кэша сервера.
Установите для этого параметра значение UPLOAD_DATA, если учетная запись ArcGIS Server не имеет разрешения на чтение исходного кэша. Инструмент загрузит исходный кэш в директорию загрузок ArcGIS Server перед его перемещением в директорию кэша ArcGIS Server.
UPLOAD_DATA–Листы помещаются в директорию загрузок сервера, а затем перемещаются в директорию кэша сервера. Эта опция включена по умолчанию, когда source_cache_type имеет значение TILE_PACKAGE.
DO_NOT_UPLOAD–Листы импортируются непосредственно в директорию кэша сервера. У учетной записи ArcGIS Server должны быть права на чтение исходного кэша.
|
Boolean
|
|
scales
[scales,...]
(Дополнительный)
|
Список уровней масштаба, на которых будут импортированы листы.
|
Double
|
|
num_of_caching_service_instances
(Дополнительный)
|
Число экземпляров, использующихся для обновления или создания листов. Значение этого параметра установлено как – без ограничений (-1) и не может быть изменено.
|
Long
|
|
area_of_interest
(Дополнительный)
|
Полигон области интереса, ограничивающий в пространстве область, где листы импортируются в кэш. Этот параметр полезен при импорте листов для областей неправильной формы, т.к. инструмент обрезает набор данных кэша, который пересекает полигон на пиксельном разрешении и импортирует его в директорию кэша сервиса.
Если не указать значение этого параметра, будет использоваться значение параметра import_extent. По умолчанию используется полный экстент карты.
|
Feature Set
|
|
import_extent
(Дополнительный)
|
Прямоугольный экстент определяет листы, которые будут быть импортированы в кэш. По умолчанию экстент соответствует полному экстенту картографического сервиса, в который вы производите импорт. Дополнительный параметр Область интереса позволяет пространственно ограничить листы, импортированные с помощью нерегулярной формы. Если значения приведены для обоих параметров, будет использоваться параметр Область интереса.
Прямоугольный экстент определяет листы, которые будут быть импортированы в кэш. По умолчанию экстент соответствует полному экстенту картографического сервиса, в который вы производите импорт. Дополнительный параметр area_of_interest позволяет пространственно ограничить с помощью нерегулярной формы импортированные листы. Если значения приведены для обоих параметров, будет использоваться параметр area_of_interest.
MAXOF – Будет использоваться максимальный экстент всех входных данных.
MINOF – Будет использоваться минимальная область, которая является общей для всех входных данных.
DISPLAY — Экстент равен видимому отображению.
Имя слоя — Будет использоваться экстент указанного слоя.
Extent Объект — будет использоваться экстент указанного объекта.
Строка координат, разделенная пробелами – Будет использоваться экстент указанной строки. Координаты выражаются в порядке x-мин, y-мин, x-макс, y-макс.
|
Extent
|
|
overwrite
(Дополнительный)
|
Задает, будут ли изображения в кэше назначения объединены с листами из исходного кэша или они будут перезаписаны ими.
OVERWRITE–Все пикселы области интереса будут заменены, что позволяет перезаписать кэш назначения листами из исходного кэша.
MERGE–При импорте листов прозрачные пикселы исходного кэша игнорируются. Это позволяет получить объединенное или смешанное изображение в кэше назначения. Используется по умолчанию.
|
Boolean
|
Производные выходные данные
|
Имя
|
Объяснение
|
Тип данных
|
|
out_job_url
|
Выходной URL-адрес.
|
String
|
Пример кода
ImportMapServerCache, пример 1 (автономный скрипт)
Импорт набора данных кэша в кэшированный сервис с числом масштабов, заданным по умолчанию. Листы в кэше назначения будут перезаписаны импортируемыми листами.
# Name: ImportMapServerCache.py
# Description: The following stand-alone script demonstrates how to import map
# server cache from a source directory with CACHE_DATASET and
# OVERWRITE existing cache on the service for the number
# of scales specified without Uploading data to server
# Requirements: os, sys, time and traceback modules
# Any line that begins with a pound sign is a comment and will not be run
# 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 sys
import time
import datetime
# 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
sourceCacheType = "CACHE_DATASET"
sourceCacheDataset = "C:/data/destination_folder/Layers"
sourceTilePackage = ""
uploadDataToServer = "DO_NOT_UPLOAD"
scales = [500000,250000,125000,64000]
numOfCachingServiceInstances = "2"
areaOfInterest = ""
importExtents = ""
overwriteTiles = "OVERWRITE"
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 "scales[0]","scales[-1]","scales[0:3]"
try:
starttime = time.clock()
result = arcpy.server.ImportMapServerCache(inputService, sourceCacheType,
sourceCacheDataset,
sourceTilePackage,
uploadDataToServer, scales,
numOfCachingServiceInstances,
areaOfInterest, importExtents,
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("Imported Map server Cache Tiles successfully for" + serviceName + \
" from" + sourceCacheDataset + "\n in " + str(elapsedtime)+ "sec on " + arg2)
except Exception as 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(str(e))
print("Imported Map server Cache Tiles ")
report.close()
ImportMapServerCache, пример 2 (автономный скрипт)
Импорт листов кэша для области интереса из пакета листов в кэшированный сервис.
# Name: ImportMapServerCache.py
# Description: The following stand-alone script demonstrates how to import map
# server cache from a source directory with Tile Package to an existing service for
# the default number of scales specified using an AOI by uploading data to remote server
# To Import cache tiles for the scales specified for given feature class
# Requirements: os, sys, time and traceback modules
# Any line that begins with a pound sign is a comment and will not be run
# 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 sys
import time
import datetime
# 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
sourceCacheType = "TILE_PACKAGE"
sourceCacheDataset = ""
sourceTilePackage = "C:\\data\\destination_folder\\TPK\\Rainfall.tpk"
uploadDataToServer = "UPLOAD_DATA"
scales = [500000,250000,125000,64000]
numOfCachingServiceInstances = "2"
cacheDir = "c:\\arcgisserver\\arcgiscache"
areaOfInterest = "C:/data/101/Portland/Portland_Metro.shp"
importExtents = ""
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 "scales[0]","scales[-1]","scales[0:3]"
try:
starttime = time.clock()
result = arcpy.server.ImportMapServerCache(inputService, sourceCacheType,
sourceCacheDataset,
sourceTilePackage,
uploadDataToServer, scales,
numOfCachingServiceInstances,
areaOfInterest, importExtents,
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("Imported Map server Cache Tiles successfully for " + serviceName + \
" from " + sourceTilePackage + " to " + cacheDir + "\n using "+ areaOfInterest + \
" in " + str(elapsedtime) + " sec \n on " + arg2)
except Exception as e:
# If an error occurred, print line number and error message
tb = sys.exc_info()[2]
report.write("Failed at step 2 \n" "Line %i" % tb.tb_lineno)
report.write(str(e))
report.close()
print("Imported Map server Cache Tiles for the given feature class")