GTFS в источники данных транспорта набора сетевых данных (Конвертация)

Сводка

Конвертирует один или несколько наборов данных общественного транспорта 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. Эти два линейных объекта будут пространственно совпадать.

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

  • Если целевой набор классов объектов находится в многопользовательской базе геоданных, он должен быть зарегистрирован как версионный. Перед запуском инструмента согласуйте и закрепите данные в наборе классов объектов, а затем отмените его регистрацию, как версионного.

Синтаксис

arcpy.conversion.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 при создании таблиц модели данных общественного транспорта.

  • INTERPOLATEПустые значения будут интерполированы с помощью простой линейной интерполяции. Исходные данные GTFS не будут изменены. Если в исходных данных не было пустых значений, то интерполяция не будет производиться.
  • NO_INTERPOLATEПустые значения не будут интерполированы. Если пустые значения были найдены во входных данных GTFS, инструмент выдаст предупреждение и не будет продолжать обработку набора данных GTFS. Используется по умолчанию.
Boolean
append
(Дополнительный)

Указывает, нужно ли присоединять входные наборы данных GTFS к существующим классам пространственных объектов и таблицам модели данных общественного транспорта в целевом наборе классов объектов и его родительской базе геоданных.

  • APPENDДанные будут присоединены к существующим классам пространственных объектов и таблицам.
  • NO_APPENDСуществующие классы пространственных объектов и таблицы будут перезаписаны. Используется по умолчанию.
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, пример 1 (окно Python)

В следующем скрипте показано, как использовать инструмент GTFSToNetworkDatasetTransitSources в окне Python.

fd_path = r"E:\TransitAnalysis\TransitNetwork.gdb\TransitNetwork"
arcpy.conversion.GTFSToNetworkDatasetTransitSources([r"E:\GTFS\Agency1", r"E:\GTFS\Agency2"], fd_path)
GTFSToNetworkDatasetTransitSources, пример 2 (автономный скрипт)

В следующем автономном скрипте 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: Да

Связанные разделы