GTFS a Modelo de datos de transporte público (Transporte público)

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 representan las paradas, líneas y horarios de transporte público en el formato definido por el modelo de datos de transporte público Network Analyst.

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 modelo de datos de transporte público 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.

La salida de esta herramienta también puede utilizarse como entrada para la herramienta Calcular frecuencia de servicios 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 genera una advertencia y no procesa ese dataset. La salida de la herramienta solo incluirá datos de los datasets GTFS de entrada que se hayan procesado correctamente. Si algunos datasets GTFS se procesaron correctamente y otros no se procesaron 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 activado (append = "APPEND" en Python).

  • 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. Active el parámetro Interpolar tiempos de parada en blanco (interpolate = "INTERPOLATE" en Python) 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.

  • Los campos stop_lat y stop_lon del archivo stops.txt GTFS definen la latitud y la longitud de las paradas. Estos campos están permitidos cuando se especifica un valor nulo si el campo location_type de la parada tiene un valor 3 o 4. Sin embargo, como esta herramienta crea entidades geográficas para representar paradas, no puede representar cartográficamente las paradas sin latitud o longitud. Por consiguiente, las paradas con valores location_type de 3 o 4 y valores nulos para stop_lat o stop_lon se omitirán y no se incluirán en la salida de la herramienta.

  • 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 no puede editarlas ni fusionarlas.

  • Si más de una ruta GTFS ofrece servicio entre las mismas dos paradas, se creará una entidad LineVariantElements por cada valor route_id de 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. No incluya el dataset de entidades de destino en una geodatabase con un dataset de entidades existente que contenga 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.

Parámetros

EtiquetaExplicaciónTipo de datos
Carpetas GTFS de entrada

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, así como el archivo calendar.txt o calendar_dates.txt, o ambos.

Folder
Dataset de entidades de destino

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. No incluya el dataset de entidades de destino en una geodatabase con un dataset de entidades existente que contenga clases de entidad del modelo de datos de transporte público.

Feature Dataset
Interpolar tiempos de parada en blanco
(Opcional)

Especifica si se interpolarán los valores en blanco de los campos arrival_time y departure_time del archivo GTFS stop_times.txt al crear las tablas de modelo de datos de transporte público.

  • Activado: los valores en blanco se interpolarán utilizando interpolación lineal sencilla. Los datos GTFS originales no se modificarán. Si no hay valores en blanco en los datos originales, no se producirá ninguna interpolación.
  • Desactivado: los valores en blanco no se interpolarán. Si se encuentran valores en blanco en los datos GTFS de entrada, la herramienta emitirá una advertencia y no procesará el dataset GTFS. Esta es la opción predeterminada.
Boolean
Incorporar a tablas existentes
(Opcional)

Especifica si los datasets GTFS de entrada se incorporarán 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.

Este parámetro estará oculto si el dataset de entidades de destino y su geodatabase principal no contienen ninguna tabla ni clase de entidad existente del modelo de datos de transporte público.

  • Activado: los datos se incorporarán a las tablas y clases de entidad existentes.
  • Desactivado: no se incorporarán los datos. Las tablas y clases de entidad existentes se sobrescribirán. Esta es la opción predeterminada.
Boolean

Salida derivada

EtiquetaExplicaciónTipo de datos
Dataset de entidades de destino actualizado

El dataset de entidades al que se han agregado las nuevas clases de entidad.

Feature Dataset
Paradas de salida

Clase de entidad Stops del modelo de datos de transporte público de Network Analyst.

Feature Class
Elementos de variantes de líneas de salida

Clase de entidad LineVariantElements del modelo de datos de transporte público de Network Analyst.

Feature Class
Calendarios de salida

Tabla Calendars del modelo de datos de transporte público de Network Analyst.

Table
Excepciones de calendarios de salida

Tabla CalendarExceptions del modelo de datos de transporte público de Network Analyst.

Table
Líneas de salida

Tabla Lines del modelo de datos de transporte público de Network Analyst.

Table
Variantes de líneas de salida

Tabla LineVariants del modelo de datos de transporte público de Network Analyst.

Table
Ejecuciones de salida

Tabla Runs del modelo de datos de transporte público de Network Analyst.

Table
Elementos de horarios de salida

Tabla ScheduleElements del modelo de datos de transporte público de Network Analyst.

Table
Horarios de salida

Tabla Schedules del modelo de datos de transporte público de Network Analyst.

Table

arcpy.transit.GTFSToPublicTransitDataModel(in_gtfs_folders, target_feature_dataset, {interpolate}, {append})
NombreExplicaciónTipo 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, 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. No incluya el dataset de entidades de destino en una geodatabase con un dataset de entidades existente que contenga clases de entidad del modelo de datos de transporte público.

Feature Dataset
interpolate
(Opcional)

Especifica si se interpolarán los valores en blanco de los campos arrival_time y departure_time del archivo GTFS stop_times.txt al crear las tablas de modelo de datos de transporte público.

  • INTERPOLATELos valores en blanco se interpolarán utilizando interpolación lineal sencilla. Los datos GTFS originales no se modificarán. Si no hay valores en blanco en los datos originales, no se producirá ninguna interpolación.
  • NO_INTERPOLATELos valores en blanco no se interpolarán. Si se encuentran valores en blanco en los datos GTFS de entrada, la herramienta emitirá una advertencia y no procesará el dataset GTFS. Esta es la opción predeterminada.
Boolean
append
(Opcional)

Especifica si los datasets GTFS de entrada se incorporarán 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.

  • APPENDLos datos se incorporarán a las tablas y clases de entidad existentes.
  • NO_APPENDNo se incorporarán los datos. Las tablas y clases de entidad existentes se sobrescribirán. Esta es la opción predeterminada.
Boolean

Salida derivada

NombreExplicaciónTipo de datos
updated_target_feature_dataset

El dataset de entidades al que se han agregado las nuevas clases de entidad.

Feature Dataset
output_stops

Clase de entidad Stops del modelo de datos de transporte público de Network Analyst.

Feature Class
output_line_variant_elements

Clase de entidad LineVariantElements del modelo de datos de transporte público de Network Analyst.

Feature Class
output_calendars

Tabla Calendars del modelo de datos de transporte público de Network Analyst.

Table
output_calendar_exceptions

Tabla CalendarExceptions del modelo de datos de transporte público de Network Analyst.

Table
output_lines

Tabla Lines del modelo de datos de transporte público de Network Analyst.

Table
output_line_variants

Tabla LineVariants del modelo de datos de transporte público de Network Analyst.

Table
output_runs

Tabla Runs del modelo de datos de transporte público de Network Analyst.

Table
output_schedule_elements

Tabla ScheduleElements del modelo de datos de transporte público de Network Analyst.

Table
output_schedules

Tabla Schedules del modelo de datos de transporte público de Network Analyst.

Table

Muestra de código

Ejemplo 1 de GTFSToPublicTransitDataModel (ventana de Python)

El siguiente script muestra cómo utilizar la función GTFSToPublicTransitDataModel en la ventana de Python.

fd_path = r"E:\TransitAnalysis\TransitNetwork.gdb\TransitNetwork"
arcpy.transit.GTFSToPublicTransitDataModel([r"E:\GTFS\Agency1", r"E:\GTFS\Agency2"], fd_path)
Ejemplo 2 de GTFSToPublicTransitDataModel (script independiente)

El siguiente script independiente de Python muestra cómo se pueden utilizar juntas las funciones GTFSToPublicTransitDataModel y ConnectPublicTransitDataModelToStreets 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.transit.GTFSToPublicTransitDataModel(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.transit.ConnectPublicTransitDataModelToStreets(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

Esta herramienta no utiliza ningún entorno de geoprocesamiento.

Información de licenciamiento

  • Basic: Sí
  • Standard: Sí
  • Advanced: Sí

Temas relacionados