Resumen
Convierte uno o varios datasets de transporte público General Transit Feed Specification (GTFS) en un conjunto de clases de entidad y tablas que pueden utilizarse al crear un dataset de red. Las clases de entidad y tablas de salida representan las paradas, líneas y horarios de transporte en el formato definido por el modelo de datos de transporte público de Network Analyst, que puede ser interpretado por el evaluador de Transporte público en un dataset de red.
Las clases de entidad y tablas del modelo de datos de transporte producidas por esta herramienta son las siguientes:
- Stops
- LineVariantElements
- Calendars
- CalendarExceptions
- Lines
- LineVariants
- Runs
- ScheduleElements
- Schedules
La salida de esta herramienta se puede utilizar como entrada para la herramienta Conectar orígenes de transporte de dataset de red a calles, para preparar todas las entradas necesarias para un dataset de red habilitado para el transporte. El flujo de trabajo completo para crear un dataset de red de este tipo se describe en Crear y utilizar un dataset de red con datos de transporte público.
Uso
Los datos de todos los datasets GTFS de entrada se combinarán en el mismo conjunto de tablas y clases de entidad de salida. La motivación típica para usar varios datasets GTFS de entrada es modelar un área metropolitana en la que operen varios proveedores de servicios de transporte en la misma área geográfica.
La herramienta lleva a cabo validaciones en cada dataset GTFS de entrada para comprobar la existencia de problemas habituales con los datos. Cuando se descubre un problema, la herramienta emite una advertencia y omite el procesamiento de ese dataset. La salida de la herramienta tan solo incluirá datos de los datasets GTFS de entrada que se hayan procesado correctamente. Si algunos datasets GTFS se procesaron correctamente y otros se omitieron por problemas de datos, puede solucionar dichos problemas de datos e incorporar los datasets GTFS corregidos a la salida de la herramienta existente ejecutando de nuevo la herramienta con el parámetro Incorporar a tablas existentes definido como True.
Cada dataset GTFS de entrada debe contener los archivos stops.txt, routes.txt, trips.txt y stop_times.txt, así como el archivo calendar.txt o calendar_dates.txt, o ambos. Se utilizará el archivo frequencies.txt si está presente.
A pesar de que GTFS permite valores en blanco para los campos arrival_time y departure_time en el archivo stop_times.txt, el modelo de datos de transporte público de Network Analyst requiere tiempos exactos para que el evaluador de Transporte público los consuma en el dataset de red. Defina el parámetro Interpolar tiempos de parada en blanco como True para estimar los tiempos de llegada y salida de un dataset GTFS de entrada con un archivo stop_times.txt que no tenga valores explícitos para todos los campos arrival_time y departure_time.
La herramienta construye la clase de entidad Stops utilizando valores de latitud y longitud de los campos stop_lat y stop_lon del archivo stops.txt GTFS.
La herramienta construye las entidades LineVariantElements creando una línea recta entre cada par de paradas que esté directamente conectado por un viaje de transporte.
Nota:
Las entidades LineVariantElements no están destinadas para representar las rutas geográficas reales que realizan los autobuses, trenes u otros vehículos de transporte público, sino que representan conexiones lógicas en el sistema de transporte. Las entidades LineVariantElements no están pensadas para usarlas para la visualización. El evaluador de Transporte público del dataset de red utilizará horarios de transporte público para determinar el tiempo de viaje requerido para el trazado poligonal de una entidad LineVariantElements, por lo que su forma y longitud son irrelevantes. Sin embargo, si lo desea, puede editar las formas de las entidades LineVariantElements manualmente, pero las entidades no se dividirán ni se fusionarán.
Si más de una ruta GTFS ofrece servicio entre las mismas dos paradas, se creará una entidad LineVariantElements por route_id GTFS que proporciona el servicio. Por ejemplo, si el autobús 10 y el autobús 47 viajan entre las mismas dos paradas sin ninguna otra parada entre medias, la herramienta generará dos entidades LineVariantElements, una para el autobús 10 y otra para el autobús 47. Estas dos entidades de línea coincidirán geográficamente.
Dado que el modelo de datos de transporte público requiere clases de entidad y tablas con nombres específicos, no es posible incluir más de un conjunto de clases de entidad y tablas del modelo de datos de transporte público en la misma geodatabase. El dataset de entidades de destino no debe estar contenido en una geodatabase que ya tenga otro dataset de entidades con clases de entidad del modelo de datos de transporte público.
Si el dataset de entidades de destino está en una geodatabase corporativa, no debe versionarse. Antes de ejecutar la herramienta, concilie y publique los datos en el dataset de entidades y delo de baja como versionado.
Sintaxis
arcpy.conversion.GTFSToNetworkDatasetTransitSources(in_gtfs_folders, target_feature_dataset, {interpolate}, {append})
Parámetro | Explicación | Tipo de datos |
in_gtfs_folders [in_gtfs_folders,...] | Una o varias carpetas que contienen datos GTFS válidos. Cada carpeta debe contener los archivos stops.txt, routes.txt, trips.txt y stop_times.txt GTFS, así como el archivo calendar.txt o calendar_dates.txt, o ambos. | Folder |
target_feature_dataset | El dataset de entidades donde se creará el dataset de red habilitado para el transporte. Las clases de entidad Stops y LineVariantElements creadas por esta herramienta se colocarán en este dataset de entidades y las tablas de salida creadas por esta herramienta se colocarán en la geodatabase principal de este dataset de entidades. El dataset de entidades puede estar en una geodatabase de archivos o en una geodatabase corporativa, y puede tener cualquier referencia espacial. Si el dataset de entidades de destino está en una geodatabase corporativa, no debe versionarse. El dataset de entidades de destino no debe estar contenido en una geodatabase que ya tenga otro dataset de entidades con clases de entidad del modelo de datos de transporte público. | Feature Dataset |
interpolate (Opcional) | Especifica si se deben interpolar los valores en blanco desde los campos arrival_time y departure_time en el archivo stop_times.txt GTFS al crear las tablas de modelo de datos de transporte público.
| Boolean |
append (Opcional) | Especifica si se deben incorporar los datasets GTFS de entrada a tablas y clases de entidad existentes del modelo de datos de transporte público en el dataset de entidades de destino y su geodatabase principal.
| Boolean |
Salida derivada
Nombre | Explicación | Tipo de datos |
updated_target_feature_dataset | El dataset de entidades al que se han agregado las nuevas clases de entidad. | Dataset de entidades |
output_stops | La clase de entidad Stops del modelo de datos de transporte público de Network Analyst. | Clase de entidad |
output_line_variant_elements | La clase de entidad LineVariantElements del modelo de datos de transporte público de Network Analyst. | Clase de entidad |
output_calendars | La tabla Calendars del modelo de datos de transporte público de Network Analyst. | Tabla |
output_calendar_exceptions | La tabla CalendarExceptions del modelo de datos de transporte público de Network Analyst. | Tabla |
output_lines | La tabla Lines del modelo de datos de transporte público de Network Analyst. | Tabla |
output_line_variants | La tabla LineVariants del modelo de datos de transporte público de Network Analyst. | Tabla |
output_runs | La tabla Runs del modelo de datos de transporte público de Network Analyst. | Tabla |
output_schedule_elements | La tabla ScheduleElements del modelo de datos de transporte público de Network Analyst. | Tabla |
output_schedules | La tabla Schedules del modelo de datos de transporte público de Network Analyst. | Tabla |
Muestra de código
El siguiente script demuestra cómo usar la herramienta GTFSToNetworkDatasetTransitSources en la ventana de Python.
fd_path = r"E:\TransitAnalysis\TransitNetwork.gdb\TransitNetwork"
arcpy.conversion.GTFSToNetworkDatasetTransitSources([r"E:\GTFS\Agency1", r"E:\GTFS\Agency2"], fd_path)
El siguiente script independiente de Python muestra cómo se pueden utilizar juntas las herramientas GTFSToNetworkDatasetTransitSources y ConnectNetworkDatasetTransitSourcesToStreets para crear un dataset de red habilitado para el transporte.
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)
Entornos
Información de licenciamiento
- Basic: Sí
- Standard: Sí
- Advanced: Sí