I just returned from casting my vote in the ACT election, helping to choose our seventeen representatives. Several of my friends were complaining that this is a lot of politicians for a small jurisdiction like ours with just 256,702 enrolled voters. So how does the ACT compare to other states in terms of number of representatives per elector?

The answer is not too badly. We have around 14,500 electorates per politician in the ACT, compared with 34,000 in New South Wales but just 5,000 in the Northern Territory. We support a similar number of representatives as Western Australia (14,500 per elector) and South Australia (16,000 per elector):

State Enrolment (2010) State  / territory politicians (2012)
Enrolled voters per state politician
New South Wales 4,591,748 135 34,013
Victoria 3,547,403 128 27,714
Queensland 2,707,464 89 30,421
Western Australia 1,356,288 95 14,277
South Australia 1,102,827 69 15,983
Tasmania 357,873 40 8,947
Australian Capital Territory 246,436 17 14,496
Northern Territory 120,489 25 4,820
Australia 14,030,528 598 23,462

Sources: 2010 enrollment by state courtesy of Antony Green, sizes of state parliaments comes from Wikipedia.


When I saw this map illustrating the Seattle Art Museum’s otherwise excellent Ancestral Modern exhibition words failed me. I guess this is what happens when graphic designers start doing minimalist cartography.

Screenshot of map taken from the Ancestral Modern website

I have a love-hate relationship with ArcGIS. For all its power and simplicity, it is very inconsistent. For example, some things are located in toolboxes which is good, while others are hidden away in various locations in the editing toolbar, for example.

The editting toolbar is bad. Firstly, your feature has to be in editting mode, which is slow and a pain in the neck. Edits made in the editting toolbar aren’t recorded in your spatial data files metadata. They can’t be automated, so you can put make them in model builder or call them from a Python script.

One of the few reasons I use the editting toolbar is for the Planarize tool, tucked away in the “More editing tools” -> “Topology” toolbar. It turns out, that for line shapefiles, the “Feature to line” toolbox does exactly the same thing. No more edit sessions for me!

I’ve long been on the search for a free, national road network GIS dataset for Australia. The search has been surprisingly difficult.

If you expect like me that the government would produce an official, national road network GIS database, then your expections are about the be dashed. In Australia, the maintenance of roads, and therefore their corresponding GIS datasets is a state responsibility. This means that there is no single, national official road network produced by the federal government. Even the data owned by state governments is not generally made freely available. While it is sometimes possible to contact state governments and receive a copy of a statewide road network, if you want to assemble a national road network the process has to be repeated for all states and territories. Furthermore, government derived networks generally have onerous licensing terms that mean they cannot be redistributed.

So what data sources are available? I have experience with four:

1. The canonincal combination of state-government road networks is produced by the Public Sector Mapping Agency (PSMA) Australia. Their Transport and Topography product, released quarterly, has been derived from the relevant bodies from each Australian State and Territory jurisdiction as well as the Commonwealth mapping agency. The major advantage of the Transport & Topography dataset is that it is up to date. PSMA also attempt to maintain consistency in attributes across the state derived networks (with varying degrees of success in my experience). Furthermore, PSMA attempt to correct spatial topology errors and perform automated quality assurance. Transport & Topography also has road names that are compatible with the address names in PSMA’s excellent Geocoded National Address File (G-NAF), which is an additional bonus. The downside is that it is very expensive, and its redistribution terms are restrictive.

2. A time-honoured source of road network data is VMAP0. VMAP0, short for Vector Map level 0, is a global data set, declassified by the US National Geospatial Intelligence Agency. VMAP0 was created from the digitisation of military navigational charts, and is perhaps still the most comprehensive global data set for topographic map data that is freely available. That said, there are two major problems with this dataset. First, because it was created from 1:1,000,000 scale maps, the road network is very sparse, meaning even some major roads are not listed. Second, VMAP0 has not been updated for twenty years! The advantage of this dataset is that it is public domain licensed, meaning you can do what ever you like with it. VMAP0 for Australia is available from the USA National Imagery and Mapping Agency, but requires software that can read its funky format like OGR. I believe ESRI also used to distribute VMAP0 shapefiles branded as the Digital Chart of World.

3. The new kid on the block is OpenStreetMap (OSM). OSM uses data contributed by volunteers (a.k.a. ‘Volunteered Geographical Information’ or VGI) to build up a rich spatial database (think Wikipedia for maps). While they are perhaps best known for delivering Google Maps like tiles on their website, you can also download their raw data. The good people at CloudMade take the raw OSM data, convert it to a number of accessible formats, split it up by country and make it available for download on their website. I am hesitant to use this data at the moment, I as don’t know how about its completeness in Australia, or how to selected out roads and not footpaths, for example. However, this has the potential to be a real competitor with Transport & Topography in terms of its currency and completeness, so I’m keen to learn more from anyone using OSM road network data in GIS analysis.

4. Finally, Geoscience Australia (GA) has a series of vector layers that is uses to produce 1:250,000 topographic maps for the whole continent. These are excellent data, consistent and well-curated, but with a couple of caveats. First, because these layers were created for topographic mapping, they are only at a course level of detail. Not all roads are included, particularly in residential areas, and those that are may have been moved in the cartographic production process to stop them from overlapping. Second, these data were last updated in June 2006, meaning that for some purposes they will be too old. Nevertheless, Australia’s national road system doesn’t change that fast, so for some purposes this will be an ideal dataset. Best of all, in 2009, GA relicensed this previously proprietary dataset to the Creative Commons 3.0 by-attribution license, meaning that you can use it, redistribute it and derive your own products from it, as long as you acknowledge Geoscience Australia as the original custodian. These data are freely available at the national scale in ArcGIS Personal Geodatabase format from GA although if you want pre-made shapefiles you’ll have to download individual map grids or buy their product.

If you know of any other national road networks for Australia, let me know.

Sometimes ArcGIS just can’t put the labels somewhere sensible, and no amount of Maplex options will help you. Here’s what you do if you want to move them manually.

1) If you want to label all features, it’s best to add them at the start. Right click the layer and select Properties, then Labels, then Placement properties and tick Place overlapping labels.

2) Right click on the layer and select Convert labels to annotations... and choose to Store Annotations In the map.

3) Show the Drawing toolbar, click the Select elements (arrow/cursor tool) and then double-click on the dataframe.

4) Click and drag on the labels.

5) If you didn’t do step one and thus need to add some new labels, select the Label tool on the Drawing toolbar (often hidden behind the New text tool) and click on the feature you want to label.

Fox News commentators seem a little confused about the geopolitical implications of the Egypt protests currently taking place. To quote Glenn Beck:

I’ve told you that this is a global movement. Could you play this out for me and just humour me for a second? Here, we have Egypt. It started in Tunisia, Tunisia then leapfrogged Libya and went right over here to Egypt. But the fires are starting here, as well [Libya]. But we see them here [Egypt]. This [Tunisia] is already in revolution and flipped. This is in revolution. I want you to look where Israel is, right here, and Israel, the Gaza strip is on fire. You have any idea, this strait, how much congress [sic] is done through here. You, also, this little area. All the oil from the UAE, everything flows through here. Morocco is on fire. What’s across from Morocco? Spain, connected to France and Germany and Italy, also on fire, and Greece, also on fire, which brings you right back here to Turkey. The entire Mediterranean is on fire. More than that, it’s not just the surrounding countries of the Mediterranean; it also spreads up here. You have the UK and Ireland already with riots in the street!

Perhaps the trouble is that he has been using Fox’s own map of the region:
A map of the Middle East captured from a Fox News broadcast, with Iraq labeled as Egypt.

I’m sure we’re all familiar with the drawbacks of pie-charts. It is notoriously difficult to compare the sizes of different slices of the pie, a problem that the ABC News Online Investigative Unit have set out to solve once and for all.

Instead of returning to the tried and true bar chart, the good folk at the ABC have instead decided to reinvent the pie-chart in a new form. You can decide how well you think they have done:

ABC's categorical radial charts, on a map comparing crime in Mt Druitt to the rest of Sydney

The saving grace here is that they have also included the raw numbers as a count.

The World Health Organisation’s Global Status Report is generally excellent. But some of its graphs are a little… misleading:

Source: http://www.who.int/substance_abuse/publications/global_status_report_2004_overview.pdf#page=11

While I generally find ABC’s election coverage excellent, their live graphs on TV on Saturday night were a little… strange. Judge for yourself:

Photograph of television presenter Leigh Sales in front of a ridiculously unproportional column graph.

Graph fail

  1. Create folder “C:\UserData\markhamf\pgsql” to hold database files
  2. Extract postgresql binaries from http://www.enterprisedb.com/products/pgbindownload.do to c:\bin\pgsql
  3. In a cmd.exe console:
    1. Change to install dir: cd c:\bin\pgsql\bin
    2. Create new database under user markhamf: initdb.exe -D C:\UserData\markhamf\pgsql
    3. Start db server under local user account: pg_ctl start -D C:\UserData\markhamf\pgsql
    4. Install PL/pgsql language into default template: createlang plpgsql template1
    5. Create PostGIS enabled template: createdb postgistemplate
  4. Download PostGIS from http://postgis.refractions.net/download/windows/pg84/postgis-pg84-binaries-1.5.1.zip Extract binaries into the existing postgresql directory structure at C:\bin\pgsql
  5. Return to cmd.exe console in c:\bin\pgsql\bin:
    1. Install PostGIS functions into postgis template:
      psql -d postgistemplate -f ..\share\contrib\postgis-1.5\postgis.sql
      psql -d postgistemplate -f ..\share\contrib\postgis-1.5\spatial_ref_sys.sql
      psql -d postgistemplate -f ..\share\contrib\postgis-1.5\postgis_comments.sql
    2. Test install was correct: psql -d postgistemplate -c "SELECT postgis_full_version();"
    3. Create a spatially enabled database from the template: createdb -T postgistemplate gisdb
  6. Test connection with pgAdmin3, and verify that you can connect, and that gisdb is visible. Use the following parameters for a new connection (leave others as default):
    Name: gisdb
    Host: localhost
    Username: markhamf
  7. Add Start Menu shortcuts for:
    C:\bin\pgsql\bin\pg_ctl.exe start -D C:\UserData\markhamf\pgsql
  8. Optionally, addC:\bin\pgsql\bin to the Path environmental variable

Next Page »