A History of Flight Historian

In 2009, I was promoted to a job with frequent travel. Soon thereafter, I started keeping track of all the places I’d been.

My first attempt at keeping track of my travel was to create a simple heat map of the United States, with each state colored depending on how recently I’d visited.

Map of the United States, with each state colored by how recently I've visited as of 1 August 2010.

I kept track of the date of the most recent visit to each state in an Excel spreadsheet, and wrote a function to give me an RGB color based on today’s date and the date of the last visit. I would then manually recolor the states using an image editor. This worked, but it was labor intensive—every time I took a trip, I would have to recolor dozens of states.

I began to search for software that would generate a colored map of the states from an array of state colors. Before I found any, though, I discovered the Great Circle Mapper.

Flight map.

Map generated by Paul Bogard using the Great Circle Mapper - copyright © Karl L. Swartz

The Great Circle mapper allows the user to put in a string of airport pairs, and generates a map of great circle routes. (For example, DAY-DFW-PHX,PHX-ORD-DAY generates this map.) Tracking flights was more interesting to me than tracking states, so I went back through my travel receipts, wrote up a string of all of my flights, and saved it in a text file. Updating was relatively simple; I just had to type some more text at the end of my text file and copy and paste it into the Great Circle Mapper.

It worked for a while, but things gradually got more complicated. The Great Circle Mapper normally automatically zooms the map to include all of the airports in the user’s flight string. Most of my flights were in the contiguous United States, but a few flights to Europe forced the map to be zoomed out, which made the US map difficult to see as I filled in more of the map with flights. Fortunately, the Great Circle Mapper allows the user to designate that the map zoom should ignore a particular flight by prepending it with o:noext. (For example, CMH-ORD,o:noext,ORD-FRA,o:noext,FRA-EWR,EWR-CMH generates this map.) This let me flag all flights that left the contiguous U.S. so that the map would remain focused on the U.S., and I could see the details of all those routes. But it also meant I had to maintain two text files—one for a U.S. map, and one for the world.

Text file of flight routes.

My flight route text file for the 48 contiguous states.

Then, in 2012, I started tracking the aircraft family, tail number, and what class I sat in for all of my flights, and the data got more complicated. Now, a simple pair of text files was no longer good enough; I also had to keep a spreadsheet of all of the extra information about my flights.

Spreadsheet of flight details.

All this extra data let me do some fancy things, like make maps of all my trips on a particular airline or type of airplane, but it was a lot of extra work. I’d have to use filters in Excel, type up the routes and put them in the Great Circle Mapper, all to get a series of maps that would only be good until I took my next flight. I had a lot of data to manage.

At the same time, I’d been teaching myself Ruby on Rails by rewriting my old PHP website. Static pages weren’t particularly difficult to write, so I needed something more complex to work on.

Just as I’d used my EBDB project to teach myself PHP and MySQL back in 2004, I decided to create a flight log database website to teach myself Ruby on Rails. I started work on Paul Bogard’s Flight Log in 2012, and launched the site as part of my Portfolio in April 2013.

The homepage of Paul Bogard's Flight Log.

Paul Bogard’s Flight Log

In 2016, I split the flight log off into its own separate site and named it Flight Historian.