TfNSW Data Imports

From OpenStreetMap Wiki
Jump to navigation Jump to search

This page aims to track any requests for imports of Transport for New South Wales datasets people may have. Thanks to a waiver from Transport for New South Wales, datasets owned by Transport for New South Wales can be freely imported into OpenStreetMap.

Bus Stops

Many bus stops in New South Wales are mapped but are not properly named/tagged. In some cases, the location of bus stops may be slightly inaccurate.

Thanks to a Transport for New South Wales dataset, this data can be imported, improving the accuracy of the thousands of bus stops around New South Wales on Open Street Map. However, OSM mappers in New South Wales are carrying out this import by suburbs, to ensure the accuracy of the imported data and so as not to go against the import guidelines. If you are curious as to what changes the import makes, an example changeset can be found here.

The following mappers are working on this import: @Ortho is hot: -- willing to import suburbs on request

Process

Data from the most recent TfNSW GTFS dataset should be converted into an OpenData friendly format:

  1. Extract stops.txt from the downloaded ZIP file
  2. Convert the file into a CSV (The file already has the correct formatting, just change the extension to .csv)
  3. Exclude rows that match the following patterns:
    1. location_type == 1 (These are train stations)
    2. parent_station has a value (These are train station platforms)
    3. stop_code is empty (These appear to be interstate stops for ACT & QLD)
    4. TODO: wharves - How can these be identified in the dataset? May require use of the other files in the dataset.
    5. TODO: light rail stops - As above
    6. Note: Pre-processing may need to be centralised and done with scripts.
  4. Perform the following data mappings (columns not mentioned should be removed from the CSV):
    1. ref = stop_id
    2. gtfs_id = stop_id (Note: This is the same as ref)
    3. name = stop_name
      1. Note: Talk-au has questioned whether names should be expanded from their truncated form. @Aharvey: suggested to import as-is, as these can be fixed later on.
      2. e.g. St into Street, and Opp into opposite
    4. latitude = stop_lat
    5. longitude = stop_lon
  5. Add these extra values to all stops:
    1. bus=yes
    2. highway=bus_stop
    3. public_transport=platform

Imports should be done via JOSM with the OpenData and Conflation plugins:

  1. TODO: Outline this process better
  2. Open the CSV in JOSM in a new layer (1) using WGS84
  3. Download existing data for the suburb you wish to import as a separate layer (2)
  4. Remove all bus stops from layer 1 that are outside the suburb boundaries
    1. The DCS Administrative Boundaries Suburb layer is useful for identifying the exact suburb boundary
  5. Perform conflation of layers 1 & 2 on highway=bus_stop
  6. Upload changes
    1. The changeset must contain the source: source=TfNSW GTFS
    2. The changeset comment should start with something like Imported bus stops from TfNSW GTFS for <suburb>. Optionally be more verbose if conflation with existing stops occurred, or you adjusted some lat/longs.

Imported Suburbs

Imported suburbs have moved here

Import Requests


  • Blackheath, 2785 Jt15s (talk) 03:57, 25 October 2020 (UTC) Ortho is hot (talk) 01:43, 26 October 2020 (UTC) imported in 93033406
  • Leura, 2780 2hu4u (talk) 22:01, 26 October 2020 (UTC) Ortho is hot (talk) 22:18, 11 November 2020 (UTC) imported in 93954055
  • Katoomba, 2780 2hu4u (talk) 03:19, 27 January 2021 (UTC)

--Place your request above this line--


Park & Ride

The Park & Ride dataset is available here (account required). Given the (current) lack of detail with the dataset (name, suburb, and corresponding GTFS ID), as well as representations with just nodes, this dataset is not particularly suited to an important. It may be helpful as a reference, as well as to determine if there are missing parking lots from OSM. As OpenStreetMap has existing tagging schemes for these facilities, tagging should be done as follows:

amenity=parking
parking=*
park_ride=yes
access=customers
name=*