TL;DR I wrote new console app that takes GTFS as an input and tells you exact changes you need to do in OSM to make it as close to GTFS as possible. Head to source to start using it.

Try it out on your GTFS and let me know how it went! I am open to suggestions, new ideas and new checks!


Purpose of this tool is to help find errors and differences between GTFS and OSM data. It will also help point to errors in PTv2 routes in OSM. It covers wide range of errors, tag checks, geometry checks… (when I say “wide”, I really mean it! - check to keep me honest, I am really proud what you can check today).

Once you import data in OSM (or when new version of GTFS data is released), you can use this tool to check if all data from GTFS is imported in OSM correctly and what are differences.

Tool is heavily relying on PTv2 spec and do not try to deviate from it. One would might say it is “opinionated”:)

This tool is not general-purpose PTv2 quality assurance tool, even though it points to a lot of PTv2 errors in OSM. It is handy if you are OK with console output and quick iterations as you can grep it, cron it, sed it as you like. Check this wiki for other great tools.

Why new tool

Belgrade, Serbia released open GTFS data and I wanted to conflate it to OSM (as an authorative dataset). However, none of the tools could scratch my itch. PTNA is awesome tool and Toni was great to onboard Belgrade, and while it shows errors, I didn’t have level of control I wanted. Our western neighbors in Croatia also developed a tool named Triglav. I experimented with it, but it was currently not generic enough to accept another city and I didn’t know Elixir enough to adopt it to Belgrade:) I tried to fiddle with GO-Sync, but I really didn’t have any control and it was that non-intuitive that I didn’t know how to even start (and yes, I read documentation:D) So, basically, that was whole ecosystem I can find. So, I started writing it as a way to help GTFS=>OSM syncing with a goal to make it usable for any GTFS in the world. I think I am halfway there:)

What’s next

I would like to see some better output. Some HTML dump with some fancy <table> that can do filtering, or even show Leaflet map with GTFS and OSM route for visual inspection. This is ideal task for beginner. If you want to start learning Python, or deepen your knowledge of it, I am willing to mentor you!

Additionally, this tool could be used to automate commits (if you are brave enough and you get sign off from import mailing list and local community:).

Location: Dorcol, Old Town, Stari Grad Urban Municipality, Belgrade, City of Belgrade, Central Serbia, 11000, Serbia

Comment from gileri on 1 February 2021 at 10:34

Thank you for this, and the detailed readme explaining all the checks !

Login to leave a comment