Главная страница
Навигация по странице:

  • Формат базы данных объектов типа «секция» ( Sections )

  • Формат Stop _ stations

  • Формат Stop _ link _ table

  • Формат Section _ route _ link

  • Формат Rlines_section_link

  • Диплом Семаго. Диплом Семаго И.М. АП-91 (1). Оценка эффективности выделенных полос наземного городского пассажирского транспорта


    Скачать 334.82 Kb.
    НазваниеОценка эффективности выделенных полос наземного городского пассажирского транспорта
    АнкорДиплом Семаго
    Дата27.11.2021
    Размер334.82 Kb.
    Формат файлаdocx
    Имя файлаДиплом Семаго И.М. АП-91 (1).docx
    ТипПояснительная записка
    #283599
    страница9 из 14
    1   ...   6   7   8   9   10   11   12   13   14



    3.1. Положение системы МОЭТС в структуре взаимодействия с другими компонентами программного комплекса


    Модульная система оценки эффективности элементов транспортной системы (МОЭТС) входит в программный комплекс ANetEditor внутри которого он взаимодействует с ГИС Mappl и СУБД MySQL (Рис. 3.1). Система МОЭТС состоит из модуля подготовки данных (модуль ПД), который проводит предварительную подготовку данных о точечных объектах маршрутной инфраструктуры для последующей их обработки и хранения и модуля комплексной оценки эффективности маршрута (КОЭМ). Подготовленные модулем ПД данные по анализируемым объектам передаются (импортируются) в СУБД, которые в дальнейшем поступают непосредственно в пакет имитационного моделирования (ПИМ) Aimsun для дальнейших вычислений и расчета пассажиропотока и создания инфраструктуры маршрутной сети. Данный модуль позволяет в автоматическом или полуавтоматическом режиме создавать точечные объекты инфраструктуры маршрутной сети для последующего экспорта в (ПИМ) Aimsun. Создаваемые модулем ПД объекты накапливаются в СУБД для последующей обработки в (ПИМ) Aimsun и отображении получаемых результатов в ГИС Mappl.

    Модуль КОЭМ предназначен для создания виртуальных выделенных линий НГПТ и дальнейшего их анализа по соответствующим параметрам, представленным в Главе 2. Результаты обработки данных в модуле КОЭМ будут представлены как в количественном виде (накапливаемые в СУБД) для построения соответствующих гистограмм и графиков, так и в графическом виде, отображаемом в ГИС Mappl.



    3.2 Проектирование модульной системы оценки эффективности элементов транспортной системы


    Модуль ПД (подготовки данных) подготавливает исходные данные (получаемые из ПИМ Aimsun и вводимые оператором из соответствующих баз данных) для последующего сохранения в базе данных MySQL, из которой они в дальнейшем поступают для обработки и анализа в ПИМ Aimsun. Для подготовки данных в модуле используются следующие таблицы:

    • Stop_stations – таблица созданных остановок.

    • Stop_link_table – таблица связей остановок с остановочными станциями.

    • Sections – таблица объектов типа «секция».

    • Roads – таблица объектов типа «дороги».

    • Omk_streets – таблица справочника улиц.

    • Stoppass – таблица остановок.

    • Paspparam – таблица маршрутов.

    В рамках подготовки и обработки исходных данных модулем проводится создание новых объектов, обладающих координатными и семантическими параметрами. Данные остановки как точечного объекта создаются в специальном слое ГИС Mappl. В модуле ПД представлен исходный код алгоритма автоматического создания точечных объектов и их группировки на основе данных об остановках НГПТ и исходных данных получаемых из ПИМ Aimsun (Приложение II).

    В режиме автоматического создания подобных точечных объектов и их группировок модуль ПД использует компонент ГИС Mappl для поиска объектов слоя. Этот компонент последовательно перебирает все объекты слоя «остановки» и передает по одному объекту слоя в специализированную функцию TMOAutohitchCheckObject. После этого в ней функция TestStop производит анализ параметров данного точечного объекта (остановки) по следующим показателям:

    • Найдены ли ближайшие секции;

    • Была ли остановка уже добавлена;

    • Положение остановки относительно секции;

    • Совпадение/несовпадение поля «код улицы» у секции и остановки.

    Таким образом, определяется положение остановки как элемента маршрутной инфраструктуры в его координатной и семантической целостности.

    Поиском ближайшей секции занимается функция GetNearestSection. Эта функция используя API ГИС Mappl находит все объекты слоя «секции» в радиусе SECTION_MAX_DELTA от позиции остановки. В зависимости от выбранного типа создаваемых остановок и их группировок (автобусные, троллейбусные или трамвайные), функция отбирает соответствующие секции слоя, руководствуясь полем RD_TYPE в таблице Sections общей базы данных. После этого в цикле для каждой секции вычисляется расстояние от нее до позиции остановки, и путем сравнения выбирается ближайшая секция. Формат базы данных объектов типа «секция» (Sections) представлен в таблице 3.1.

    Таблица 3.1

    Формат базы данных объектов типа «секция» (Sections)

    Поле

    Тип

    Комментарий

    OKEY

    int(10)

    Уникальный номер внутри таблицы (ключевое поле)

    MUID

    bigint(20)

    Уникальный идентификатор объединяющей остановки

    MINX

    int(10)

    Левая граница объекта по оси Ox

    MAXX

    int(10)

    Правая граница объекта по оси Ox

    MINY

    int(10)

    Левая граница объекта по оси Oy

    MAXY

    int(10)

    Правая граница объекта по оси Oy

    ObjectStyle

    bigint(20)

    Идентификатор стиля объекта

    ObjectType

    tinyint(3)

    Код типа объекта

    LINE

    longblob

    Графическое представление объекта

    ID

    int(11)

    Внешний идентификатор секции Aimsun

    RD_TYPE

    int(10)

    Тип секции

    PassFlow

    Double(10, 5)

    Расчетный пассажиропоток (из Aimsun)


    Функция CheckIfStopdAdded проверяет, была ли остановка уже создана в таблице stop_stations. Таким образом достигается отсутствие избыточности и дублирования данных в базе данных.

    Для проверки положения остановки относительно секции используется функция CheckIfStopBetweenSections. Данная функция производит поиск ближайшей секции, идущей параллельно анализируемой. Для этого функция CheckPolylineSParallel принимает на вход две полилинии и проверяет расстояние между каждыми узловыми точками. Это расстояние не должно превышать точность хранения координат слоя. После этого проверяется, местоположение (координаты) остановки относительно этих двух параллельных секций, либо отсутствие ее слева от нее, в случае, дороги с односторонним движением. Для этого так же используется API ГИС Mappl.

    Важным этапом работы функции TestStop в рамках деятельности модуля ПД является сравнение полей «код улицы» у объекта «секция» и объекта «остановка». Это необходимо для того, чтобы синхронизировать место остановки с соответствующим кодом с секцией, имеющей аналогичную кодировку. Для этого из таблицы объектов типа «дороги» (Roads) находятся все объекты, пересекающиеся с секцией, и для каждой из них в таблице справочника улиц (Streets) по ключу «omk_street_code» находится название улицы (name). Следующий SQL-запрос производит выборку:

    'SELECT a.name FROM ' + RoadsLayerDB + '.omk_streets a INNER JOIN '+ RoadsLayerDataSource + ' b ON b.`omk_street_code` = ' + 'a.`omk_code` WHERE b.`omk_street_code` = ' + IntToStr(Scode)'

    где RoadsLayerDB – название базы данных, в которой лежит таблица объектов типа «дороги», RoadsLayerDataSource – название таблицы объектов типа «дороги», IntToStr (Scode) – переведенный в строку код улицы по общемосковскому классификатору.

    Формат таблиц Roads и Streets представлен, соответственно, в таблицах 3.2 и 3.3

    Таблица 3.2

    Формат Roads

    Поле

    Тип

    Комментарий

    OKEY

    int(10)

    Уникальный номер внутри таблицы (ключевое поле)

    MUID

    bigint(20)

    Уникальный идентификатор объединяющей остановки

    MINX

    int(10)

    Левая граница объекта по оси Ox

    MAXX

    int(10)

    Правая граница объекта по оси Ox

    MINY

    int(10)

    Левая граница объекта по оси Oy

    MAXY

    int(10)

    Правая граница объекта по оси Oy

    ObjectStyle

    bigint(20)

    Идентификатор стиля объекта

    ObjectType

    tinyint(3)

    Код типа объекта

    LINE

    longblob

    Графическое представление объекта

    omk_street_code

    bigint(38)

    Код улицы по общемосковскому классификатору


    Таблица 3.3

    Формат Streets

    Поле

    Тип

    Комментарий

    ID

    int(10)

    Уникальный номер внутри таблицы (ключевое поле)

    MUID

    bigint(20)

    Уникальный идентификатор объединяющей остановки

    omk_code

    int(11)

    Код улицы по общемосковскому классификатору


    Тем же способом находится название улицы для остановки. После этого следует проверка: найдется ли в списке улиц, которые пересекает секция – название улицы на которой стоит остановка.

    Следующий этап – группирование остановок с одинаковым названием в группу остановок. Данные о текущей остановке передаются в функцию FindNearestStopStation. В ней производиться поиск всех остановок в радиусе STOP_STATION_SEARCH_DELTA от положения текущей остановки методами API ГИС Mappl. Все найденные остановки записываются в динамический список. Далее производится отбор по алгоритму.

    Остановка удаляется из списка если:

    • Линия между текущей остановкой и найденной пересекает любой объект типа «дорога»;

    • Названия остановок не совпадают;

    • Тип найденной остановки не совпадает с типом текущей остановки;

    • Поле «Имя улицы» не совпадает между остановками;

    • Остановки не лежат с одной стороны по отношению к секции.

    После данной проверки список с оставшимися в нем остановками сохраняется для последующей обработки.

    В случае, если хотя бы одна из всех приведенных выше процедур не прошла с удовлетворительным результатом, определяемым заданными алгоритмами анализа, модуль автоматически генерирует строку сообщений и, в зависимости от выбранного способа перебора объектов, либо выходит из цикла, либо продолжает перебор. В последнем случае уникальный номер объекта в слое сохраняется в специальной структуре, которая в дальнейшем может быть экспортирована для повторного анализа в этом же модуле ПД.

    Если анализируемый точечный объект (остановка) прошел все проверки – управление берет на себя функция CreateAimsunStop или CreateAimsunStopStation. Последнее происходит в случае, если рядом была найдена группа остановок, удовлетворяющих условиям, описанным выше. Управляющая функция создает новый точечный объект с соответствующими координатными и семантическими параметрами. Для этого вызывается функция FillStopStation. Она присваивает вновь созданному точечному объекту следующие параметры:

    • Идентификатор секции, на которой будет создана остановка;

    • Название остановки;

    • Код остановки по общемосковскому классификатору;

    • Тип остановки;

    • Длина остановки;

    • Количество проходящих маршрутов через остановку;

    • Расстояние от начала секции до созданной остановки.

    Количество проходящих маршрутов для каждого создаваемого точечного объекта вычисляется с помощью функции GetRoutsCount. В нее передается список кодов остановок по общемосковскому классификатору, который участвует в следующем запросе:

    'SELECT COUNT(t.q) FROM (SELECT a.KODM AS q FROM ngpt.stoppass a INNER JOIN ngpt.pasparam b ON a.KODM = b.KODM WHERE a.KSTOP IN ('+ KList +') GROUP BY a.kodm) t'

    где, a.kodm и b.kodm – код маршрута в таблицах Stoppas и Paspparam (соответственно, таблицы 3.4, 3.5); a.KSTOP – код остановки по общемосковскому классификатору; KList - список кодов остановок, для которых выполняется запрос.

    Таблица 3.4

    Формат Stoppas

    Поле

    Тип

    Комментарий

    KSTOP

    int(11)

    Код остановки по внутреннему справочнику

    KODM

    bigint(20)

    Код маршрута в таблице paspparam

    ID

    int(11)

    Идентификатор в таблице (ключевое поле)



    Таблица 3.5

    Формат Paspparam

    Поле

    Тип

    Комментарий

    KODM

    Int(10)

    Код маршрута (ключевое поле)

    KIND

    Int(11)

    Тип маршрута


    Поле «тип остановки» заполняется соответственно типу остановки (B – Автобус, L - Троллейбус, M – Трамвай). Однако, в случае создания группы остановок, полю присваивается значение P. Также для одиночной остановки поле «длина остановки» устанавливается как значение 3, а для группы остановок вычисляется расстояние между начальной и конечной остановкой.

    После того, как объект будет заполнен (определены все координатные и семантические параметры), он сохраняется в таблице Stop_stations. Таблица созданных единичных остановок (Stop_stations) хранит в себе созданные модулем подготовки данных остановки в следующем формате (Таблица 3.6)

    Таблица 3.6

    Формат Stop_stations

    Поле

    Тип

    Комментарий

    OKEY

    Int (10)

    Уникальный индекс объекта в слое (ключевое поле)

    MUID

    bigint(20)

    Уникальный идентификатор объекта

    X

    int(10)

    Координата объекта по оси Х

    Y

    int(10)

    Координата объекта по оси Y

    ObjectStyle

    bigint(20)

    Идентификатор стиля объекта

    ObjectType

    tinyint(3)

    Код типа объекта

    LINE

    longblob

    Графическое представление объекта

    Section_id

    int(11)

    Идентификатор секции

    Stop_name

    varchar(250)

    Название остановки

    Stop_position

    int(20)

    Расположение остановки на секции (от начала)

    stop_code

    int(11)

    Код остановки по Мосгортранс

    Stop_capacity

    int(11)

    Количество маршрутов останавливающихся на остановке

    Stop_type

    char(1)

    Тип остановки (B – Автобус, L - Троллейбус, M – Трамвай, P – остановочная станция)

    Stop_length

    int(20)

    Длина остановки


    Для параметризации точечных объектов, определяющих две и более остановок (группа остановок), удовлетворяющих параметрам, описанным выше. Предлагается следующий алгоритм цикла подготовки исходных данных для их размещения в соответствующей базе данных.

    Все остановки группы добавляются в таблицу Stop_link_table, методом SQL-запроса, приведенного ниже:
    INSERT INTO adp.stop_link_table (parent_muid, stop_code, stop_capacity, stop_type, stop_name, stop_position) VALUES (' + PMUID + ', ' + NearestNGPTStopsList[i].stop_code + ', ' + IntToStr(NgptStopCapacity) + ', ' + '"' + NearestNGPTStopsList[i].type+ '", ' + NearestNGPTStopsList[i].Stop_name+ ', '+ StopPosition[i] + ')'

    где PMUID – Уникальный идентификатор объединяющей остановки; NearestNGPTStopsList[i].stop _code – код остановки по внутреннему справочнику; IntToStr(NgptStopCapacity) – переведенное в строку количество маршрутов, останавливающихся на каждой из остановок; NearestNGPTStopsList[i].type – тип остановки; NearestNGPTStopsList[i].Stop_name – название остановки; StopPosition[i] - расположение остановки от начала секции.

    Формат связей остановок с остановочными станциями (Stop_link_table) приведен в таблице 3.7.


    Таблица 3.7

    Формат Stop_link_table

    Поле

    Тип

    Комментарий

    ID

    int(10)

    Уникальный номер внутри таблицы (ключевое поле)

    Parent_muid

    bigint(20)

    Уникальный идентификатор объединяющей остановки

    Stop_code

    int(11)

    Код остановки по внутреннему справочнику

    Stop_capacity

    int(11)

    Количество маршрутов останавливающихся на остановке

    Stop_type

    char(1)

    Тип остановки (B – Автобус, L - Троллейбус, M – Трамвай, P – остановочная станция)

    Stop_name

    varchar(250)

    Название остановки

    Stop_position

    int(20)

    Расположение остановки на секции (от начала)


    Разработанный в разделе 3.2 алгоритм подготовки данных по анализируемым точечным объектам (отдельная остановка и группа остановок) предполагает цикличность работы модуля ПД по отдельным слоям ГИС Mappl.

    Модуль КОЭМ разработан для оценки параметров выделенной полосы. Он позволяет комплексно анализировать следующие показатели:

    • Время пути на секции.

    • Среднюю наполняемость ТС НГПТ.

    • Время в пути на маршруте.

    • Средний пассажиропоток на маршруте.

    Одним из результатов работы модуля КОЭМ можно считать оценку эффективности выделенной полосы на исследуемом участке улично-дорожной сети (УДС), как по времени в пути маршрута, так и по значению пассажиропотока.

    Модуль КОЭМ использует следующие таблицы базы данных:

    • Reserved_lines – Таблица созданных исследуемых участков.

    • Rlines_section_link – Таблица связей исследуемых участков и объектов типа «секция».

    • Section_route_link – Таблица связей объектов типа «секция» и кодов маршрутов.

    Для корректной работы модуля, в первую очередь, необходимо задать исследуемый участок УДС. Для этого при проектировании модуля в ГИС Mappl был зарегистрирован специальный режим работы с картой FAddReservedLineMapMode. Он позволяет производить поиск объектов на карте ГИС Mappl с определенными параметрами, на заданном слое. В данном случае нас интересует слой «секции» на карте – из них будет создаваться исследуемый участок (выделенная линии маршрутов НГПТ).

    Все найденные объекты записываются в список VTReservedLines, у которым в последствие и ведется работа. Формат структуры элемента списка представлен в таблице 3.8.

    Таблица 3.8

    Формат VTReservedLines

    Поле

    Тип

    Комментарий

    MOS

    TMapObjectStructure

    Объект ГИС Mappl

    Name

    string

    Имя исследуемого участка

    NSections

    Integer

    Количество секция в исследуемом участке

    NRoutes

    Integer

    Количество маршрутов проходящих через исследуемый участок

    Length

    Integer

    Длина исследуемого участка

    RLMUID

    Int64

    Уникальный номер исследуемого участка

    CalcRes

    SectionCalcRes

    Расчеты по исследуемому участку


    Имя исследуемого участка задается при его создании в интерфейсе модуля. После этого пользователь добавляет объекты типа «секция» к исследуемому участку. При этом автоматически вычисляется длина объекта (она берется из объекта ГИС Mappl), количество маршрутов вычисляется SQL запросом (подобен описанному выше) из таблицы Section_route_link. Формат связей объектов типа «секция» и кодов маршрутов приведен в таблице 3.9

    Таблица 3.9

    Формат Section_route_link

    Поле

    Тип

    Комментарий

    id

    Int(10)

    Автоинкрементное поле (ключевое поле)

    SctionID

    Int(10)

    Идентификатор секции

    kodm

    Int(10)

    Код маршрута


    Созданные исследуемые участки сохраняются в таблицы Reserved_lines и Rlines_section_link соответственно. Их формат приведен в таблицах 3.10 и 3.11.

    Таблица 3.10

    Формат Reserved_lines

    Поле

    Тип

    Комментарий

    RLineMIUD

    Bigint(20)

    Уникальный номер исследуемого участка

    RLineName

    Varchar(20)

    Имя исследуемого участка

    NSections

    Int(3)

    Количество секция в исследуемом участке

    Length

    Int(7)

    Длина исследуемого участка

    Tm_sr

    Double(10,1)

    время прохождения маршрута ТС НГПТ

    Pspt_sr

    Double(10,1)

    Средний пассажиропоток на маршруте по ТС НГПТ

    Pscar_sr

    Double(10,1)

    Средний пассажиропоток на маршруте по личному автотранспорту

    Nrasch_sr

    Double(10,1)

    Средняя наполняемость ТС НГПТ

    Wt

    Double(10,1)

    Эффективность ввода выделенной полосы по времени на исследуемом участке УДС

    Wp

    Double(10,1)

    Эффективность ввода выделенной полосы по значению пассажиропотока на исследуемом участке УДС

    Таблица 3.11

    Формат Rlines_section_link

    Поле

    Тип

    Комментарий

    id

    Int(10)

    Автоинкрементное поле (ключевое поле)

    Vp

    bool

    Флаг наличие выделенной полосы на участке УДС

    Pir

    Float(5,2)

    Пассажиропоток на секции (из Aimsun)

    NRoutes

    Int(3)

    Количество маршрутов проходящих через исследуемый участок

    Length

    Int(7)

    Длина исследуемого участка

    SctionID

    Int(10)

    Идентификатор секции

    `Fopt`

    Double(10,1)

    Оптимальная частота движения ТС НГПТ на секции

    `Nrasch`

    Double(10,1)

    Наполняемость маршрутного транспортного средства

    `Tspt`

    Double(10,1)

    Время пути в потоке

    `Tspv`

    Double(10,1)

    Время пути по выделенной полосе

    `Tm_sr_i`

    Double(10,1)

    Время прохождения секции ТС НГПТ


    Расчетом параметров эффективности исследуемого УДС участка занимается класс RLCalc. Все расчеты производятся по формулам, приведенным в Главе 2.

    Перед всеми расчетами, пользователь обязан ввести исходные данные в форму интерфейса. Для правильной работы модуля необходимо указать следующие параметры:

    • Оптимальная частота движения ТС НГПТ на секции.

    • Наполняемость маршрутного транспортного средства.

    • Время пути в потоке.

    • Время пути по выделенной полосе.

    • Средняя скорость на секции.

    • Время прохождения секции ТС НГПТ.

    Расчет происходит в два этапа. На первом этапе, в первую очередь, рассчитываются промежуточные параметры, такие как: пассажиропоток общественного транспорта на секции, средняя интенсивность транспортного потока на секции, среднее время движения транспортного потока по секции, пассажиропоток личного транспорта на секции. Для каждого объекта типа «секция» на исследуемом участке УДС рассчитываются следующие параметры маршрутов:

    • Средняя скорость на секции.

    • Время пути в потоке.

    • Время в пути по выделенной полосе.

    • Задержка на остановке.

    • Пассажиропоток на секции.

    • Наполняемость ТС НГПТ.

    • Оптимальную частоту движения ТС НГПТ.

    После этого модуль отображает на карте ГИС Mappl выбранный для расчета исследуемый участок УДС. Для каждого объекта типа «секция» создается комбинированная подпись, на которой отображаются следующие семантические параметры:

    • средняя скорость;

    • пассажиропоток на секции;

    • наполняемость ТС НГПТ.

    Благодаря этому оператор может производить экспертную оценку участка и определяет необходимость введения выделенной полосы на данной секции. Для этого он выставляет или убирает флаг наличия выделенной полосы для выбранного объекта типа секция исследуемого участка УДС. Это позволяет скорректировать параметры для дальнейшего анализа.

    На втором этапе для исследуемого участка УДС в целом рассчитываются следующие параметры:

    • Усредненное время прохождения данного маршрута транспортным средством.

    • Средний пассажиропоток ТС НГПТ на маршруте.

    • Средний пассажиропоток личного автотранспорта на маршруте.

    • Средняя наполняемость ТС НГПТ на маршруте.

    • Комплексная эффективность выделенной полосы по времени на исследуемом участке УДС.

    • Комплексная эффективность выделенной полосы по значению пассажиропотока на исследуемом участке УДС.

    После всех расчетов показатели эффективности выделенной полосы выбранного исследуемого участка УДС, записываются в базу данных, для дальнейшего анализа.
    1   ...   6   7   8   9   10   11   12   13   14


    написать администратору сайта