Using Flight Tracking For Geolocation – Quiztime 30th October 201916th November 2019
Things have been busy lately but I finally managed to catch up with a few recent Quiztime challenges. This post will explain how I managed to solve Tilman Wagner’s challenge from 30th October but I have to say it was by far the hardest Quiztime challenge I have ever managed to solve. It is not always just about solving the quiz of course, it’s more about what you can learn along the way, and I learned quite a bit by doing this one. Here’s the challenge photo:
The only information that Tilman provides is as follows:
- The plane in the sky is a Boeing 747 flying from London to Hong Kong
- The photo was taken on October 30th 2019.
- Tilman was in a hotel.
The challenge is to identify which hotel Tilman was staying in, but before that there are an awful lot of other things to find out first. There is also some information in the photo that will help too:
1. It is a clear and sunny day.
2. The shadow indicates the sun is probably behind Tilman.
3. The position of the plane in the sky. This will be crucial.
If you tried to solve this with a reverse image search, then you were out of luck. The building in the picture is not sufficiently distinctive to match with any reverse image searches. I tried cutting and cropping to try and find a match but with no luck.
I also checked Tilman’s Twitter account to see where he might have been on 30th October but no luck again. If you’ve ever tried any of his quizzes before you’ll know that Tilman travels a lot. He’s often in Germany, but sometimes in Albania, and even in Mongolia. It’s pointless trying to guess which city he might be in at any one time. In a way I’m glad because if he was in the same place every week, it would be tempting just to assume which city he was in rather than prove which city he was in. The A in the ABC of Investigation stands for “Assume Nothing” – and this is for a good reason.
Planning An Approach – Big To Small
So where to start? I could either start with trying to find the building, which would probably take forever, or start with the plane, which at least had a little information about it. As always, the best method to solve a geolocation puzzle like this is to start big and get smaller and smaller. In theory this picture could be taken almost anywhere in the world, but by identifying more and more information about it meant that it was possible make the parameters tighter and tighter until the specific building was identified. It may not have seemed like it at the start, but just by knowing the date and the route of the plane it is possible to work out which building Tilman was looking at.
The building might be anywhere in the world (always a safe assumption at the outset…), but we also know it is on the flight path between London and Hong Kong. Immediately this means it is not in North or South America, Africa, or Oceania. It must be either in Europe, Central Asia, or Asia itself. This might not seem like much but it already narrows down the possible locations by more than you’d think.
We also know it was daylight when the picture was taken. This means that once the plane has been identified, the route can be identified, and when the route is known it will be possible to say where the plane was at any given time, and whether that location was in daylight or darkness at the time the plane passed overhead. If it was dark, that could also be discounted as a location. In order to do this though, the plane has to be identified first.
Identifying The Plane
Tilman tells us that the flight was travelling from London to Hong Kong on 30th October and that it was a Boeing 747-8F. To identify the plane we need to know all the flights and aircraft types that travelled between London and Hong Kong on that date. The only issue is that London has five international airports (Heathrow, Gatwick, City, Stansted, and Luton) but Hong Kong only has one. This means that it will be easier to look at flights that arrived in Hong Kong from any London airport rather than try and work the other way around with five possible starting points.
Historic flight data is available from several different places. FlightRadar is the most well-know, but there’s also Airportia and Flight Aware, among others. I was a little bit late to this quiz and didn’t start it until about ten days after the image was taken, which mean I couldn’t get the data from FlightRadar without a premium account. FlightAware also charges for this kind of historic data, and Airportia lists only scheduled passenger flights. Fortunately Tobi Bluhm had already identified that the flight must have been N617UP, a UPS cargo flight that left London Stansted at 06:12 UTC on 30th October heading to Hong Kong. Thanks Tobi – without your help this would have taken even longer and might have cost a bit of cash too!
It may not seem like it, but identifying the plane means that we have all the information needed to eventually identify which hotel (and room) Tilman was staying in, and exactly when he took the photo (to within a couple of minutes). He’s going to be somewhere extremely close to this line:
With a little geometry, historic weather forecasts, and sunset calculation it will be possible to use this flight path to drastically narrow down the possible locations where Tilman was before eventually finding him.
Plotting A Course With KML Files
All this is easy enough in theory, but how can we work from a 6000-mile plus flight path to an exact hotel? Fortunately both FlightRadar and FlightAware make flight tracks available to download as KML files. If you’re not familiar with KML files they are simply files that contain data about a series of geographical points like GPS coordinates and altitude, and so on. The files can be opened in Google Earth which then allows the KML mapping data to be viewed and analysed. Obtaining the KML file for the flight in Tilman’s picture means we will be able to see the exact position, height, and orientation of the aircraft at every stage of its journey. Viewing this data in Google Earth will help to visualise exactly where the plane was and then by cross-referencing the view in Google Earth with the information in Tilman’s photo it will be possible to work out his location. To get a KML file for any flight you need a Flightradar paid account, or you can sign up to FlightAware for a three month free trial which will allow access to KML files.
When the KML file is opened in Google Earth, the entire flight path is overlaid on the map. Here’s the plane taking off from Stansted:
Note that the KML overlay shows not only position but also height as well. The slider (top left of the picture) can be moved to a specific time so that you can see where the aircraft was. Here’s the descent and landing in Hong Kong:
So how can we use this information to help locate Tilman? We need to do a little geometry first.
Now we have all the flight path data, we can combine it with sunset/sunrise information and a little bit of geometry in order to calculate Tilman’s position. We know the plane took off from London Stansted at 06:12 UTC. Putting this information into Suncalc shows that it was still dark in Stansted at that time:
Next the plane heads over towards Amsterdam. Could this be the city? If we repeat the same Suncalc method for Amsterdam we can see that it was dark there too when the plane passed over at 06:37 UTC, so it can’t be where Tilman was.
It’s important to remember at this point that the flight data is always in UTC, regardless of the local time. This includes the time slider in Google Earth that can be used to show where the plane was. Suncalc on the other hand always shows the local time relative to UTC, so Amsterdam is UTC + 1. It’s easy to get confused if you don’t remember this detail!
So Amsterdam is not the location, but is there a less tedious way to find which city Tilman might be in other than by checking every single city near the flight path?
This is where a little bit of geometry comes in. After passing Amsterdam, the plane changes course on a heading of 089 degrees, which is almost directly due east. In fact if we look at the tracking log, the plane makes only a few tiny course corrections the whole way across the Netherlands, Germany, Poland, Belarus, and Russia. Only in Russia does it make a significant course correction as it turns towards Kazakhstan, China, and Hong Kong:
The plane crossed into Kazakhstan at about 10:00 UTC (15:00 local time) but by the time it crossed into China it was dark. This means that Tilman could not have been in China when took the picture, so we can cross it off as a potential location. Furthermore since the heading of the plane is always generally East, Tilman must have been facing roughly West for the plane to be coming towards him. The fact that the sun is coming from behind him combined with the angle of the shadow suggests that the sun is roughly in the southeast i.e. just over his left shoulder:
This means that wherever Tilman was, it was quite early in the morning when he took the picture. It cannot be in the evening or the sun would be facing him. So possible countries include the very eastern part of the Netherlands, Germany, Poland, Belarus, or possibly Western Russia, because these are the only places that the plane flew over when it was daylight and the sun was still in the south east. This still leaves a lot of possible towns and cities – but there was a way to narrow this down too.
I was confident that Tilman was in a city because of the size of the building in the picture. There are five storeys that are visible, and at least another one or two based on the height Tilman appears to be at. So the building is at least six or seven storeys high and in close proximity to Tilman’s hotel. This strongly suggests an urban location, not somewhere rural or even suburban. So this means we need to find a city in one of the possible countries that is not only close to the flight path but also one that is orientated correctly relative to the flight path.
So next we need to do some geometry to help get the orientation right:
We know from flight data that this plane was heading almost due east during most of its journey across Europe. By overlaying compass points on the original image it is possible to infer that Tilman’s position must therefore be north of the flight path. If he were south of the flight path of a plane heading due east the contrail would appear like this:
If you’re struggling to picture this mentally then don’t worry because I’ll show how it is possible to confirm this visually with Google Earth in a moment. There’s also the issue of why the plane appears to be travelling vertically to someone near ground level. I’ll address this shortly too because it will also help to identify the precise location, but we need to know which city Tilman is in first.
Homing In On Berlin
Since the angle in the picture indicates Tilman is north of the flight path, we can eliminate a load of possible locations because they are in the wrong position relative to the aircraft.
It cannot be Hanover or Braunschweig, because they are to the south.
It’s definitely not Poznan or Warsaw either. Volgograd could be a candidate, but it was probably too late in the day for the sun to be in the position it was:
In any case, the weather does not match the sunny blue sky where Tilman was:
There is one city that stands out as a very strong candidate however. It is close to the flight path and most of the city is on the correct side too:
Historic weather reports also confirm there was not a cloud in the sky over Berlin at the time:
The sun is also in the correct position (south east) for the time that the aircraft passed over Berlin:
So Berlin seems by far the most likely location that Tilman might be. Having started with the search parameters of “somewhere between London and Hong Kong”, we have eliminated whole countries by checking the daylight at the time the plane passed over to leave a small pool of possible locations. Then by using the orientation of the photo relative to the flight path, many possible cities in these countries like Hannover or Warsaw could be eliminated. Berlin is really the only city that meets the correct criteria for the daylight, the weather conditions, sun position, and orientation and position relative to the aircraft’s flight path.
So if Tilman is in Berlin, how can we use what we know about the picture and the flight path to find him? You could of course just Google for “hotels in Berlin” and try to find a match, or spend hours looking at the city on Google Maps. These kind of brute force geolocation methods are boring, very slow, and highly inefficient. They might get it right eventually, but only in the same way that a monkey might eventually write the complete works of Shakespeare if you leave it with a typewriter for long enough. There is enough data in the KML file that will allow us to use Google Earth to set very tight parameters for a final visual search so we will be able to find Tilman very quickly now we have placed him in Berlin.
Before we do that, there is still an unresolved issue in this picture that we need to clear up. Why does the aircraft appear to be travelling vertically up when we know it passed overhead?
Tilman is not looking upwards very much, he is only looking slightly above the horizon and the aircraft appears to be going almost vertically. It is clearly not directly overhead. The reason the aircraft appears to be going vertically even though it is flying horizontally is due to the curvature of the earth. Aircraft approaching from over the horizon appear to be going vertically as they approach. Their true horizontal flight position becomes more apparent when they are overhead, and as they fly away they appear to be descending down towards the horizon. You can read more about this effect here, but for the purposes of this quiz it is enough to show that when Tilman took the picture the plane was coming towards him but was still some distance away and probably not over Berlin itself.
Recreating The Photo
So we know that Tilman was somewhere in Berlin with the plane heading towards him, how can we find exactly where without spending hours and hours scrolling through maps? Using the KML file and Google Earth’s 3D buildings feature will allow us to (almost) perfectly recreate Tilman’s picture by using the aircraft contrail as a reference point. To do this we need to identify where the plane was relative to Berlin when Tilman took the picture.
Planes move very fast. By using the time slider, we can see that at 07:11 UTC (08:11 Berlin time) the plane was far away from Berlin, roughly near Brandenburg:
Just five minutes later, the plane was almost out of sight and had already completed passed over Berlin altogether:
So in order to try and recreate the view from the ground, we need to try and catch the moment that the plane was heading over the horizon towards Tilman’s position. But if I don’t know where Tilman was, how can I start to recreate the view in Google Earth? It’s not straightforward but a little trial and error will quickly make things clear. Remembering that Tilman must have been north of the flight path, I centered myself at ground level at the Brandenburg Gate, and faced west as Tilman was in the picture:
Notice that the path of the plane (grey line in the distance) is visible from ground level in Google Earth. The KML file also includes altitude data, so the plane will appear at the correct height relative to the ground. In this photo the time is set to 07:11 UTC. The plane was actually next to the city of Brandenburg at this point (roughly 60km / 37 miles from the Brandenburg Gate), but you can see how Google Earth replicates the effect of the plane being vertical in the sky due to the curvature of the earth. Here’s the same view just two minutes later at 07:13 UTC:
And again at 07:15 UTC. Notice the plane has completely passed overhead by this point. This also means that Tilman must have taken the photo before 07:15 UTC:
So for Tilman to see the plane coming vertically towards him like in the picture, he must have taken the image no earlier than 07:08 UTC and certainly no later than 07:15 UTC. To try and best recreate the exact conditions, I set the time slider to 07:13 UTC, which gave the following view:
Tilman is almost looking straight ahead in his picture, so to recreate the same view we should be able to still see the plane at the same height and angle when looking straight ahead from ground level. (N.B To “look” in Google Earth just hold Right Ctrl and use the mouse to look around).
This is all very helpful of course, but Tilman is not staying at the Brandenburg Gate, but he can’t be that far away. We need to set even tighter parameters to find his exact location. This will be a simple matter of moving around at ground level in Google Earth until the angle of the flight path matches that of the contrail in the original photo. I didn’t use any complex mathematical formulae to do this. I just set up my Desktop like this and kept moving left and right (north and south) until the angle was a rough match.
Matching the angle made things very quick. Because I couldn’t bee 100% precise with the matching contrail angle, I wanted to set the boundaries of a box that Tilman’s hotel must have been in and then check the area manually. To do this I had to set a search boundary limit to the north, south, east, and west.
The east and west boundaries were quite straightforward to set. Tilman is next to a tall building, so I knew I would not have to look out in the suburbs where the buildings were smaller. The suburbs of Berlin form the east and west boundaries of the search area:
These were a bit too generous as it turned out, but as always is better to set boundaries that are too big than too small.
To set the northern boundary I moved “right” while facing west until the angle of the contrail became too flat when compare to the original viewpoint.. This meant I must be too far to the north of Tilman’s position:
Then the same process was repeated by moving south i.e. to the left. This time I knew I had gone too far when the contrail angle became too steep:
I was too far south at this point. The angle of the contrail here is closer to being absolutely vertical than in the original image, so I have come too far. Just to prove a point from earlier though – notice what happens when I stop being north of the flight path and then move south of it. The angle is completely inverted:
This is how it was possible to be absolutely certain that if the plane was flying due east, Tilman must have been to the north of the flight path.
So now I had a nice blue search area marked out on Google Earth. Tilman must be in there somewhere, but there is still more narrowing down to be done before looking around at street level.
I added areas in red that did not contain any large buildings like the one in the picture, such as parkland or suburban housing. Tilman must be in a blue area, not a red one. I knew I had been a bit over-generous with the original boundary but I didn’t want to miss anything out unintentionally. Even by making it a bit too big, the search area was still only 2km wide, so it would not take long to check.
Next I just needed to face roughly west towards the incoming plane just as Tilman did:
Next I moved East-West across the city at this height:
There’s a familiar looking building on the left…
Perfect match! This means that the hotel Tilman took his picture from was the H+ Hotel Mitte Berlin:
So how accurate was my attempt to recreate the contrail picture? It was pretty close. For the plane to be in that position relative to Tilman, he must have taken the picture at about 07:13-07:14 UTC (08:13-08:14 local time).
Here’s the original and the recreation side-by-side for comparison:
We can even work out roughly which room he must have been staying in at the H+ Hotel:
That was certainly the hardest Quiztime challenge I’ve attempted. If you’d like to try and replicate this challenge yourself the KML file is available here.
My other Quiztime solution posts can be found here.