(text from the Central States VHF Soc abstracts, 1994 az_proj.ps - A program to create azimuthal equidistant map projections Joseph Mack (NA3T) and Michael Katzmann (NV3Z / VK2BEA / G4NYV) * Abstract The azimuthal equidistant, or 'great circle' map projection is a useful tool for the radio amateur in quickly determining the correct direction to point antennas between two points on the surface of the earth. Unlike conventional maps, that attempt to maintain the shape of surface features, the azimuthal projection maintains only the direction and distance from a single site. The map, consequently, is only useful for that site. It was felt that a simple, inexpensive method for the individual to create their own azimuthal projections was desirable. The flexibility to customize the map, in order to show a particular area of interest and include features required by the user, were of prime importance. The criteria of simplicity, and non-dependence on specific hardware and software were the principle motives in choosing the Postscript page description language to implement this idea. Capabilities The program is capable of displaying a map from almost any point on the earth at any scale. The map may be offset, so that an area can be enlarged without having to include the base site. Thus a map based on Washington DC has the ability to show, for example, only Europe. Grid squares, based on the Maidenhead system, may be overlayed on the map at the discretion of the user. Likewise compass bearings are optionally available. Facilities have been included to print either callsigns or country names from a standard file of DXCC callsigns available from the ARRL bulletin board. Labels may be added to the map to indicate features at the discretion of the user. One use of this might be to pro- duce a local repeater or beacon map. All of the program and data files in this package are freely redis- tributable. The main map data is derived from the C.I.A. world data- base. It has a resolution of between 50 and 100 metres. Maps can thus be produced of quite small areas whilst retaining reasonable detail. Coun- try borders, major rivers and lakes, islands and U.S., Canadian and Aus- tralian states are included in the database. There is approximately four megabytes of ascii data files, split into continents. ________ * Joseph Mack. NA3T Michael Katzmann. NV3Z NV3Z & NA3T Azimuthal Map Projections Page 2 Implementation Postscript is a programming language developed by Adobe Systems for use in desktop publishing. It is a page description language. That is to say, one uses instructions to tell the device how to print characters or figures on the page. A Postscript printer differs from a conventional printer in that you must send it not just the text you want printed, but a program that tells the printer how the text or data received is to be interpreted. Postscript is a stack orientated language, much like Forth, and its operation is somewhat analogous to an RPN calculator. Data is pushed on the stack (last in first out) and then operated upon by a function. The az_proj.ps program is entirely written in Postscript, so that with a Postscript capable printer, all that is required to create a map is to customize the program options and send it (azproj.ps) and the data files to the printer. It is the printer, not the computer that executes the program, transforming the latitude and longitude information from the data files into bearing and distance, and then drawing the map. In that sense the program is computer indepen- dent, since the only purpose of the computer is to store the plain ASCII files. ...but I don't have a Postscript printer! If your printer doesn't understand Postscript, it is still quite likely that you can use this program. A freely redistributable Postscript interpreter is available that supports a myriad of printers and display devices. This program is Ghostscript and is distributed under the terms of the GNU public license. It runs on MS-DOS, MS- Windows, Unix, VMS and other systems. Ghostscript interprets the Postscript code and creates a bitmap that is printed or displayed. Under this arrangement, the program is executed by the host computer, and it is the printer that is the 'dumb' recipient of the bitmap. Printer drivers for HP deskjet and paintjet series, HP laserjet, Cannon bubblejet, Epson dot matrix and others are built into Ghostscript. Video display drivers, which render Postscript on the screen, are present for VGA, super VGA, MS-windows, the X Windows sys- tem, GIF and PCX formats. This is an ideal way to preview the program, to ensure that the output is what you expect, even if you actually print it on a Postscript printer. If you have a fast computer, Ghostscript* will probably give you better performance than a Postscript printer. Postscript printers rarely have floating point math hardware installed, which speeds the execution of this program greatly. An Intel 486/66 pro- cessor is 18 times faster than an HP1200C/PS Postscript printer in exe- cuting this program. ________ * Ghostscript is freely available (with the GNU License), on the internet from ftp.cs.wisc.edu:/pub/ghost, and from the GNU servers everywhere. Ghostscript is Copyright Aladdin Enterprises. NV3Z & NA3T Azimuthal Map Projections Page 3 Customizations The program has been designed to allow easy modification, in order to tailor the map to the user's preferences. Those parameters that are most often changed, are clustered in the 'options' array. These vari- ables are: o latitude and longitude of the QTH, (the position that the distance and bearing is referenced to) o latitude and longitude of the center of the map, (the center of the map does not need to be the same as the QTH) o scale of the map in either km:cm or degrees of solid angle sub- tended from the center of the earth (each degree is 60 nautical miles) o title of the map o enable printing of lettered Maidenhead grid square boundaries o enable printing of lettered Maidenhead designators o enable printing of numbered Maidenhead grid square boundaries o enable printing of numbered Maidenhead designators o enable printing of compass bearing lines o enable printing of distance circle o enable printing of outer bearing circle o if DXCC data file supplied, print either callsign or country name The options array for a map of the continental US, based on Greenbelt MD but centered on the mid west, would be configured as follows: /options [ 39.0 -76.845 (WA3NAN - NASA Goddard) 40 -89 true % The midwest & enable offset 200 true % scale, km/cm (degrees), true % landscape (portrait) on on % letter grid squares, labels on on % number grid squares, labels on % compass circumference, on off % compass radial spokes, outerborder true % callsigns (country name) ] def A comment in Postscript is preceded by a '%', thus we are able to include some explanation with each variable. Other standard Postscript NV3Z & NA3T Azimuthal Map Projections Page 4 variables can be modified to change color, line thickness, fonts and font sizes. These are heavily sign-posted throughout the code, and should be obvious to non-Postscript programmers. Colors for the various features are defined in terms of R G B values from 0 (dark) to 1 (bright). For example we define a variable lightred as: /lightred { 1.0 0.33 0.33 } def We can use this later to define the color of, say, our grid square boun- daries. /grid_locator_letter_color /lightred cvx def In Postscript a variable name is preceded by a '/'. The def assigns the value to the variable. Examples The following example maps are intended to show some of the pro- grammes capabilities. Since they are rendered in monochrome here, ena- bling all the features on the one map would be quite confusing. The enhanced definition available with a color print makes this practical however. The following prints show: 1. The whole world with the compass lines and outer border. 2. Western Europe as it appears from Annapolis. - This also shows the DXCC country callsigns which are read directly from the ARRL file. 3. A regional map of the north-east US based on Newington CT. - This includes both lettered and numbered Maidenhead grid squares. 4. The CONUS based on Annapolis but centered on the mid-west. Conclusion It is hoped that this program will be of use to the amateur commun- ity, and we encourage its wide distribution. There are still many ideas to be included in future versions, and with constructive feedback from users, no doubt its utility will be enhanced.