arcpy.server.CreateMapServerCache(input_service, service_cache_directory, tiling_scheme_type, scales_type, num_of_scales, dots_per_inch, tile_size, {predefined_tiling_scheme}, {tile_origin}, {scales}, {cache_tile_format}, {tile_compression_quality}, {storage_format}, {ready_to_serve_format})
|
Имя
|
Объяснение
|
Тип данных
|
|
input_service
|
Слой карты или изображения, который будет кэширован.
|
Image Service; Map Server
|
|
service_cache_directory
|
Родительская директория для кэша. Это должна быть зарегистрированная директория кэша ArcGIS Server.
|
String
|
|
tiling_scheme_type
|
Указывает, как будет определена схема листов. Вы можете определить новую схему разбивки на листы или перейти к файлу предопределенной схемы (.xml). Предопределенная схема может быть создана путем запуска инструмента Создать схему листов кэша картографического сервиса.
NEW–Схема листов будет определена другими параметрами в этом инструменте, чтобы задать уровни масштаба, формат изображения, формат хранения данных и т. д. Используется по умолчанию.
PREDEFINED–Схема листов будет определена файлом .xml. Вы можете создать файл схемы листов с помощью инструмента Создать схему листов кэша картографического сервиса.
|
String
|
|
scales_type
|
Указывает на то, как листы будут масштабированы.
STANDARD–Масштабы будут сгенерированы автоматически на основе значения числа уровней масштаба. Будут использоваться уровни, которые увеличиваются или уменьшаются в два раза от 1:1 000 000, начиная с уровня, лучше всего соответствующего экстенту исходного документа карты. Например, если исходный документ карты имеет экстент 1:121 000 000 и требуется три уровня масштабов, картографический сервис создаст кэш с уровнями масштаба 1:128 000 000; 1:64 000 000 и 1:32 000 000. Используется по умолчанию.
CUSTOM–Построитель кэша определит эти масштабы.
|
String
|
|
num_of_scales
|
Число уровней масштаба для создания в кэше. Этот параметр отключен, если вы создаете собственный список масштабов.
|
Long
|
|
dots_per_inch
|
Точки на дюйм (DPI) предполагаемого устройства вывода. Если определено значение DPI, не соответствующее разрешению устройства вывода, масштаб листа карты будет отображаться неправильно. Значение, предлагаемое по умолчанию, равно 96.
|
Long
|
|
tile_size
|
Указывает ширину и высоту листов кэша в пикселах. Для достижения наилучшего баланса между производительностью и управляемостью избегайте отклонения от стандартных размеров 256 на 256 или 512 на 512.
128 x 128–Ширина и высота листов кэша будут составлять 128 на 128 пикселов.
256 x 256–Ширина и высота листов кэша будут составлять 256 на 256 пикселов. Используется по умолчанию.
512 x 512–Ширина и высота листов кэша будут составлять 512 на 512 пикселов.
1024 x 1024–Ширина и высота листов кэша будут составлять 1024 на 1024 пиксела.
|
String
|
|
predefined_tiling_scheme
(Дополнительный)
|
Путь к файлу предопределенной схемы листов (обычно называется conf.xml).
|
File
|
|
tile_origin
(Дополнительный)
|
Начало (верхний левый угол) схемы листов в координатах пространственной привязки исходного документа карты. Экстент исходного документа карты должен быть в пределах этой области (но не обязательно совпадать с ней).
|
Point
|
|
scales
[scales,...]
(Дополнительный)
|
Уровни масштаба, доступные для кэша. Они не представлены в виде дробей. Вместо этого используйте 500, чтобы представить масштаб 1:500, например.
|
Value Table
|
|
cache_tile_format
(Дополнительный)
|
Определяет формат файла кэша, который будет использоваться.
PNG–Формат PNG с различной битовой глубиной, который будет использоваться. Битовая глубина оптимизирована в соответствии со значениями цветового разнообразия и прозрачности в листе. Используется по умолчанию.
PNG8–Будет использоваться формат изображения без потерь, 8-битный цвет, использующий палитру индексированных цветов и альфа-таблицу. Каждый пиксел хранит значение (0-255), используемое для поиска цвета в палитре цветов и прозрачности в альфа-таблице. 8-битные изображения PNG аналогичны изображениям GIF. Их прозрачный фон поддерживается в большинстве веб-браузеров.
PNG24–Будет использоваться трехканальный формат изображения без потерь, поддерживающий большие цветовые вариации (16 млн. цветов) и имеющий ограниченную поддержку прозрачности. Каждый пиксел состоит из трех 8-битных цветовых каналов, а заголовок файла содержит единый цвет, представляющий прозрачный фон. Версии Microsoft Internet Explorer до 7 не поддерживают этот тип прозрачности. Кэши, использующие PNG24, значительно больше кэшей, применяющих PNG8 или JPEG, и занимают больше места на диске и требуют большей пропускной способности для обслуживания клиентов.
PNG32–Будет использоваться четырехканальный формат изображения без потерь, поддерживающие большие цветовые вариации (16 млн. цветов) и прозрачность. Каждый пиксел состоит из трех 8-битных цветовых каналов и одного 8-битного альфа-канала, представляющего уровень прозрачности для каждого пиксела. Хотя формат PNG32 допускает частично прозрачные пикселы в диапазоне от 0 до 255, инструмент создания кэша ArcGIS for Server записывает только полностью прозрачные (0) или полностью непрозрачные (255) значения в канал прозрачности. Кэши, использующие PNG32, значительно больше других поддерживаемых форматов, занимают больше места на диске и требуют большей пропускной способности для обслуживания клиентов.
JPEG–Будет использоваться трехканальный формат изображения с потерями, поддерживающий большие цветовые вариации (16 млн. цветов), но не поддерживающий прозрачность. Каждый пиксел состоит из трех 8-разрядных цветовых каналов. Кэши в формате JPEG обеспечивают контроль над выходным качеством и размером.
MIXED–Формат PNG32 используется везде, где обнаружена прозрачность (иными словами, там, где виден фон фрейма данных). Оставшиеся листы будут записаны в формате JPEG. Это помогает уменьшить размер файлов в среднем, и, вместе с тем, обеспечить точное наложение на другие кэши.
|
String
|
|
tile_compression_quality
(Дополнительный)
|
Качество сжатия JPEG (1-100), которое будет использоваться. Значение по умолчанию – 75 для формата листов JPEG и 0 для других форматов.
Сжатие поддерживается только для формата JPEG. Если вы выбираете высокое значение, это приведет к увеличению размера файла и более высокому качеству изображения. Если вы выбираете низкое значение, это приведет к уменьшению размера файла и низкому качеству изображения.
|
Long
|
|
storage_format
(Дополнительный)
|
Определяет формат хранения, который будет использоваться для листов.
Прежние версии:
Этот параметр больше не используется. Формат хранения Compact V2 будет использоваться всегда, независимо от указанного формата хранения.
COMPACT–Формат хранения Compact V2 будет использоваться для группировки листов в большие файлы, называемые пакетами. Этот формат хранения является эффективным с точки зрения хранения и мобильности. Используется по умолчанию.
EXPLODED–Эта опция больше не используется. Всегда будет использоваться формат хранения Compact V2.
|
String
|
|
ready_to_serve_format
(Дополнительный)
|
Указывает, будет ли содержание кэша создаваться с использованием открытой спецификации пакета листов, а также формат файла схемы кэша.
READY_TO_SERVE_FORMAT–Содержимое кэша будет сгенерировано с использованием открытой спецификации пакета листов (https://github.com/Esri/tile-package-spec). Пакет листов может быть упакован в zip-архив как пакет листов для автономных рабочих процессов. Формат кэша будет Compact V2, а схема кэша будет храниться в формате JSON.
NON_READY_TO_SERVE_FORMAT–Содержимое кэша будет сгенерировано с использованием схемы, хранящейся в формате XML. Используйте эту опцию для копирования кэша в предыдущие версии ArcGIS Enterprise. Используется по умолчанию.
|
Boolean
|
Производные выходные данные
|
Имя
|
Объяснение
|
Тип данных
|
|
out_service_url
|
Выходной URL-адрес сервиса.
|
String
|
Пример кода
CreateMapServerCache, пример 1 (автономный скрипт)
В следующем примере создается схема листов и подготовительные папки для кэша картографического сервиса с использованием типа масштабирования STANDARD. После выполнения скрипта, запустите инструмент Управление листами кэша картографического сервиса, чтобы добавить листы в кэш.
# Name: CreateMapServerCache.py
# Description: The following stand-alone script demonstrates how to create map
# using standard tiling schema for weblayers published to ArcGIS Enterprise and ArcGIS Online.
# and for map and image services on a stand alone ArcGIS Server
# Requirements: os, sys, time & 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"
# Sign in to portal
myPortal= "https://MyPortal.domain.com/portalwebadaptor"
arcpy.SignInToPortal(myPortal, "siteadminValue", "siteadminPassword")
myServer="https://Myserver.domain.com/serverwebadaptor"
serviceName= "SampleWorldCities"
serviceType= "MapServer"
myPortalServiceURL = (myServer + "/" + "rest/services" +"/" + serviceName + "/"
+ serviceType)
print (myPortalServiceURL)
# Stand alone ArcGIS Server
##target_server_connection = r"C:\share\python3\arcgis on MyServer"
##serviceName= "States"
##serviceType= "MapServer"
##myServerServiceURL= target_server_connection + "/" + serviceName + "." + serviceType
serviceCacheDirectory = "C:\\arcgisserver\\arcgiscache\\"
tilingSchemeType = "NEW"
scalesType = "STANDARD"
numOfScales = "4"
scales = ""
dotsPerInch = "96"
tileOrigin = ""
scales = ""
tileSize = "256 x 256"
cacheTileFormat = "PNG32"
tileCompressionQuality = ""
storageFormat = "COMPACT"
predefinedTilingScheme = ""
ready_to_serve_format="READY_TO_SERVE_FORMAT"
#variables for reporting
currentTime = datetime.datetime.now()
arg1 = currentTime.strftime("%H-%M")
arg2 = currentTime.strftime("%Y-%m-%d %H:%M")
file = 'E:/data/report_%s.txt' % arg1
# print results of the script to a report
report = open(file,'w')
try:
## starttime = time.clock()
result = arcpy.server.CreateMapServerCache(myPortalServiceURL,
serviceCacheDirectory,
tilingSchemeType, scalesType,
numOfScales, dotsPerInch,
tileSize, predefinedTilingScheme,
tileOrigin, scales,
cacheTileFormat,
tileCompressionQuality,
storageFormat,
ready_to_serve_format)
## 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("Created cache schema with 4 scales & default properties for" + \
## myServerServiceURL + " in " + str(elapsedtime) + " sec \n on " + arg2)
print("Created cache schema with 4 scales & default properties for" + \
myServerServiceURL + " in " + 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(e.message)
report.write(str(e))
print("Executed creation of Map server Cache schema ")
report.close()
CreateMapServerCache, пример 2 (автономный скрипт)
В следующем примере создается схема листов и подготовительные папки для кэша картографического сервиса с использованием типа масштабирования CUSTOM. После выполнения скрипта, запустите инструмент Управление листами кэша картографического сервиса, чтобы добавить листы в кэш.
# Name: CreateMapServerCache.py
# Description: The following stand-alone script demonstrates how to create map
# using Custom scales & jpg image format.
# Requirements: os, sys, time & 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
# Sign in to portal
myPortal= "https://MyPortal.domain.com/portalwebadaptor"
arcpy.SignInToPortal(myPortal, "siteadminValue", "siteadminPassword")
myServer= "https://Myserver.domain.com/serverwebadaptor"
serviceName= "SampleWorldCities"
serviceType= "MapServer"
myPortalServiceURL = (myServer + "/" + "rest/services" +"/" + serviceName + "/"
+ serviceType)
print (myPortalServiceURL)
serviceCacheDirectory = "C:\\arcgisserver\\arcgiscache"
tilingSchemeType = "NEW"
scalesType = "CUSTOM"
numOfScales = "4"
dotsPerInch = "96"
tileSize = "256 x 256"
predefinedTilingScheme = ""
tileOrigin = ""
scales = "600265;350200;225400;44000"
cacheTileFormat = "JPEG"
tileCompressionQuality = "75"
storageFormat = "COMPACT"
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')
try:
result = arcpy.server.CreateMapServerCache(myPortalServiceURL,
serviceCacheDirectory,
tilingSchemeType, scalesType,
numOfScales, dotsPerInch,
tileSize, predefinedTilingScheme,
tileOrigin, scales,
cacheTileFormat,
tileCompressionQuality,
storageFormat)
#print messages to a file
while result.status < 4:
time.sleep(0.2)
resultValue = result.getMessages()
report.write ("completed " + str(resultValue))
print("Created cache schema with custom scales successfully for " + \
serviceName + " 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 1 \n" "Line %i" % tb.tb_lineno)
report.write(str(e))
print("Executed creation of map server Cache schema using custom scales")
report.close()
CreateMapServerCache, пример 3 (автономный скрипт)
В следующем примере создается схема листов и подготовительные папки для кэша картографического сервиса с использованием схемы листов PREDEFINED. После выполнения скрипта, запустите инструмент Управление листами кэша картографического сервиса, чтобы добавить листы в кэш.
# Name: CreateMapServerCache.py
# Description: The following stand-alone script demonstrates how to create map
# using existing predefined schema in a ready to serve format
# Requirements: os, sys, time & 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 = "E:/data"
# Sign in to portal
myPortal= "https://MyPortal.domain.com/portalwebadaptor"
arcpy.SignInToPortal(myPortal, "siteadminValue", "siteadminPassword")
myServer= "https://Myserver.domain.com/serverwebadaptor"
serviceName= "SampleWorldCities"
serviceType= "MapServer"
myPortalServiceURL = (myServer + "/" + "rest/services" +"/" + serviceName + "/"
+ serviceType)
print (myPortalServiceURL)
# Stand alone ArcGIS Server
##target_server_connection = r"C:\share\python3\arcgis on MyServer"
##serviceName= "States"
##serviceType= "MapServer"
##myServerServiceURL= target_server_connection + "/" + serviceName + "." + serviceType
# List of input variables for map service properties
serviceCacheDirectory = "C:\\arcgisserver\\directories\\arcgiscache"
tilingSchemeType = "PREDEFINED"
scalesType = ""
tileOrigin = ""
scalesType = ""
numOfScales = ""
scales = ""
dotsPerInch = "96"
tileSize = "256 x 256"
cacheTileFormat = "MIXED"
tileCompressionQuality = "75"
storageFormat = "COMPACT"
predefinedTilingScheme = "C:/data/TilingSchemes/ArcGIS_Online_Bing_Maps_Google_Maps.xml"
ready_to_serve_format="READY_TO_SERVE_FORMAT"
#variables for reporting
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')
try:
result = arcpy.server.CreateMapServerCache(myPortalServiceURL,
serviceCacheDirectory,
tilingSchemeType, scalesType,
numOfScales, dotsPerInch,
tileSize, predefinedTilingScheme,
tileOrigin, scales,
cacheTileFormat,
tileCompressionQuality,
storageFormat,
ready_to_serve_format)
#print messages to a file
while result.status < 4:
time.sleep(0.2)
resultValue = result.getMessages()
report.write ("completed " + str(resultValue))
print("Created cache schema using predefined tiling schema for " + \
serviceName + " in " + 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("Executed creation of map server Cache schema using tiling scheme")
report.close()