North or South of the River

This post is in response to a chat I had a few days ago with someone who was wondering whether there are more people north or south of the river in Perth.

To answer this I’ve taken the ABS’ definition of Greater Perth (being the Greater Capital City Statistical Area [GCCSA]). The overall population of the Perth GCCSA is 2,116,647 (Census ’21). The greater city area is separated by both the Swan and Avon Rivers. I downloaded the polyline of the rivers from and then created polygons of both the north and south of the river to quickly select the SA1 areas within each. I then quickly ran a Select by Location to get the figures for the number of people that live north and south of the river.

Perth - SA1 Units with the Greater Capital City Statistical Area

Perth – SA1 Units with the Greater Capital City Statistical Area

Once I had gotten the SA1 units north of the river it was simply a case of repeating the process for the SA1 areas south of the river.

SA1 Areas North of the River

SA1 Areas North of the River

SA1 Areas South of the River

SA1 Areas South of the River


The results are as follows:

North of the River –

Area = 1,653.8km² | Population = 962, 257 | Percentage of Perth GCCSA Population: 45% | Population Density = 581.9 Persons/km²

South of the River –

Area = 4,762km² | Population = 1,153,941 | Percentage of Perth GCCSA Population: 55% | Population Density = 242.2 Persons/km²

The above data is out to the tune of 179 people due to what I presume is data suppression in the very sparsely populated SA1 areas by the ABS. An interesting takeaway is that the population density south of the river is only 41.6% that of what’s north of the river.

Put another way, if the southern part of the City had the same density as the north, then there would be 2.784 million people south of the river—really puts it in perspective.

Over the Horizon

I recently moved to the south-west of Western Australia, close to a town called Busselton. The town is famous for, among other things, the longest timber-piled jetty in the Southern Hemisphere (at 1,841m). The first time I walked the jetty I stood at the end and gazed out wondering if I could follow my gaze in a straight line where would it make landfall?

Busselton Jetty

Busselton Jetty

The End of the Jetty

The End of the Jetty


To answer the question accurately there are two concepts worth noting. The first is that of a rhumb line — if I digitised a line (in a projected coordinate system) representing the jetty and extended that angle, it would result in a rhumb line which at the intersect point would be off to the order of a couple of hundred kilometres.

Rhumb Line

Alvesgaspar – CC BY-SA 2.5 ( via Wikimedia Commons

The shortest distance between any two points on the surface of the earth is the minor arc of a great circle. So if I was standing where the signpost is shown above, that is in the centre of the end of the jetty, I would need to create the minor arc of a great circle line. This would be, as the great circle wiki article states ‘analogous to “straight lines” in Euclidean geometry‘.

Minor Arc of Great Circle

CheCheDaWaff – CC BY-SA 4.0 ( via Wikimedia Commons


The process I followed to create the line was as follows:

  1. Create two points at the end of the jetty to represent the angle looking out.
  2. Create a line between the two points.
  3. Calculate the angle of the line and extend it for 1/4 the circumference of the earth at the equator.

The below GIF visualises the process-

Creation of Line

Creation of Line.

If you’d like to carry out the same analysis yourself below is the SQL code. I’d like to thank Darrell Fuhriman for his help.

-- assume two points, calculate the angle, then extend it.
-- point 1 = -33.6307920509579, 115.338797474435  
-- point 2 = -33.6290969607648, 115.338316140276 
ST_Segmentize( -- break it up into segments so it looks better when re-projecting for display
        ST_SetSRID(ST_Point(115.338797474435, -33.6307920509579), 4326) -- starting point (ST_MakeLine expects projected coordinates)
      	ST_Project( -- find a point a long way away to use  as the second point in the line
                ST_Point(115.338797474435, -33.6307920509579)::geography -- starting point again
                ,10000000 -- 1/4 circumference of earth at the equator (should get us far enough)
                ,ST_Azimuth(ST_Point(115.338797474435, -33.6307920509579)::geography, ST_Point(115.338316140276, -33.6290969607648)::geography) -- angle between my two points
,20000 -- break it into segments of 20km


An imaginary line from the end of the jetty travels 802km before intersecting with Tamala, WA. It then travels for another 2,127km before meeting the district of Ayah in the Kebumen Regency in the province of Central Java, Indonesia. Where it meets land is almost equidistant between the towns of Kebasen and Kebumen (the latterhad a population of 131,750 based on the 2020 census [source]).

Busselton Jetty Line

Busselton Jetty Line

Jetty Line on a Globe

Jetty Line on a Globe

If you’re taken by the above and you ever want to travel to where it touches land in Indonesia, the coordinates are: -7.7628936, 109.4018789.

Population Below the Line

We all know that the majority of Australia’s population lives in the eastern states. There’s a question I’ve been thinking about with a while — if you drew a line from just north of Brisbane to just west of Adelaide, what percentage of Australia’s population (including islands and Tasmania) live below that line? Well, I had a little time on this rainy Sunday so I decided to find out. I wrangled some data out of the ABS’ Table Builder and joined it with the geopackage of the SA2 geography (I chose this as I felt it provided the right spatial granularity without being too fine) and voilà, the answer to the question very few people asked 82.3%.

Population Below the Line

Population Below the Line


Australia-Durack Electoral Division

Like a lot of people, I spent a great deal of time following the 2019 federal election results. I was (and still am) very impressed with the Australian Electoral Commission’s Tally Room where results are easily available and downloadable. It was while I was browsing their site that I came across the Western Australian federal seat of Durack, what piqued my interest is that the stated area is 1,629,858km², I looked at its wiki page which states that it’s the largest electoral division in the world that practices compulsory voting. The Guardian have a good article about it which contains a graph that compares it in size to different countries in the world.

I decided to spend some of my weekend making a map of it, I downloaded the dataset from the the Australian Electoral Commission’s website and the country admin data and hillshade from the brilliant Natural Earth. Below is the result, free free to use as you’d like.

Durack Electoral Division, WA-Largest Electoral Division in the world that practices compulsory voting.
Durack Electoral Division, WA-Largest Electoral Division in the world that practices compulsory voting.

Perth, Australia

Australia passed the 25 million people mark shortly after 11pm on the 7th of August 2018. This got me thinking, what would a map of Perth look like showing each nationality? Over 28% of Australians was born abroad, what would this translate to in Perth terms?

I took a quick look online to see if anything already existed, the only thing I could find is the below from Perth’s Wikipedia page

One Dot per 100 persons, Perth, Wikipedia

It’s from 2008 and although a gallant effort, there are a few major problems, most notably the lack of a legend. So I decided to see if I could make something, if not better, than as good as the above.

My first job was to source the data, I knew from previously working with ABS data that their pre-built geopackages or datapacks wouldn’t contain the data I needed (question 12 from census ’16) but the geopackages were useful to download the geometry that I needed.

Question 12

I needed to use the Tablebuilder in order to collate the data that I needed for the geometry that I was going to use. This was the main learning area for me, I didn’t know enough about which unit of statisitical geography I wanted to use for this exercise. Luckily, the ABS  have a website where you can compare and contract each unit.

The ABS already had the hard working done in that one of their staticial units is ‘Greater Perth‘, I used this as my boundary and then chose the SA2 as the statistical unit. I went back to Tablebuilder and tried in vain to make sense of it; I found it very cumbersome and non-intuititve to use at the start and their introductory videos weren’t of any help. Fortuntately,  I found an amazing video on YouTube that explained Tablebuilder in great detail and once I’d watched that everything made sense, and I’m a Tablebuilder convert now!

I then used Tablebuilder to build the exact statistics that I needed (Country of Birth by SA2). I saved the table in Tablebuilder and downloaded it as a CSV file. In QGIS I then joined this with the SA2 geopackage file for WA and clipped it using the Greater Perth boundary that I had also downloaded. I then exported this layer as a new geopackage. I had previously found the top 8 nationalities by country of birth (using Tablebuilder) and then created new fields for each one where each number represented 200 persons born in that country. I then used the Random Points Inside Polygons tool to create random points for each nationality.

Generate Ramdom Points Inside Polygons using QGIS

I then used Adobe Color [sic] to pick a decent colour scheme for the various dots. I used Quick OSM in QGIS to download a layer with the towns in Greater Perth to be used for reference, this took about 10 seconds to do, Quick OSM is really useful.

Quick OSM in QGIS

Lastly, I used Google Fonts to download some nice fonts. I also used some styling effects in QGIS before I exported everything to Inkscape in order to add the text. Below is the finished product, the biggest flaw in what I have done is that there are overlapping points but I still think it gives a good overall understading of where people of different nationalities live in Greater Perth.