A recent discovery, revealed at the Where 2.0 conference, of a hidden file on iOS4 iPhones and iPads (and on computers that they are synchronised to) is proving to be rather interesting find. The file contains a couple of tables – ‘CellLocation’ and ‘WifiLocation’ that contain records showing times, locations and accuracies of mobile phone masts and wifi points that your phone has come across. [Update: Or more likely, ones that you might expect to come across, based on your current measured location or existing detected masts/wifi.] iPhoneTracker is a great utility which finds the file, parses and displays a gridded heatmap of the places that your iPhone thinks you’ve been to. In my case, it reveals my various trips around London, to towns in England and my travels up to and around the Scottish Highlands in the New Year.
Here’s what a bit of the wifi data on my phone looks like:
You can even see all the MAC addresses of the wifi points (and their locations/accuracies) – again this is nothing you couldn’t collect, and indeed is what Google was busy collecting with their StreetView cars, along with the 360-degree photos. Unfortunately for Google, they also collected the unencrypted data coming from some of these wifi points, which landed them in a bit of bother.
The iPhoneTracker application, as run, grids the data to 1/100th-degree latitude and longitude squares, and only looks at the mobile-phone mast data, rather than the wifi data, as the latter is more likely to be inaccurate (it’s reliant on a look-up database which can go out of date quickly). However, a simple change and recompile of the application in XCode (it’s open source) allows a more accurate map to be included, along with the wifi data if so desired.
The map above shows my travels around London in the last few months, including both the mobile-phone mast and wifi data – the former is generally less accurate and so your location tends to wander, so it shows as circular clumps of small yellow dots. The latter is more concentrated so shows up as the red/purple larger dots, but in fewer locations.
As well as the positional random inaccuracy of the cell-phone triangulations, resulting in these distinctive circles of yellow dots, there is sometimes a systematic inaccuracy. I am 99% sure I haven’t been to East Ham/Barking in the last nine months, but there’s a distinctive clump around there (far right of the screenshot above.)
I’m not going to get into the debate about why Apple has persisted such a file on your phone (and in the computer backup) or whether it’s a good thing that this data is so easily accessible. It’s nothing that’s not on the mobile phone companies’ own databases. The big deal is now you can play with your own location data (and so can someone swiping your computer.) I guess if you don’t have any secrets to hide it’s a great, if imprecise, insight into your spatio-temporal life – tracking how you move around your hometown and indeed the world (my set includes my recent trips to Sicily and Prague).
The background map is from OpenStreetMap. iPhoneTracker is proving so popular, since it was revealed yesterday, that it has quadrupled the normal daily number of map images being served from the OpenStreetMap servers. The gridded visualisation is from OpenHeatMap, written by the same author as iPhoneTracker itself. It’s a great way of showing imprecise, large-volume spatial data like this.
2 replies on “Your Life on a Map – Thanks to the iPhone”
[…] a followup to my previous post about the (re-)discovery of the iPhone locations cache, the graphic above shows the apparent locations (of known mobile-phone masts and wifi) that were […]
I’ve seen several comments about the “I’m pretty sure I was never in…” connections revealed by iPhoneTracker, and while I don’t have an authoritative response, there are some interesting possibilities:
1. You don’t always connect to the nearest mast. It’s as simple as that: perhaps the closest mast is behind a major multi-storey development or is temporarily under repair. These things happen so that could be one answer. Remember too that the cells have to overlap in order to deliver adequate overall coverage.
2. Cells aren’t circular. Depending on where and how cells are set up you can have some transceivers covering particular sectors (e.g. 30 to 70 degrees) and other times the general coverage approximation (a Voronoi plot) shows up cells with very odd shapes.
3. Cells ‘breathe’ under network load. It’s analogous to someone in a shop saying “I’m too busy right now, can you go talk to the person over there,” but the basic idea is that when a lot of people in a given area are already using voice and data circuits then new connection attempts will tend to be redirected to another cell, even if it’s not the closest one. It’s basically network-wide load balancing.
4. As I understand it, some networks have ‘super-cells’ which span much larger areas and are principally used to handle fast-moving phones. So you’ve got smaller local and larger transient cells to reduce the handover load and minimise the chance of a dropped connection when you suddenly hit a wall in case ‘3’. And I’ve heard about your Hackney-bound bike rides Mr. O’Brien, so perhaps the network is recognising you as a very fast-moving object and is handing your connection off to a super-cell…
5. Users can also bounce very quickly between cells — imagine that you’re between two heavily-loaded cells that are trying to optimise the quality of calls, combine this with locational inaccuracy in cell positioning and you can now appear to ‘move’ very quickly between points in space without actually taking a single step.
All of this is a long way of saying that on a practical level cell-level positioning is very much an approximation with a radius of uncertainty ranging between tens and hundreds of metres depending on the network context.