Краткая информация
Анализирует черновики определения сервиса (.sddraft) для определения потенциальных проблем с производительностью перед преобразованием файла черновика определения сервиса в файл определения сервиса (.sd).
Описание
Важная задача, которую можно выполнить – это анализ файла черновика определения сервиса для определения ошибок и потенциальных проблем, которые необходимо устранить до создания файла определения сервиса. AnalyzeForSD может быть использован с черновиком определения сервиса для картографических сервисов, сервисов геообработки и изображений. Эта функция возвращает словарь Python, содержащий ошибки, предупреждения и информационные сообщения. Например, при работе с черновиком определения сервиса для картографических сервисов, эта функция может:
- Помочь вам идентифицировать типы слоев и символов, которые не поддерживаются при оптимизированной производительности отрисовки карты.
- Показать предупреждения для проблем, которые потенциально могут снизить скорость отрисовки.
- Перечислить другие информационные сообщения о вашем документе карты, что может помочь вам при оптимизации его производительности, как картографического сервиса.
Анализ для файла черновика описания картографического сервиса основан на множестве факторов, включая данные, используемые картой; свойствах карты, слоев и символов; свойствах набора сервисов, таких как выбранные функции и связанные свойства, поддерживаемые сервисом; а также типе сервера, на котором размещается сервис. В словаре Python могут содержаться три типа сообщений: сообщения об ошибке, предупреждения и информационные сообщения.
Сообщения об ошибках для файла черновика описания картографического сервиса обычно относятся к использованию типов слоев карты или опциям отображения, которые не поддерживаются для картографических сервисов. Все ошибки необходимо устранить перед созданием файла определения сервиса. Предупреждения и другие сообщения идентифицируют проблемы, которые могут повлиять на производительность отображения и внешний вид данных. Предупреждения сообщают о проблемах, которые могут повлиять на скорость отображения или внешний вид данных, но эти проблемы не влияют на преобразование файла черновика определения сервиса в файл определения сервиса.
После анализа проекта определения сервиса с помощью AnalyzeForSD его можно преобразовать в полностью консолидированный файл определения сервиса (.sd) с помощью инструмента геообработки Организовать сервис. Во время подготовки компилируется вся информация, необходимая для успешной публикации ГИС-ресурса. Если вы решили скопировать данные на сервер, они будут добавлены после подготовки черновика определения сервиса. Наконец, файл определения сервиса можно загрузить и опубликовать как ГИС-сервис на указанном ГИС-сервере с помощью инструмента геообработки Загрузить определение сервиса. На этом шаге файл определения сервиса копируется на сервер, извлекается необходимая информация и публикуется ГИС-ресурс. Дополнительные сведения см. в обзоре группы инструментов Публикация.
Следующие функции используются для создания файлов черновика определения сервиса для картографических сервисов, сервисов геообработки, изображений и геокодирования:
Синтаксис
AnalyzeForSD (sddraft)
Параметр | Объяснение | Тип данных |
sddraft | Строка, представляющая путь и имя файла проекта определения сервиса (.sddraft). | 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 и инструментов геообработки в составе набора инструментов Публикация. Рабочий процесс начинается с документа карты, который необходимо опубликовать. Сначала с помощью функции arcpy.mapping CreateMapSDDraft создайте черновик определения сервиса. Затем воспользуйтесь функцией AnalyzeForSD, чтобы проанализировать черновик определения сервиса на предмет ошибок, которые могут помешать успешной публикации сервиса. После анализа черновика определения сервиса и устранения ошибок можно подготовить определение сервиса. В ходе подготовки в черновике определения сервиса консолидируется вся информация, необходимая для публикации сервиса в полном определении сервиса. Воспользуйтесь инструментом геообработки Организовать сервис для подготовки определения сервиса. Наконец, запустите инструмент геообработки Загрузить определение сервиса для отправки определения сервиса на сервер и публикации картографического сервиса.
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']