I figured I'd tie it into how you can find current weather conditions on the Web, in which the weather community uses the same city codes as airports do in recording observations.
I don't know who decides who gets what code -- the FAA? NOAA? Boggle boards? Sesame Street? ("This city is brought to you by the letters, "S", "E", and "A"?), but some are way out there.
For example: Anyone who has flown through Chicago's O'Hare Airport gets an "ORD" tag, which, try as I might, I could not figure out where the 'D" came from. What was wrong with "CHI"? A quick peek of Wikipedia finds that during World War II, the airport was known as Orchard Place Field, and thus where "ORD" came from. The airport was renamed in 1949 for Edward "Butch" O'Hare, a Navy ace pilot who was honored with the Medal of Honor. But I guess ORD had already stuck.
Many cities do make sense -- SEA for Seattle, BOS for Boston, JFK for John F Kennedy Airport in New York, MIA for Miami, MSP for Minneapolis-St. Paul, LAX for Los Angeles (they use an "X" a lot to fill out a third letter).
On the other hand, that's used for Portland, Ore. too -- they are PDX. But I can't figure out why not "POR"? I thought at first that would be Portland, Maine, but no, they are PWM. (And the 'W' comes from...??)
(After I originally wrote this, I found out that it was because originally, the airport codes were two letters, and when it expanded to three, many of the airports that already had two letter codes were just given an "X" on the end. Portland used to be 'PD'. Still no idea where the 'W' comes from for Portland Maine)
[Update: Alex Nguyen e-mailed me Wednesday morning, finding this: "Portland bought the airfield and changed its name to "Portland-Westbrook-Municipal. "Westbrook" referred to the location of the last directional light before the airport in the nearby town of Westbrook."]
But there's some other weird ones out there: MSY is New Orleans' Louis Armstrong Airport. But that was originally known as Moisant Field, which got MSY from the name Moisant Stock Yards. Incidentally, the more aptly coded "NEW" is for the city's Lakefront Airport. Left with the crumbs are every other "New" city, who have to come up with something else, including Newark, NJ, which is "EWR".
MCO is Orlando, leftover for when it was McCoy Air Force Base.
In trying to find how the heck Dulles Airport in Washington, D.C. came up with "IAD" (more on that in a second) I stumbled upon this fantastic site, which points out some other interesting rules that I didn't know about:
* When they were generating these codes, the Navy stole all the "N" codes for themselves. Thus, aside form a few exceptions, such as New Orleans' "NEW", almost all N codes are for Naval bases. (To wit: Whidbey Island's NAS is "NUW")
* The "W"s and "K"s were kept out by the FCC to use for radio stations. Canada took the "Y" for theirs and then apparently threw letters on a wall to come up with the rest of their codes (Victoria is "YYJ", Toronto is "YYZ")
This brings us to the wacky IAD for Dulles. Washington's National Airport, which was first but couldn't use a "W" (FCC stole 'em) or an "N" (Navy) had to be creative and took "DCA" for DC (District of Columbia) Airport. Dulles originally tried "DIA" for Dulles International Airport, but then found it was too confusing if you wrote that really fast on a baggage tag, you might mistake the C for an I, so they jumbled it a bit and came up with IAD.
* There's also a rule that you can't have a three letter code with two of the first letters, or the second and third letter identical within 200 nautical miles, to lessen confusion among air traffic controllers. This came into play in Houston which had the original Houston Hobby Airport, which was HOU and the new shiny new airport, which they ended up naming International Airport Houston to get around this, and gave it IAH. (I think this is now named for the senior George Bush).
Again, check out this site which has way more information on airport codes.
Locally, there's some interesting ones as well: Everett is "PAE", short for Paine Field. Port Angeles is "CLM", presumably for Clallam County. Forks is "UIL" for the actual airport location of Quillayute. Bremerton is "PWT" but can't find out why. And Kelso has the distinction of being one of the very few "K" codes -- KLS.
In western Oregon, most seem to make sense and use the city letters in some form: Eugene is EUG, Hillsboro is HIO, Salem is SLE, Astoria is AST, but Scappoose is "SPB" ("B"?) and Vancouver, Washington is VUO, despite the "O" coming before the "U" in the city name. (And "VAN" is not taken, so...?)
Eastern Washington is a bit different: GEG for Spokane goes back to when it was Geiger Air Force Base, and MWH is Moses Lake, with that mysterious "W" again -- maybe it was taken from Walla Walla, whicih is ALW since it can't start with a "W".
But my favorite is Pullman, whose code is "PUW" -- I assume for PUllman, Washington, but as a University of Washington alum, I take great pleasure in the irony that "UW" would be in Pullman's city code :)
OK, so now you've got the gist of codes. How about putting it to use?
If you go to this site from the National Weather Service, you can find current conditions for most places in the world. Here is that URL spelled out:
The trick is see where it says after "sid=SEA" -- you can replace the SEA with any three letter code, and the "num=48" is how many hours back you want to go. For example, you can put in "120" and it'll go back 5 days.
Now, one thing to notice -- it shows Seattle as "KSEA". Believe it or not, we made things more complicated a few years ago. The international weather community got together and designed four letter codes for all weather observations, with the first letter being a regional designation, and the latter three being the usual code from before.
For the United States, we're "K" - I assume back to the heritage of using K for radio station call signs. Only in this case, K is for everyone in the lower 48, including the east coast. (No "W" for them, everyone's "K"). Canada is "C", the Pacific Ocean region, including Alaska and Hawaii, is "P" (So, Anchorage is "PANC"). France is "L", England is "E", etc.
You can find the code for almost every major city on this text file. You can then put the code in the link above. You can use the 4 letter code too, so "KSEA" works as well as "SEA", but for cities outside the lower 48 states, you need to use the entire four letters.
Next up: Looking to morning cereal for tomorrow's inspiration. Wonder if Cheerios and droughts are related somehow? :)