Краткая информация
Класс ImageSharingDraft позволяет создать файл черновика определения сервиса (.sddraft) для веб-слоя изображений или сервиса изображений.
Обсуждение
Чтобы создать объект ImageSharingDraft, используйте функцию CreateSharingDraft.
- Для публикации веб-слоя изображений задайте для параметра server_type значение FEDERATED_SERVER, а для параметра service_type - значение WEB_IMAGERY_LAYER.
- Чтобы опубликовать сервис изображений, задайте параметр server_type как STANDALONE_SERVER, а параметр service_type как IMAGE_SERVICE.
Затем объект ImageSharingDraft можно будет настроить, задав свойства на уровне сервиса или слоя. Используйте параметр targetServer, чтобы указать, на каком сервере будет опубликован данный сервис изображений и веб-слой изображений.
Изменить свойства сервиса и веб-слоя изображений можно также путем изменения файла .sddraft. Если для свойства не указано никакого значения, будет использоваться значение по умолчанию. Вы должны задать значения этих свойств, даже если вы изменяете сервис или веб-слой изображений, для которых свойства уже настроены.
Примечание:
Если свойства метаданных (credits, description, summary, tags и useLimitations) не заданы или состоят из пустых строк, элемент веб-слоя будет получать метаданные от данных, в зависимости от того, что опубликовано.
После того, как объект ImageSharingDraft сконфигурирован, его можно сохранить в файле черновика определения сервиса (.sddraft) с помощью метода exportToSDDraft. Затем он может быть применен и опубликован либо в ArcGIS Enterprise, либо в ArcGIS Server, используя инструменты Промежуточный сервис и Выгрузить определение сервиса.
Примеры кода доступны ниже для следующих задач:
Свойства
Свойство | Описание | Тип данных |
allowAnalysis (чтение и запись) | Устанавливает, будут ли инструменты сервиса геообработки из набора инструментов Анализ растров получать доступ к веб-слою изображений и сервису изображений. | Boolean |
allowCopy (чтение и запись) | Устанавливает, будет ли инструмент сервиса геообработки Загрузить растр получать доступ к слою веб-изображений и сервису изображений. | Boolean |
allowCompressions (чтение и запись) | Устанавливает допустимые методы сжатия для веб-сервиса изображений или для сервиса изображений.
| String |
allowedFields (чтение и запись) | Поля, которые будут передаваться клиенту. Укажите поля в виде строки с разделителями в виде запятых или списка строк. | String |
allowedItemMetadata (чтение и запись) | Устанавливает, какие элементы метаданных будут передаваться клиенту:
| String |
allowedMensurationCapabilities (чтение и запись) | Устанавливает методы в зависимости от возможностей измерений данного источника, которые будут представлены в списке как часть свойств набора данных. Эти методы определяют, какие инструменты измерения могут использоваться с веб-слоем изображений или сервисом изображений.
| String |
allowedMosaicMethods (чтение и запись) | Устанавливает допустимые методы мозаики для веб-слоя изображений или для сервиса изображений.
Это свойство доступно только для наборов данных мозаики. | String |
allowedTemplates (чтение и запись) | Имена функций растров на стороне сервера. Укажите поля в виде строки с разделителями-запятыми или списка строк. | String |
allowFunction (чтение и запись) | Устанавливает, могут ли клиенты получать доступ и управлять отображением и обработкой на стороне сервера. | Boolean |
cache.cacheOnDemand (чтение и запись) | Указывает, будут ли листы, которые не кэшируются, созданы по запросу, когда клиентское приложение запрашивает их. Значение по умолчанию равно False. | Boolean |
cache.configuration (чтение и запись) | Путь и имя файла предварительно определенного файла схемы листов .xml, созданного с помощью инструмента Создать схему листов кэша картографического сервиса. | String |
cache.exportTiles (чтение и запись) | Устанавливает, будет ли клиентам разрешено загружать листы для автономного использования. Значение по умолчанию равно False. | Boolean |
cache.exportTilesCount (чтение и запись) | Максимальное количество листов, которые можно загрузить за один запрос. Это свойство поддерживается, только если для параметра cache.exportTiles установлено значение True. Значение по умолчанию равно 100000. | Integer |
cache.useExistingCache (чтение и запись) | Указывает, будут ли данные извлекаться из существующего кэша. Это свойство поддерживается, только если для параметра enableCache установлено значение True. Значение по умолчанию равно False. | Boolean |
cacheControlMaxAge (чтение и запись) | Время, в течение которого браузеру будет разрешено использовать кэшированный ответ. | Integer |
colormapToRGB (чтение и запись) | Определяет, будет ли цветовая карта в наборе растровых данных опубликована в виде изображения RGB путем применения к нему цветовой карты. Это повлияет на значения пикселов, поскольку отдельные значения, связанные с цветовыми картами, будут изменены на трехканальные значения пикселов. Чтобы сохранить цветовую карту и запросить пиксел по его цветовой карте, укажите значение False. Это свойство применяется только к наборам растровых данных с цветовой картой, а также при использовании слоя набора растровых данных или набора данных мозаики с функцией Colormap. | Boolean |
copyDataToServer (чтение и запись) | Устанавливает, будут ли данные скопированы на сервер. Если значение True, то будут скопированы все данные, в том числе данные, которые зарегистрированы на сервере. При значении False будут скопированы только данные, которые не зарегистрированы на вашем сервере. Сервис будет использовать данные, которые зарегистрированы на вашем сервере. Значение по умолчанию равно False. | Boolean |
credits (чтение и запись) | Кредиты веб-слоя изображений и сервиса изображений. | String |
defaultCompressionQuality (чтение и запись) | Качество сжатия по умолчанию. Введите значение от 0 до 100. Значение 80 обеспечивает приемлемое качество изображения в сочетании с примерно 8-кратным сжатием. | Integer |
defaultCompressionTolerance (чтение и запись) | Максимальное значение ошибки, применимое к каждому пикселю, а не среднее значение для изображения. Это значение измеряется в единицах набора данных мозаики. Например, если ошибка равна 10 см, а единицы измерения набора данных мозаики выражены в метрах, используйте значение 0,1. | Double |
defaultResamplingMethod (чтение и запись) | Устанавливает метод пересчета, который будет использоваться в запросе.
| String |
defaultTemplate (чтение и запись) | Имя по умолчанию шаблона функции растра (RFT) на стороне сервера. | String |
DEM (чтение и запись) | Источник высот, который будет использоваться при измерении. Это позволит выполнять измерения в 3D. | String |
description (чтение и запись) | Описание веб-слоя изображений или сервиса изображений. Значение по умолчанию равно None. | String |
downloadDirectory (чтение и запись) | Директория загрузки. Это свойство позволяет сопоставить физические директории, в которых находятся изображения, с виртуальными, в которых будут отображаться URL-адреса этих изображений. При предоставлении разрешения на загрузку сервис должен использовать директорию, указывающую на исходные растры набора данных мозаики. Это предотвратит снижение производительности, которое в противном случае могло бы возникнуть, поскольку сервис копирует файлы из исходной директории набора данных мозаики в выходную директорию сервера. Используйте это свойство совместно со свойством virtualDownloadDirectory. | String |
enableCache (чтение и запись) | Указывает, будет ли данный слой отображаться динамически или из кэша. Значение по умолчанию равно False. | Boolean |
hasLiveData (чтение и запись) | Указывает, будет ли данный сервис отражать изменения данных. Когда вы добавляете новые растры в набор данных мозаики веб-слоя изображений или сервиса изображений, информация - такая как исходное разрешение, пространственный экстент, многомерная информация и временной экстент - может устаревать. Вы можете запустить сервис заново, чтобы отобразить измененные данные. Если вы не можете предотвратить сбои в работе сервиса, установите для этого параметра значение True, чтобы изменения данных отражались без перезапуска сервиса. Или же запустите команду Обновить сервис, чтобы обновить сервис изображений, который после обновления будет отражать изменения внутренних данных. | Boolean |
maxDownloadImageCount (чтение и запись) | Максимальное количество растров, которые пользователь может загрузить за один раз. Это свойство применяется только к наборам данных мозаики. | Integer |
maxDownloadSizeLimit (чтение и запись) | Общий объем в мегабайтах (МБ), который можно загрузить за один раз. Это свойство применяется только к наборам данных мозаики. | Integer |
maxImageHeight (чтение и запись) | Максимальное число строк, которое можно использовать в запросе клиента. | Integer |
maxImageWidth (чтение и запись) | Максимальное число столбцов, которое можно использовать в запросе клиента. | Integer |
maxMosaicImageCount (чтение и запись) | Максимальное число растров, разрешенных для построения мозаики по запросу. Это позволяет серверу избежать необходимости открытия и обработки большого количества растров для одного запроса. | Integer |
maxRecordCount (чтение и запись) | Максимальное количество записей, возвращаемых во время запроса. Значением по умолчанию является 2000. | Integer |
maxSampleCount (чтение и запись) | Максимальное количество выборок. Создает выборки местоположений точек, значения пикселей и соответствующего пространственного разрешения исходных данных для заданной геометрии. По умолчанию максимальное число местоположений выборки равно 1000. | Integer |
maxScale (чтение и запись) | Знаменатель максимального масштаба, при котором будет доступно кэширование. Используйте значение 0 для сервисов, которые не кэшируются. | Double |
minScale (чтение и запись) | Знаменатель минимального масштаба, при котором будет доступно кэширование. Используйте значение 0 для сервисов, которые не кэшируются. | Double |
offline (чтение и запись) | Определяет, будет ли сохраняться определение сервиса офлайн.
| Boolean |
overwriteExistingService (чтение и запись) | Определяет, будут ли перезаписываться имеющиеся сервисы с одинаковыми именами. | Boolean |
pooling.maxInstances (чтение и запись) | Максимальное число экземпляров на компьютер. Это свойство поддерживается, только если для параметра pooling.type установлено значение DEDICATED. | Integer |
pooling.minInstances (чтение и запись) | Минимальное число экземпляров на компьютер. Это свойство выполняется только в том случае, если для параметра pooling.type установлено значение DEDICATED. | Integer |
pooling.type (чтение и запись) | Устанавливает тип слияния сервисов, который будет использоваться.
| String |
portalFolder (чтение и запись) | Имя папки, которая будет опубликована на портале. Папкой по умолчанию является корневая папка в Моих ресурсах. Это свойство выполняется только в том случае, когда для параметра serverType установлено значение FEDERATED_SERVER. | String |
referenceImage (чтение и запись) | Базовый набор растровых данных, набор данных мозаики или растровый слой, который будут использоваться для пространственной привязки исходного набора растровых данных. | String |
returnJPGPNGAsJPG (чтение и запись) | Устанавливает, будут ли возвращаться изображения формата JPG. Когда вы направляете запросы к изображению в формате JPG, PNG, при наличии прозрачности возвращается изображение в формате PNG; в противном случае возвращается изображение в формате JPG. Изображение в формате PNG часто намного больше, чем изображение в формате JPG, и его передача может занять больше времени. Если прозрачность не требуется, и вы хотите, чтобы веб-слой изображений или сервис изображений всегда передавались с использованием изображений меньшего размера, укажите значение True. | Boolean |
serverFolder (чтение и запись) | Имя папки сервера, в которой будет опубликован сервис. По умолчанию будет использоваться корневой каталог сервера. Если такой папки (каталога) нет, она будет создана. | String |
serverType (чтение и запись) | Указывает тип сервера, который использовался при создании публикуемого черновика и поддерживается для публикации.
| String |
serviceName (только чтение) | Имя сервиса изображений или веб-слоя изображений. Это - имя, которое вы будете видеть и использовать для идентификации этого сервиса. Имя может содержать только буквы, цифры и знак подчеркивания. Для веб-слоя изображений допускаются пробелы. Для сервиса изображений пробелы или специальные символы не допускаются. Длина имени не должна превышать 120 символов. | String |
sharing.groups (чтение и запись) | Имена групп, разделенные запятыми. Это свойство доступно только в том случае, если для свойства serverType установлено значение FEDERATED_SERVER. | String |
sharing.sharingLevel (чтение и запись) | Определяет уровень доступа веб-слоя. Это свойство доступно только в том случае, если для свойства serverType установлено значение FEDERATED_SERVER.
| String |
sortField (чтение и запись) | Поле сортировки правила построения мозаики по умолчанию, когда свойству allowedMosaicMethods установлено значение ByAttribute.. | String |
sortValue (чтение и запись) | Базовое значение сортировки правила построения мозаики, когда свойству allowedMosaicMethod установлено значение ByAttribute. Этот тип зависит от типа атрибута. | String |
summary (чтение и запись) | Краткое описание сервиса. При вводе значения это свойство изменяет сводную информацию о соответствующем наборе данных или добавляет сводную информацию, если ее еще не существует. Эта сводная информация не будет применяться к исходному набору данных. Значение по умолчанию равно None. | String |
tags (чтение и запись) | Теги сервиса. При вводе значения это свойство изменяет теги соответствующего набора данных или добавляет теги, если их еще не существует. Добавленные теги не будут применяться к исходному набору данных. Значение по умолчанию равно None. | String |
targetServer (чтение и запись) | Сервер, на котором будет опубликован сервис. Это свойство необходимо устанавливать, когда для параметра offline задано значение False, которое является значением по умолчанию. Если для свойства serverType задано FEDERATED_SERVER, укажите URL-адрес сервера, интегрированного с порталом ArcGIS Enterprise. Если для свойства serverType задано STANDALONE_SERVER, поддерживаются следующие варианты:
| String |
useLimitations (чтение и запись) | Ограничения по использованию веб-слоя. | String |
virtualDownloadDirectory (чтение и запись) | Виртуальная директория загрузки. Это свойство позволяет сопоставить физические директории, в которых находятся изображения, с виртуальными, в которых будут отображаться URL-адреса этих изображений. При предоставлении разрешения на загрузку сервис должен использовать директорию, указывающую на исходные растры набора данных мозаики. Это предотвратит снижение производительности, которое в противном случае могло бы возникнуть, поскольку сервис копирует файлы из исходной директории набора данных мозаики в выходную директорию сервера. Используйте это свойство совместно со свойством downloadDirectory. | String |
Обзор метода
Метод | Описание |
exportToSDDraft (out_sddraft) | Конвертирует ImageSharingDraft в файл черновика определения сервиса (.sddraft). |
Методы
exportToSDDraft (out_sddraft)
Параметр | Описание | Тип данных |
out_sddraft | The path and file name for the output service definition draft file (.sddraft). | String |
Пример кода
Следующий скрипт создает файл черновика определения сервиса веб-слоя изображений (.sddraft) и задает свойства метаданных. Рекомендуется перед публикацией зарегистрировать местоположение этих данных. Если местоположение данных не будет зарегистрировано, они будут копироваться в ArcGIS Server. Затем этот веб-слой изображений публикуется в папку в ArcGIS Enterprise и становится общедоступным (для всех). Информация о портале извлекается с помощью функции SignInToPortal.
import arcpy
import os
# Sign in to portal
arcpy.SignInToPortal(portal_url="https://organization.example.com/webadaptorname", username="MyUserName", password="MyPassword")
# Set output file names
outdir = r"C:\Project\Output"
service_name = "ImageSharingDraftExample"
sddraft_filename = service_name + ".sddraft"
sddraft_output_filename = os.path.join(outdir, sddraft_filename)
sd_filename = service_name + ".sd"
sd_output_filename = os.path.join(outdir, sd_filename)
datapath = r"C:\Project\data\Raster1.tif"
# Create ImageSharingDraft and set metadata, portal folder, and server folder properties
federated_server_url = "https://gisserver.example.com/webadaptor"
sddraft = arcpy.sharing.CreateSharingDraft(server_type="FEDERATED_SERVER", service_type="WEB_IMAGERY_LAYER",
service_name=service_name, draft_value=datapath)
sddraft.targetServer = federated_server_url
sddraft.credits = "These are credits"
sddraft.description = "This is description"
sddraft.summary = "This is summary"
sddraft.tags = "tag1, tag2"
sddraft.useLimitations = "These are use limitations"
sddraft.portalFolder = "my folder name"
sddraft.serverFolder = "MyServerFolder"
sddraft.sharing.sharingLevel = "EVERYONE"
sddraft.sharing.groups = "" # Group names = "group1,group2"
# Create Service Definition Draft file
sddraft.exportToSDDraft(sddraft_output_filename)
# Stage Service
print("Start Staging")
arcpy.server.StageService(sddraft_output_filename, sd_output_filename)
# Share to portal
print("Start Uploading")
arcpy.server.UploadServiceDefinition(sd_output_filename, federated_server_url)
print("Finish Publishing")
Следующий скрипт создает файл черновика определения сервиса (.sddraft) для сервиса изображений и задает свойства метаданных. Сервис изображений публикуется в папку на отдельном сайте ArcGIS Server.
import arcpy
import os
# Set output file names
outdir = r"C:\Project\Output"
service_name = "ImageSharingDraftExample"
sddraft_filename = service_name + ".sddraft"
sddraft_output_filename = os.path.join(outdir, sddraft_filename)
sd_filename = service_name + ".sd"
sd_output_filename = os.path.join(outdir, sd_filename)
datapath = r"C:\Project\data\Raster2.crf"
# Create ImageSharingDraft and set metadata and server folder properties
target_server_connection = r"C:\Project\gisserver.ags.esri.com (publisher).ags"
sddraft = arcpy.sharing.CreateSharingDraft(server_type="STANDALONE_SERVER", service_type="IMAGE_SERVICE",
service_name=service_name, draft_value=datapath)
sddraft.targetServer = target_server_connection
sddraft.credits = "These are credits"
sddraft.description = "This is description"
sddraft.summary = "This is summary"
sddraft.tags = "tag1, tag2"
sddraft.useLimitations = "These are use limitations"
sddraft.serverFolder = "MyServerFolder"
# Create Service Definition Draft file
sddraft.exportToSDDraft(sddraft_output_filename)
# Stage Service
print("Start Staging")
arcpy.server.StageService(sddraft_output_filename, sd_output_filename)
# Publish to server
print("Start Uploading")
arcpy.server.UploadServiceDefinition(sd_output_filename, target_server_connection)
print("Finish Publishing")
Следующий скрипт перезаписывает веб-слой изображений. Если имя веб-слоя изображений уже существует, он будет перезаписан; в противном случае будет создан новый слой. Если вы хотите, чтобы у веб-слоя были определенные свойства, вам необходимо задать значения свойств, даже если у перезаписываемого веб-слоя уже настроены свойства. В противном случае существующие свойства будут перезаписаны настройками по умолчанию.
import arcpy
import os
# Sign in to portal
arcpy.SignInToPortal(portal_url="https://organization.example.com/webadaptorname", username="MyUserName", password="MyPassword")
# Set output file names
outdir = r"C:\Project\Output"
service_name = "ImageSharingDraftExample"
sddraft_filename = service_name + ".sddraft"
sddraft_output_filename = os.path.join(outdir, sddraft_filename)
sd_filename = service_name + ".sd"
sd_output_filename = os.path.join(outdir, sd_filename)
datapath = r"C:\Project\data\Sample.gdb\Mosaic1"
# Create ImageSharingDraft and set overwrite property
federated_server_url = "https://gisserver.example.com/webadaptor"
sddraft = arcpy.sharing.CreateSharingDraft(server_type="FEDERATED_SERVER", service_type="WEB_IMAGERY_LAYER",
service_name=service_name, draft_value=datapath)
sddraft.targetServer = federated_server_url
sddraft.overwriteExistingService = True
# Create Service Definition Draft file
sddraft.exportToSDDraft(sddraft_output_filename)
# Stage Service
print("Start Staging")
arcpy.server.StageService(sddraft_output_filename, sd_output_filename)
# Share to portal
print("Start Uploading")
arcpy.server.UploadServiceDefinition(sd_output_filename, federated_server_url)
print("Finish Publishing")
Следующий скрипт перезаписывает сервис изображений. Если имя сервиса уже существует, сервис будет заменен; если нет, то будет создан новый сервис. Если вы хотите, чтобы у сервиса изображений были определенные свойства, необходимо задать значения свойств, даже если у перезаписываемого сервиса изображений свойства уже настроены. В противном случае существующие свойства будут перезаписаны настройками по умолчанию.
import arcpy
import os
# Set output file names
outdir = r"C:\Project\Output"
service_name = "ImageSharingDraftExample"
sddraft_filename = service_name + ".sddraft"
sddraft_output_filename = os.path.join(outdir, sddraft_filename)
sd_filename = service_name + ".sd"
sd_output_filename = os.path.join(outdir, sd_filename)
datapath = r"C:\Project\data\Sample.gdb\Mosaic2"
# Create ImageSharingDraft and set metadata, and server folder properties
target_server_connection = r"C:\Project\gisserver.ags.esri.com (publisher).ags"
sddraft = arcpy.sharing.CreateSharingDraft(server_type="STANDALONE_SERVER", service_type="IMAGE_SERVICE",
service_name=service_name, draft_value=datapath)
sddraft.targetServer = target_server_connection
sddraft.overwriteExistingService = True
# Create Service Definition Draft file
sddraft.exportToSDDraft(sddraft_output_filename)
# Stage Service
print("Start Staging")
arcpy.server.StageService(sddraft_output_filename, sd_output_filename)
# Share to portal
print("Start Uploading")
arcpy.server.UploadServiceDefinition(sd_output_filename, target_server_connection)
print("Finish Publishing")