Доступно с лицензией Network Analyst.
Дополнительный модуль ArcGIS Network Analyst позволяет использовать данные исторического трафика для моделирования время-зависимых скоростей движения по дорогам. Благодаря этому расчет времени в пути и времени прибытия будет выполнен более точно, а время, затраченное на передвижение, вероятнее всего, сократится по сравнению с расчетами, при которых характер движения не учитывается.
Создание данных исторического трафика для использования в дополнительном модуле Network Analyst
Даже если данные были получены от стороннего поставщика, важно хорошо понимать процесс создания исторического трафика, чтобы уметь правильно интегрировать их с набором сетевых данных. В этом разделе представлен обзор модели, используемой модулем Network Analyst.
Так как в данных о движении непрерывно фиксируются сведения о периодических колебаниях интенсивности движения, ребро может обладать разными сетевыми стоимостями движения в каждом направлении в зависимости от времени суток. В обычном же стоимостном атрибуте может содержаться только одно значение для одного направления движения по ребру.
Существует несколько разных способов моделирования нескольких стоимостей для одного направления движения по ребру. Чтобы понять, почему Network Analyst использует конкретную модель, важно понимать, что недостатки модели, возможно являются самым очевидным способом для моделирования трафика.
Способы, не используемые Network Analyst для моделирования исторического трафика
Одним из способов хранения данных исторического трафика является создание набора стоимостей для каждого ребра. Стоимости будут представлять собой скорости движения в различное время суток на протяжении недели. Например, неделю можно разделить на 168 дискретных интервалов продолжительностью в 1 час. Это значит, что изменения движения на протяжении недели будут представлены 168 стоимостными атрибутами ребра. Если основной временной период будет разделен на пятиминутные интервалы с целью повышения временного разрешения, число стоимостных атрибутов ребра будет составлять 2016. Хранение всех уникальных значений требует много места, особенно при работе с большими сетями. Также, поскольку в течение суток сетевая стоимость передвижения по многим улицам одинакова, будут дублироваться большие объемы данных. По данным причинам Network Analyst не поддерживает такой вариант моделирования.
Способы, используемые Network Analyst для моделирования исторического трафика
Вместо того, чтобы сохранять всю информацию о движении по каждому объекту, ArcGIS минимизирует размер этой информации с помощью нормализованной модели. Вместо сохранения 168 или 2016 стоимостных атрибутов для каждого объекта создается соответствующая таблица, в которую помещаются эти данные. Каждая строка в таблице содержит данные о скорости, а в некоторых случаях, данные о времени в пути в каждом интервале на протяжении суток. Строка – это профиль движения. В ней представлены сведения об изменении скоростей в течение суток. Например, при наличии большого количества улиц с ограничением скорости движения до 60 км/час, скорость движения по которым отличается в разное время суток, в таблице профилей движения можно создать одиночную строку для отображения этой динамики и присвоить этим улицам одну строку или профиль движения. Ниже показано, что при необходимости один и тот же профиль движения можно присвоить даже дорогам с различными ограничениями скорости движения, но обладающим одинаковым характером движения в течение суток.
Чтобы лучше понять принцип работы такой модели движения, представьте, что вам необходимо записать и сохранить данные о скорости движения по участку улицы с односторонним движением за неделю, начиная с понедельника. Сначала нужно определить скорость движения в свободном режиме, а именно скорость, с которой движение автомобиля не затруднено другими машинами. Определить скорость движения в свободном режиме можно разными способами. Обычно это предельная скорость или установленная средняя скорость движения автомобилей по дороге при отсутствии других машин. Например, в качестве скорости движения в свободном режиме возьмем установленную среднюю скорость движения, значение которой составляет 110 км/час.
Теперь можно осуществлять анализ характера движения в течение суток через равные временные интервалы или промежутки. Данные выбираемых временных интервалов представляются в их временном разрешении. Можно выбирать одночасовые, 10-минутные интервалы и так далее. Предположим, выбран 5-минутный интервал. Данные наблюдений записываются в виде коэффициентов масштабирования скоростей в свободном режиме движения. Коэффициенты масштабирования ограничены диапазоном от ноля до единицы. Предположим, вы наблюдаете за автомобилями, движущимися со скоростью 45 км/час в 8:00 утра. Эта скорость составляет 0,4 от значения скорости движения в свободном режиме. В 17:00 средняя скорость движения равна 95 км/час, что составляет 0,85 от скорости движения в свободном режиме. В 23:00 по дороге движутся всего несколько машин, а их средняя скорость составляет 110 км/час. Это значение равно скорости движения в свободном режиме и коэффициент масштабирования равен единице.
По окончании исследования необходимо обратиться к таблице профилей движения и выбрать один профиль, данные которого будут максимально соответствовать изменениям соответствующих скоростей, наблюдаемым в течение дня.
Для представления времени в пути на этом участке по понедельникам используем профиль движения 68 (на диаграмме ниже).
Количество профилей движения может быть любым. Широкий выбор профилей позволяет моделировать время в пути более точно. Тем не менее, если профилей немного, сокращается объем пространства необходимого для хранения данных. Поэтому залогом эффективной работы является баланс между точностью данных и объемом пространства необходимого для их хранения. Обычно много места для хранения большого количества профилей требуется при работе с крупными уличными сетями.
Теперь, выбрав профиль для понедельника, необходимо повторить те же операции для остальных дней недели. Для этого выполните следующие действия:
- Вычислите или зафиксируйте значения скоростей движения в свободном режиме по соответствующему участку улицы. (Повторно это действие выполнять не нужно, так как значения скоростей одинаковы для всех рабочих дней недели.)
- Зафиксируйте значения средних скоростей движения в равные интервалы времени в течение суток.
- Преобразуйте эти значения в коэффициент масштабирования (от 0 до 1) скорости движения в свободном режиме. (При моделировании времени в пути, а не скоростей движения коэффициент масштабирования должен быть выше или равен нулю.)
- Выберите профиль, в котором будут представлены данные о движении на участке улицы в требуемый день недели.
Уже известно, что для этой цели можно использовать профиль 68, так как он подходит для любого дня недели. Это связано с тем, что часто общий характер движения по рабочим дням один и тот же. Тем не менее, определить дни недели, которым соответствуют разные профили не так сложно. Например, понедельникам, вторникам и средам может соответствовать один профиль, а четвергам и пятницам другой.
По субботам и воскресеньям движение на исследуемом участке стабильно и менее интенсивно, поэтому для представления времени в пути по выходным дням в нашем примере мы используем Профиль движения 3 (Traffic Profile 3).
Затем значения скоростей движения в свободном режиме и связи между участком улицы и профилями движения сохраняются в таблице Улицы-Профили (Streets-Profiles). Описание этой таблицы и других входных данных приведено в следующих разделах.
Сохранение данных и связей в базе геоданных
Если необходимо создать набор сетевых данных с данными исторического трафика, в базе геоданных должен содержаться один или более классов линейных объектов и две таблицы. Классы линейных объектов представляют собой улицы, данные о которых необходимо сохранить в наборе данных объекта. Профили скоростей сохраняются в одной таблице, а связи между улицами и профилями скоростей – в другой. В следующих пунктах рассказывается об элементах и полях, используемых для настройки данных исторического трафика в наборе сетевых данных.
Класс объектов Улицы (Streets)
Каждый объект улицы обладает уникальным идентификатором, а именно значением идентификатора объекта (ObjectID). В таблице Улицы-Профили (Streets-Profiles) улицы соотносятся с различными профилями движения с помощью уникального идентификатора.
При настройке данных исторического трафика могут быть полезны другие поля. Ниже приведен их список. В дальнейшем они будут описаны более подробно.
Поле | Образцы имени поля | Описание |
---|---|---|
Независящее от дня недели или времени суток время в пути | FT_Minutes TF_Minutes | Для создания сетевого стоимостного атрибута, используемого при определении последовательности положений на маршруте или расчета задачи выбора маршрута транспорта, при котором используются данные о движении |
Время в пути по рабочим дням | FT_WeekdayMinutes TF_WeekdayMinutes | Для создания сетевого стоимостного атрибута, используемого в случае, когда участок улицы не имеет соответствующего профиля данных исторического трафика в рабочий день (Независящее от дня недели и времени суток время в пути часто используют в качестве времени в пути буднего дня.) |
Время в пути по выходным | FT_WeekendMinutes TF_WeekendMinutes | Для создания сетевого стоимостного атрибута, используемого в случае, когда участок улицы не имеет соответствующего профиля данных исторического трафика по субботам или воскресеньям |
Часовой пояс | Идентификатор часового пояса (TimeZoneID) | Для создания сетевого атрибута часового пояса, используемого в случае, когда сеть охватывает несколько часовых поясов |
Таблица профилей
Каждая запись в таблице профилей движения обладает уникальным идентификатором и несколькими полями для хранения коэффициента масштабирования скорости движения в свободном режиме в различное время суток. Сутки разбиты на временные интервалы или временные промежутки одинаковой продолжительности. Таким образом, 24 часа поделены на равные временные интервалы. Например, если длина временного среза составляет 5 минут, общее число полей будет равно 288 (с 12:00 до 12:05, с 12:05 до 12:10 и так далее).
В базе геоданных Сан-Франциско, включенной в учебные данные Network Analyst, содержатся профили, разделяющие день на пятиминутные промежутки. Поле SpeedFactor_0000 содержит коэффициенты масштабирования скорости движения в свободном режиме с 00:00 до 00:05. Поле SpeedFactor_1140 содержит множители для интервала с11:40 до 11:45. При установлении связи между объектом улицы и профилем можно получить ожидаемое значение времени в пути в любое время суток. Например, если улица связана с профилем 16, приведенным на диаграмме ниже, можно вычислить ожидаемое время в пути в 11:41, умножив значение времени в пути на скорость движения в свободном режиме на значение (0,889) SpeedFactor_1140.
Таблица Улицы-Профили (Streets-Profiles)
В таблице Улицы-Профили (Streets-Profiles) указываются объекты улицы, скорость движения в свободном режиме (или время в пути) и соответствующие им профили движения для каждого дня недели. В приведенной ниже таблице перечислены необходимые поля, образец имени поля, допустимые типы данных и их краткое описание:
Поле | Образцы имени поля | Тип данных | Описание |
---|---|---|---|
Идентификатор класса объекта ребра | EdgeFCID Этому полю следует дать имя EdgeFCID. | Короткое целое | Идентифицирует класс объекта, в котором хранится объект улицы. |
Идентификатор объекта ребра | EdgeFID Этому полю следует дать имя EdgeFID. | Короткое целое | Идентифицирует объект улицы. |
Ребро от положения | EdgeFrmPos Этому полю следует дать имя EdgeFrmPos. | Двойной | Работает в связке с EdgeToPos для идентификации направления движения или стороны улицы. Значение 0 указывает на начало линейного объекта, определенного направлением его вектора. Значение 1 обозначает противоположный конец. Например, значение EdgeFrmPos, равное 0 и значение EdgeToPos, равное 1 обозначают правую сторону линейного объекта (с учетом того, что движение осуществляется по правой стороне). Профили движения, указанные в той же записи, будут представлять собой движение только по этой стороне улицы. Любые десятичные значения обозначают положение вдоль направления вектора объекта, с помощью которых инструмент «Объединить сеть» (Dissolve Network) обеспечивает соответствие улицам правильных профилей после слияния ребер в один объект. |
Ребро к положению | EdgeToPos Этому полю следует дать имя EdgeToPos. | Двойной | Работает в связке с EdgeFrmPos для идентификации направления движения или стороны улицы. |
Поле Основная скорость (Base Speed Field) или Поле «Основное время в пути» (Base Travel Time Field) | BaseSpeedKPH или FreeflowMinutes | Двойной точности или с плавающей точкой | Скорость движения в свободном режиме. Время в пути в свободном режиме (если необходимо). Скорость в поле основной скорости указывается в км/час или в миль/час. Время в поле основного времени в пути указывается в днях, часах, минутах или секундах. |
Поле ID профиля для воскресенья (Sunday ProfileID Field) | Profile_1 SundayProfile | Короткое или длинное целое | Идентификатор профиля, наиболее точно представляющий характер движения по субботам на участке улицы, обозначаемый значениями EdgeFCID, EdgeFID, EdgeFrmPos и EdgeToPos. |
Поле ID профиля для понедельника (Monday ProfileID Field) | Profile_2 MondayProfile | Короткое или длинное целое | Идентификатор профиля, наиболее точно представляющий характер движения по понедельникам. |
Поле ID профиля для вторника (Tuesday ProfileID Field) | Profile_3 TuesdayProfile | Короткое или длинное целое | Идентификатор профиля, наиболее точно представляющий характер движения по вторникам. |
Поле ID профиля для среды (Wednesday ProfileID Field) | Profile_4 WednesdayProfile | Короткое или длинное целое | Идентификатор профиля, наиболее точно представляющий характер движения по средам. |
Поле ID профиля для четверга (Thursday ProfileID Field) | Profile_5 ThursdayProfile | Короткое или длинное целое | Идентификатор профиля, наиболее точно представляющий характер движения по четвергам. |
Поле ID профиля для пятницы (Friday ProfileID Field) | Profile_6 FridayProfile | Короткое или длинное целое | Идентификатор профиля, наиболее точно представляющий характер движения по пятницам. |
Поле ID профиля для субботы (Saturday ProfileID Field) | Profile_7 SaturdayProfile | Короткое или длинное целое | Идентификатор профиля, наиболее точно представляющий характер движения по субботам. |
Примером таблицы Улицы-Профили (Streets-Profiles) является приведенная ниже таблица под названием Streets_DailyProfiles. Поле PROFILE_1 представляет собой поле «Идентификатор профиля Воскресенье» (Sunday ProfileID). Поле PROFILE_7 представляет собой поле «Идентификатор профиля Суббота» (Saturday ProfileID). Поля с PROFILE_2 до PROFILE_6 (не показано), представляют собой поля, начиная с поля «Идентификатор профиля Понедельник» до поля «Идентификатор профиля Пятница» (Friday ProfileID).
Ознакомьтесь с выбранной записью (ObjectID 111). Эта запись соотносит профили на каждый день недели с направлением объекта улицы От-До и идентификатором объекта 28803. Направление улицы От-До определяется значениями EdgeFrmPos и EdgeToPos, которые соответственно являются нулем и единицей. Профиль движения 12 представляет эту сторону улицы по воскресеньям и субботам, так как 12 – это значение, указываемое в профилях PROFILE_1 и PROFILE_7. В поле SPFREEFLOW указывается скорость движения по улице в направлении От-До в условиях свободного режима движения.
Теперь взгляните на две первые записи. В первой записи («Идентификатор объекта 109» (Object ID 109)) сохраняются идентификаторы профилей участка улицы с направлением До-От, а во второй («Идентификатор объекта 110» Object ID 110) идентификаторы того же участка улицы с противоположным направлением. Это связано с тем, что значения EdgeFCID и EdgeFID идентичны, а значения EdgeFrmPos и EdgeToPos противоположны друг другу. Также следует учитывать, что идентификаторы профилей для воскресенья и субботы равны нулю. Это значит, что сбор данных выполнен не был или для этих дней не был назначен профиль. При оценке данных исторического трафика по воскресеньям или субботам для этого ребра анализатору оценки движения по ребру придется обратиться к вторичному стоимостному атрибуту, указанному в списке.