Visualizando datos en formato GTFS con QGIS

En esta oportunidad abordamos la temática sobre el transporte público y una alternativa para su representación espacial, en este caso nos referimos a una especificación de datos conocida por sus siglas en inglés como GTFS (General Transit Feed Specification), el cual define un formato común para los horarios de transporte público y la información geográfica relacionada. Según (1), permite a las agencias de transporte público publicar sus datos de tránsito en un formato que puede ser consumido por una gran variedad de aplicaciones de software. Hoy en día, el formato de datos GTFS es utilizado por miles de proveedores de transporte público.

Según (3), un feed es un formato de datos utilizado para proporcionar a los usuarios contenidos actualizado con cierta frecuencia. Dentro del ámbito del estándar GTFS existen dos tipos:

  • Feeds GTFS estáticos, que son es una serie de archivos CSV, comprimidos en formato ZIP, con diferentes niveles de detalle según la precisión facilitada por las empresas o agencias que lo provean.
  • Feeds GTFS-realtime, que proporcionan tres tipos de información actualizada en tiempo real sobre los servicios, como predicciones de llegada (actualización del viaje), posiciones de vehículos y avisos de servicio (alertas).

Principales Aplicaciones (Fuente: Wikipedia)

  • Planificación de viajes, GTFS se utiliza normalmente para proporcionar datos sobre el transporte público para su uso en aplicaciones de planificación de viajes multimodales.
  • Investigación de accesibilidad del tránsito, GTFS es usado para estimar los tiempos de viaje en tránsito desde un punto a muchos otros puntos en diferentes momentos del día.
  • Comparación de niveles de servicio, un análisis de los cambios en el servicio a lo largo del tiempo se puede lograr simplemente comparando los datos GTFS publicados para la misma agencia en diferentes períodos de tiempo.

Estructura de los GTFS

Un feed GTFS es una colección de al menos seis y hasta 13 archivos CSV (con extensión .txt) contenidos en un archivo .zip. La codificación de caracteres preferida es UTF-8. En conjunto, las tablas CSV relacionadas describen las operaciones programadas de un sistema de tránsito como visibles para los pasajeros.

DIAGRAMA DE CLASES DE GTFS
Fuente: Wikipedia

Uso de Plugins con QGIS

Dentro de QGIS existen un grupo de plugins que nos permiten capturar, generar, visualizar y hasta modelar este tipo de datos GTFS. En esta oportunidad se describirá con cierto detalle a dos plugins. Hablamos del denominado GTFS Loader y del GTFS-GO.

1. GTFS Loader

El plugin nos permite abrir un archivo con la extensión .zip, el mismo que contiene la estructura de datos GTFS indicada previamente. Según la documentación del Plugin, una de las fuente de datos a emplearse sería la página del PID.

Otras fuentes de datos que podemos emplear son:

Dentro del QGIS luego de ser instalado nos aparece un pequeño panel que nos permite ingresar la ruta de acceso al archivo en formato GTFS. En la siguiente imagen se presenta un ejemplo de la ciudad de Sao Paulo en Brasil que fue descargada previamente desde aquí. Tener en cuenta que el plugin solo acepta archivos con la extensión .zip.

El resultado que vemos en nuestro panel de capas, se trata de un grupo de datos de tipo vectorial (rutas y paradas) y de tablas relacionadas, todos ellos almacenados en formato GeoPackage.

Vista de datos GTFS sobre el tránsito en Sao Paulo

La ventaja de contar con un archivo en formato GeoPackage, es la posibilidad de incorporarlo a nuestro administrador de base de datos y realizar las consultas necesarias.

Integración del archivo GeoPackage generado dentro del administrados de bases de datos del QGIS.

2. GTFS-GO

El plugin nos permite extraer datos GTFS como GeoJSON y logra representar rutas y paradas en el mapa. Cuando activamos el plugin nos aparece un pequeño panel en donde tenemos la opción de cargar un archivo .zip, del mismo modo vemos que existen algunos ejemplos disponibles. En este caso cargamos el de la ciudad de México.

Luego podemos ajustar nuestra salida para mostrar solo rutas (routes) y paradas (stops).

Como resultado obtenido podemos apreciar que se muestra una simbología propia elaborada para una mejor visualización. Se considera esta opción como una simplificación a todas las tablas que existen en los datos, buscando tener una presentación rápida de la información.

Otra opción con que contamos es incorporar la frecuencia de tráfico, si tenemos en cuenta que como parte de los datos se tiene registrado el horario del servicio, esto se podría calcular. Para lograr esto debemos seleccionar «aggregate route frecuency«. Se probó que funciona para el caso de los datos del Bronx, por lo tanto, tendremos como resultado una capa de frecuencia como línea, en donde si hacemos un acercamiento veremos que existen unos números, los cuales representan la frecuencia de cada línea, a mayor frecuencia de la ruta las líneas son más gruesas. También se crea una capa de puntos denominada «frequency_stops», que contiene los nombres de las paradas similares, que nos pueden permitir unificar valores.

Se comparte un vídeo demostrativo con el uso de ambos plugins.

Referencias:

  1. General Transit Feed Specification Site.
  2. Descripción general de la especificación GTFS estática.
  3. GTFS: Un estandar para horarios de transporte público e información geográfica asociada.
  4. Wikipedia: General Transit Feed Specification

Uso del Append Features to Layer en QGIS

En esta oportunidad vamos a mostrar de manera práctica el uso del plugin de QGIS denominado Append Features to Layer, el cual fue recientemente actualizado. Me pareció interesante lo que nos permite hacer cuando manejamos capas de tipo vectorial, por ejemplo, para aquellos que están actualizando los campos de manera permanente.

Funcionamiento del Plugin

Vamos a entender el funcionamiento del plugin en algunos casos que se puedan presentar, con la finalidad de ilustrar el uso que podemos darle y que nos permitirá facilitar nuestro trabajo.

Caso 1: Cuando necesitamos integrar elementos geográficos (features) a nuestra capa vectorial, los cuales contienen los mismos campos en la tabla de atributos. Por ejemplo, en la imagen podemos ver un grupo de polígonos (límites políticos), los cuales están incompletos, con el plugin podemos unirlos para integrarlos en un un sola capa vectorial.

Caso 2: En el caso que al tener una capa vectorial con todos sus elementos completos, pero que existen la necesidad algunos elementos geográficos en donde se necesita actualizar los datos en sus campos. Siguiendo con el ejemplo, es posible que en algunos límites de distritos, los valores de población se hayan actualizado, en este caso también podemos emplear el plugin, con la finalidad de actualizar solo las geometrías en donde sea necesario, sin alternar nada más.

Podemos resumir que el plugin nos permite integrar o unir capas vectoriales con la posibilidad de mantener la estructura de los campos ya establecido, del mismo modo, podemos actualizar valores en aquellos campos que han sufrido alguna variación, pero siempre en base a la existencia de otra capa vectorial con los nuevos datos. Lo interesante es la facilidad que nos brinda el plugin para evitar duplicar geometrías, para ello es necesario seleccionar bien las opciones.

Mayor detalle sobre el funcionamiento del plugin lo pueden encontrar en su repositorio de código, además se debe mencionar que el plugin incorpora en la «Caja de herramientas de Procesado», dos modelos que nos permiten automatizar algún proceso más complejo y con mayor cantidad de capas.

Como recurso adicional y para un mejor entendimiento se elaboró un vídeo en donde se muestra algunas aplicaciones del plugin presentado. En caso deseen probarlo, pueden descargar los datos de los ejemplos desde aquí.

Demostración del uso del Plugin Append Features to Layer

Plataforma de Enseñanza EducaGIS

Para el presente año 2021, vamos a retomar la elaboración de cursos a través de la plataforma de enseñanza EducaGIS. Dentro de este ambiente se buscará una mayor interacción con los alumnos, combinando el acceso del material de enseñanza y diversas actividades que buscan un mejor aprendizaje, entre ellos el desarrollo de ejercicios y evaluaciones por tema a desarrollar. El primero de los cursos a ofrecer se denomina QGIS 3.16 – Nivel Básico (QGIS-1) y según la programación deberá estar disponible durante las primeras semanas de Julio.

De manera adicional desde el presente Blog, se brindará algunos cursos libres con la finalidad de brindar acceso sin restricciones, al material de enseñanza y los interesados puedan consultarlos cuando lo deseen, los mismos tendrán una secuencia lógica de temas para cumplir los objetivos de aprendizaje que se proponen. En la actualidad ya se encuentra disponible el curso denominado «SIG – Nivel Básico«, al cual pueden acceder desde el menú de Cursos.

Los cursos libres estarán principalmente dirigidos para personas con poco o ningún conocimiento sobre los Sistemas de Información Geográfica (SIG) y las tecnologías relacionadas. Dentro de lo posible, se pretende seguir un flujo o secuencia de aprendizaje, en donde los cursos libres formen parte de los requisitos previos para llevar los cursos brindados a través de la plataforma EducaGIS.

Si bien existe un manual de usuario de la Plataforma EducaGIS, en los próximos días estará disponible una actualización necesaria. Por el momento, aquellos que expresen su interés en llevar cursos, pueden ir al menú de Contacto, con el objetivo de recopilar los datos necesarios para la generación de usuarios de la Plataforma.