Импорт кэша картографического сервера (Import Map Server Cache) (Сервер)

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

Резюме

Импортирует листы из папки на диске в кэш картографического сервиса или сервиса изображений. Исходная папка может быть дочерней от зарегистрированной директории кэша сервера, папкой, куда ранее был экспортирован кэш, или пакетом листов (.tpk). Целевой сервис должен иметь ту же схему листов и формат хранения, что и исходный кэш.

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

Синтаксис

ImportMapServerCache_server (input_service, source_cache_type, {source_cache_dataset}, {source_tile_package}, {upload_data_to_server}, {scales}, {num_of_caching_service_instances}, {import_extent}, {area_of_interest}, {overwrite_tiles})
ПараметрОбъяснениеТип данных
input_service

Картографический сервис или сервис изображений, в который будут импортированы листы.

Это строка, содержащая информацию как о сервере, так и о сервисе. Чтобы узнать, как сформировать эту строку, откройте ArcCatalog, выберите свой сервис в дереве каталога и обратите внимание на текст на панели инструментов Местоположение (Location). Затем поменяйте обратные косые черты на прямые, например GIS Servers/arcgis on MYSERVER (admin)/USA.MapServer.

String
source_cache_type

Выберите импорт кэша из CACHE_DATASET или TILE_PACKAGE в кэшированный картографический сервис или сервис изображений, работающий на сервере.

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

Путь к папке кэша, соответствующий имени фрейма данных. Вам не нужно вводить зарегистрированную директорию кэша сервера. На самом деле, в большинстве случаев вы будете вводить местоположение на диске, куда ранее были экспортированы листы. Это местоположение должно быть доступно для учетной записи ArcGIS for Server. Если учетной записи ArcGIS for Server не может быть предоставлен доступ к этому месту, присвойте параметру upload_data_to_server значение UPLOAD_DATA.

Raster Dataset
source_tile_package
(дополнительно)

Путь к пакету листов (.tpk), которые будут импортированы. Это местоположение должно быть доступно для учетной записи ArcGIS for Server. При импорте файла пакета листов в картографический сервис или сервис изображений параметр upload_data_to_server игнорируется, поскольку ему будет автоматически присвоено значение UPLOAD_DATA.

File
upload_data_to_server
(дополнительно)

Присвойте этому параметру значение UPLOAD_DATA, если учетная запись ArcGIS for Server не имеет разрешения на чтение исходного кэша. Инструмент загрузит исходный кэш в директорию загрузок ArcGIS for Server перед его перемещением в директорию кэша ArcGIS for Server.

  • UPLOAD_DATAЛисты помещаются в директорию загрузок сервера, а затем перемещаются в директорию кэша сервера. Это является настройкой по умолчанию, когда параметру storage_format_type присвоено значение TILE_PACKAGE.
  • DO_NOT_UPLOADЛисты импортируются непосредственно в директорию кэша сервера. Учетная запись ArcGIS for Server должна иметь право на чтение исходного кэша.
Boolean
scales
[scales,...]
(дополнительно)

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

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

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

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

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

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

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

Если не указать значение этого параметра, будет использоваться значение параметра Экстент импорта (Import Extent). По умолчанию используется полный экстент карты.

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

Пример кода

Пример 1

Импорт CACHE_DATASET в кэшированный сервис для числа масштабов по умолчанию. Листы в получаемом кэше будут перезаписаны импортируемыми листами.

# 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 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
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.ImportMapServerCache_server(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, 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 "Imported Map server Cache Tiles "

report.close()

Пример 2

Импорт листов кэша для области интереса из TILE_PACKAGE в сервис кэша

# 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
# Author: ESRI

# 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
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.ImportMapServerCache_server(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, 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(e.message)
report.close()

print "Imported Map server Cache Tiles for the given feature class"

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

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

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

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

ArcGIS for Desktop Basic: Да
ArcGIS for Desktop Standard: Да
ArcGIS for Desktop Advanced: Да
9/11/2013