We’ve been having a bit of trouble with our map servers lately, so I’m delighted to announce that we’ve just switched to new and, hopefully, more stable ones today.
The default “political” blue-and-gray map is the same as it ever was, only it’s now hosted by the Open Source Geospatial Foundation (OSGeo). OSGeo are also the folks behind the OpenLayers map system that powers the entire site, so please show your love on their Donations page.
The full-color geographical “world” map has been offline ever since NASA pulled the plug on their Blue Marble map server a few months back, but today it’s back courtesy of OpenGeo, another non-profit which, confusingly enough, is entirely separate from OSGeo. If you haven’t seen this before, here’s how to activate it: click on the top right icon, then choose “Base Layer > Geographical (OpenGeo)”, and the background of your OpenFlights map will now be the real world. The two caveats are that 1) it’s considerably slower than the political map, since there’s so much more detail, and 2) OpenGeo’s map isn’t quite as high-res as the original, so you can’t zoom in all the way to the airport runways like you could previously.
Facebook, in their grandmotherly kindness, has onceagain decided to break the OpenFlights Facebook application. Today’s change is that the “profile box” we’ve come to know and love is going away on August 23, 2010:
And it will be replaced by the profile “application tab”, visible only if you browse to the user’s profile and click on the “OpenFlights” tab there:
To add the application tab to your profile, browse to http://apps.facebook.com/openflights, look for “Step 3: Click the button below to add the OpenFlights application tab to your Facebook profile”, click the button and follow the instructions. Once done, you should have a new tab in your Profile, and the application should tell you “You have added the OpenFlights application tab to your profile” (you may need to reload the page once to see this).
While this is a hassle, the change is not all bad, since at least from now on we’ll have 520 pixels to play with (instead of the previous 184), so we’re open to suggestions to what we should do with our new real estate. Something like the “Analyze” stats and charts, perhaps? Alas, enabling a full-fledged “slippy map” like the OpenFlights.org website is still out of the question, as Facebook’s JavaScript support is far too crippled for the OpenLayers goodness we would need to implement it.
The route map we created with our airline route data a while back has been a bit of a sleeper hit: it’s now used on 16 language versions of Wikipedia, drawn excited reactions from blogs and — my personal favorite — claimed by a logistics company as their cargo network! But it’s a boring old square, and recently, we received a request to make a round version of it. Never ones to let a challenge pass us by, we set the number-crunchers to work, and here was our first attempt:
“Hmm,” is probably your first reaction, “that looks kinda strange.” That’s because it shows the entire world squished to a disc, including even the parts you couldn’t actually see, at least not all at once, if you were in outer space looking down at the Earth. (For you mapping nerds out there, it’s a Lambert azimuthal equal-area projection.) The only way to make this happen is to stretch the bits around the edges, which is why poor Australia looks so strange. So how to make it more realistic? Back to the drawing board!
Our second attempt used an orthographic projection, which is Greek for “true writing” and thus pretty close to what you’d actually see from space. The only problem this time is that you can only see around half the world at any time, which means you also only see half the airline routes. How could we show them all? The solution was to add time to the equation, and turn it into a video:
Or, if you’re on a slower connection, here’s a non-HD version that should load a little faster. And while I was at it, I created my own routemap as a video as well:
Nifty, eh? We’re considering a campaign that will create route map videos for all users who help contribute to the site, so if you’d be willing to chip in a bit in exchange for a shiny new video, let us know! Up next, a hardcore geek posting that will reveal the PHP ninja secrets of making maps and videos like this yourself.
OpenFlights has been in bug fixing mode lately, but today we rolled out a small but handy feature: the ability to reset your own password if you’ve forgotten it. We use the same mechanism as every other site out there, namely mailing you a link to check that it’s you, and then giving you a new random password once you click on the link. While we were at it, we also nuked a pesky longstanding bug that had prevented some users from changing their password, so you’re not stuck with random gibberish afterwards.
Now, there’s one more change afoot for users who registered before January 9, 2009 and whose usernames contain uppercase letters: due to changes in our login system, you will be unable to login after Saturday, May 15th, and you will have to reset your passwords to get your access back. To emphasize, this applies only to users who fulfill both conditions: if your username contains no uppercase latters or you signed up anytime after January 9, 2009, you don’t need to do anything at all. If you want to check whether or not you are affected, browse here and find out:
For affected users, the reset can be done at any time (before or after May 15th) and after you have changed the password, your account will be OK. According to our count, there are 123 of you, and while we will try to reach 82 by e-mail, here’s hoping this catches some of the rest of you. The remaining unlucky 41, being email-less, cannot use the reset functionality and will instead need to login and change their password under Settings.
And if you’re wondering why we don’t just change your passwords for you, the answer is simply that we can’t: passwords are always stored encrypted (one-way hash), which means that even we can’t read them.
It’s only been a few weeks since we last pestered you, but it turns out our changes to the Facebook app weren’t quite enough, and that for a certain set of users flight notifications were still not working properly. This time, though, we’re pretty sure we’ve got it licked, so let’s try this one last time — or so I hope. Please go to:
If it says “Automatic refreshing active” at the bottom, the app should be working fine and no action is needed. However, if it says “Step 1“, then please follow the instructions: click the link, grant the “publish” and “remember me” permissions, and then “Activate/Update preferences”. You should get a “Thank you!” box after this, and then the application should finally work. And if it doesn’t… let us know!
<geek> Turns out that publish_stream isn’t enough, offline_access is required as well before Facebook will deign to grant a session key usable for offline stream publishing, and we were recording the wrong, temporary ones. Fortunately, we can request both and use the users_hasAppPermission() call to verify that the permission has duly been granted before recording the session key, and everything should now be peachy keen. </geek>
Some time yesterday, OpenFlights passed the quarter million mark of user-entered flights. Let’s see how the current statistics compare to what we had at 100,000…
Top 10 Airlines
Airline
100k rank
World rank
1
Lufthansa
2 (+1)
6
2
United Airlines
1 (-1)
2
3
American Airlines
4 (+1)
1
4
Continental Airlines
3 (-1)
5
5
Delta Air Lines
5
3
6
British Airways
6
8
7
Air France
10 (+3)
4
8
Northwest Airlines
7 (-1)
9
9
US Airways
8 (-1)
?
10
Ryanair
new
?
United and Lufthansa once again duking it out for the top spot, the Germans on top for the moment, and American has overtaken Continental. Air France shot up three ranks, closer to its rightful place in the list, while Scandinavian was pushed off by upstart Ryanair, which is also highly likely to make it into the IATA top 10 for 2009 once they get around to releasing it. But for now we’re comparing against 2008 and we have 8 of the world’s top 10 are represented, with only #7 Southwest (#20 on OF, down a notch) and new IATA #10 Emirates (#26 on OF) still missing the cut.
Top 10 Airports
Airport
100k rank
World rank
1
Frankfurt Main (FRA)
1
9
2
London-Heathrow (LHR)
2
2
3
Chicago Ohare Intl (ORD)
3
3
4
Munchen (MUC)
5 (+1)
?
5
Los Angeles Intl (LAX)
6 (+1)
7
6
Charles de Gaulle (CDG)
new
6
7
Houston-George Bush Intcntl (IAH)
4 (-3)
16
8
Amsterdam-Schiphol (AMS)
7 (-1)
14
9
New York-John F Kennedy Intl (JFK)
9
13
10
Atlanta-Hartsfield (ATL)
8 (-2)
1
Frankfurt keeps the top spot and the ever-busy Germans push Munchen up a notch as well, even though it’s now fallen off the Airports Council Top 30 (September 2009). The big news this time is the appearance of Air France homebase Charles de Gaulle, showing up at #6 — precisely the same as its world rank — and pushing San Francisco off the chart. Alas, Asia remains underrepresented, with still no sign of world #4 Beijing-Capital or #5 Tokyo-Haneda.
Bonus: Top 5 flight numbers
Just as a lark, we also decided to peek into the database and see which flight numbers were the most popular, and I have to say the results came as a bit of a surprise. At the head of the pack were OK520 and OK527 with 270 and 205 flights respectively: OK is Czech Airlines, not a Top 10 powerhouse on any list, and they’re flights from Cologne and Dusseldorf to Prague, nearly all credited to a single user — who has chosen to stay private, alas. The next three slots were somewhat more predictable: all Lufthansa (airline #1) from Frankfurt (airport #1,) but while I had thought that a flight to Munich had to be up there, it turns out that LH1051 (167 flights) and LH1058 (115 flights) both go to Dresden, while LH4810 (77 flights) is that old bankers’ favorite, Frankfurt-London City. It’s a little counterintuitive, but a popular city pair means many flights to spread the load, whereas on a sufficiently quirky route like DUS-PRG there isn’t that much choice and thus lots of hits for the same flight.
What next?
We’ve been promising features that would take advantage of all this data for a while now, but haven’t quite gotten around to it yet. Top of the list are autocompletion based on flight number (punch in a number and we’ll guess the rest) and airline/airport route maps derived from user data, and while it may be a while longer until we launch either, it’s certainly time to start experimenting.
Recent changes inside Facebook have broken the existing OpenFlights Facebook application’s ability to post recently added and/or today’s flights to your Facebook Wall. To fix your copy, please go to this URL:
Right below “Step 1″, click on the link entitled “Grant permission to publish posts”, click on “Allow publishing” in the dialog that pops up, and then click one last time on “Update preferences”. That’s it — and as a complimentary bonus, the flight map posted to your profile should now always be up to date.
Geek version: Effective today, Facebook has discontinued the old “template bundle” functionality, which used the offline_publish permission. We’ve replaced it with stream publishing, but to work this requires the separate stream_publish permission instead. In addition, we’re now calling fbml.refreshImgSrc after all profile changes to make sure the dynamically generated map is refreshed as well.
As always, the Facebook application code is available in the OpenFlights SVN, take a look if interested. index.php is the core application, while updater.php is a standalone command line app that handles Wal updates.
Just a quick heads-up: OpenFlights now has well over 200,000 flights, but you’ll have to wait for 250,000 until the next installment of State of the Data. With any luck, the quarter-million milestone may be reached before the end of the year.
The other news of note is that the NASA OnEarth (Hypercube) geographical world map layer, which was broken for a while, is back online. To activate it, click on the top right icon, then choose “Base Layer > Geographical (NASA)”, and the background of your OpenFlights map will now be the real world, not a light shade of beige. Due to the richness of detail, the map is quite a bit slower than the default one, but it can be pretty gorgeous especially when zoomed in; take a look at the area around Nassau, Bahamas (NAS) if you don’t believe me!
Extremely technical content ahead — if you’re looking for news about OpenFlights the website, check out this post instead. Programmers using OpenLayers, read on.
Today OpenFlights rolls out a very simple feature indeed: airport codes are now shown on the map, right next to each airport. Better yet, if you happen to forget what “BHX” or “NTQ” stands for, just hover your mouse over the airport icon and it will pop up a label reminding you that they’re “Birmingham, United Kingdom” and “Wajima-Noto, Japan” respectively.
But wait, there’s more! To speed things up a bit and reduce clutter on screen, we’ve also rolled out a funky feature called dynamic clustering. In plain English, this means that if you’ve got a lot of airports smushed up into a small space, OpenFlights will now show only a single airport on your map. There are two ways to know that there’s more here than meets the eye:
If one airport is more important than the others (has more flights), that airport will be shown as the usual but with a “+” character added to the code, like “SIN+“.
If all airports are roughly the same size, they will be shown with a special cluster icon .
In either case, just click on the airport icon to get a list of all airports, and then you can pick the one you wanted. Alternatively, just zoom in and the hidden airports will magically show up.
One final change: the simple-yet-oh-so-confusing hand/lasso (”select/region”) map controls are now history and OpenFlights is now always in “select” mode, where a single click selects airports and a double click zooms. If you want to select a region to zoom into, hold down the Shift key, then click and pull the selection rectangle.
Making all this happen required an upgrade to our OpenLayers mapping software and a lot of poking about in the background (an excruciatingly detailed technogeek explanation can be found here), so please do let us know ASAP if anything seems wonky. Feedback about the clustering is also welcome: is it great, terrible or somewhere in between? The current cluster rule is “3 or more airports within 15 pixels get clustered”, should we be more aggressive or more laid-back?