VUCC Circle Checker Script

As a relatively active rover for satellite operations, I’m often looking to check whether a new location will be within my “VUCC circle” and be eligible to count for my home station VUCC certificate. Rule six of the ARRL’s  VHF/UHF Century Club (VUCC) Award Rules states:

For VUCC awards on 50 through 1296 MHz and Satellite, all contacts must be made from locations no more than 200 km apart. For SHF awards, contacts must be made from a single location, defined as within a 300-meter diameter circle.

This means that I can use many operation positions, including those from different grids and parks from my Kansas State Parks POTA mission, and effectively double dip on these contacts as long as no two locations are more than 200km apart. Although it’s easy enough to manually measure distance between locations using the ruler tool on Google Maps, as your list of locations grows, that gets difficult. I decided to write a quick and dirty Python script that checks every combination of locations against one another to see if any are more than 200km apart.

Using the script is fairly simple: just update the placeholder name for each location in the list and the associated latitude and longitude, and run the program from a terminal. Keep in mind the script expects latitude and longitude in decimal degrees format. If all locations are 200 km apart or less, a message will be printed that confirms this. Otherwise, the specific locations beyond the 200 km distance will be called out. As your list of locations grows, simply follow the same format and add additional lines to the “locations” list. Also, note that this script utilizes GeoPy, so be sure to install it beforehand (in addition to Python itself, of course). GeoPy uses the Karney algorithm for computing the geodesic distance.

I have the script on GitHub as vucc_circle_checker, so feel free to download and play with it. I’ll update this blog post if I make any functionality changes or major operational changes to the script in the future.

Leave a Reply

Your email address will not be published. Required fields are marked *