Adrián Castelló, ganador del primer premio de la XVIII edición del Premio Internacional Francisco Coello que organiza la Escuela Politécnica Superior de Jaén de la Universidad de Jaén.
El trabajo de fin de máster de nuestro compañero Adrián Castelló, «Design and Implementation of an Algorithm for Automatic Cartographic Generalization of Railways using OSM Vector Data», se ha alzado con el primer premio de de 1.500 euros de este certamen.
A continuación, Adrián nos explica en qué se basa todo el trabajo realizado.
Generalización cartográfica, un término tan amplio como antiguo, se refiere a la modificación de la geometría y posición de los objetos en el mapa en función de la escala de visualización.
Este proceso, debido a su complicada ejecución es considerado por muchos cartógrafos como un arte, ya que tradicionalmente se ha llevado a cabo por medios manuales y requiere de una dilatada experiencia en el campo.
Existen muchos tipos de generalización cartografica que varían según el propósito final del mapa. Esta tesis se centra en la generalización cartografica de ferrocarriles para su adaptación a las nuevas tecnologías, en las cuales se requiere, desde el punto de vista del usuario una rápida y sencilla visualización, ya que, casi con total seguridad, se estará visualizando la cartografia en un dispositivo móvil.
Por otro lado, desde el punto de vista del programador de aplicaciones de transporte público, en las cuales se empleen datos GNSS en tiempo real, se prefieren conexiones directas entre estaciones de tren, donde poder representar la posición de los trenes.
Adicionalmente, frente a la obtención de estadísticas sobre la cantidad de trenes entre estaciones, perfiles de velocidad, etc, la obtención de una cartografia adecuadamente generalizada es de vital importancia.
Hasta ahora, empresas como Evoq realizan estos procedimientos de forma manual, obteniendo el mejor resultado posible a costa de una gran inversión de tiempo y dinero.
Por ello, se propuso el desarrollo de un algoritmo de generalización automatica de ferrocarriles que pudiese replicar esos resultados sin la necesidad de operadores humanos y en un corto intervalo de tiempo (de alrededor de pocas horas para un país del tamaño de España).
Dicho algoritmo debe poder trabajar con datos abiertos (OpenStreetMap) y sin la necesidad de determinados atributos que puedan ayudar a la clasificación de estaciones y ferrocarriles ya que, en la mayoría de países, no se dispone de la información a tanto nivel de detalle.
Estos fueron los requisitos presentados por la empresa geOps, la cual subvencionó la tesis y en la cual me encuentro trabajando actualmente.
El proceso de generalización sigue 4 pasos principales:
- Preprocesamiento automatizado del conjunto de datos. En esta parte, el algoritmo extrae los ferrocarriles y las estaciones de tren, mediante las cuales obtiene todas las posibles combinaciones. Además, calcula la importancia de las estaciones de tren basandose en el numero de vías de tren.
- Agregación de los ferrocarriles. El algoritmo obtiene conexiones simples entre estaciones de tren utilizando algoritmos de cálculo de rutas óptimas y realiza un posterior filtrado de posibles lineas incorrectas.
- Cálculo de niveles de visibilidad. Mediante la combinación de la fórmula de Sturges y el algoritmo de Jenks de saltos naturales, se realiza una clasificación de las estaciones de tren utilizando la importancia de las mismas calculada anteriormente. A partir de dicha clasificación se utiliza el algoritmo de rutas óptimas sobre cada grupo de estaciones, obteniendo así una clasificación de los ferrocarriles según su número de coincidencias. La obtención de estos niveles de visibilidad permite la ocultación de lineas según el nivel de escala.
- Simplificación geométrica. Utilizando el número de clases obtenidas anteriormente, se realizam diferentes simplificaciones geometrícas para diferentes niveles de escala.
El área seleccionada de trabajo es Freiburg im Breisgau y sus alrededores, en Alemania. Los ferrocarriles originales y las estaciones se pueden observar en la imagen de la izquierda.
Tras aplicar el algoritmo hasta el paso 3, las líneas quedan agregadas y clasificadas, junto con las estaciones (las líneas están simbolizadas con una escala de color de verde a rojo representando su nivel de importancia, siendo el verde el menos importante y el rojo el más importante. Por otro lado, las estaciones se han simbolizado mediante una variación en el tono, siendo el más claro el de menor importancia y el más oscuro el de mayor importancia):
El desarrollo de este algoritmo se ha llevado a cabo mediante PostgreSQL, PostGIS y pl/pgSQL.
Actualmente continúo desarrollando y mejorando el algoritmo en geOps donde ya ha sido utilizado en distintos proyectos.