You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to onebusaway-developers
Hi all,
In today's OBA Board call, I promised to post about a tool we created that helps combine stops from multiple different agencies in a single OneBusAway instance into a single logical stop. We're using this with OBA Tampa as we add a new agency.
Here's the problem we're trying to solve - if two agencies, HART and PSTA, both serve a particular location, there will be an entry in each agency's GTFS stops.txt data. By default, these will show up as two overlapping (or very near) stops in OneBusAway - HART arrivals will appear when you tap on one stop, and PSTA arrivals will appear when you tap on the other.
Obviously, this isn't great from a usability standpoint - riders view this as a single stop, and they should be able to tap on a single stop and see arrivals for both agencies.
We are manually maintaining the mapping between the stops from each agency via a Google Spreadsheet - this makes it easy for an authorized user to update the mapping:
(All credit to Brian Ferris for the algorithm -- I just found it in
the code base. In the future we hope to add hints to it to ignore
stops that can't be consolidated to clean up the results.)
This outputs a CSV report of stops to consider for consolidation. We
then edit the stop consolidation file (shown below) on the wiki, and
configure the entity replacement just as you have:
This outputs another CSV file, an entry for each line of the stop
consolidation file that did not consolidate properly.
These two tasks are examples of the arbitrary task integration
framework that is part of the bundle build process. It allows for
workflow like this to happen to achieve optimized results. Other
examples of this task integration include the ability to archive the
input GTFS to a database: