Доступно с лицензией Network Analyst.
Дополнительный модуль ArcGIS Network Analyst extension позволяет использовать данные исторического трафика для моделирования время-зависимых скоростей движения по дорогам. Благодаря этому расчет времени в пути и времени прибытия будет выполнен более точно, а время, затраченное на передвижение, вероятнее всего, сократится по сравнению с расчетами, при которых характер движения не учитывается.
Создание данных исторического трафика для использования в дополнительном модуле Network Analyst
Даже если данные были получены от стороннего поставщика, важно хорошо понимать процесс создания исторического трафика, чтобы уметь правильно интегрировать их с набором сетевых данных. В этом разделе представлен обзор модели, используемой модулем Network Analyst.
Так как в данных о движении непрерывно фиксируются сведения о периодических колебаниях интенсивности движения, ребро может обладать разными сетевыми стоимостями движения в каждом направлении в зависимости от времени суток. В обычном же стоимостном атрибуте может содержаться только одно значение для одного направления движения по ребру.
Существует несколько разных способов моделирования нескольких стоимостей для одного направления движения по ребру. Чтобы понять, почему Network Analyst использует особую модель, необходимо понять недостатки наиболее очевидного способа моделирования трафика.
Способы, не используемые Network Analyst для моделирования исторического трафика
Одним из способов хранения данных исторического трафика является создание набора стоимостей для каждого ребра. Стоимости будут представлять собой скорости движения в различное время суток на протяжении недели. Например, неделю можно разделить на 168 дискретных интервалов продолжительностью в 1 час. Это значит, что изменения движения на протяжении недели будут представлены 168 стоимостными атрибутами ребра. Если с целью повышения временного разрешения сократить интервал времени до пяти минут, то для каждого ребра потребуется 2016 стоимостных атрибутов. Хранение всех уникальных значений требует много места, особенно при работе с большими сетями. Также, поскольку в течение суток сетевая стоимость передвижения по многим улицам одинакова, будут дублироваться большие объемы данных. По данным причинам Network Analyst не поддерживает такой вариант моделирования.
Способы, используемые Network Analyst для моделирования исторического трафика
Вместо того, чтобы сохранять всю информацию о движении по каждому объекту, ArcGIS минимизирует размер этой информации с помощью нормализованной модели. Вместо сохранения 168 или 2016 стоимостных атрибутов для каждого объекта создается соответствующая таблица, в которую помещаются эти данные. Каждая строка в таблице содержит данные о скорости, а в некоторых случаях, данные о времени в пути в каждом интервале на протяжении суток. Строка – это профиль движения. В ней представлены сведения об изменении скоростей в течение суток. Например, при наличии большого количества улиц с ограничением скорости движения до 60 км/час, скорость движения по которым отличается в разное время суток, в таблице профилей движения можно создать одиночную строку для отображения этой динамики и присвоить этим улицам одну строку или профиль движения. Ниже показано, что при необходимости один и тот же профиль движения можно присвоить даже дорогам с различными ограничениями скорости движения, но обладающим одинаковым характером движения в течение суток.
Чтобы лучше понять принцип работы такой модели движения, представьте, что вам необходимо записать и сохранить данные о скорости движения по участку улицы с односторонним движением за неделю, начиная с понедельника. Сначала нужно определить скорость движения в свободном режиме, а именно скорость, с которой движение автомобиля не затруднено другими машинами. Определить скорость движения в свободном режиме можно разными способами. Обычно это предельная скорость или установленная средняя скорость движения автомобилей по дороге при отсутствии других машин. Например, в качестве скорости движения в свободном режиме возьмем установленную среднюю скорость движения, значение которой составляет 110 км/час.
Теперь можно осуществлять анализ характера движения в течение суток через равные временные интервалы или промежутки. Данные выбираемых временных интервалов представляются в их временном разрешении. Доступны интервалы времени продолжительностью 1 час, 10 минут и так далее. Предположим, выбран 5-минутный интервал. Данные наблюдений записываются в виде коэффициентов масштабирования скоростей в свободном режиме движения. Коэффициенты масштабирования ограничены диапазоном от ноля до единицы. Предположим, вы наблюдаете за автомобилями, движущимися со скоростью 45 км/час в 8:00 утра. Эта скорость составляет 0,4 от значения скорости движения в свободном режиме. В 17:00 средняя скорость движения равна 95 км/час, что составляет 0,85 от скорости движения в свободном режиме. В 23:00 по дороге движутся всего несколько машин, а их средняя скорость составляет 70 миль в час (примерно 110 км/час). Это значение равно скорости движения в свободном режиме и коэффициент масштабирования равен единице.
По окончании исследования необходимо обратиться к таблице профилей движения и выбрать один профиль, данные которого будут максимально соответствовать изменениям соответствующих скоростей, наблюдаемым в течение дня.
Для представления времени в пути на этом участке по понедельникам используем профиль движения 68 (на диаграмме ниже).
Количество профилей движения может быть любым. Большой набор профилей позволяет моделировать время в пути более точно. Тем не менее, если профилей немного, сокращается объем пространства необходимого для хранения данных. Поэтому залогом эффективной работы является баланс между точностью данных и объемом пространства необходимого для их хранения. Обычно много места для хранения большого количества профилей требуется при работе с крупными уличными сетями.
Теперь, выбрав профиль для понедельника, необходимо повторить те же операции для остальных дней недели. Для этого выполните следующие действия:
- Вычислите или зафиксируйте значения скоростей движения в свободном режиме по соответствующему участку улицы. (Повторно это действие выполнять не нужно, так как значения скоростей одинаковы для всех рабочих дней недели.)
- Зафиксируйте значения средних скоростей движения в равные интервалы времени в течение суток.
- Преобразуйте эти значения в коэффициент масштабирования (от 0 до 1) скорости движения в свободном режиме. (При моделировании времени в пути, а не скоростей движения коэффициент масштабирования должен быть выше или равен нулю.)
- Выберите профиль, в котором будут представлены данные о движении на участке улицы в требуемый день недели.
Уже известно, что для этой цели можно использовать профиль 68, так как он подходит для любого дня недели. Это связано с тем, что часто общий характер движения по рабочим дням один и тот же. Тем не менее, определить дни недели, которым соответствуют разные профили не так сложно. Например, понедельникам, вторникам и средам может соответствовать один профиль, а четвергам и пятницам другой.
По субботам и воскресеньям движение на исследуемом участке стабильно и менее интенсивно, поэтому для представления времени в пути по выходным дням в нашем примере мы используем Профиль движения 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, умножив значение времени в пути при отсутствии трафика на значение коэффициента SpeedFactor_1140, которое для этого профиля равно 0,889.
Таблица Streets-Profiles
В таблице Streets-Profiles указываются объекты улицы, скорость движения в свободном режиме (или время в пути) и соответствующие им профили движения для каждого дня недели. В приведенной ниже таблице перечислены необходимые поля, образец имени поля, допустимые типы данных и их краткое описание:
Поле | Образцы имени поля | Тип данных | Описание |
---|---|---|---|
Идентификатор класса объекта ребра | EdgeFCID Этому полю следует дать имя EdgeFCID. | Long integer | Идентифицирует класс объекта, в котором хранится объект улицы. |
Идентификатор объекта ребра | EdgeFID Этому полю следует дать имя EdgeFID. | Long integer | Идентифицирует объект улицы. |
Ребро от положения | EdgeFrmPos Этому полю следует дать имя EdgeFrmPos. | Double | Работает в связке с EdgeToPos для идентификации направления движения или стороны улицы. Значение 0 указывает на начало линейного объекта, определенного направлением его вектора. Значение 1 обозначает противоположный конец. Например, значение EdgeFrmPos, равное 0 и значение EdgeToPos, равное 1 обозначают правую сторону линейного объекта (с учетом того, что движение осуществляется по правой стороне). Профили движения, указанные в той же записи, будут представлять собой движение только по этой стороне улицы. Любые десятичные значения обозначают положение вдоль направления оцифровки, с помощью которых инструмент Слияние сети обеспечивает соответствие улицам правильных профилей после слияния ребер в один объект. |
Ребро к положению | EdgeToPos Этому полю следует дать имя EdgeToPos. | Double | Работает в связке с EdgeFrmPos для идентификации направления движения или стороны улицы. |
Поле базовой скорости или Поле Базовое время в пути | BaseSpeedKPH или FreeflowMinutes | Float или double | Скорость движения в свободном режиме. Время в пути в свободном режиме (если необходимо). Скорость в поле основной скорости указывается в км/час или в миль/час. Время в поле основного времени в пути указывается в днях, часах, минутах или секундах. |
Поле профиля Воскресенье | Profile_1 SundayProfile | Short или long integer | Object ID из таблицы профилей, наиболее точно представляющий характер движения по воскресеньям на участке улицы, обозначаемый значениями EdgeFCID, EdgeFID, EdgeFrmPos и EdgeToPos. |
Поле профиля Понедельник | Profile_2 MondayProfile | Short или long integer | Object ID из таблицы Профили, наиболее точно представляющий характер движения по понедельникам. |
Поле профиля Вторник | Profile_3 TuesdayProfile | Short или long integer | Object ID из таблицы Профили, наиболее точно представляющий характер движения по вторникам. |
Поле профиля Среда | Profile_4 WednesdayProfile | Short или long integer | Object ID из таблицы Профили, наиболее точно представляющий характер движения по средам. |
Поле профиля Четверг | Profile_5 ThursdayProfile | Short или long integer | Object ID из таблицы Профили, наиболее точно представляющий характер движения по четвергам. |
Поле профиля Пятница | Profile_6 FridayProfile | Короткое или длинное целое | Object ID из таблицы Профили, наиболее точно представляющий характер движения по пятницам. |
Поле профиля Суббота | Profile_7 SaturdayProfile | Короткое или длинное целое | Object ID из таблицы Профили, наиболее точно представляющий характер движения по субботам. |
Примером таблицы соединений Улицы-Профили является приведенная ниже таблица под именем Streets_DailyProfiles. Поле PROFILE_1 представляет поле профиля Воскресенье. Поле PROFILE_7 представляет поле профиля Суббота; Поля с PROFILE_2 до PROFILE_6 (не показано) представляют поля, с профиля Понедельник до профиля Пятница.
Ознакомьтесь с выбранной записью (ObjectID 111). Она связывает профили для каждого из дней недели со стороной "от-до" объекта улицы с object ID 28803. Направление улицы "от-до" определяется значениями EdgeFrmPos и EdgeToPos, которые равны соответственно нулю и единице. Профиль движения 12 представляет эту сторону улицы по воскресеньям и субботам, так как 12 – это значение, указываемое в профилях PROFILE_1 и PROFILE_7. В поле SPFREEFLOW указывается скорость движения по улице в направлении От-До в условиях свободного режима движения.
Теперь взгляните на две первые записи. В первой записи (Object ID 109) содержатся профили для участка улицы с направлением "до-от", а во второй (Object ID 110) – профили для того же участка улицы в обратном направлении. Это связано с тем, что значения EdgeFCID и EdgeFID идентичны, а значения EdgeFrmPos и EdgeToPos противоположны друг другу. Значения полей профилей Воскресенье и Суббота равны нулю. Это значит, что сбор данных выполнен не был или для этих дней не был назначен профиль. При оценке данных исторического трафика по воскресеньям или субботам для этого ребра анализатору оценки движения по ребру придется обратиться к вторичному стоимостному атрибуту, указанному в списке.