Пример сервиса геообработки: полигоны времени езды
Папка |
DriveTimePolygons |
Цель |
Создание полигонов времени езды (или расстояния) вокруг входных точек для данных значений времени езды |
Сервис |
DriveTimePolygonsService (сервис геообработки) |
Задача геообработки |
Вычисление полигонов времени езды |
Входные данные |
|
Выходные данные |
Один полигон, соответствующий каждому значению времени езды или расстояния для каждого пункта обслуживания |
Данные |
Используется набор сетевых данных по улицам для города Сан-Франциско, который предоставляется в папке ToolData |
Дополнительные модули |
|
Примечание |
Демонстрируются базовые действия, которые необходимо выполнить для настройки и использования серверной задачи, необходимой для создания зон обслуживания (эти действия аналогичны настройке сервиса решения задачи выбора маршрута транспорта или сервиса поиска ближайшего с использованием инструментов Решить задачу выбора маршрута транспорта (Solve Vehicle Routing Problem) или Найти ближайшие пункты обслуживания (Find Closest Facilities), соответственно). |
Соответствующая папка
Данные для этого руководства можно загрузить с сайта ArcGIS.com. Распакуйте данные в папку C:\arcgis\ArcTutor. Модель и некоторые сопутствующие данные хранятся в папке C:\arcgis\ArcTutor\GP Service Examples\Network Analyst\DriveTimePolygons. Набор сетевых данных, на который имеется ссылка в слое сетевого анализа модели, хранится в базе геоданных SanFrancisco, которая размещена в папке C:\arcgis\ArcTutor\GP Service Examples\Network Analyst\DriveTimePolygons.
О задаче вычисления полигонов времени езды
Основным назначением задачи вычисления полигонов времени езды является создание полигонов времени езды вокруг заданных пользователем точек. Полигон времени езды – это регион, который охватывает все доступные улицы, которые можно достичь за указанное время езды от заданной точки. Полигоны времени езды могут использоваться для оценки доступности точки применительно к некоторым другим функциям. Например, одно-, двух-, трех-минутные полигоны времени езды вокруг супермаркета могут использоваться для определения людей, которые вероятнее всего приедут в этот магазин.
Существуют два инструмента геообработки для создания зон обслуживания: Создать слой зоны обслуживания (Make Service Area Layer) и Создать зоны обслуживания (Generate Service Areas). В этом примере используется инструмент Создать зоны обслуживания (Generate Service Areas), так как он предназначен для упрощения создания сервисов зоны обслуживания и оптимизации производительности механизма расчета в серверной среде. Еще одним преимуществом инструмента Создать зоны обслуживания (Generate Service Areas) является наличие параметров регулирования, которые позволяют ограничивать обработку и использование пропускной способности сервером путем ограничения размеров задач, связанных с зонами обслуживания, запрашиваемых клиентами. Например, в этом примере задается значение параметра Максимальное число пунктов обслуживания (Maximum Facilities), равное 10, чтобы сервер автоматически отклонял любые запросы на решение задачи зоны обслуживания с более чем 10 пунктами обслуживания.
Данные
Набор сетевых данных для данного примера размещён в C:\arcgis\ArcTutor\GP Service Examples\Network Analyst\SanFrancisco.gdb, а документы карты, набор инструментов и другие сопутствующие данные хранятся в C:\arcgis\ArcTutor\GP Service Examples\Network Analyst\DriveTimePolygons.
Сетевой набор данных (Network dataset)
Папка ArcGIS Network Analyst содержит файловую базу геоданных SanFrancisco.gdb. В наборе данных объектов Транспорт (Transportation) содержится набор сетевых данных Streets_ND. Этот набор сетевых данных моделирует сеть улиц города Сан-Франциско. В нем предоставляется ряд атрибутов сети, включая TravelTime, который указывает время на пересечение каждого сегмента улиц в минутах, и Meters, который указывает длину каждого сегмента улиц.
Набор инструментов и документы карты
Набором инструментов для сервиса геообработки является DriveTimePolygonsService.tbx.
Два документа карты, DriveTimePolygonsService.mxd и UsingDriveTimePolygonsService.mxd, включены для удаления второстепенных действий в этом рабочем процессе, таких как добавление слоев, вписание экстентов карты в изучаемую область и т. п.
Модель
Обзор модели
Модель вычислений полигонов времени езды, которая содержится на панели инструментов DriveTimePolygonsService, приведена ниже. Существуют четырех входных переменных:
- Входные пункты обслуживания – это центры создаваемых полигонов времени езды. (В сетевом анализе пункт обслуживания – это любое фиксированное местоположение в сети, например здание или текущее местоположение.)
- Граничные значения (Break Values) – это список значения времени езды или расстояний, разделенных пробелами.
- Единицы разрывов (Break Units) определяют единицы измерения для параметра Граничные значения определяют, создаются ли полигоны времени езды или полигоны расстояния. Полигоны времени езды создаются при выборе единиц измерения времени; полигоны расстояния создаются для единиц измерения расстояния.
- Наложение полигонов (Polygon Overlap) указывает, создается ли каждое значение границы на основе пункта обслуживания (ДИСКИ) или на основе окончания предыдущей границы (КОЛЬЦА). Эта переменная влияет только на выходные данные для зон обслуживания, которые имеют несколько границ для одного пункта обслуживания.
Инструмент Создать зоны обслуживания (Generate Service Areas) в этой модели создает слой анализа сети зоны обслуживания, добавляет оцифрованные пользователем точки в качестве пунктов обслуживание, выполняет операцию решения и выводит полигоны времени езды.
Элемент |
Тип |
Описание |
---|---|---|
Пункты обслуживания (Facilities) | Набор объектов (точки), входной параметр | Точечные объекты, вокруг которых строятся полигоны времени езды |
Граничные значения |
Строка, входной параметр |
Список значений времени езды или расстояний, разделенных пробелами |
Единицы разрывов | Строка, входной параметр | Единицы измерения граничных значений |
Тип перекрытия полигонов | Строка, входной параметр | Указывает, следует ли создавать концентрические полигоны зон обслуживания в виде дисков или колец при наличии нескольких граничных значений |
Полигональные барьеры |
Набор объектов (полигоны) |
Полигональные объекты, которые запрещают прохождение или масштабируют стоимость покрываемых ими сетевых ребер |
Линейные барьеры |
Набор объектов (линии) |
Линейные объекты, которые запрещают прохождение или масштабируют стоимость покрываемых ими сетевых ребер |
Точечные барьеры |
Набор объектов (точки) |
Точечные объекты, которые добавляют стоимость или запрещают прохождение через точку в сети |
Streets_ND | Слой набора сетевых данных | Слой набора сетевых данных, для которого вычисляются зоны обслуживания |
Значения Параметра атрибутов |
Набор записей |
Значения параметров для параметризованных атрибутов сети |
Инструмент | Создает и решает анализ зоны действия | |
SolveSucceeded | Логический | Производные выходные данные, которые указывают, было ли решение успешным |
Полигоны | Векторный слой, выходной параметр | Выходной уровень полигонов, представляющий зоны обслуживания |
Обзор рабочего процесса
Общий рабочий процесс публикации механизма расчета зоны обслуживания в качестве сервиса геообработки приведен ниже.
- Добавьте инструмент Создать зоны обслуживания (Generate Service Areas) в ModelBuilder.
- Определите, какие параметры должны быть доступны для определения клиентами, затем предоставьте их в качестве параметров модели.
- Документируйте параметры в диалоговом окне Описание элемента (Item Description) данной модели.
- Запустите модель в ArcMap один раз.
- В окне Результаты (Results) ArcMap опубликуйте модель в качестве сервиса геообработки.
Использование набора сетевых данных
Набор сетевых данных для города Сан-Франциско добавляется в документ карты DriveTimePolygonsService в качестве слоя набора сетевых данных (Streets_ND). Этот слой используется в модели в качестве входной переменной для инструмента Создать зоны обслуживания (Generate Service Areas). Использование сетевого слоя значительно улучшает общее время выполнения модели, так как подключение к набору сетевых данных поддерживается слоем набора сетевых данных всегда открытым. В противном случае, если имеется ссылка на размещение набора сетевых данных на диске, подключение к набору сетевых данных осуществляется каждый раз при выполнении модели, что снижает производительность сервиса геообработки, созданного с помощью модели.
Процессы модели
Инструмент Создать зоны обслуживания (Generate Service Areas) создает слой зоны обслуживания ArcGIS Network Analyst (NA), который содержит свойства анализа, ссылается на слой набора сетевых данных Streets_ND, использующийся для анализа, и сохраняет входные пункты обслуживания и выходные полигоны. Набор сетевых данных имеет атрибут сетевой стоимости TravelTime, который определяет время, необходимое на пересечение каждого сегмента улиц. Аналогично, в этом наборе есть стоимостной атрибут Метры (Meters), который указывает длину каждого сегмента улиц. На один из этих двух стоимостных атрибутов содержится ссылка в анализе для создания полигонов времени езды или расстояния. На какой из атрибутов содержится ссылка зависит от того, задано ли значение переменной Единицы разрывов (Break Units) как время или расстояние: единицы измерения времени приводят к использованию атрибута TravelTime, а единицы измерения расстояния приводят к использованию атрибута Meters. Инструмент осуществляет все необходимые конвертации единиц измерения.
Граничные значения по умолчанию считываются из переменной Граничные значения (Break Values), которая представляет собой список значений, разделенных пробелами.
Для этого сервиса использовалась опция NO_MERGE в целях создания перекрывающихся полигонов, которые не объединяются для каждого пункта обслуживания.
Параметр Пункты обслуживания (Facilities) является типом данных набора объектов, так что модель может интерактивно принимать оцифрованные пользователем точки в качестве пунктов обслуживания.
Инструмент вычисляет зону обслуживания на основе опций, указанных во входных параметров, и создает полигоны времени езды. Вычисленные полигоны записываются в выходной слой полигонов.
Возможности сервиса
Параметры в разделе Функции сервиса (Service Capabilities) диалогового окна инструмента предназначены для ограничения требований к обработке и хранению со стороны клиентских запросов. Они включают определенное поведение. Например, так как параметр Максимальное число пунктов обслуживания (Maximum Facilities) для этой модели имеет значение 10, результирующий сервис проверит, какое количество пунктов обслуживания создал пользователь. Если создано 10 пунктов обслуживания и менее, зоны обслуживания будут созданы. Однако если создано больше 10 пунктов обслуживания, сервис незамедлительно закончит работу.
Все прочие параметры функции сервиса работают аналогичным образом за исключением Применить иерархию за пределами значения времени разрыва (Force Hierarchy beyond Break Time Value) и Применить иерархию за пределами значения расстояния разрыва (Force Hierarchy beyond Break Distance Value). Последние два параметра отключены, так как этот набор сетевых данных для Сан-Франциско не имеет иерархического атрибута. Если бы такой атрибут присутствовал и не выполнялась бы проверка параметра Использовать иерархию в анализе (Use Hierarchy in Analysis), можно было бы принудительно преобразовать зону обслуживания в иерархическую зону обслуживания при передаче более больших граничных значений. Преимущество такого подхода состоит в том, что иерархические зоны обслуживания (хоть и являются менее точными) требуют гораздо меньшей обработки, чем неиерархические зоны обслуживания.
Описание элемента
Документируя описание элемента (Item Description) модели геообработки, вы также документируете результирующий сервис и его параметры, так как мастер публикации копирует текст в описание элемента используемого сервиса. Описание или документирование сервиса является обязательной процедурой, призванная помочь пользователям понять, как можно успешно взаимодействовать с сервисом и создавать зоны обслуживания. Модель в этом примере имеет документацию; ее можно просмотреть, щелкнув правой кнопкой мыши модель геообработки в окне Каталог (Catalog) и выбрав пункт Описание элемента (Item Description).
Публикация
Сервис геообработки публикуется, как описано в приведенных ниже пошаговых инструкциях.
- Откройте DriveTimePolygonsService.mxd. Местом по умолчанию для руководств является C:\arcgis\ArcTutor\GP Service Examples\ArcGIS Network Analyst\DriveTimePolygons.
- Запустите модель геообработки Вычисление полигонов времени езды.
- В окне Каталог (Catalog) разверните DriveTimePolygonsService.tbx, затем дважды щелкните инструмент Вычислить полигоны времени езды (Calculate Drive-Time Polygons).
- В диалоговом окне инструмента Вычислить полигоны времени езды (Calculate Drive-Time Polygons) щелкните символ рядом с Пунктами обслуживания (Facilities), затем щелкните карту, чтобы добавить пункт обслуживания.
- Щелкните ОК, чтобы создать зоны обслуживания.
- Откройте окно Результаты (Results), щелкнув Геообработка > Результаты.
- В окне Результаты (Results), разверните пункт Текущий сеанс (Current Session).
- Щелкните правой кнопкой мыши пункт CalculateDriveTimePolygons (вслед за которым следует время и дата запуска модели) и выберите Общий доступ как (Share As) > Сервис геообработки (Geoprocessing Service).
- В диалоговом окне Опубликовать как сервис (Share as Service) щелкните кнопку Далее (Next).
- Выберите в раскрывающемся списке подключение к ArcGIS for Server с функциями издателя или выполните подключение с помощью кнопки, расположенной справа от раскрывающегося списка.
- Щелкните Далее (Next).
- Выберите публикацию сервиса в корневую папку или укажите другую папку, затем нажмите кнопку Продолжить (Continue).
Появится диалоговое окно Редактор сервисов (Service Editor). В качестве описания сервиса копируется текст из описания элемента модели геообработки. Он доступен для редактирования в разделе Описание элемента (Item Description) диалогового окна, а также в разделах непосредственно над ним (Пункты обслуживания (Facilities), Граничные значения (Break Values) и т. д.).
- Щелкните пункт Параметры (Parameters), который располагается на левой панели диалогового окна Редактор сервисов (Service Editor), затем выберите пункт Предупреждение (Warning) в раскрывающемся списке Уровень сообщений (Message Level).
Любая ошибка или предупреждения, возникшие во время выполнения модели в качестве сервиса, будут переданы клиенту.
- Щелкните Анализировать для просмотра любых предупреждений или сообщений об ошибках в окне Издатель (Publisher).
Если не настроено хранилище данных, появится предупреждение о том, что данные будут скопированы на сервер. Могут также появиться другие сообщения. Предупреждения можно игнорировать; ошибки – нет. Щелкните любое сообщение об ошибке правой кнопкой мыши в окне Издатель (Publisher), чтобы получить справку по решению той или иной неполадки.
- Щелкните Опубликовать (Publish) в диалоговом окне Редактор сервисов (Service Editor).
Может незамедлительно появиться диалоговое окно, информирующее о копировании Streets_ND на сервер. После успешной публикации сервиса отображается диалоговое окно Успешно (Succeeded).
- Нажмите ОК.
Использование
- Откройте UsingDriveTimePolygonsService.mxd.
Обратите внимание, что эта карта отображает слой базовой карты ArcGIS Online с масштабированием в области Сан-Франциско.
- Создайте пользовательское подключение к ArcGIS for Server из окна Каталог (Catalog), если таковое еще не существует.
- Разверните пользовательское подключение, затем разверните набор инструментов DriveTimePolygonsService.tbx.
- Откройте инструмент Вычислить полигоны времени езды (Calculate Drive-Time Polygons), дважды щелкнув его.
- Добавьте точку для создания пункта обслуживания.
- Укажите 2 3 4 в качестве значений времени езды, затем нажмите кнопку OK, чтобы выполнить задачу.
ArcGIS for Server получает запрос, решает анализ и возвращает слой Полигоны, который содержит результирующую зону обслуживания.
- Включите слой Полигоны, чтобы сделать его видимым.
Уделите время изучению результатов выполнения задачи в окне Результаты (Results).
Дополнительно можно повторно выполнить анализ, но добавить более 10 пунктов обслуживания, чтобы просмотреть, заблокируют ли запрос функции сервиса.