Сводка
Конвертирует один или несколько наборов данных общественного транспорта General Transit Feed Specification (GTFS) в группу наборов классов объектов и таблиц, которые могут быть использованы при создании набора сетевых данных. Выходные классы пространственных объектов отображают остановки транспорта, линии и расписания в формате, заданном в модели данных общественного транспорта Network Analyst, который можно считать анализатором Общественного транспорта в наборе сетевых данных.
Классы объектов и таблицы модели данных транспорта, полученные данным инструментом:
- Stops
- LineVariantElements
- Calendars
- CalendarExceptions
- Lines
- LineVariants
- Runs
- ScheduleElements
- Schedules
Выходные данные этого инструмента могут использоваться в качестве входных для инструмента Подключить источники набора сетевых данных транспорта к улицам для подготовки всех входных данных для набора сетевых данных с активированными возможностями для транспорта. Полное описание рабочего процесса создания подобного набора данных находится в разделе Создание и использование сетевого набора данных с данными об общественном транспорте.
Использование
Данные всех входных наборов GTFS будут собраны в одинаковый набор выходных таблиц и классов пространственных объектов. Частой причиной использования нескольких входных наборов данных GTFS является моделирование агломерации, в которой несколько компаний в сфере общественного транспорта работают в одной географической области.
Инструмент выполняет некоторые проверки для каждого входного набора данных GTFS, чтобы определить возможные основные проблемы в данных. При определении проблемы, инструмент выдает предупреждение и пропускает обработку этого набора данных. Выходные данные инструмента будут включать только те входные наборы данных GTFS, которые были успешно обработаны. Если некоторые из наборов данных GTFS были успешно обработаны, а другие пропущены из-за проблем с данными, вы можете исправить эти проблемы и присоединить исправленные наборы GTFS к уже полученным выходным данных инструмента, запустив инструмент снова и задав параметр Присоединить к существующим таблицам равным значению True.
Каждый входной набор данных GTFS должен содержать файлы stops.txt, routes.txt, trips.txt и stop_times.txt, а также либо файл calendar.txt, либо файл calendar_dates.txt, либо оба этих файла. Файл frequencies.txt (если он есть) будет использоваться.
Хотя GTFS разрешает наличие пустых значений для полей arrival_time и departure_time в файле stop_times.txt, для модели данных общественного транспорта Network Analyst необходимы точные значения времени, чтобы предоставить их анализатору Общественного транспорта набора сетевых данных. Задайте параметр Интерполяция пустых времен остановок равным значению True, чтобы оценить время прибытия и отправления для входного набора данных GTFS с файлом stop_times.txt, не содержащим точных значений для всех полей arrival_time и departure_time.
Инструмент создает класс пространственных объектов Stops, взяв значения широты и долготы в полях stop_lat и stop_lon файла stops.txt GTFS.
Инструмент создает объекты LineVariantElements, соединяя прямой каждую пару остановок, соединенных маршрутом транспорта.
Примечание:
Объекты LineVariantElements не предназначены для представления фактических географических линий маршрутов, пройденных автобусами, поездами или другим общественным транспортом – они отображают логические связи в транспортной системе. LineVariantElements не предназначены для визуализации. Анализатор Общественного транспорта набора сетевых данных будет использовать расписания транспорта для определения времени, необходимого для прохождения объекта LineVariantElements, поэтому его форма и длина не имеют значения. Однако вы можете вручную редактировать геометрию объектов LineVariantElements, при этом их нельзя разрезать и объединять.
Если между одними и теми же двумя остановками есть несколько работающих маршрутов транспорта GTFS, будет создан один объект LineVariantElements для каждого route_id GTFS. Например, если автобус № 10 и автобус № 47 курсируют между одними и теми же двумя остановками, между которыми других остановок нет, инструмент создаст два объекта LineVariantElements: один для автобуса № 10 и один - для автобуса № 47. Эти два линейных объекта будут пространственно совпадать.
Поскольку для модели данных общественного транспорта требуются классы пространственных объектов и таблицы с конкретными именами, невозможно включить более одного набора классов объектов и таблиц модели данных общественного транспорта в одну и ту же базу геоданных. Целевой набор классов объектов не должен содержаться в базе геоданных, в которой уже есть другой набор классов объектов, содержащий классы объектов модели данных общественного транспорта.
Если целевой набор классов объектов находится в многопользовательской базе геоданных, он должен быть зарегистрирован как версионный. Перед запуском инструмента согласуйте и закрепите данные в наборе классов объектов, а затем отмените его регистрацию, как версионного.
Синтаксис
GTFSToNetworkDatasetTransitSources(in_gtfs_folders, target_feature_dataset, {interpolate}, {append})
Parameter | Объяснение | Тип данных |
in_gtfs_folders [in_gtfs_folders,...] | Данные GTFS содержатся в одной или в нескольких папках. Каждая папка GTFS должна содержать файлы stops.txt, routes.txt, trips.txt и stop_times.txt, а также либо файл calendar.txt, либо файл calendar_dates.txt, либо оба этих файла. | Folder |
target_feature_dataset | Набор классов объектов, в котором будет создан транспортный набор сетевых данных. Классы пространственных объектов Stops и LineVariantElements, созданные этим инструментом, будут размещены в этом наборе данных, а выходные таблицы, созданные им, в базе геоданных, в которой находится набор. Набор данных может находиться в файловой или многопользовательской базе геоданных, и у него может быть любая пространственная привязка. Если целевой набор классов объектов находится в многопользовательской базе геоданных, он должен быть зарегистрирован как версионный. Целевой набор классов объектов не должен содержаться в базе геоданных, в которой уже есть другой набор классов объектов, содержащий классы объектов модели данных общественного транспорта. | Feature Dataset |
interpolate (Дополнительный) | Указывает, следует ли интерполировать пустые значения из полей arrival_time и departure_time в файле GTFS stop_times.txt при создании таблиц модели данных общественного транспорта.
| Boolean |
append (Дополнительный) | Указывает, нужно ли присоединять входные наборы данных GTFS к существующим классам пространственных объектов и таблицам модели данных общественного транспорта в целевом наборе классов объектов и его родительской базе геоданных.
| Boolean |
Производные выходные данные
Name | Объяснение | Тип данных |
updated_target_feature_dataset | Набор векторных данных, в который были добавлены новые классы пространственных объектов. | Набор классов объектов |
output_stops | Класс пространственных объектов Stops модели данных общественного транспорта Network Analyst. | Класс пространственных объектов |
output_line_variant_elements | Класс пространственных объектов LineVariantElements модели данных общественного транспорта Network Analyst. | Класс пространственных объектов |
output_calendars | Таблица Calendars модели данных общественного транспорта Network Analyst. | Таблица |
output_calendar_exceptions | Таблица CalendarExceptions модели данных общественного транспорта Network Analyst. | Таблица |
output_lines | Таблица Lines модели данных общественного транспорта Network Analyst. | Таблица |
output_line_variants | Таблица LineVariants модели данных общественного транспорта Network Analyst. | Таблица |
output_runs | Таблица Runs модели данных общественного транспорта Network Analyst. | Таблица |
output_schedule_elements | Таблица ScheduleElements модели данных общественного транспорта Network Analyst. | Таблица |
output_schedules | Таблица Schedules модели данных общественного транспорта Network Analyst. | Таблица |
Пример кода
В следующем скрипте показано, как использовать инструмент GTFSToNetworkDatasetTransitSources в окне Python.
fd_path = r"E:\TransitAnalysis\TransitNetwork.gdb\TransitNetwork"
arcpy.conversion.GTFSToNetworkDatasetTransitSources([r"E:\GTFS\Agency1", r"E:\GTFS\Agency2"], fd_path)
В следующем автономном скрипте Python показано, как использовать вместе инструменты GTFSToNetworkDatasetTransitSources и ConnectNetworkDatasetTransitSourcesToStreets для создания транспортного набора сетевых данных.
import os
import arcpy
arcpy.CheckOutExtension("network")
gtfs_folders = [
r"E:\GTFS\Agency1",
r"E:\GTFS\Agency2"
]
streets_orig = r"E:\Data\StreetData.gdb\Streets"
working_folder = r"E:\TransitAnalysis"
nd_template = os.path.join(working_folder, "TransitNetworkTemplate.xml")
gdb_name = "TransitNetwork.gdb"
out_gdb = os.path.join(working_folder, gdb_name)
fd_name = "TransitNetwork"
fd_path = os.path.join(out_gdb, fd_name)
streets = os.path.join(fd_path, "Streets")
nd_name = "TransitNetwork_ND"
nd_path = os.path.join(fd_path, nd_name)
# Create a file geodatabase and feature dataset to store the network dataset
arcpy.management.CreateFileGDB(working_folder, gdb_name)
arcpy.management.CreateFeatureDataset(out_gdb, fd_name, arcpy.SpatialReference(4326))
# Copy the streets data into the feature dataset so it can be used by the network dataset
# If the original streets are not in the same spatial reference as the feature dataset, you might
# need to use the Project tool instead of Copy.
arcpy.management.Copy(streets_orig, streets)
# Convert the GTFS dataset into public transit data model tables and feature classes
arcpy.conversion.GTFSToNetworkDatasetTransitSources(gtfs_folders, fd_path)
# Connect the transit stops to the streets and create the rest of the data model feature classes
# Use an expression to connect transit stops only to streets where pedestrians are allowed.
where = "PedestriansAllowed = 1"
arcpy.conversion.ConnectNetworkDatasetTransitSourcesToStreets(fd_path, streets, "100 meters", where)
# Create the network dataset from a template
arcpy.na.CreateNetworkDatasetFromTemplate(nd_template, fd_path)
# Build the network dataset
arcpy.na.BuildNetwork(nd_path)
Environments
Информация о лицензиях
- Basic: Да
- Standard: Да
- Advanced: Да