Использование параметров с атрибутами сети
Значения атрибутов сети иногда зависят от переменных условий. Например, высота транспортного средства может определять проходимость участка дороги с низкой эстакадой. Погодные условия могут снизить скорость хода и, таким образом, повлиять на стоимость времени сети. Можно смоделировать ограничения на основании высоты транспортного средства, стоимость перемещения – на основании коэффициентов масштаба и другие переменные аспекты анализа сети с помощью одного из двух подходов. Первый способ – создать атрибут сети для каждого варианта высоты или погодных условий. Но такой подход неудобен из-за большого количества комбинаций. Более универсальный подход – использование одного атрибута сети с параметром, который содержит переменный аспект атрибута.
Параметры – это прототипы значений, которые можно изменить для выполнения определенного анализа. Каждый из них имеет подходящее значение по умолчанию, которое замещается пользователем при необходимости. В ArcCatalog параметры добавляются к сетевым атрибутам и ссылаются на оценку атрибутов. Значения параметров можно изменить в ArcMap при установке неполадок в сети для того, чтобы значения атрибутов сети можно было определить во время выполнения с помощью выражения и текущего значения параметра.
Способ параметризации работы атрибутов сети
Параметризованный атрибут сети содержит оценку, которая использует параметр для атрибута сети, также как и другой атрибут сети для определения его значения.
Поскольку значения параметров могут измениться во время работы, значения атрибутов сети не записываются в базу данных. Эти значения рассчитываются по запросу. Следовательно, набор сетевых данных не перестраивается при изменении значения параметра.
Параметры по атрибутам ограничений
Параметр «Использование ограничения» (Restriction Usage) по умолчанию
Один параметр автоматически добавляется к любому созданному атрибуту ограничения: Использование ограничения (Restriction Usage). Он указывает на случаи, когда перемещения по элементам, использующим это ограничение, запрещается, предупреждается или предпочитается. При предупреждении или предпочтении элемента необходимо указать степень этого действия. Обычно, параметру «Использование ограничения» назначается одно из следующих значений (числовое значение в скобках описано в разделе после списка):
- Запрещено – (-1) прохождение соответствующих элементов сети полностью запрещено. Это наиболее часто используемое ограничение.
- Избегать: Высокая степень – (5) Очень маловероятно, что при расчете используются сетевые элементы, связанные с этим ограничением.
- Избегать: Средняя степень – (2) Маловероятно, что при расчете используются сетевые элементы, связанные с этим ограничением.
- Избегать: Низкая степень – (1.3) Достаточно маловероятно, что при расчете используются сетевые элементы, связанные с этим ограничением.
- Предпочитать: Низкая степень – (0.8) Достаточно вероятно, что при расчете используются сетевые элементы, связанные с этим ограничением.
- Предпочитать: Средняя степень – (0.5) вероятно, что при расчете используются сетевые элементы, связанные с этим ограничением.
- Предпочитать: Высокая степень – (0.2) очень вероятно, что при расчете используются сетевые элементы, связанные с этим ограничением.
Каждый из этих семи текстовых значений, по сути, представлен фиксированным числовым значением, показанным в круглых скобках в приведенном выше списке. Имеющихся текстовых значений и их соответствующих числовых значений достаточно практически всем пользователям. Тем не менее, при необходимости точно отрегулировать степень, с которой элемент будет запрещен или предпочтен, можно ввести собственное числовое значение.
Чтобы понять степень необходимости ввода пользовательского значения, нужно уяснить, какое влияние оказывают эти значения на решатель. В целом, стоимость элементов с ограничениями умножается на эти числовые значения для увеличения или уменьшения стоимости, которая в свою очередь делает элементы более или менее выгодными при проведении анализа. Предпочтительные элементы, к примеру, умножаются на значение параметра больше 0 и меньше 1 для уменьшения их стоимости, так что решатель с наибольшей вероятностью включит эти элементы в результаты. Значение Предпочитать: Высокая степень близко к 0, а Предпочитать: Низкая степень близко к 1. (Обратите внимание, что нельзя ввести значение 0, так как это приведет к ошибке во время решения.) Для элементов, которых следует избегать, числовое значение параметра «Использование ограничения» устанавливается больше 1, так как умножение на эту величину повышает стоимость. Для запрета элемента числовое значение параметра Использование ограничения (Restriction Usage) устанавливается на -1. Проще говоря, можно подумать, что Network Analyst воспримет отрицательную стоимость как непроходимую, но, на самом деле внутренний процесс более сложен.
Имейте в виду, что решатель использует дифференцированные стоимости временно. Они не включены в выходные данные анализа или в пошаговые инструкции.
Для ввода настраиваемого значения просто замените текстовые значения (Ограничено, Предпочитать: Высокая степень и пр.) на числовые, где используются. При вводе числового значения, совпадающего с одним из используемых текстовых значений, на экран будет выведено это текстовое значение.
При использовании набора сетевых данных из версии до ArcGIS 10.1 параметр «Использование ограничения» не будет представлен ни в одном из атрибутов ограничений. В этом случае ограничения запретит элементы сети. Обновите набор сетевых данных, чтобы иметь возможность изменять ограничения для предупреждения или предпочтения элементов.
Параметры для моделирования характеристик транспортного средства
Network Analyst обязательно добавляет параметр по умолчанию «Использование ограничения» (Restriction Usage) к каждому атрибуту ограничения. Также можно добавить параметры для установки характеристик транспортного средства для уточнения сетевых элементов, которые может проходить данное средство.
Например, можно добавить атрибут ограничения вместе с параметров высоты транспортного средства для сравнения высоты машины с атрибутом дескриптора, определяющего зазор под эстакадами или туннелями. Если высота транспортного средства больше, чем зазор, ребро будет запрещено. Это приведет к построению разных маршрутов для разных типов транспорта: как показано ниже, низкое транспортное средство может пройти под низким мостом, а высокое средство пойдет по другому маршруту, чтобы избежать прохождения под мостами с малым зазором.
В большинстве случаев, параметр Использование ограничения имеет значение Запрещено, когда атрибут ограничения зависит от характеристики транспорта. Соответственно, в этом подразделе предполагается, что атрибут ограничения запрещает элементы сети.
В этом случае вы можете создать два атрибута: атрибут дескриптора и атрибут ограничения. Назовем их соответственно MaxHeight и HeightRestriction. Атрибут MaxHeigh вытянет значения зазора из исходных данных. Атрибут HeightRestriction считает значения из MaxHeight и сравнит их с параметром текущей высоты транспортного средства. На графике внизу представлена обобщенная версия этого процесса.
Параметры по атрибутам стоимости
Вместо этого можно использовать атрибут стоимости в виде параметра, который может ссылаться на другой атрибут стоимости и масштабировать его. Это полезно, когда в вашей области нормальному потоку движения препятствует ненастная погода, например, гололед, туман или сильный дождь. При наличии параметра в атрибуте стоимости можно настроить ожидания времени пути в соответствии с изменениями скорости движения.
Можно создать два атрибута сети: DriveTime – хранит обычный импеданс времени пути со значениями из полей исходных данных; DriveTime_scaled – берет значение атрибута DriveTime и масштабирует его с помощью параметра атрибута DriveTime_scaled, в котором содержится текущий масштабный коэффициент.
Установка параметризованного атрибута
После создания необходимых атрибутов сети можно установить параметризованный атрибут в два этапа:
- Добавить параметр к атрибуту сети.
- Задать оценку атрибута для использования параметра.
Эти действия выполняются в ArcCatalog с помощью закладки Атрибуты (Attribute) диалогового окна Свойства набора сетевых данных (Network Dataset Properties).
Более подробно о редактировании набора сетевых данных
Добавление параметра
Для создания параметра выполните следующие шаги. В примере ниже представлен атрибут ограничения HeightRestriction (Ограничение по высоте), но такие же процедуры выполняются и для атрибутов стоимости.
Новый параметр Vehicle Height (Высота транспортного средства) добавлен к атрибуту HeightRestriction (Ограничение по высоте) и ему назначено значение 0, установленное по умолчанию. Предполагается, что транспортное средство с высотой 0 подходит для любого значения зазора. Можно изменить значения параметра, установленные по умолчанию, при проведении сетевого анализа в ArcMap.
Установка оценки
После добавления параметра необходимо разработать оценку, которая включит в себя параметр либо с константой, либо с каким-то другим атрибутом сети, в котором хранится информация относительно этого параметра. В примере ниже, параметризованному атрибуту ограничения HeightRestriction (Ограничение по высоте) назначена оценка, которая сравнивает параметр Vehicle Height (Высота транспортного средства) с атрибутом дескриптора MaxHeight (МаксВысота), содержащий измерения зазора для элементов сети.
Так как функция оценки скрипта рассчитывает значения во время проведения анализа с помощью VBScript или среды Python, назначение такой оценки отрицательно влияет на производительность анализа. По возможности, Esri настоятельно рекомендует использовать анализатор функции вместо анализатора скрипта для лучшей производительности при проведении анализа.
Более подробно о типах анализаторов, используемых сетью
В этом примере представлен анализатор функции. В диалоговом окне Оценки функции (Function Evaluators) представлено выражение, вычисляемое для каждой улицы. Каждый раз, когда оценка функции возвращает значение Истина, элемент сети запрещается. Если возвращается значение False, ограничения для сетевого элемента не устанавливаются, и он может использоваться в решении.
Для сравнения, параметризованный атрибут стоимости DriveTime_scaled установлен с оценкой функции (ниже), которая использует параметр коэффициента DriveTime. Анализатор считывает время движения из атрибута стоимости DriveTime и умножает его на значение коэффициента DriveTime, определенного во время работы.
Во время работы можно изменить параметр, установленный по умолчанию в значение 1. Значение 1,5 понизит время движения на 50% от нормального времени. У элемента сети со значением DriveTime 5 минут значение DriveTime_scaled будет равно 7,5 минут.
Перестроение набора сетевых данных
Так как анализатор функции не хранит значения в базе данных, а рассчитывает их во время работы, нет необходимости перестраивать набор сетевых данных после добавления или изменения оценки функции или соответствующих параметров атрибута в ArcCatalog. Но после внесения изменений в связанный атрибут на основе оценки поля, необходимо перестроить набор сетевых данных для использования новых значений.
С помощью параметризованного атрибута, подготовленного в ArcCatalog, можно решать сетевые проблемы в ArcMap. При изменении значения параметра, установленного по умолчанию, нет необходимости в перестройке сети.