Поворот моделирует перемещение от одного элемента ребра к другому. Часто повороты создаются для увеличения стоимости поворотного движения или полного запрещения поворотов. Например, объекту поворота, являющемуся поворотом налево на пересечении, может быть присвоена 30-секундная стоимость, чтобы смоделировать среднее время, необходимое для смены цвета освещения поворота налево на зеленый. Также атрибут ограничения может считать значение поля из объекта поворота, чтобы запретить его. Это бывает полезно, когда движение поворота считается недопустимым (повороты налево ограничены).
Повороты можно создавать на любом соединении, где стыкуются ребра. На каждом соединении сети есть возможные повороты, число которых равно n², где n – это количество ребер, соединенных в этом соединении. Даже на соединении с одним ребром можно создать один разворот.
Многореберные повороты
Простое движение поворота между двумя ребрами, соединенными на соединении, называется двухреберным поворотом. Дополнительный модуль ArcGIS Network Analyst поддерживает моделирование поворотов с несколькими ребрами. Многореберный поворот – это движение от одного элемента ребра сети к другому по последовательно соединенным промежуточным элементам ребра. Эти промежуточные ребра являются внутренними ребрами поворота. В сети улиц внутренние ребра поворота обычно являются элементами ребра, которые представляют собой внутреннюю область пересечения фрагментов дорог.
На примере внизу изображен многореберный поворот налево на пересечении двух фрагментов дорог. Ребра c и d являются внутренними ребрами поворота, а ребра f и i являются внешними.
Развороты
Разворот – это движение от элемента ребра из одного из его концов с возвратом в него же. Разворот обычно моделируется как поворот с двумя записями в последовательности ребер, в которой обе записи являются одним и тем же элементом ребра.
При работе с фрагментами дорог разворот моделируется в виде многореберного поворота, в котором ребра f и e являются внешними, а ребра c, d и a внутренними.
Правильно определенные повороты
Поворот можно использовать в сети только, если он правильно определен. Правильно определенный поворот должен соответствовать следующим правилам:
- Поворот – это последовательность не менее двух ребер. Разворот – это движение от ребра к самому себе.
- Первое или последнее ребро (любое внешнее ребро) в повороте не может быть внутренним ребром другого поворота. В примере, приведенном в предыдущем разделе, поворот не может начинаться (или заканчиваться) ребрами a, d или c.
- Каждое ребро в последовательности соединено со следующим ребром в последовательности. Такая последовательность представляет собой «цепь» соединенных ребер без ответвлений. Внутри поворота любое ребро (внешнее или внутреннее) может быть соединено только с одним ребром. В приведенном выше примере внутри разворота (f-c-d-a-e) ребро d соединено только с ребром a.
- Внутренние ребра могут быть поделены между поворотами. В приведенном выше примере внутренние ребра c и d поделены между разворотом (f-c-d-a-e) и поворотом налево (f-c-d-i). Внутренние ребра одного поворота становятся внутренними ребрами всех поворотов.
- Два объекта поворота не могут являться одним и тем же движением поворота. Это значит, что два поворота не могут иметь одни и те же первые и последние внешние ребра.
- Объекты поворотов не должны начинаться или заканчиваться в верхней части соединения.
Объекты поворотов
В дополнительном модуле ArcGIS Network Analyst повороты моделируются как объекты в классе пространственных объектов-поворотов. Класс пространственных объектов-поворотов – это обычный класс линейных объектов, входящий в состав типового объекта поворота Esri.
За пределами сети класс пространственных объектов-поворотов не существует. Чтобы воспользоваться его информацией, необходимо добавить его в набор сетевых данных. Добавить класс пространственных объектов-поворотов к сети можно, если он будет входить в тот же набор данных объекта, что и другие источники объекта набора сетевых данных. В среде шейп-файла класс пространственных объектов-поворотов должен находиться в той же директории (рабочая область шейп-файлов) и иметь ту же пространственную привязку, что и источники объектов ребер в наборе сетевых данных. В наборе сетевых данных может содержаться несколько классов пространственных объектов-поворотов. Источник объектов поворотов не входит в группы связности. Он также не обладает данными о поле высоты. Созданные пользователем поля класса пространственных объектов-поворотов можно использовать при работе с сетевым атрибутом анализатора Поле (Field) так же, как и поля из других источников класса объекта.
При создании класса пространственных объектов-поворотов можно указать максимальное число ребер, поддерживаемых поворотом. Поворот имеет, как минимум, два ребра. Network Analyst поддерживает повороты, состоящие максимум из 50 ребер. Максимальное стандартное число ребер составляет 5 шт.
Более подробно о создании нового класса пространственных объектов-поворотов
Схема класса пространственных объектов-поворотов
В следующей таблице описаны поля класса пространственных объектов-поворотов, поддерживающего не более пяти ребер.
Field | Описание |
---|---|
OBJECTID | Число внутренних объектов поворота. |
SHAPE | Геометрия пространственного объекта-поворота. |
Edge1End | Показывает, проходит ли поворот через конец первого ребра (Y означает, что поворот проходит через конец первого ребра, а N означает, что поворот проходит через начало первого ребра). |
Edge1FCID | Идентификатор (ID) класса объектов линейного объекта, обозначающий первое ребро поворота. |
Edge1FID | Идентификатор (ID) объектов линейного объекта, обозначающий первое ребро поворота. |
Edge1Pos | Положение вдоль линейного объекта, обозначающее первое ребро поворота. Для линейного объекта, представляющего собой несколько ребер, который можно создать с помощью линий со связностью с любой вершиной или точек с политикой замещения, это местоположение означает, какой из элементов ребра объекта является первым ребром в повороте. |
Edge2FCID | Идентификатор (ID) класса объектов линейного объекта, обозначающий второе ребро поворота. |
Edge2FID | Идентификатор (ID) объектов линейного объекта, обозначающий второе ребро поворота. |
Edge2Pos | Положение вдоль линейного объекта, обозначающее второе ребро поворота. |
Edge3FCID | Идентификатор (ID) класса объектов линейного объекта, обозначающий третье ребро многореберного поворота с тремя или более ребрами. |
Edge3FID | Идентификатор (ID) объектов линейного объекта, обозначающий третье ребро многореберного поворота с тремя или более ребрами. |
Edge3Pos | Положение вдоль линейного объекта, обозначающее третье ребро многореберного поворота с тремя или более ребрами. |
Edge4FCID | Идентификатор (ID) класса объектов линейного объекта, обозначающий четвертое ребро многореберного поворота с четырьмя или более ребрами. |
Edge4FID | Идентификатор (ID) объектов линейного объекта, обозначающий четвертое ребро многореберного поворота с четырьмя или более ребрами. |
Edge4Pos | Положение вдоль линейного объекта, обозначающее четвертое ребро поворота с четырьмя или более ребрами. |
Edge5FCID | Идентификатор (ID) класса объектов линейного объекта, обозначающий пятое ребро многореберного поворота с пятью или более ребрами. |
Edge5FID | Идентификатор (ID) объектов линейного объекта, обозначающий пятое ребро многореберного поворота с пятью или более ребрами. |
Edge5Pos | Положение вдоль линейного объекта, обозначающее пятое ребро поворота с пятью или более ребрами. |
Поля OBJECTID, SHAPE и Edge1End присутствуют во всех классах пространственных объектов-поворотов. Различия других полей зависят от максимального числа поддерживаемых ребер. Класс пространственных объектов-поворотов, поддерживающий максимуму шесть ребер, помимо перечисленных выше полей, будет содержать поля Edge6FCID, Edge6FID и Edge6Pos.
Можно также добавить другие поля в класс пространственных объектов-поворотов. Например, обычно добавляют поле, в котором указывается среднее время, необходимое на выполнение поворота. Анализатор поля стоимостного атрибута, основанного на времени в наборе сетевых данных, может считать задержку из класса пространственных объектов-поворотов и включить его в сетевую стоимость.
Таблицы и объекты поворотов
ARC/INFO и ArcView GIS (предшественники ArcGIS) использовали таблицы поворотов для моделирования движений поворота. В этих таблицах данные о двойных поворотах хранились в виде строк. Также в них содержалось поле для импеданса времени. Отрицательный импеданс означал, что поворот ограничен.
В приведенном выше примере показано, как обычные движения поворота отображались с помощью таблиц поворотов. В дополнительном модуле ArcGIS Network Analyst каждая из этих ситуаций представляется объектами-поворотами.
- Разворот - этот разворот может быть представлен в виде объекта поворота с теми же первым и последним ребрами. Также класс пространственных объектов-поворотов содержит поле Turn Impedance, в котором хранится импеданс в 20 секунд для указанного поворота.
- Знак остановки. Три строки таблицы поворотов могут быть представлены в виде трех объектов поворота, а именно: одним поворотом налево с импедансом поворота в 20 секунд, одним поворотом направо с импедансом поворота в 10 секунд и проездом прямо с импедансом поворота в 15 секунд.
- Поворот направо запрещен (No Right Turn) – класс объектов поворота может иметь поле, которое может считываться полем оценки для атрибута ограничения в наборе сетевых данных. Это позволяет моделировать запрещенные повороты, например, запрещенный поворот направо.
ArcGIS предоставляет инструменты для импорта существующих таблиц поворотов в классы пространственных объектов-поворотов. Это также справедливо, если у вас есть таблицы поворота из ARC/INFO или ArcView GIS.
Атрибуты поворота
Повороты могут обладать атрибутами, содержащими данные о движении по сети. Атрибуты поворота можно использовать для задания, например, временной стоимости поворота или наличие ограничений. Атрибуты поворота определены оценками аналогично атрибутам ребра; однако, так как повороты являются направленными, они имеют оценки только для направления вдоль направления, а не против его.
Глобальные повороты
Предполагаемый глобальный поворот присутствует на каждом переходе между двумя ребрами в сети, в которой отсутствует объект поворота. Можно присвоить значения атрибута глобальным поворотам, указав анализатор задержки глобального поворота для стандартных значений элементов поворота.