AnalyzeForSD (arcpy.mapping)

Резюме

Анализирует черновики определения сервиса (.sddraft) для определения потенциальных проблем с производительностью перед преобразованием файла черновика определения сервиса в файл определения сервиса (.sd).

Обсуждение

Важная задача, которую можно выполнить – это анализ файла проекта определения сервиса (.sddraft) для определения ошибок и других потенциальных проблем, которые необходимо устранить до создания файла определения сервиса (.sd). AnalyzeForSD может быть использована с черновиками определений картографических сервисов, сервисов изображений и геообработки. Функция возвращает словарь информационных сообщений Python, содержащий сообщения, ошибки и предупреждения. Например, при работе с черновиками определений картографических сервисов, эта функция может:

Анализ файла черновика определения картографического сервиса основан на множестве факторов, в том числе используемых картой данных (свойства карты, слоев и символов), свойствах набора сервисов, таких как выбранные функции связанные свойства, поддерживаемые сервисом, а также типе сервера, на котором размещается сервис. В словаре Python могут содержаться три типа сообщений: сообщения об ошибке, предупреждения и информационные сообщения.

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

После анализа проекта определения сервиса с помощью AnalyzeForSD его можно преобразовать в полностью консолидированный файл определения сервиса (.sd) с помощью инструмента геообработки Сервис подготовки (Stage Service). Во время подготовки компилируется вся информация, необходимая для успешной публикации ГИС-ресурса. Если вы решили скопировать данные на сервер, они будут добавлены после подготовки проекта определения сервиса. Наконец, файл определения сервиса можно загрузить и опубликовать как ГИС-сервис на указанном ГИС-сервере с помощью инструмента геообработки Передать определение сервиса (Upload Service Definition). На этом шаге файл определения сервиса копируется на сервер, извлекается необходимая информация и публикуется ГИС-ресурс. Дополнительные сведения см. в обзоре группы инструментов Публикация (Publishing).

Функции для создания черновиков определений картографических сервисов, сервисов изображений и геообработки это:

Синтаксис

AnalyzeForSD (sddraft)
ПараметрОбъяснениеТип данных
sddraft

A string that represents the path and file name for the Service Definition Draft (.sddraft) file.

String
Возвращено значение
Тип данныхОбъяснение
Dictionary

Возвращает словарь информационных сообщений, предупреждений и сообщений об ошибках Python.

Пример кода

Пример AnalyzeForSD 1

Следующий скрипт выполняет анализ файла проекта определения сервиса (.sddraft) для определения потенциальных проблем с производительностью и ошибок карты, которые необходимо устранить до создания файла определения сервиса (.sd).

import arcpy

analysis = arcpy.mapping.AnalyzeForSD(r"C:\Project\Counties.sddraft")

for key in ('messages', 'warnings', 'errors'):
  print "----" + key.upper() + "---"
  vars = analysis[key]
  for ((message, code), layerlist) in vars.iteritems():
    print "    ", message, " (CODE %i)" % code
    print "       applies to:",
    for layer in layerlist:
        print layer.name,
    print
Пример AnalyzeForSD 2

Следующий скрипт демонстрирует полный процесс публикации картографических сервисов с использованием модуля arcpy.mapping. Публикацию картографических сервисов можно автоматизировать с помощью функций arcpy.mapping и инструментов геообработки в составе набора инструментов Публикация (Publishing). Сначала необходимо выбрать документ карты, который необходимо опубликовать. Сначала с помощью функции arcpy.mapping CreateMapSDDraft создайте черновик определения сервиса. Затем воспользуйтесь функцией AnalyzeForSD, чтобы проанализировать черновик определения сервиса на предмет ошибок, которые могут помешать успешной публикации сервиса. После анализа черновика определения сервиса и устранения ошибок можно подготовить определение сервиса. В ходе подготовки в черновике определения сервиса консолидируется вся информация, необходимая для публикации сервиса в полном определении сервиса. Воспользуйтесь инструментом геообработки Сервис подготовки (Stage Service) для подготовки определения сервиса. Наконец, запустите инструмент геообработки Передать определение сервиса (Upload Service Definition) для отправки определения сервиса на сервер и публикации картографического сервиса.

import arcpy

# define local variables
wrkspc = 'C:/Project/'
mapDoc = arcpy.mapping.MapDocument(wrkspc + 'counties.mxd')
con = r'GIS Servers\arcgis on MyServer_6080 (admin).ags' 
service = 'Counties'
sddraft = wrkspc + service + '.sddraft'
sd = wrkspc + service + '.sd'

# create service definition draft
arcpy.mapping.CreateMapSDDraft(mapDoc, sddraft, service, 'ARCGIS_SERVER', con, True, None)
# analyze the service definition draft
analysis = arcpy.mapping.AnalyzeForSD(sddraft)

# stage and upload the service if the sddraft analysis did not contain errors
if analysis['errors'] == {}:
    # Execute StageService
    arcpy.StageService_server(sddraft, sd)
    # Execute UploadServiceDefinition
    arcpy.UploadServiceDefinition_server(sd, con)
else: 
    # if the sddraft analysis contained errors, display them
    print analysis['errors']
9/11/2013