Friday, May 12, 2023

The F*ck-it List by John Niven


It's good. Really good. The best. It has an unlikely hero. It is dark. It has guns. It describes real recent events. It describes a likely future or what could have been. It's dystopian, but the American reality in 2020s is dystopian. 

Audiobook read by Ian Porter.

Warning: 18+ content.

Tuesday, April 25, 2023

Public Transport: Fares, Service, Ridership

I haven't written here in two years, but a recent conversation on Mastodon with Daniel Bowen motivated me to come back. Here's Daniel's toot:

...and my, equally emotional, reply:

...and Daniel's challenge to me:


The Guardian article that started this:

So, what would be my one citation reply?
 
1. Maybe this, showing that cost, compared to driving and parking is the most important single reason to use public transport (PT) in Queensland, in other words, if fuel to drive to work costs $2, and parking is free, good luck convincing that person to spend $4 to ride a bus:
Source: page 12 here:

Some people may argue that the above graph shows that once you make public transport available, people will use it because it's cheaper. It depends where they are going. When public transport is available most people still don't use it. The city of Gold Coast is served by over 400 buses, a 45 km long fast train line (NGR trains run 140 km/h in Gold Coast) with 15 minute frequency at peak time, a 20 km long light rail with 7.5 minute frequency most of the day, and still less than 5% of all trips are by public transport. It's because most people already have cars and use public transport when it's cheaper or easier (faster). Long distance commuting to work in the CBD, where parking is expensive? Public transport. Shorter distance trip to the shops, doctor, park where car parking is free? Car. Public transport is mainly used by professionals, and students who don't have cars and pay half price or zero. 

Should we strive to make frequent public transport available everywhere? This is where we get to the problem of land use. If we zone for low density, we will always have a problem of total travel time being very noncompetitive with cars. The distance to the bus/tram/train stop matters. Even if buses were running every 5 minutes, but the stop was 10 minutes away on foot, people would get in a car and drive 5-10-15 minutes to their destination with free parking, instead of paying $2.84 for the bus (1 zone, off-peak). There should be a minimum service in such areas, so people who don't drive (too young, too old, no car, no licence, disabled, sick, intoxicated etc) are not excluded from the society, but it does not make economical and ecological sense for public transport to run empty

We can increase ridership quickly, even in low density areas, by making all car parking paid, and by making public transport free. In this case, the PT option would be competitive even for short trips to shops, and even with minimum service.

                                                                                                        

2. Or this, showing low ridership off peak when fast services, relatively frequent (every 30 minutes), are available:

My photo above: a typical, almost empty Queensland Rail train in Gold Coast around 9 am. The 6 minute trip between Coomera and Helensvale costs $3.47 (2 zones, off-peak).

                                                                                                        

3. Or this table, showing that overall the too high price is as important a reason to not use public transport as too low frequency for students and staff of QUT:

Source: https://www.fmd.qut.edu.au/sustainability/pdfs/2017QUTTransportSurveyReport.pdf

                                                                                                        

4. Or these quotes, from the same source:

Notably, eight of the top 20 locations from which single occupant car users travel to their main campus also appear in the top 20 locations from which public 2017 QUT Transport Survey 3 transport users travel to their main campus. This suggests that the single occupant car users originating from these locations aren’t necessarily choosing to drive a car due to a lack of public transport availability in those locations.

The factors that received the lowest satisfaction ratings were price, travel time, and information provision.

Finally, satisfaction with price was rated highest by respondents who use the QUT Intercampus Bus 391 [free, every 10 minutes] and those using active transport (bicycle and walk).

Price was rated lowest [for satisfaction] by public transport users and respondents who use a taxi/Uber/other rideshare service.


                                                                                                        

5. Or these respondents' answers to what QUT could do to encourage public transport use, from the same source:
“If parking costs were too expensive I would be forced to use public transport.” 

“No. I know I should take public transport but the car is quicker and while I have it, unfortunately, I will use it.”

“If public transport was free for QUT students - I would consider it.”

“Nothing in particular would encourage me to catch public transport to uni as I have a car park near by that I don’t have to pay for.”

“Give me back my student prices even though I’m a part-time student.”

“I actually moved to the city from Chapel Hill because of problems with public transport. The principal problem was the cost (>$5 each way).”

“Advocate for lower fares to the government.”

"Not public transport, but showers and locker facility would make cycling to work more attractive. This would also provide health benefits for many staff. At the moment the bike center at P block is really expensive.”

                                                                                                        

6. Or the increase in ridership when fares were effectively lowered in South East Queensland (SEQ) in 2017:
 Buses:

Trains:


                                                                                                        

7. Or this analysis that shows that lowering fares by 10% or increasing service (vehicle-kilometre travelled, VKM) by 10% have the same impact on ridership in a longer period. Combine this with the knowledge that fare box revenue in Australia is 8 to 32% of the cost of running public transport, and lowering fares turns out to be 3 to 12 times more economically effective on ridership than increasing services: 

Source: Transit Price Elasticities and Cross-Elasticities, 12 April 2023, Todd Litman, Victoria Transport Policy Institute: https://www.vtpi.org/tranelas.pdf

Farebox recovery ratio:
https://en.wikipedia.org/wiki/Farebox_recovery_ratio

Long run semi-log fare elasticity is almost identical to long run semi-log service elasticity both in England and France although at different levels: -0.75 and +0.74 in England, and -0.59 and +0.57 in France. This means that lowering fares by 10% or increasing VKM by 10% have the same impact on ridership in a longer period. In England that would be 7.5% increase in ridership , and in France 5.7%.

Interesting: 10x difference between England and France in income elasticity: in England, richer people stop using public transport 10x faster than in France.

                                                                                                        

I will stop here for now, because it already took me two weekends of reading the sources and writing this. The topic is complex and findings and conclusions may vary per locality. There are multiple factors that determine ridership. Surveys measure what people say, ridership measures what people do. Read Todd Litman's work referenced in point 7 to get an understanding that it takes more than a simple survey question to reason about actual behaviours. 

I remember when the Gold Coast mayor Tom Tate was surprised that it only cost about $4 to ride the tram when it opened. Tom Tate is rich. His point of reference is taking a taxi for the same distance.

Public transport advocates should push for all things that increase public transport ridership: shorter total travel time, better availability/reliability/accessibility/comfort/safety, lower fare cost, more high density zoning and transport oriented development (TOD). 

The main competitor of public transport is cars - the villain that costs the society dearly through road deaths (1200 per year in Australia) and injuries, air/water/soil/noise pollution, wildlife habitat loss, etc. Active transport is a competition for short distances (why so many people cycle in the Netherlands? it's cheaper and faster than PT), but complimentary for longer distances (why are there thousands of bicycles around most train stations in the Netherlands?). Free bicycle parking at train stations is much more economically effective than free car parking. Geometry hates cars. 

Public transport advocates should therefore support all things that lower car use and ownership: no free motorways, no motorways in cities, fuel prices or km-driven fees (EVs) reflecting the full societal costs of car driving, fewer parking spaces, narrower roads, no free parking, no parking minimums (which pass the costs of driving onto property developers who pass them to residents and businesses), less low density zoning etc. They should also advocate for active travel infrastructure, because it is often part of the trip on public transport: bike paths separated from cars and pedestrians, wide footpaths, one light crossings (diagonal), raised crossings, beg buttons that cause the light to change to green in under 10 seconds, not 120, 30 km/h speed limits in areas with a lot of foot traffic, etc.

Increased public transport ridership, even if it does not reduce car travel proportionally, or when it lowers active travel share, is still a good thing: more people have more freedom. The older person may be taking a 5 minute bus ride instead of a 30 minute walk on a hot day, or a younger person may be combining a 20 minute bike ride with a 10 minute train ride, instead of riding a bike for 60 minutes each way, pensioners may be riding to meet friends or family more often, etc. Some people argue that the peak public transport services are already at capacity and making them cheaper or God-forbid free would make them even more packed. That's true. But, that shows that peak capacity is too low there, and needs investment: more frequency, higher capacity vehicles or modes (1500 passenger metro every 2 minutes, instead of a 1000 passenger train every 10 minutes, 300 passenger light rail every 5 minutes instead of 150 passenger bus every 10 minutes...), and more lines - duplicate them if needed, add express services that skip some stations, etc. Imagine that we started charging for access to public hospitals because they run at or over capacity at peak times, or to schools that are overcrowded. We don't. We build more.

There are questions that I would like to look into in the future:
Is farebox revenue related to investment/spending on public transport at all?
How are availability and travel time related to mode share?

Cheers,
Tom Andraszek

                                                                                                        

Other sources:

1. Yonah Freemark @yfreemark 
Let's talk a little about free transit fares. 
Here's what I know: *Overall*, research suggests that free transit: 
a - increases ridership 
b - doesn't necessarily get people out of cars 
c - benefits youth, elderly, & low-income riders 
d - may or may not increase operational effectiveness

https://twitter.com/yfreemark/status/1601616004638920704?s=20


2. The behavior of consumers changes dramatically when the price is zero. When faced with multiple choices, the free option is commonly chosen. With the opportunity to receive something for free, the actual value of the product or service is no longer considered.

That's why the trams in the free tram zone in Melbourne are packed with people (mostly first time users?) who could just walk the distance in the same or shorter time.

Owning something, a car in this context, also changes how we act - we stop being rational. The connection we feel to the things we own makes it difficult for us to dispose of them.



3. Transport: Census, Information on number of motor vehicles and method of travel to work, Reference period: 2021:


4. Residential parking costs and car ownership: Implications for parking policy and automated vehicles:

6. Public transport fare elasticities from smartcard data: Evidence from a natural experiment:


7. An analysis of the determinants of local public transport demand focusing the effects of income changes, Johan Holmgren:
https://etrr.springeropen.com/articles/10.1007/s12544-013-0094-0


8. FARE-FREE PUBLIC TRANSPORT (FFPT), Michel van Hulten:
https://www.tallinn.ee/en/media/312241


9. Complete analysis of 1992-2009 travel survey data for South-east Queensland including: Brisbane, Gold Coast and Sunshine Coast regions:
https://www.publications.qld.gov.au/dataset/queensland-travel-survey/resource/4a42e431-82bc-48b6-a41a-4539283b3e0d


Wednesday, February 10, 2021

Karolina's Twins by Ronald H. Balson

Karolina's Twins by Ronald H. Balson read by Gabra Zackman

A very moving, and, as far as I can tell, historically accurate Holocaust story about a young Jewish woman from Chrzanów. Gets quite emotional towards the end. Well narrated audiobook.

Tuesday, October 6, 2020

Evaluating the Availability and Relative Speed of Public Transport

6 October 2020

I've spent the whole day yesterday looking into an interesting problem brought to my attention by Wayne Purcell after he read an article by Simon Behar. I took Simon's code, signed up for Google Maps API key, got the relation ids for a few cities from OpenStreetMap.org, and the poly files from Polygons.OpenStreetMap.fr, updated my Visual Studio Code and Python installations and ended up with this code:

Note: if you are reading this on a phone, the horizontal view may be better.

import googlemaps
import random
import csv
import time
from shapely import geometry as geo
from datetime import datetime, timedelta

MODES = ["driving""transit"]

CITIES = {"Gold Coast""GoldCoast""Warsaw""Warsaw", \
    "Brisbane""Brisbane""Berlin":"Berlin"}

# utc offset may change on daylight saving time (DST) change
GMT = {"Gold Coast": +10,  "Warsaw": +2, \
    "Brisbane": +10"Berlin": +2
POLYS = {}

gmaps = googlemaps.Client(key = "your api key goes here")

def get_directions(_from_to_mode_time):
    return gmaps.directions(_from,_to, mode=_mode, \
        departure_time=_time)

def get_travel_time(_dir):
    "In minutes"
    return round(_dir[0]['legs'][0]['duration']['value'] / 602)

def get_travel_distance(_dir):
    "In kilometers"
    return _dir[0]['legs'][0]['distance']['value'] / 1000

def get_poly(_city):
    poly_name = CITIES[_city]
    if poly_name in POLYS:
        return POLYS[poly_name]
    else:
        POLYS[poly_name] = create_polygon_from_file(poly_name)
        return POLYS[poly_name]

def create_polygon_from_file(_file_name):
    poly_points = []
    with open ("polys\\" + _file_name + \
         ".poly.txt""r"as raw_poly:
        
        raw_poly.readline()
        next_line = raw_poly.readline()
        
        while next_line[0] != "E":
            next_line = raw_poly.readline()
            
            while next_line[0] != "E":
                pair = next_line.split("\t")[1:]
                pair[1] = pair[1][:-1]
                poly_points.append([float(p) for p in pair])
                next_line = raw_poly.readline()
            next_line = raw_poly.readline()
    return geo.Polygon(poly_points)

def generate_random_point(polygon):
    minx, miny, maxx, maxy = polygon.bounds
    pnt = geo.Point(random.uniform(minx, maxx), \
        random.uniform(miny, maxy))
    
    while not polygon.contains(pnt):
        pnt = geo.Point(random.uniform(minx, maxx), \
            random.uniform(miny, maxy))
    return pnt

def point_to_dict(point):
    return {"lat": point.y, "lng": point.x}

def dict_to_string(_dict):
    return str(_dict['lat']) + " " + str(_dict['lng'])

def get_test_point(poly):
    return point_to_dict(generate_random_point(poly))

def route(_citylocalTimeattempt):
    poly = get_poly(_city)
    _from = get_test_point(poly)
    _to = get_test_point(poly)
    out = [_city, dict_to_string(_from), dict_to_string(_to)]
    
    for mode in MODES:
        departure_time = localTime - timedelta(hours = GMT[_city])
        print(mode + " directions in " + _city + " from " + \
            dict_to_string(_from) + " to " + dict_to_string(_to) +\
                " at " + str(departure_time))
        res = get_directions(_from, _to, mode, departure_time)

        if not res:
            time.sleep(1)
            if mode == 'transit':
                print ("Route failed at " + mode + ", retrying...")                
                return []
            return route(_city, localTime, attempt)    
        out.extend([get_travel_time(res), \
            get_travel_distance(res)])
    
    return out

def run(citiesroutesoutputFilelocalTime):
    with open(outputFile, 'a'newline=''as out:
        writer = csv.writer(out, dialect='excel')
        writer.writerow(['city''start''end''driving_time[m]',\
            'driving_dist[km]''transit_time[m]', \
            'transit_dist[km]''attempts''ratio'])
        
        for city in cities:            
            for i in range(routes):
                attempt = 1
                print ("Progress: " + str(i) + "/" + str(routes))
                time.sleep(1)
                res = route(city, localTime, attempt)
                while not res:
                    attempt += 1                    
                    res = route(city, localTime, attempt)
                res.extend([str(attempt), \
                    round(res[5] / res[3], 2) ])
                
                writer.writerow(res)

run(CITIES.keys(), routes=10outputFile="4cities.csv", \
    localTime= datetime.fromisoformat("2020-10-07T08:00:00"))

Which, I think allows to measure the availability and relative speed of public transport at 8am local time on a particular work day.

Here are the results for Berlin, Warsaw, Brisbane and Gold Coast:


What was missing in Simon's article and data was a number of failed attempts at routing by public transport between points A and B. The results for Brisbane and Gold Coast may be skewed by their boundaries including large national parks without any public transport nearby. Warsaw and Berlin also have large forests within city boundaries, but they seem to be more available. Still, in Brisbane and Gold Coast you CAN get there by car - driving is checked first, so the data as the measure of availability of public transport stands.

The code picks 10 random routes and asks Google Maps for a route at 8am local time when driving and when using public transit, and then compares the times. The longer it takes to get from A to B using public transport, the less attractive it is for people to use. A ratio of 2 means that it takes twice as much time to get from A to B using public transport than driving. The ratio of 2 is not bad.

I will do more testing, but from yesterday’s runs, the state of public transport availability is:

1. Warsaw: 0 failed attempts, speed ratio of 2.9

2. Berlin: 1 failed attempt, speed ratio of 2.1

3. Brisbane: 14 failed attempts, speed ratio of 7.4 

4. Gold Coast: 54 failed attempts, speed ratio of 4.2

The availability of public transport for Warsaw and Berlin is close to 100% (need to run 100 routes, instead of 10 to get more accurate percentages, but my guess Berlin is closer to 100% than 90%).

The availability of public transport for Brisbane is 42% and for Gold Coast only 16%.

The next step will be to to include more cities and check for correlations with public transport mode share.

Sunday, May 24, 2020

Tokyo, Japan - December 2019 - Part 2 - Trains

Greater Tokyo is the biggest metropolis in the world with about 38 million residents, 1000 train and metro stations, over 2500 km of tracks, 30 operators, and about 40 million trips on trains and metro every day. The main operators are the Japanese Railways East (JR East) - Tokyo is in the eastern part of Japan, Keikyū, Keisei, Keiō, Odakyū, Seibu, Tōbu, Tōkyū, and the two subway networks: Tokyo Metro and Toei. Many travellers arrive in Tokyo from the Narita Airport by this train:

N'EX - Narita Express by JR East
How did the rail transport in Japan get to that point? It all started with a visit by an American.

Japan self-restricted contact with the outside world for over 200 years, until 1853, when the American Navy, lead by Matthew C. Perry forced opening up of the country. The photo of him was one of the only two foreigners that I noticed in the JR East Railway Museum in Saitama. The other one, was an Englishman, the inventor of card tickets used for over 150 years around the world - Thomas Edmondson.

Matthew C. Perry

First locomotives were imported from the UK and the US and were used among other things to build railway lines and transport timber.
Vulcan Foundry, England, 1871 
H.K. Porter Locomotive Works, the USA, 1880
Look how convenient the Paddington Station in London was for travellers:
you could step off from the horse carriage right onto the platform and the railway carriage.






There was a short period when, in some places, human powered railways were in operation:


A peculiarity of the Japanese electrical system, that extends to the railways, is that Eastern Japan (including Tokyo) runs at the frequency of 50 Hz; Western Japan (including Osaka) runs at 60 Hz. This originates from the first purchases of generators from the German AEG (50 Hz) for Tokyo in 1895 and from the American General Electric (60 Hz) for Osaka in 1896.

In 1914 the Tokyo Station was opened. Its front section looked almost the same in 2019:

After 1920 you could go from Tokyo to Paris on a single ticket, in 15 days:

On day 13 you reached Warsaw by Polish State Railways, and on day 14 Berlin:

The subways in Tokyo are usually elevated. They look more like Berlin's S-Bahn in the photo above than London's underground.

Have you noticed that there are no English-language descriptions in the photos above? That's how it is at the Railway Museum in Saitama. The Google Translate app with the image scanning option comes handy. The other railway museum I visited, Tokyo Metro Museum in Kasai, has descriptions in English, although the quality of translations could be better:


The Tokyo Metro founder, Noritsugu Hayakawa travelled to the UK and the US to learn, buy and licence equipment. More recently, the Chinese got the railway technology for their high speed trains from Japan and Europe - the US is out.

The first metro in the Orient was based on the New York Subway technology:
Subway car 1001 

Subway car 301



 The first 2.2 km section of the metro opened in 1927, and the passengers could not be more excited:


The metro was needed because the trams did not have enough capacity. This photo from 1938 shows both the trams and the new elevated metro:

Today, the Tokyo Metro network is quite extensive:

Tokyo Metro is ready for passengers getting stuck at stations (because of earthquakes):

 In the elevators:

 In case of flooding:

The company is also gradually installing platform edge doors to prevent accidents and suicides. The half-height type looks like this: 






Did you know there were elephants in Japan as recently as 24 thousand years ago?

I thought, the rail was the rail, but nope, there are different sizes/weights:



Back to the JR East museum. This is an amazing photo of the first Shinkansen train, 0 series, with max speed of 210 km/h that started operating between Tokyo and Osaka in 1964:


Shinkansen run on dedicated tracks, standard gauge, mild curves, low gradient, few stops, many overpasses and tunnels, 25 kV AC power.


Shinkansen have wider bodies, the catenary tension is higher, and compensating for thermal expansion of rails is done like this:

Japan was making some futuristic looking trains already before the Shinkansen. The predecessor of Series 181, looked very similar and was already made in 1958. The 181 was a narrow gauge train with max speed of 110 km/h:



The 200 series, 210 km/h:

The 400 series "mini" Shinkansen, max speed 240 km/h. The "mini" part is about the body being narrower (2.947 m) than in the standard Shinkansen (3.385 m). You can see it clearly in the economy (2nd class) seating configuration: 3-2 per row in Shinkansen and 2-2 in mini Shinkansen. Funnily enough, some (most?) European high speed trains are even narrower without the "mini" in their name. The New Pendolino is only 2.83 m wide, ICE 4 is 2.852 m wide, Frecciarossa 1000 is 2.924 m wide. Only the wide gauge (Russian) Siemens Velaro is 3.265 m wide.



The even wider at 3.43 m, double-deck, 1235-passenger, E1 series, no longer in service, max speed 240 km/h:


And finally, the E5 series, 320 km/h:







 The turntable at the JR East museum:


The railway infrastructure is very visible in Tokyo:
Tokyo cityscape with a train station
Lot's of concrete here

Double-deck station

 
Double deck tracks next to high-rises


Road under train tracks

Trains going into a tunnel

Double-deck train station over a river

A very common E216 series
Tokyo subway operators use a standard gauge (1435 mm) track on the original underground lines with 3rd rail, and a narrow gauge (1067 mm) track on other lines. Tokyo railways (JR East) use a narrow gauge on all lines except Shinkansen. Can you recognise the gauge in these cab videos?