QROTI
If you know about the current state of affairs, please help keep everyone informed by updating this information. (Discussion)
The Queensland's Railways On The Internet website http://qroti.com/ also contains an experimental bus network section for the Brisbane metropolitan area, viewable from http://qroti.com/placeinfo/suburbs/map/.
In a previous life, OSM contributor morb_au was the sole surveyor of the bus stop data that was hosted by QROTI. He also performed data entry of the bus route data. Given that nowadays morb_au has less time to contribute towards keeping the bus stop network up to date, it seems worthwhile to release the bus stop data to the OSM community with a view to the community helping to keep the network up to date in OSM.
Status
Only a private feasibility study has occurred at this time. This included the ability to convert from the private QROTI data structure to a JOSM-readable OSM XML data file, and the ability to create a custom Slippy map layer that emphasises bus infrastructure. Both have been successful as proofs of concept, so now is the time to take it public.
Implementation Plan
Task | Why | Status | |
---|---|---|---|
Build out the street network for Brisbane. | Provides a backdrop and context for visualising the public transport network on the QROTI website, or any other "creative, productive, or unexpected" purpose. | Ongoing by OSM contributors; currently generally adequate for Brisbane area. | |
Build a private feasibility study. | Build confidence that the job can actually be done in OSM. | Done. | |
Convert from the private QROTI data structure to a JOSM-readable OSM XML data file. | Staging the import as a JOSM file will allow for review before being committed to the production OSM data set. | Proof of concept: Done. Examples of the JOSM data file are available from morb_au upon request. | |
Create a custom Slippy map layer that emphasises bus infrastructure. | The QROTI website will need a way to view the bus stop information once the "point of truth" is transferred to the OSM data set. | Proof of concept: Done. | |
Engage with the OSM community. | Build confidence that the OSM community is willing to accept the QROTI import. | Started. | |
Create an OSM wiki section about the QROTI import. | Provides documentation about the provenance of QROTI-derived data. | Done. You're reading it. | |
Create an OSM wiki section about the QROTI import schema. | Provides documentation about the semantics of QROTI-derived data; Helps OSM contributors maintain the QROTI-derived data to match the current reality "in the field"; Helps bind the basic information in the OSM data set to enhanced information on the QROTI website (such as timetables). | To do. | |
Finalise the contents of the QROTI import as a JOSM XML file. | Provide an opportunity for review before the actual import. | To do. | |
Perform the import via JOSM. | Fulfils the vision! | To do. | |
Refactor the QROTI website to use the OSM data set as the point of truth. | OSM contributors can see their valuable edits reflected in a useful way. | To do. |
Data Schema
Summary
The QROTI-imported schema will cover bus stops (as OSM nodes) and the bus routes (as OSM relations referencing the nodes) that service them.
The import will not cover the ways that the bus routes use. These will need to be added in later, directly into OSM. (Unfortunately the original QROTI implementation ties the route geography to proprietary road geometry in many places, therefore automated import into OSM is undesirable.)
Bus routes are fine grained: If some services are "short workings" or "route variations", they are split out and represented as their own OSM relations.
Details
details to come
Nodes
details to come
Bus Stop
Key | Value | Imported? | Discussion |
---|---|---|---|
Maintained by OSM contributors | |||
highway | bus_stop | Y | Indicates this node represents a bus stop. In the import, it is placed in such a way that the bus stop signpost "in the field" is actually in line between this OSM node and the nearest way.
The representation of "the nearest point on the nearest way" is yet to be determined. |
name | a name | Y | The bus stop name, as you would expect to see on the bus stop signpost. |
ref | a Translink stop ID | N | The Translink bus stop ID, as you would expect to see on the timetable displayed at the bus stop. |
network | au_translink | Y | http://www.translink.qld.gov.au/ |
url | a URL | Y | In the import, the URL on the QROTI website that contains a presentation of the details of this bus stop. If the Translink website ever implements a web page per bus stop, its URL should be entered here instead. |
zone | a Translink fare zone | Y | The Translink fare zone, as you would expect to see on the bus stop signpost. For example, "1" or in the case of a dual zone, "1/2". |
last_surveyed | a timestamp | Y | Last survey time "in the field". |
created_by | upload_qroti | Y | Refers to the process referred to in this wiki page. |
source | qroti.com | Y | Refers to the process referred to in this wiki page. |
Maintained by QROTI | |||
qroti:place_id | a QROTI place ID | Y | The Place ID of this stop on the QROTI website. |
qroti:stop_num | a bus stop number | Y | The bus stop number, as you would expect to see on the bus stop signpost. This is different to the stop ID or ref. |
qroti:part | a bus stop part | Y | The bus stop part, as you would expect to see on the bus stop signpost. This is different to the stop ID, stop number or ref. Bus stop parts are usually seen at interchanges where several bus stops are clustered. You would normally see an OSM bus_station node in the vicinity. |
qroti:type | Bus Stop | Y | more to come |
qroti:mode | more to come | Y | more to come |
qroti:last_surveyed | a date | Y | The last time the bus stop was surveyed "in the field" by a QROTI representative. |
qroti:url | a URL | Y | The URL on the QROTI website that contains a presentation of the details of this bus stop. |
more to come
Bus Station
Nodes with amenity=bus_station would normally be known in the Brisbane area as interchanges or busway stations.
They are not included in the QROTI import, and therefore are directly entered by OSM contributors.
Relations
Bus Route
Key | Value | Imported? | Discussion |
---|---|---|---|
Maintained by OSM contributors | |||
type | route | Y | Indicates this Relation represents a route. |
route | bus | Y | Indicates this route is a bus route. |
name | a name | Y | The route name, as you would expect to see on the destination blind of the bus service.
In the case of scrolling displays, include all text in the sequence |
ref | a route number | Y | The route number, as you would expect to see on the destination blind of the bus service. |
network | au_translink | Y | http://www.translink.qld.gov.au/ |
operator | Brisbane Transport / Hornibrook Bus Lines / Westside / Surfside Buslines / Sunbus / Logan City Bus Service / Veolia / Laidley Bus Service / Thompson's-Strathpine / Kangaroo Bus Lines / etc. | Y | |
state | not present | Y | This route is the standard route with this ref. |
state | alternate | Y | This route is a variation of the standard route with the same ref. |
valid_from | a date | Y | The date this route is effective from (typically the commencement date of the associated published timetable). |
valid_to | a date | Y | The date this route is effective to (typically the day preceding the commencement date of a superseding published timetable). |
Maintained by QROTI | |||
more to come |
Members
more to come
0.5 API Design Restrictions Encountered
Since members of a relation are unordered in the 0.5 API, maintaining full fidelity of the route ordering is difficult. Therefore a set of hints is deployed on the imported data, in particular the concepts of "start" and "terminus". These hints can go away if a future version of the API supports ordered relation memberships.
Since a way cannot be more than one member of a relation in the 0.5 API (even with different roles!), multiple roles should be added to the same member, separated with the semicolon (;).
Route Junction
Some bus routes contain loops. The concept of a "route junction" determines if a route should branch to the loop section (typically the first time traversing a way) or should continue to the through section of the route (typically the second time traversing a way).
It's called a route junction (as opposed to a "bus route junction") since it should work equally well on any directional route.
Key | Value | Imported? | Discussion |
---|---|---|---|
Maintained by OSM contributors | |||
type | route_junction | N | Indicates this Relation represents a route junction. |
route_junction | directional | N | Indicates this route junction provides directions for way traversal. |
count | a number | N | The traversal count for this route junction.
e.g. If this route junction should apply for ways encountered for the first time on a route, this value should be "1". For the second time on the same route (e.g. after having traversed a loop), use "2" here, and so on. |
Members
0.5 API Design Restrictions Encountered
Since members of a relation are unordered in the 0.5 API, maintaining full fidelity of the route ordering is difficult. Therefore a set of hints is deployed on the imported data, in particular the concept of the "route junction". These hints can go away if a future version of the API supports ordered relation memberships.
Potlatch 0.10 Implementation Restrictions Encountered
Since Potlatch 0.10 cannot add a relation as a member of another relation, editing of loops in the route is not possible at this time. In contrast, this feat is possible in JOSM (e.g. revision 656).
Inspiration
The QROTI import schema was influenced by the following sources:
- The original private QROTI data schema
- Talk:Buses
- Tag:highway=bus_stop
- Tag:amenity=bus_station
- Relation:route
Compare with
- General Transit Feed Specification (GTFS)
- UK GovTalk
- National Public Transport Access Nodes (NaPTAN) - http://www.govtalk.gov.uk/schemasstandards/schemalibrary_schema.asp?schemaid=246
- Transmodel - http://www.transmodel.org/en/cadre1.html (mentioned in Tag:highway=bus_stop)
Data Quality
The vast majority of bus stops in the Brisbane City Council area has been captured over a period from 2000. However this means that some surveyed bus stops could be out of date by a similar period of time.
Further metadata will be published in due course.
Legal
morb_au is sole director of Proceed Media Pty Ltd, which is the holding company of the QROTI intellectual property. Given that morb_au is also the sole surveyor of bus stop locations and the amenities available at those locations, it should be relatively trivial to assign a new copyright licence to that data set.