Upon landing at the first leg of a multi-country tour of Asia, a friend boasted:

I’ll send you something better later, but: we got up to 84.5 degrees N today 🙂 By my jetlagged head math, that’s only about 333 miles from Santa Claus.

I would have liked to have been able to respond with the farthest north I’ve been, but I didn’t know. My wife and I flew to Italy several years ago, and somewhere along that flight path contains the farthest north I’ve been. I didn’t have a GPS with me like my friend on his Asia trip, so I’ll have to make a reasonable approximation.

The flight segment that holds my northernmost point would have been along our return route, from Amsterdam to Detroit. Why the return route in particular? Eastbound flights tend to follow the jet stream to take advantage of tailwinds, provided they’re at appropriate latitudes. Westbound flights follow great circle paths, and in the northern hemisphere, that means they will go farther north on a westbound route.

Armed with the knowledge that straight lines on a polar map are great circles, I made an attempt to dust off my trigonometry. I came up with an answer of xxx degrees north. That equates to xxx miles from the North Pole.

Later in the day I remembered that the rule about polar maps is that the route must cross the center of the map in order to be a great circle. So my answer derived from longhand trig was invalid. I searched around the internet for a way to find the northernmost point on a great circle arc, and did not come up with a method that I could comprehend in a reasonable amount of time. R has a package (geosphere) available, however, that can easily give me exactly the answer I was looking for.

> library(geosphere) > > # World map data > data(wrld) > > # Detroit > dtw <- c(-83.353388, 42.212444) > > # Amsterdam > ams <- c(4.763889, 52.308613) > > # Compute great circle > gci <- gcIntermediate(dtw, ams) > > # More accurate method for determining point of maximum latitude > f <- function(lon){gcLat(dtw, ams, lon)} > opt <- optimize(f, interval=c(-180, 180), maximum=TRUE) > maxLat <- c(opt$maximum, opt$objective) > print(maxLat) [1] -28.9951657.28472

So, I have been as far north as 57.28 degrees. What does that look like on a map, and how far from the North Pole is that in miles?

> # North Pole. Keep the longitude from the point of maximum latitude > np <- c(maxLat[1], 90) > print(np) [1] -28.99516 90.00000 > > npdist <- gcIntermediate(maxLat, np) > > png('gc.png')

> > plot(wrld, type = 'l', xlim = c(-150, 50), ylim = c(30, 90)) > grid() > lines(gci, lwd = 2, col = 'blue') > points(rbind(dtw, ams), col = 'red', pch = 20, cex = 2) > points(rbind(np), pch=20, cex=2, col='dark blue') > lines(npdist, lty=2) > dev.off()

> # distance in meters > dist <- dist2gc(dtw, ams, np) > > # distance in miles > print(dist / 1609.344) r-2262.94

So, there we have it. I’ve been to within 2263 miles or so of Santa Claus.