Launching a tool for composing transit schedules data in static GTFS standard

47 views
Skip to first unread message

Nikhil VJ

unread,
Apr 12, 2018, 1:28:56 PM4/12/18
to datameet
Hi Friends,

Over the last few months I went deep-dive into a project with WRI (World Resources Institute) and Kochi Metro in Kerala (KMRL) to convert their scheduling data to the global standard static GTFS format. 

The first phase of the project was about just the data conversion. I wrote a python program that took in KMRL's data files and some configuration files, and created a static GTFS feed as output. There were many more complexities than I can share here, and Shine David from KMRL was a crucial enabler by being the inside man sharing all necessary info and clarifications.

On 17 March this year, Kochi Metro Rail Ltd became India's first transit agency to publish static GTFS feed of their system as open data.

See the KMRL open data portal and some news coverage: 1, 2, 3, 4.

See it visualized on a global GTFS feeds map called TRAVIC
(zoom in to kochi and press fast forward. Can adjust time of day.)

Phase 2 of the project aimed higher : we started work on a program with a graphical user interface that would automate several manual processes and help KMRL update their data as the network grows, publish updated feeds on their own without having to rely on any external entity, and very importantly for their case, integrate bus and ferry routes of Kochi in the near future to build towards a unified public transport dataset and facilitate integrated ticketing. As we progressed into this we realised the potential this can have if we generalise it so that any transit agency can use it.

So, here's launching..




Did I mention we have open sourced the whole thing? Big Kudos to WRI and especially Vishal who co-ordinated the whole project, for being proactive and pro-open-source with this. 

The program runs in the browser (actually, please use Chrome or Chromium and no mobile!) as a website with a server backend created by a Python 3 program. It manages the data in a portable internal database and publishes fresh GTFS feeds whenever wanted.

To play around with a live demo version of the program, see: https://thawing-mountain-46422.herokuapp.com/

Note: If you want to make edits, imports or exports, the password is second paragraph > second line > fifth word of this email. And I won't maintain this instance (made a throwaway one to share with big mailing lists) so go ahead and mess with it at own expense.

Note: while it's compatible to publish this program on a free heroku account, it is currently not designed for multi-user use. That's kind of not in the basic requirements, as end user is just a transport agency's internal team. (With your participation we can change that.)


So, why I am sharing about this here: Apart from obviously sharing cool stuff,

With this it's possible to design any transport system's static GTFS feed from scratch, or edit an older feed you have lying around and bring it up to date.

---------------------

Invitation for Collaboration

There is more that can be done with enhancements and integrations, and there are still some limitations that need to be resolved. I'm documenting all I know in the issues section. So I'm reaching out for inviting collaborations on the coding and beta testing front. One motive behind open sourcing is that the community can achieve far more with this project than what any private individual or group can. There's also scope to integrate many other GTFS innovations happening. Please visit the github repo and engage!

One immediate request from my end: I need help with making a windows binary from this program. I found the guides to do it, but my laptop's windows OS is  gone wonky, for some reason I'm not able to get some things to work out. I'm looking for someone who can do python 3 on a windows machine.

Lastly, big shout-out to DMers Srinivas Kodali from Hyderabad chapter for connecting and lots of guiding, and to Devdatta Tengshe from Pune chapter for helping me learn asynchronous server setup in Python in a lightning fast way (with a working example for dummies!)


Quick links:

--
Cheers,
Nikhil VJ
+91-966-583-1250
Pune, India
Website <http://nikhilvj.co.in>
DataMeet Pune chapter <https://datameet-pune.github.io/>
Self-designed learner at Swaraj University <http://www.swarajuniversity.org>

Namrata Mehta

unread,
Apr 13, 2018, 5:12:13 AM4/13/18
to data...@googlegroups.com
This is amazing Nikhil! 

--
Datameet is a community of Data Science enthusiasts in India. Know more about us by visiting http://datameet.org
---
You received this message because you are subscribed to the Google Groups "datameet" group.
To unsubscribe from this group and stop receiving emails from it, send an email to datameet+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Navaneethan Santhanam

unread,
Apr 21, 2018, 5:10:12 PM4/21/18
to datameet
Hi Nikhil,

Great job - how can I contribute to this? I'll have a look at the Github repo!

Nikhil VJ

unread,
Apr 22, 2018, 3:32:04 AM4/22/18
to datameet
Hi Navaneethan,

Thanks!

Ways to contribute..

1. If you have contacts with people in transit agencies (or CM Fellows or something), please connect and let's see if the agency would like to start work on digitising or updating their schedules in this global standard format. Can share the TRAVIC map with them to convey the potential.

2. Same if its a network of citizens who want to digitize a transport system irrespective of official agency's buy-in. We can get them set up with their own instance.

3. Beta testing the tool, submitting feedback and suggestions on the github repo.

4. Documentation help : There's a lot to do. From user side as well as for explaining to collaborating coders.

5. If you'd like to collaborate on programming front, most welcome! Pick one issue / enhancement to take up. Since the documentation part is lacking right now, I'll need to walk you through some things (which might help in documentation)

6. Help in making a standalone windows executable version of the program.

I still have to send the outreach to send to the international GTFS community (wanted to fix a bunch of things that came up); once that is done, more activities may happen.


--
Cheers,
Nikhil VJ
+91-966-583-1250
Pune, India
Website <http://nikhilvj.co.in>
DataMeet Pune chapter <https://datameet-pune.github.io/>
Self-designed learner at Swaraj University <http://www.swarajuniversity.org>

--
Datameet is a community of Data Science enthusiasts in India. Know more about us by visiting http://datameet.org
---
You received this message because you are subscribed to the Google Groups "datameet" group.
To unsubscribe from this group and stop receiving emails from it, send an email to datameet+unsubscribe@googlegroups.com.

Nikhil VJ

unread,
Apr 26, 2018, 5:01:33 AM4/26/18
to datameet
Hi friends,

I've released a Windows click-and-launch (ok, double-click) version of this GTFS Manager tool :

Would there be windows users willing to try it out and share feedback on whether it worked? Please post feedback with OS details here.

Also, new videos made to possibly share with contacts in transit agencies : 

(waiting for feedback before making more videos to demo all of the features)

--
Cheers,
Nikhil VJ
+91-966-583-1250
Pune, India
Website <http://nikhilvj.co.in>
DataMeet Pune chapter <https://datameet-pune.github.io/>
Self-designed learner at Swaraj University <http://www.swarajuniversity.org>

On Sun, Apr 22, 2018 at 1:01 PM, Nikhil VJ <nikh...@gmail.com> wrote:
Hi Navaneethan,

Thanks!

Ways to contribute..

1. If you have contacts with people in transit agencies (or CM Fellows or something), please connect and let's see if the agency would like to start work on digitising or updating their schedules in this global standard format. Can share the TRAVIC map with them to convey the potential.

2. Same if its a network of citizens who want to digitize a transport system irrespective of official agency's buy-in. We can get them set up with their own instance.

3. Beta testing the tool, submitting feedback and suggestions on the github repo.

4. Documentation help : There's a lot to do. From user side as well as for explaining to collaborating coders.

5. If you'd like to collaborate on programming front, most welcome! Pick one issue / enhancement to take up. Since the documentation part is lacking right now, I'll need to walk you through some things (which might help in documentation)

6. Help in making a standalone windows executable version of the program.

I still have to send the outreach to send to the international GTFS community (wanted to fix a bunch of things that came up); once that is done, more activities may happen.


--
Cheers,
Nikhil VJ
+91-966-583-1250
Pune, India
Website <http://nikhilvj.co.in>
DataMeet Pune chapter <https://datameet-pune.github.io/>
Self-designed learner at Swaraj University <http://www.swarajuniversity.org>

Reply all
Reply to author
Forward
0 new messages