Transporte público.

Buenas,

Mi nombre es Manuel Naranjo, soy casi ing Electrónico de la UNR Rosario (casi porque me falta terminar de escribir el informe de mi proyecto final para recibirme), he colaborado en múltiples proyectos open source (pueden buscarme en github, en el kernel de linux, googlecode, etc).

Programo en varios lenguajes principalmente C/C++ y Python aunque últimamente me estoy apasionando por JavaScript y también manejo Java, .Net, etc aunque no son mi fuerte.

Hace unos meses empece a trabajar con la secretaría de transporte de la nación a través de la UTN, y me asignaron una tarea más que interesante y desafiante, y es el crear un sistema similar al cuándo llega que tenemos en Rosario pero para AMBA (Área metropolitana de Buenos Aires sino me equivoco). Esté sistema entre varias funciones permite al usuario consultar en pseudo tiempo real, cuál es el horario estimado de llegada del próximo colectivo a la parada X, también permite resolver dada una intersección cuál es el número de la parada X, que colectivos pasan por dicha parada, e incluso la muni de Rosario hizo un soft que permite buscar recorridos dado un punto inicial, un punto final y cantidad máximas de cuadras dispuestas a caminar, pero convengamos que la complejidad de Rosario es mucho más baja que AMBA, acá es raro que hagamos combinaciones, no tenemos subtes, etc.

Yo soy un ferviente usuario y desarrollador de software libre, y creo que no tiene sentido ni reinventar la rueda, ni duplicar esfuerzos, ni tampoco beneficiarse del SL sólo para beneficio propio, por el contrario todo lo que se puede lo he liberado, salvo en aquellos casos que chocase con la propiedad intelectual de las empresas en las que estuve, o de datos confidenciales en bases de datos. Pero no creo que la info de dónde se encuentre el transporte público, ni tampoco la info cartográfica deba ser cerrada.

Bueno la cosa es que entre tanto buscar, la gente de la cooperativa de software Unixono de Bahía Blanca me menciono un standard abierto para informar sobre horarios y estado del transporte público llamado GTFS, el cuál fue desarrollado por Google, otros privados, empresas de transporte tanto públicas como privadas, etc. Esto resuelve una gran parte de mi problema original, al permitir utilizar un standard probado, para reportar estado tanto estático (planilals de horarios, paradas, recorridos, frecuencia, etc) como dinámico (cortes, demoras, desvíos, etc) del transporte público.

Mi búsqueda siguió y dí con OpenTripPlanner el cuál consume la información GTFS, OSM y otras fuentes y permite calcular la ruta entre dos puntos utilizando distintos medios de transporte incluyendo transporte público :smiley: como hace GMaps en otros países, calculando no sólo el tiempo que demoras, sino también las distintas combinaciones que necesitas (esto para un alguien que va a CABA y es de otra ciudad, como yo, es fundamental ya que tienen 800000 de lineas distintas).

Ahora llego el momento de empezar a poner las piezas del rompecabezas juntas y me empece a encontrar con el inconveniente de no contar ni con los recorridos de los colectivos, ni sus respectivas paradas, de forma digital… Hasta que me puse a jugar con OSM nuevamente y encontré para mi sorpresa que muchísima gente ya había colaborado en mapear tanto lineas como paradas :D:D:D en CABA, y encima lo había hecho en una herramienta que amo y utilizo que es OSM :), el siguiente paso fue buscar a la gente que trabajo en eso, y así llegue a la wiki, y luego a este post en particular.

Espero no haberlo cansado, seguramente van a escuchar de mí prontamente. No sé si podré ir en Noviembre, pero voy a tratar de estar, se me complican los tiempos porque quiero ir a PyCon 2014 esté año también.

Saludos,

-Manuel

Buenísimo Manuel, esperamos tus aportes, es uno de mis puntos pendientes relevar transportes.

Si el estándar GTFS es código abierto y lo está impulsando Google, eso significa que hay empresas que están informando sus recorridos. Me pregunto cómo podemos aprovechar eso para registrar la info de viajes en OSM.

Buenisimo Manuel, en GBA todavía nos faltan muuchas lineas y ramales, ni hablar de las paradas, pero bueno somos pocos en el tema por ahora. Que bueno que quieran crear un ruteador/buscador de transporte para esta zona, sólo espero 2 cosas: que el mapa base sea OSM :wink: , y que no cometan los mismos errores que estan cometiendo casi todas las webs de transporte publico (Comoviajo.com, Xcolectivo, Omnilineas, Cualbondi, entre otras) que es copiar la info tal cual de la CNRT que está llena de errores, nosotros estamos tratando de relevarlos desde la realidad.
Te dejo este link que tal vez te sirva: http://tracker.geops.ch/?z=13&s=1&lat=47.36586210087735&lon=8.546676635742188

muy bueno!!! :smiley:

El tema es que tienen que coincidir con el recorrido aprobado por eso lo de la CNRT.

Buenas AgusQui y el resto de la gente!
Soy Julian de Cualbondi.

Te comento que me puse las pilas y pasé casi todos los relation de transporte_pubico>caba de la wiki de osm a cualbondi la semana pasada. La idea es pensar si puedo, en un mecanismo automático que deje relacionados los relation de osm con recorridos de cualbondi. Nosotros tenemos un botoncito de “editar recorrido” y la gente lo usa, tengo que pensar cómo puedo de alguna forma conectar las ediciones que me pasa la gente desde cualbondi con las que hacen ustedes en osm y que la comunicación sea bidireccional sin perder la integridad de la bd.
Se me ocurren un par de ideas, pero tengo que evaluar…

Otro tema: tengo ganas de colaborar desarrollando algo para ayudar. Estaba pensando en armar alguna herramienta que facilite encontrar errores en recorridos de transporte publico, se me ocurre algo que te diga si un recorrido esta partido, que se pueda embeber como imagen en la wiki, una imagencita para cada relation que quede roja si el recorrido esta partido y verde si esta todo unido, parecido a esas imagenes de codecoverage o build passed/failed que usan en github.

Pienso en que se haga el chequeo (tengo el codigo para hacerlo) cada vez que se hace un request a una img, tipo http://tools.cualbondi.com.ar/check_relation.png?id=123456 Y si mata el server, se puede probar haciendolo offline con un cron.

No se… que les parecen las ideas? Me estaré yendo al carajo? Será una boludez todo esto que digo? jajaja

Excelente tus ideas, creo que es lo que pretendemos de OSM, que sea la base de la cual se alimenten otros servicios y que estos servicios realimenten OSM.

Además sería excelente poder vincular al transporte porque es un dato un tanto pobre hoy en la visualización en OSM, si hay herramientas que le saquen el jugo a toda la info que OSM tiene seguramente la info de OSM crecerá en calidad.

Si vas a usar los bondis de OSM buenisimo, el único problema es que, hablando de CABA y GBA, todavía nos falta un montón para hacer y tendrías que usar un mix entre lo nuestro y lo tuyo, lo bueno de OSM es que podrías usar las paradas que ninguna otra web tiene.
Respecto al tema de lo que edita la gente en tu web: Podrías darles la opción de editar en Cualbondi y después ustedes los corrigen en OSM, o darles la posibilidad de editar en OSM directamente, esto último nos vendría bárbaro ya que por ahora somos muy pocos con el transporte público. También esta la posibilidad de que la gente comente el error que ve y quede en una nota en OSM para que lo vea otro maper.
Lo de la herramienta que detecte errores sería genial, es muy común que un novato rompa las relaciones, y a veces pasa mucho tiempo hasta que nos damos cuenta, si se rompe una relación la herramienta podría avisarnos automáticamente. Fijate en la tabla de bondis de la wiki hay un link a una herramienta que detecta errores, pero hay que entrar relación por relación (nadie lo va a hacer).
Hacía mucho que no entraba a Cualbondi, hicieron mejoras, la principal: se puede hacer zoom en el mapa!, fijate que el render que estás usando (mapa Bing) está muy desactualizado y tiene muchos errores groseros, te recomiendo que uses uno de OSM que además te van a coincidir las calles con el recorrido (en los recorridos sacados de OSM claro)

Yo no recomendaría OSM para una web editar porque es muy poco práctico para un usuario común, al ser con relaciones casi que te obliga a usar JOSM y definitivamente no es para novatos.

Al contrario usaría tu front-end y que después se pase la corrección a OSM, de esa manera ganás muchos potenciales usuarios a los que se les simplificaría la contribución. Como mucho algún link explicando cómo se hace el cambio en OSM directamente, por las dudas que justo haya un usuario de la web que ya contribuya a OSM, sino tenés que ser muy freakie para editar en OSM directamente relaciones de transportes sin haber hecho otras ediciones antes.

De acuerdo, pero podría tener una buena explicación de qué es OpenStreetMap y que cualquiera lo puede editar, no sólo por los bondis sino para el que vea errores en el mapa.

Bienvenido jperelli! Un gusto que hayas elegido OpenStreetMap, he visto que sólo hay rutas en 9 ciudades, estaría bueno si podrías sumar algunas más. Acá hay si mal no recuerdo desde abajo:
Ushuaia, Río Grande, El Calafate, Río Gallegos, Caleta Olivia, Comodoro Rivadavia, Trelew, Rawson, Bariloche, Neuquén, Cipolletti, SMA, SAO, Bahía Blanca, Partido de La Costa, Villa María, Rosario, AMBA, Cba, Mza, Resistencia, Salta, Chivilcoy

Hola, que buena onda la gente de cualbondi,

nose si usan postgis para sus datos pero pueden chequear integridad de vectores con st_isvalid http://postgis.net/docs/ST_IsValid.html , o st_makevalid que fuerza a que la geometría sea válida. el st_isvalidreason te devuelve la razón por la cual es o no válida http://postgis.net/docs/ST_IsValidReason.html

Si es lado cliente para edición pueden utilizar TurfJS http://turfjs.org/static/docs/

Siempre me dio mucha fiaca pereza ponerme a estudiar lo de transporte publico.

Y la verdad que ahora me cope con el asunto, excelente la wiki que armo’ AgusQui

Saludos.

Yo también aprendí bastante gracias al tutorial de Agus :smiley:

En Misiones estuve trabajando un poco, debería continuar haciéndolo, en estos días retomo: en Posadas relevé entre un 30 y 40% del total de las paradas de la zona urbana, aunque me cuesta un poco conseguir los recorridos completos de las líneas (de la gran mayoría conozco, pero no considero colocar información incompleta acá). Mientras que en Oberá conseguí los recorridos de todas líneas, que las agrego de a poco, pero me falta relevar paradas.

Estaría muuy bueno que Cual Bondi nos vaya sumando de a poco al resto de las ciudades que faltan.

Mendoza : Los Mis primeros 3 recorridos !

Por favor revisen si hice bien :wink:

G03 - 112
http://www.openstreetmap.org/relation/4664544
http://www.openstreetmap.org/relation/4664545
http://www.openstreetmap.org/relation/4664546

Origen: http://www.ciudaddemendoza.gov.ar/e-ciudad/recorrido-autobuses

Tambien fui al wiki Mendoza/transporte_publico agregue a la tabla los miles de recorridos del Grupo 03 (que no estaba ¿?!)

Saludos!

Están re bien, ahora te faltan las paradas y los recorridos de vuelta y relacionarlos todos con la ruta maestra.
El tag name lo pondría así:
Línea G03 - Recorrido 112: Las Heras → Escuela Ponce → Bº La Favorita, pero es un detalle menor, la idea es la misma.
Al ser 3 ramales distintos tenés que diferenciarlos en el ref: G03-112P en el caso del que va por escuela Ponce.

Relevante: CABA: zona-sur-tiene-un-nuevo-centro-de-trasbordo

Incluye un mapa con la paradas por linea!

Saludos.

Aprovecho a preguntar algo al respecto: conviene poner en el ref de las líneas la inicial del lugar por donde pasa el ramal? Ejemplo: la “línea 24 x Hospital” y “línea 24 x Terminal”, ponerlo como “24H” y “24T” respectivamente?? Siendo que oficialmente para la empresa y el municipio son “24A” y “24B”. El tema es que en la cartelería no se diferencian con el ref, sino con “24 Hospital” y “24 Terminal”. Y ni yo y juraría que casi nadie en la ciudad sabría cuál de esos ramales es la A y la B… Nadie dice “me tomo el 24B”.

En resumen, en “ref” va la denominación oficial sí o sí?

Yo pondría el número oficial en ref (24A, 24B) y en la descripción Hospital o Terminal.

La convención lo aclara, la idea del ref es que un usuario habitual del transporte público al ver el ref en un mapa se dé cuenta de que ramal se trata, si le ponés 24B es inútil, si le ponés 24Hospital ya sería un quilombo para el render en zonas con muchos bondis, 24H es más facil de entender
Sería algo así:
24Hospital > usuario que no sabe (ideal, pero es probable que no se renderize la mayor parte del recorrido)
24H > usuario habitual, al ver el render se puede dar cuenta de que ramal se trata
24B > sólo se da cuenta si el usuario trabaja en la CNRT o es un fanático de los bondis.

No lo había pensado, podríamos agregar a las rutas official_name=Línea 24 - Ramal B