Авторизация сервиса геообработки повлечет за собой авторизацию задач, которые включает в себя сервис. Создание задачи – это выбор или создание инструмента, определяющего входные и выходные параметры задачи, а также местоположение данных, используемых задачей. Пошаговая инструкция:
- Выбор одного или нескольких инструментов геообработки, которые станут задачами сервиса. Можно использовать один из множества системных инструментов, имеющихся в ArcGIS, или создать собственные инструменты с помощью ModelBuilder или скрипта на языке Python.
- Получение входных данных, необходимых для запуска инструмента. Обычно эти наборы данных являются слоями в таблице содержания ArcMap.
- Выполнение инструмента для создания результата, который отображается в окне Результат.
- Определение символов входных и выходных наборов данных, если необходимо.
- Предоставление общего доступа к результату как к сервису геообработки. Для предоставления общего доступа к результату необходимо использовать Редактор сервиса, чтобы с его помощью определить режимы ввода наборов данных (описано ниже), а также другие свойства сервиса и его задач.
Пример: простая модель спроса и предложения
Далее приведен пример инструмента, созданного с помощью ModelBuilder,который становится задачей. Модель (и опубликованная задача) является очень простой моделью спроса и предложения, имеющей набор точек, представляющий предложение сервисов (например, аварийная служба или объекты розничной торговли), и еще один набор точек, представляющий спрос (например, жилые дома или офисные здания, нуждающиеся в сервисе). Эта модель назначает точки спроса ближайшему пункту обслуживания, создает полигон с торговой площадью для каждого пункта обслуживания и суммирует весь спрос в пределах торговой площади пункта обслуживания. Выходными данными является набор полигонов, по одному полигону для каждого входного пункта обслуживания с атрибутом, содержащим общую сумму спроса внутри полигона.
Обратите внимание, что в приведенной выше модели переменные Пункты обслуживания (Facilities), Спрос (Demand) и Выходные полигоны Тиссена (Output Thiessen Polygons) являются параметрами модели (у них в конце стоит буква P). Эти параметры модели становятся аргументами задачи, которые определяют клиенты задачи при ее выполнении.
Параметры модели появляются в диалоговом окне, как показано ниже, если открыть инструмент модели из окна Каталог.
Когда модель запускается как инструмент, результат записывается в окне Результаты, как показано ниже. Результат содержит всю информацию, необходимую ArcGIS для построения задачи.
- Имя и местоположение набора инструментов и инструмента, создавшего результат.
- Выходные данные (ThiessenPolys1) получаются в результате запуска инструмента.
- Схема (тип объекта и атрибуты) выходных данных.
- Символы выходных данных. В этом примере символами выходных данных являются градуированные цвета, зависящие от суммы спроса внутри каждого полигона.
- Входные данные для инструмента (слои Пожарные части (Fire Stations) и Скопления огнеопасных материалов (Hazardous Material Sites)).
- Схема (тип объекта и атрибуты) каждого набора входных данных. В этом примере Пожарные части (Fire Stations) имеют один текстовый атрибут: FacilityName. Скопления огнеопасных материалов (Hazardous Material Sites) также имеют один атрибут: Demand, длинное целое.
- Символы входных данных. В этом примере слой Пожарные части (Fire Stations) обозначен символом пожарной части для каждого местоположения, а Demand обозначен градуированными кругами.
- Параметры среды геообработки, использовавшиеся при работе инструмента.
Также необходимо помнить, что результат является частью сеанса ArcMap, поэтому он имеет доступ ко всем слоям и таблицам в Таблице содержания (Table Of Contents), а значит, доступ к этим слоям имеет и опубликованная задача. Таблица содержания, приведенная выше, содержит только два входных слоя и один выходной, но она может содержать гораздо больше слоев (например, слой объектов розничной торговли), которые можно сделать доступными для клиентов задачи.
Чтобы создать сервис геообработки и его первоначальную задачу, нужно щелкнуть правой кнопкой мыши Общий доступ > Сервис геообработки. Откроется мастер Общий доступ к сервису, в нем необходимо выбрать подключение к серверу и имя сервиса, после чего откроется Редактор сервиса. В Редакторе сервиса необходимо указать свойства и настройки сервиса, а также свойства параметров отдельной задачи. Ниже на рисунке показана настройка Режима ввода параметра Пункты обслуживания (Facilities). В этом примере для Режима ввода назначено Определяемое пользователем значение, что означает, что клиент должен задать набор точек с текстовым атрибутом FacilityName.
Главное здесь, что Редактор сервиса позволяет легко и эффективно определять входные и выходные данные задачи. Хотя это происходит в процессе предоставления общего доступа, это также может влиять на то, как вы создаете инструмент.
Пример: другие режимы ввода
Инструмент Построить таблицу соседних объектов (Generate Near Table) является системным инструментом, вычисляющим, какие объекты являются ближайшими к входным объектам, и записывающим результаты в таблицу. В этом примере инструмент Построить таблицу соседних объектов используется для того, чтобы записать все начальные школы, средние школы, пожарные части, продовольственные магазины и магазины розничной торговли, находящиеся в пределах пяти миль от какой-либо входной точки. В данном случае входными точками будут дома, выставленные на продажу. Это простой сервис, созданный для того, чтобы помочь покупателям оценить дома, выставленные на продажу. Все наборы входных данных являются слоями в таблице содержания ArcMap.
Когда общий доступ к результату предоставляется как к задаче геообработки, Ближайшие объекты могут стать Списком вариантов ближайших объектов для поиска, как показано ниже. Клиент должен будет указать один или несколько этих слоев. Например, клиента могут интересовать только ближайшие средние и начальные школы, а все остальные слои ему не нужны.
И наоборот, Ближайшие объекты могут быть фиксированными – Постоянное значение. В этом случае они больше не являются аргументом задачи, и клиент уже не может определять, какие Ближайшие объекты записывать. Он всегда будет получать таблицу со всеми ближайшими объектами.
Режимы ввода
В примерах, приведенных выше, было показано, как установить Режим ввода, являющийся отличным решением разработки и авторизации задачи. Установка режима ввода производится в Редакторе сервиса, поскольку он касается только задач геообработки и не затрагивает лежащий в основе инструмент. Для входных объектов существует три режима ввода:
- Определенное пользователем значение: клиент должен будет создать набор объектов, который будет передан через интернет и прочтен задачей. Когда Определенное пользователем значение задано, тип объектов, атрибуты, пространственная привязка и символы входного слоя хранятся с набором объектов. Клиенты могут извлечь схему и использовать ее для того, чтобы оцифровать объекты в набор объектов или загрузить объекты из файла на диске в набор объектов. Для входных таблиц существует соответствующий набор записей, который хранит схему атрибутов таблицы.
- Список вариантов: клиент может дать имя одному (или нескольким) слою, внесенному в список слоев. Может ли клиент ввести более одного слоя, зависит от инструмента. Инструмент Построить таблицу соседних объектов, показанный выше, позволяет нескольким слоям быть входными. Другие инструменты, например, Буфер (Buffer), позволяют делать входным только один инструмент из списка вариантов.
- Постоянное значение: задача использует значение, которое вы укажете при запуске инструмента. Использовать Постоянное значение, все равно что удалить параметр – слой (набор данных) используется внутри задачи и не будет доступен клиенту.
Пример: инструмент-скрипт
Можно создать задачу, используя инструмент-скрипт. На рисунке, приведенном ниже, показана страница свойств инструмента-скрипта, который выполняет ту же работу, что и простая модель спроса и предложения, о которой говорилось выше, но вместо ModelBuilder используется Python. Скрипт имеет те же параметры, что и модель, для создания задачи используется та же самая процедура: нужно запустить инструмент, чтобы создать результат, а затем предоставить общий доступ к результату как к сервису геообработки.
Проектные данные и хранение данных
Проектные данные — это термин, использующийся в геообработки для описания входных данных, которые не являются параметром. Т. е. эти данные не предоставляются пользователем инструмента или задачи, но предназначены для внутреннего использования инструментом или задачей. Например, переменная Набор сетевых данных Сан-Франциско в модели, приведенной ниже, является проектными данными, поскольку она используется моделью, но представлена как параметр. В основном, проектные данные в модели отмечаются синим овалом без буквы Р.
Проектные данные могут появляться как в скриптах, так и в коде Python, как показано ниже.
import arcpy
# The inputPoints variable is considered to be project data
# since it is not an input parameter.
#
inputPoints = r"c:\data\Toronto\residential.gdb\shelters"
arcpy.Buffer_analysis(inputPoints, 'shelterBuffers', '1500 Meters')
В Редакторе сервиса параметр входных данных, имеющий в качестве Режима ввода Постоянное значение, эквивалентен проектным данным. Это данные, используемые инструментом, но представленные как аргумент задачи. Можно представлять режим ввода Постоянное значение как удаление буквы Р в конце переменной в ModelBuilder.
Нельзя забывать о проектных данных при авторизации и предоставлении общего доступа к задаче, поскольку они должны быть доступны для сервера при запуске задачи. Сервисы геообработки обычно используют множество различных данных, обладающих различным местоположением. Весьма вероятно, что проблемы, возникающие с сервисом, могут быть связаны с доступом к проектным данным.
При публикации результата, процессы публикации сканируют все модели и скрипты, использовавшиеся для получения результата, и ищут проектные данные. Затем принимается решение, что делать с этими данными. Есть только два возможных варианта:
- Если проектные данные обнаружены в хранилище данных сервера, опубликованная задача будет использовать эти данные.
- Если проектные данные в хранилище данных сервера не обнаружены, они копируются на сервер и помещаются туда, где будут доступны для сервера (во входную директорию сервера), а опубликованная задача будет использовать эти скопированные данные. Скопированные данные не становятся частью хранилища данных сервера. Если опубликовать задачу повторно, данные будут скопированы вновь.
О хранилище данных
Каждая инсталляция ArcGIS for Server содержит хранилище данных. Хранилище данных – это способ, который используется, чтобы предоставить серверу список местоположений данных, к которым сервер имеет доступ. Если сервер имеет доступ к данным, данные, обнаруженные на локальной машине, не будут копироваться на сервер при публикации.
Дополнительные сведения о регистрации данных на сервере ArcGIS см. в разделах:
Ввод и вывод простых данных
Сервис GIS работает с самым простым из всех клиентов: веб-браузером, запущенным на компьютере и не имеющем каких-либо функций GIS. Эти простые клиенты знают лишь, как отправлять на сервер простые данные, например, текст, числа, таблицы, а также географические объекты и их атрибуты. Такие клиенты ничего не знают о расширенных представлениях географических данных в ArcGIS for Desktop, например, наборы сетевых данных, топологии, TIN, классы отношений, геометрические сети и т. д. Эти наборы данных известны как сложные. Они воспроизводят сложные связи между простыми объектами. Сложные наборы данных не могут быть переданы через интернет. Это можно сделать только с простыми объектами, таблицами, растрами и файлами.
При авторизации задачи необходимо помнить, что все клиенты, будь это веб-приложения, Explorer for ArcGIS или ArcGIS for Desktop, умеют только отправлять и получать (транспортировать) эти простые наборы данных. Даже если вы уверены, что работать с сервисом будут только умные клиенты, например, ArcMap, вы все равно должны будете использовать при авторизации задач простые входные данные.
Дополнительные сведения о наборах данных, которые можно и нельзя передавать, см. в разделе Режимы ввода и типы данных параметров.
Отображение результатов задачи с помощью картографического сервиса
При публикации сервиса геообработки можно выбрать просмотр результата задачи в виде карты (в дополнение к любым другим результатам задачи). Карта создается на сервере с помощью ArcMap, а затем отправляется обратно клиенту. Символы, надписи, прозрачность и все другие свойства возвращенной карты соответствуют свойствам выходного слоя текущего сеанса ArcMap. Процесс создания картографического сервиса для отображения результата очень простой:
- Запустите инструмент, чтобы создать результат в окне Результат. Любые данные, созданные инструментом, будут добавлены в таблицу содержания ArcMap в качестве слоя.
- Измените символы слоев, являющихся выходными данными инструмента.
- Щелкните результат правой кнопкой мыши и предоставьте общий доступ к результату как к сервису геообработки.
- В Редакторе сервиса щелкните Параметры и включите Просмотреть результат с помощью картографического сервиса.
Если выходной слой отображает уникальные значения, может потребоваться снять флажок с <все другие значения> в свойствах слоя, чтобы принудить пересчитать уникальные значения до отображения. Дополнительные сведения см. в разделе Создание файла символов слоя.
Документирование задачи
Обеспечить сервис и задачи хорошей документацией крайне важно, если вы стремитесь, чтобы сервис был доступен и понятен максимально широкой аудитории.
Документирование надо начинать с инструмента, который создал публикуемый результат. Каждый инструмент в системе имеет описание элемента, которое можно просматривать и редактировать, щелкнув инструмент правой кнопкой мыши в окне Каталог и выбрав Описание элемента.
Более подробно о документировании сервисов и задач геообработки
Параметры среды геообработки
Параметры среды геообработки являются дополнительными параметрами, влияющими на результаты работы инструмента. Они отличаются от нормальных параметров инструмента в том, что не появляются в диалоговом окне инструмента (с некоторыми исключениями). Скорее, они являются значениями, которые вы устанавливаете один раз, используя отдельное диалоговое окно, и которые запрашиваются и используются инструментами при запуске.
Иерархия параметров среды
Существует несколько способов, как можно изменить параметры среды, а те места, где производятся изменения, можно представить в виде уровней иерархии. Можно передвигаться по параметрам среды от уровня к уровню. Настройки, сделанные для каждого уровня, являются приоритетными, по сравнению с уровнем выше.
- Уровень приложения – щелкните в главном меню Геообработка > Параметры среды. Изменения, сделанные на этом уровне, отразятся на работе всех инструментов.
- Уровень инструмента – в диалоговом окне инструмента нажмите кнопку Параметры среды. Откроется диалоговое окно Параметры среды. Обратите внимание, что в диалоговом окне Параметры среды отображены все установки параметров среды вне зависимости от того, относятся они к инструменту, или нет. Чтобы, определить, относится ли параметр среды к инструменту, нужно открыть страницу справки по инструменту. Все установки, сделанные на этом уровне, заменят собой установки, произведенные на уровне приложения. Эти установки применяются лишь к работе инструмента. Установки уровня приложения перезаписаны не будут.
- Уровень модели, процесса модели или скрипта – на этом уровне вы получаете наивысший контроль над установками параметров среды. Вы можете изменить установки параметров среды для отдельного инструмента, для набора инструментов или для каждого инструмента в модели или скрипте. Все установки, сделанные на этом уровне, заменят собой установки, произведенные на уровне инструмента или приложения.
Настройки параметров среды хранятся в результате
Результат в окне Результаты хранит все настройки параметров среды, произведенные на уровне инструмента или приложения. При запуске задания на сервере используются установки параметров среды, хранящиеся в результате. Установки, произведенные на уровне модели или скрипта, в результате не отображаются, но тоже используются при запуске задания. Можно представить себе, что установки параметров среды, хранящиеся в результате, передаются в модель или инструмент-скрипт, который затем может переписать установки.