QROTI

From OpenStreetMap Wiki
Jump to: navigation, search

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
Way or Node Role Recurrence? Imported? Discussion
Way (blank) zero or more N The ways making up the route.
Way hail zero or more N The bus route observes intending hailing passengers at any safe place on this way (a "hail and ride" section), not just at designated bus stops.

Note: This form of service is being phased out of the Translink network, in favour of distinct bus stops.

Way setdown zero or more N The bus route will drop off passengers at any safe place on this way, not just at designated bus stops.

Note: This form of setdown is typically used on late night services. Ideally the late night form of the route will be different to the daytime form, but the import may not be able to be this "smart".

Way start exactly one N The beginning way on the route.
Node start exactly one N The beginning node on the route.

The beginning node should be selected such that a route starts from this node, along the beginning way in a direction that then encounters the beginning bus stop. This helps determine the direction that the route commences, for example in circular routes.

Way terminus exactly one N The ending way on the route.
Node terminus exactly one N The ending node on the route.

The ending node should be selected such that a route concludes at this node, having just encountered the ending bus stop. This helps determine the direction that the route concludes, for example in circular routes.

Node (blank) zero or more Y The bus stops observed on the route.

If the bus route runs express, therefore not observing a bus stop on the route, simply leave the node out of the relation completely.

Node start exactly one Y The beginning bus stop on the route.
Node terminus exactly one Y The ending bus stop on the route.

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
Way or Node Role Recurrence? Imported? Discussion
Relation (blank) one or more N The directional routes this route junction applies to.
Way at exactly one N The way before the route junction.

Should be a way on the route.

Way next exactly one N The way to use after the route junction.

Should be a way on the route.


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:

Compare with

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.