How to create an Azimuthal Equidistant map for long-distance radio?

I'm trying to produce world or continent scale maps that use the Azimuthal Equidistant projection. I'm a radio amateur, and to an antenna, the whole world looks like spread out on a flat plane, with the antenna at the centre and the whole world at an (r, Θ) from that point.

There is software to do this - AZ_PROJ - but it uses its own database, and is entirely written in PostScript, so it's not exactly hackable with the usual geo tools.

OGR has the 'aeqd' projection, which can be invoked like this:

``````ogr2ogr -t_srs "+proj=aeqd  +lat_0=43.7308 +lon_0=-79.2647" out.shp in.shp
``````

for a centre at 43.7308 N, 79.2647 W. Unfortunately, this wraps everything beyond the current hemisphere "behind" the map. It also projects the coordinates into cartesian metres, where I'd prefer polar.

Any suggestions for alternatives, please?

-
This may be a partial answer, if anyone's searching: Ortho Projection produces artifacts – scruss Jan 5 '15 at 2:35

You have to specify the radius of a sphere, because proj seems to only support the spherical formulas of this projection:

``````+proj=aeqd  +R=6371000 +lat_0=51 +lon_0=7
``````
-

I'm not aware of any projection tool that outputs into polar coordinates.

You might try using Esri's Projection Engine dll (pe.dll) that is bundled with the freely downloadable ArcGIS Explorer. It is a C style dll that has methods to determine azimuth and geodesic distance between any two points. For more details see Richie Carmichael's blog post.

-
Thanks. I can already calculate azimuth and geodesic distance with geod, which is part of PROJ.4: echo 'lat1 long1 lat2 long2'| geod +ellps=WGS84 -f "%.3f" -p -I +units=m – scruss Jan 17 '12 at 12:09
You can fake the polar coordinates: after performing the (oblique) azimuthal equidistant projection, merely declare that it's really the result of a polar azimuthal equidistant projection, then unproject that. The resulting map will be upside down, but a reflection and vertical translation (simple affine transformation) will solve that. – whuber Jan 17 '12 at 15:45