Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
The global standard data format for public transit is (GTFS), which is used by Google Transit and most transit related apps. It critically needs a stop-centric database and routes laid out in a systemized way. Also, it is a format that needs a program to generate it; it cannot be generated in a manual way.
Note: here by "GTFS feed" we mean "static GTFS feed". The live-GPS position one is a different specification altogether and the data for it isn't available so we're not covering it here.. for now.
However, if your transit agency's data is relatively simple (like : the same routes ply everyday, and one route plies in only one set sequence every time), the base data needed to generate a GTFS feed CAN be manually created as simple tabular data following a few simple rules, which can in turn be read by a program and a GTFS feed can be generated.
Upon researching online, we found that while there are many paid options available for one-time GTFS generation for a hefty fee, there weren't free / open source applications available to create this otherwise open-source data format. There are applications that can take an existing GTFS feed and visualize it, but creating GTFS from scratch seems tricky. Plus, in transit agencies from other parts of the world there are differences in way of organizing, etc that make it tricky to directly apply data from say PMPML. The paid option also gets unviable for developing nation transit agencies that can't afford the costs, and where the data is changing much more often as cities grow and routes are added and removed and bus stops themselves change. And so the idea came to create this program ourselves and make it open source and easy to run as many times as needed.
There are two things to do here :
Program : Create a program that takes in some simple tables having bus stops and routes information, and generate a static GTFS feed from it.
Data : Bring the available data we have from PMPML to the simple tablular format that the program above can use to generate a static GTFS feed.
These are two separate projects and can proceed independently.
For the programming part, here's the project : Project: GTFS feed creation
The Data part can be further split into two : one project to deal with bus stops, and another to deal with bus routes. The input / raw data for this has been released by PMPML on the Pune Open Data portal.