CreateGeocodeSDDraft (arcpy)

Краткая информация

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

ПримечаниеПримечание:

Проект определения сервиса не содержит данные. Проект сервиса сам по себе не может использоваться для публикации сервиса.

Обсуждение

CreateGeocodeSDDraft – это первый шаг для автоматизации публикации локатора адресов в сервис геокодирования с помощью ArcPy. Результатом работы CreateGeocodeSDDraft является файл черновика определения сервиса (Service Definition Draft) (.sddraft). Черновик определения сервиса – это комбинация свойств локатора адресов, информации о сервере и набора свойств сервиса.

Для всех сервисов геокодирования необходим локатор адресов. Локатор адресов – это основной инструмент геокодирования в ArcGIS, который содержит все данные, необходимые для выполнения сопоставления адресов. Можно использовать ArcCatalog, окно Каталог (Catalog) в ArcGIS for Desktop или инструмент геообработки Создать локатор адресов (Create Address Locator), чтобы создать локатор адресов. Пошаговые инструкции см. в разделе справки по ArcGIS Создание локатора адресов (Creating an address locator). Составные локаторы, объединяющие несколько локаторов в одном, также могут быть опубликованы на ArcGIS Server. Дополнительные сведения см. в разделе Создание составного локатора адресов.

Информация о сервере включает подключение к серверу, тип сервера, на который выполняется публикация, метаданные для сервиса (информация об элементе Item) и ссылки на данные (копируются данные на сервер или нет).

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

ПримечаниеПримечание:

Свойства слияния для сервисов, такие как минимальное или максимальное количество экземпляров, которые могут работать на одном компьютере, не используются в качестве параметров для данной функции. Если вам необходимо изменить значения (или любой другой параметр, который не представлен), вам необходимо опубликовать сначала sddraft, а затем изменить черновик путем редактирования файла .sddraft с помощью библиотек XML, таких как xml.dom.minidom. Ознакомьтесь с примером изменения черновика sddraft для использования библиотеки. Хотя этот пример предназначен для черновика картографического сервиса, вы можете использовать ту же библиотеку и метод для черновика сервиса геокодирования, поскольку он представлен в виде файла XML.

Эта функция возвращает словарь с ошибками и другими потенциальными проблемами, которые необходимо устранить до создания вашего файла определения сервиса Service Definition.

Проект определения сервиса можно создать без информации о подключении к серверу. В этом случае параметр connection_file_path можно опустить, однако следует предоставить параметр server_type. Подключение к серверу можно задать позже, когда черновик определения сервиса уже опубликован с помощью инструмента Загрузить определение сервиса (Upload Service Definition).

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

Синтаксис

CreateGeocodeSDDraft (loc_path, out_sddraft, service_name, {server_type}, {connection_file_path}, {copy_data_to_server}, {folder_name}, {summary}, {tags}, {max_candidates}, {max_batch_size}, {suggested_batch_size}, {supported_operations})
ПараметрОбъяснениеТип данных
loc_path

Текстовая строка, представляющая путь каталога к локатору адресов. Допустимые форматы для локатора адресов – это файлы локатора (.loc) в папке файлов или локаторы в базе геоданных.

String
out_sddraft

Строка, представляющая путь и имя файла для выходного файла черновика определения сервиса (Service Definition Draft) (.sddraft).

String
service_name

Строка, представляющая имя сервиса. Это имя будут видеть пользователи и идентифицировать по нему сервис. Имя может содержать только буквы, цифры и подчеркивания. В имени нельзя использовать пробелы и специальные символы. Длина имени не должна превышать 120 символов.

String
server_type

Строка, представляющая тип сервера. Если параметр connection_file_path не указан, то должен быть предоставлен параметр server_type. Если параметр connection_file_path указан, то параметр server_type берется из файла подключения. В этом случае можно выбрать FROM_CONNECTION_FILE или пропустить весь параметр.

  • ARCGIS_SERVERТип сервера ArcGIS for Server.
  • FROM_CONNECTION_FILEПолучить server_type, как указано в параметре connection_file_path.

(Значение по умолчанию — ARCGIS_SERVER)

String
connection_file_path

Строка, содержащая путь и имя файла подключения ArcGIS for Server (.ags).

Новый файл подключения должен быть создан, используя функцию CreateGISServerConnectionFile.

String
copy_data_to_server

Логический параметр, указывающий на то, будут ли данные, связанные с локатором адресов, скопированы на сервер или нет. Параметр copy_data_to_server используется, только если не заданы параметры server_type is ARCGIS_SERVER и connection_file_path. Если параметр connection_file_path указан, используются зарегистрированные хранилища данных сервера. Например, если данные в локаторе адресов зарегистрированы на сервере, то значением copy_data_to_server всегда будет False. И наоборот, если данные в локаторе адресов не зарегистрированы на сервере, то значением copy_data_to_server всегда будет True.

(Значение по умолчанию — False)

Boolean
folder_name

Строка, представляющая имя папки, в которой требуется опубликовать определение сервиса. Если папка не существует, она будет создана, когда определение сервиса будет опубликовано, как сервис. Папкой по умолчанию является корневая папка сервера.

(Значение по умолчанию — None)

String
summary

Строка, представляющая сводку описания элемента.

Используйте этот параметр для замены сводки пользовательского интерфейса или предоставления сводки, если она не существует.

(Значение по умолчанию — None)

String
tags

Строка, представляющая теги описания элемента.

Используйте этот параметр для замены тегов пользовательского интерфейса или введения тегов, если они отсутствуют. Чтобы указать несколько тегов, разделите теги в строке с помощью запятых.

(Значение по умолчанию — None)

String
max_candidates

Максимальное число кандидатов, возвращаемое сервисом при геокодировании одного адреса.

(Значение по умолчанию — 500)

Integer
max_batch_size

Максимальное число записей, обрабатываемое каждым пакетным заданием при выполнении пакетного геокодирования.

(Значение по умолчанию — 1000)

Integer
suggested_batch_size

Рекомендуемое число записей для каждого пакетного задания при выполнении пакетного геокодирования.

(Значение по умолчанию — 1000)

Integer
supported_operations
[supported_operations,...]

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

  • GEOCODE – этот сервис разрешает операции геокодирования.
  • REVERSE_GEOCODE – этот сервис разрешает операции обратного геокодирования.

Например, чтобы указать, что сервис поддерживает только операции геокодирования и не разрешает операций обратного геокодирования, этот параметр должен быть установлен на ["GEOCODE"].

(Значение по умолчанию — [GEOCODE, REVERSE_GEOCODE])

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

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

Пример кода

Публикация сервиса геокодирования

Следующий скрипт демонстрирует полный рабочий процесс для публикации адресного локатора, как сервиса геокодирования. Первым шагом в рабочем процессе публикации является создание файла черновика определения сервиса (.sddraft) из адресного локатора с помощью функции CreateGeocodeSDDraft. Следующим шагом является создание файла определения сервиса (.sd) из файла черновика определения сервиса с помощью функции StageService. Последним шагом является публикация файла определения сервиса в качестве сервиса на ГИС-сервер с помощью функции UploadServiceDefinition.

import arcpy
import pprint

#Overwrite any existing outputs
arcpy.env.overwriteOutput = True

locator_path = "C:\\Data\\Locators\Atlanta"
sddraft_file = "C:\\Output\\Atlanta.sddraft"
sd_file = "C:\\Output\\Atlanta.sd"
service_name = "Atlanta"
summary = "Address locator for the city of Atlanta"
tags = "address, locator, geocode"
gis_server_connection_file = "C:\\Data\\server_connection.ags"

#Create the sd draft file
analyze_messages  = arcpy.CreateGeocodeSDDraft(locator_path, sddraft_file, service_name,
                           connection_file_path=gis_server_connection_file,
                           summary=summary, tags=tags, max_result_size=20,
                           max_batch_size=500, suggested_batch_size=150)

#stage and upload the service if the sddraft analysis did not contain errors
if analyze_messages['errors'] == {}:
    try:
        # Execute StageService to convert sddraft file to a service definition (sd) file 
        arcpy.server.StageService(sddraft_file, sd_file)
        # Execute UploadServiceDefinition to publish the service definition file as a service
        arcpy.server.UploadServiceDefinition(sd_file, gis_server_connection_file)
        print "The geocode service was successfully published"
    except arcpy.ExecuteError as ex:
        print "An error occured"
        print arcpy.GetMessages(2)
else: 
    # if the sddraft analysis contained errors, display them
    print "Error were returned when creating service definition draft"
    pprint.pprint(analyze_messages['errors'], indent=2)
5/10/2014