Azimuthal Projections Info

Example azimuthal map
Azimuthal projection from ARRL headquarters

This all started when I was interested in calculating the distance and bearing between amateur radio stations. I found this reference on calculating the great circle distance and bearing. Ultimately, this interest led to a web form for producing azimuthal maps.

For those who never heard of an azimuthal map, it is a special kind of map that prioritizes correctly showing the great circle distance and bearing from the center reference point. Azimuthal maps are particularly useful for ham radio operators with a directional antenna. For example, if you’re in Connecticut and you want to talk with someone in Cameroon (Africa), the azimuthal map will tell you to point your antenna to a bearing of 90° on a compass (technically you also must adjust for the difference between magnetic north and true north).

It occurred to me that this the bearing and distance calculation was the fundamental tool for making an azimuthal projection. All I needed was a database of land and political boundaries expressed in latitude/longitude pairs.

The azimuthal project is always made from a particular reference point on the globe, and I can convert the points in the  land and political boundary database into bearing and distance using the great circle calculations. This gives me a collection of points in polar coordinates (r, Θ) which is what I need for the azimuthal projection.

For the land and political boundary information, I used the database from the CIA World Databank II; however, it required some massaging. First it was too detailed, and I had to filter the data to an appropriate resolution. Next, I wanted land masses and water bodies to be represented by closed paths. The CIA World Databank II is a collection of unconnected paths, so I had to write a program to patch them together and reorder the points to be clockwise. Having closed paths of points ordered in clockwise orders is necessary to have water and land colored differently. Lastly, I had to identify which closed paths represent land and which represent water. Unfortunately, this work is incomplete. You’ll notice some lakes that aren’t colored blue.

Initially, my Ruby program was generating raw PostScript. However, I recognized that it would be easier for people to use if it generated a PDF.  Rather than using a Postscript to PDF convertor, I changed to generating PDFs directly using the Ruby PDF::Writer. By using PostScript or PDF, I get vector graphic output that is scalable from small to very large sizes without having to make a huge raster graphic files.  There is a limit to the resolution of the continent & political outline data, so at very large sizes, the outlines may not appear smooth.

Ultimately, I used the great circle distance formula from Wikipedia. According the article, it’s accurate for both long and short distances.

The hardest part of the whole project was getting the water blue. There are still some maps where the program gets it wrong, and you’ll see weird coloring. Things tend to go wrong when the reference point is inside a particular small region of land or water. In these cases, the floating  point accuracy seems to cause the colors approach to fail.

My plans for future improvements include:

  • add small tables of bearing & distance for important world cities around the margins
  • add US and world cities to the map (particularly for area map)
  • adjusting political boundaries and labels to be more accurate
  • adding more views to allow people to report lakes that aren’t colored correctly

504 thoughts on “Azimuthal Projections Info”

  1. Thanks so much for maintaining this map generator. I just made a set of maps with different distances for my shak. I tried to follow the link to make a donation and found the link was down.

    I know these downloads cost you a bit and I’d like to help. Send me some information and I will try again.

  2. I got a defective map from a particular location. The center location is 1°21’33″N 103°59’22″E (Singapore Changi Airport. If the distance is set from 15000 km to 19000 km (approximate), none of the continental borders for Africa, Asia, or Europe are drawn; although the national borders are. If the blue background is turned on, the coloring is defective where most of the oceans are still white but the Americas are blue as if they were an ocean. Outside of these distances, the map rendering appears normal.

    I would also like to know if there are a future plans to add a setting to adjust the spacing between the “range circles”. Currently the circles are always set at 1/4 distance, e.g. for 20000 km, these are at 5000, 10000, and 15000.

    By the way, I have found this tool to be quite useful even though I’m not a ham radio operator. I use it mostly for air travel to determine great circle routes between airports on international routes. [You might have deduced this from the above. I normally set distance to 16000 km as this is roughly the current longest distance of a regularly scheduled flight, which is how I discovered the issue mentioned above.] However the first time I used it was when someone asked what amounted to a trivia question about what the nearest foreign location/border was to a particular US city.

  3. Coming back to this hobby. Just got General Class and setting up new shack. Have end fed with long axis at 136 deg. This map shows me what to expect with respect to my antenna radiation.
    BTW, love the experimental and its zoom capabilities. Thank you.
    Do you have some “goodies” for calculating azimuth and distance?

  4. Absolutely brilliant!
    I’m a new ham and found this so useful. Although I don’t own a beam, I found it really useful for orientating my wire antenna. It is probably the best online resource I have found. Thank you!

Leave a Reply

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