If you’ve listened to some of my satellite audio, you’ll notice that in addition to the callsigns, people are exchanging things that sound like “Delta Mike 41” or “Charlie Mike 87”. These are Maidenhead gridsquares: a system of rapidly transmitting your rough location. The kind most commonly heard are the ones that are 4 characters long (two alpha, followed by two digits), but it’s also not uncommon to have them be length six (two uppercase alpha, two digits, two lower case). Converting back and forth between grids and latitude and longitude is fairly simple, there are existing programs like geoid and wwl that can do it. But I decided to code up a Python library to do it. As a simple test, it takes two grid descriptors, and determines the bearing and the distance between both points. For instance, when I run python maidensquare.py CM87 BL11
, I get the following:
CM87 -> BL11: bearing 251.0° distance: 2315.3 miles BL11 -> CM87: bearing 54.0° distance: 2315.3 miles
BL11 is the gridsquare of NH7WN in Hawaii, which is, as you can see, south west of my location. You should also note that the return trip isn’t 180 degrees opposite the outgoing trip direction. That’s because these are directions on the sphere along great circle paths, and normal geometric invariants (such as the angles of a triangle adding up to 180°) simply don’t apply on the surface of a sphere.
I’m going to add this to my growing body of Python code, and will release it someday soon. Drop me an email if you’d like to try to test it out a bit more (warning: it’s mostly for programmers).