Mapping pedestrian traffic light timing in Sydney, Australia

See my follow up blog post, going into detail on previously unreleased maps, how it costs $200 to buy data on a single intersection from TfNSW, comparisons with best practice and more: Shining a Light on the Traffic Signals of Sydney (Jul 2023)

See comments below, on Mastodon, Hacker News (51 comments), or LinkedIn (22 comments, 278 likes, 32k views)

Transport for NSW, the government agency which controls traffic signal timing in Sydney and elsewhere in NSW, has an excellent stated goal of increasing walking and cycling trips – and reducing pedestrian wait times at intersections.

However, there is no public data on traffic light timing in Sydney or NSW.

In the absence of traffic light timing data, and as we hold hope for it to become publicly available; the aim of Better Intersections is to crowdsource measurements and inform where positive changes could be made. You can add data yourself via a simple Google Form, and instructions are on the website about page.

Screenshot of betterintersections.jakecoppinger.com

Subscribe to Jake’s Blog

Email notifications of new blog posts are infrequent, brief, and plain text.

Table of Contents

Better Intersections is a tool to record and visualise timing details for pedestrian and bicycle signals. It’s focused on Sydney & NSW, Australia, but is adaptable for anywhere in the world. This website is open source on Github (contributions welcome!), and the data is under an open license (ODbL license).

If you have ideas for improvements, please create a Github issue, comment below, email me at [email protected] or message me on Mastodon (@[email protected]).

It’s a work in progress! I’ve tinkered on it for a few afternoons and started working on it about two weeks ago.

This website bridges the excellent TfNSW Active Transport policy guidelines and pedestrians on the street themselves, allowing people on foot (and bicycle) to see their experience represented.

Detailed view of intersection (betterintersections.jakecoppinger.com/intersection/node/4054127218)

Why does the timing of pedestrian signals matter?

Transport for NSW, the government agency which controls traffic signal timing in Sydney and elsewhere in NSW, has an excellent stated goal of increasing walking and cycling trips – and reducing pedestrian wait times at intersections.

However, there is no public data on traffic light timing in Sydney or NSW.

In the absence of traffic light timing data, and as we hold hope for it to become publicly available; the aim of this project is to crowdsource measurements and inform where positive changes could be made.

This website bridges the excellent TfNSW Active Transport policy guidelines and pedestrians on the street themselves, allowing people on foot (and bicycle) to see their experience represented.

Increasing pedestrian priority and providing crossing opportunities at the right locations and along desire lines, reduces the risk of pedestrian injury at intersections by encouraging safer behaviours. Transport is currently rolling out measures at intersections to improve pedestrian priority in areas of high pedestrian activity. These measures may include automation of pedestrian crossings, reduced pedestrian wait times, provision of pedestrian crossings on missing legs and kerb ramps, where applicable.

TfNSW Active Transport Strategy, page 30. Emphasis added.

Research has shown that 30 seconds is the longest a pedestrian will wait at a signalised crossings before attempting to cross against the ‘red man’. (Martin, A., 2006. Factors influencing pedestrian safety: a literature review (No. PPR241). Wokingham, Berks: TRL (Transport for London.)

From the above report:

Hunt, Lyons and Parker (2000) state that ‘Although no clear relationship has been established between pedestrian delay and casualties, a more balanced and responsive approach to the allocation of time at Pelican/Puffin crossings has the potential to make a substantial contribution to a decrease in pedestrian casualties as well as improving pedestrian amenity’. They point out that because pedestrians are more likely to become impatient when a red man continues to be shown during periods of low vehicle flow, the reduction of unnecessary delay for pedestrians should encourage pedestrians to use crossings correctly and reduce risk taking.

In 2020, people driving vehicles killed 138 pedestrians on Australian roads (Department of Infrastructure, Transport, Regional Development and Communications (2021) Fact sheet: Vulnerable road users, National Road Safety Strategy.)

But isn’t traffic light timing variable?

Sydney uses a system called Sydney Coordinated Adaptive Traffic System (SCATS) to control traffic signals, which makes use of many data feeds to control timing data.

Neither the inputs used, or the algorithm used to weigh the input data is public (as far as I know). This crowdsourced method of discrete measurements provides shows the output of the black box. In the case of outliers, multiple measurements (at different times of day/week) can be used to determine if the timing is variable.

Gehl Architects have a great methodology for measuring the overall impact of traffic light delays on pedestrians. At its most basic you walk along a street with two stopwatches;

  • one you pause only when you’re walking;
  • one you pause only when you’re waiting at a traffic light.

Divide one by the other at the end, and you have a single number that quantifies pedestrian delay walking along a street.

Public spaces & public life: Sydney 2020, Gehl Architects, pg 142

The limitations of this method are that

  • it cannot inform the exact problematic intersections;
  • paths must be long enough to gather a large enough sample size to be statistically significant.

I’ve experimented with automating this method by recording a GPX (GPS) trace with a phone, uploading that file and getting a number instantly. Unfortunately the urban canyon effect (GPS signal loss caused by tall buildings) makes this method unreliable in cities, even with the remarkable sensor fusion on modern phones.

As with any of my projects, I am always open to collaboration. If you have any ideas, iterations or improvements, please drop me a line!

Technical details

This is a fairly simple Typescript app created using Create React App that I built in a few afternoons – please don’t consider it my finest code!

It is a static React app hosted on Cloudflare pages, and uses Mapbox GL JS to display the map (but could be easily updated to use Maplibre GL JS).

Google Sheets is treated as a backend (for simplicity using a Google Form for submissions), and the app makes use of OpenStreetMap node IDs as primary keys for intersections. This is definitely suboptimal but it’s quick to build – ideally I’d have a more custom form that is easier to use and doesn’t require a Google account – however using Google accounts for the form is a quick and easy method of minimising spam (and making it easy to identify) remove spam from a single person).

The OpenStreetMap API is used for looking up coordinates of OSM nodes and finding adjacent ways. There is currently one request per intersection made – this will not scale and I’ll likely need to cache the JSON (or hit an Overpass Turbo server instead).

The code is fully covered by Typescript types but doesn’t (yet?) have unit tests – it’s very easy to work with if you’re interested in tinkering with it!

Possible further work

  • Adding a simplified version of the form
  • Support OSM ways as the primary key rather than just nodes (useful for crossings across divided carriageways with multiple traffic light nodes per crossing leg)
  • Tagging state roads and looking if these have longer wait times on average (probably)
  • Scatter plot of crossing times vs number of lanes (as rough proxy for traffic volume)
  • “sparkline” or other graphs of measurements for a given intersection
  • Thinking about how to record relationships between intersections (ie. green wave/lack of green wave for pedestrians)
    • Using YOLOv3 or another off the shelf commodity computer vision model for recognising green/flashing red/red traffic lights for algorithm measuring cycle times

Related organisations

If you support better conditions for pedestrians and cyclists in Sydney/NSW, consider joining BetterStreets or 30 Please.

4 responses to “Mapping pedestrian traffic light timing in Sydney, Australia”

  1. null Avatar

    this is awesome, in case you haven’t seen it here’s a fairly current proposal for including this type of info on an osm intersection node https://wiki.openstreetmap.org/wiki/Proposal:Traffic_Signal_Timings

    1. Jake C Avatar

      Thanks!

      I’m very supportive of adding this data into OSM if possible, but I don’t think dynamic SCATS timing would be suitable

      > This proposal does not cover, and is not intended to cover, the following scenarios:
      > …
      > – Signals that dynamically interact with each other

  2. Grant King Avatar
    Grant King

    Jake, I came to learn about your work via the article on the ABC this morning. I feel we’re missing a big point.

    I get infuriated when I’m standing facing a green traffic light at a crossroad but a red walk light. There’s no traffic in any direction for miles. I press the button, and we have to go through an entire cycle where the traffic light goes red, then green for the road I want to cross, then back to both green for traffic and walk for my direction.

    This is so brain dead. The signal should be wired to sense that there’s no traffic and instantly give me a green walk signal.

    That’s the way it works in more advanced countries. Even the USA, where cars are king.

    Keep up the good work,

    Grant

  3. David James Avatar
    David James

    Jake – a great initiative. I live on CBD-edge. Been a car-less pedestrian for 40 years!! Often find myself waiting at intersections for lights to change. (Time to consider & think.) Have noted the delay problems at various intersections. Have reported to Council, but seems they are hamstrung by the (over) controlling RMS.
    I long ago learnt that “no one tells the RTA/RMS what to do”; any criticism/ suggestions are immediately dismissed as ‘we know best’.)
    Railway Sq. (George, Pitt Lee, Quay Streets) is a classic intersection where one can stand and watch no pedestrians and no vehicles moving for periods – even at peak hour.
    Encourages impatient peds to disregard lights and cross anyway. At some risk.
    Timers (have seen many elsewhere) help overcome impatience BUT need to be both ‘How long left to cross’ AND ‘how long to wait for a green’. Good luck on your campaign.

Leave a Reply

Your email address will not be published. Required fields are marked *