NEWS - (December 2000) Java GlobeView Applet is now available Java GlobeView
circa 1980 - Apple II version
I first became fascinated with computational cartography when I read in article in BYTE magazine as a teenager. Back in those days, computer articles in magazines would often include a printout of the full source code. I manually typed in the code to generate maps of the earth, but never succeeded in fully debugging it. The code was in BASIC, and used the "high resolution" graphics screen of the Apple.
1984 - PDP 11/785 version
In college I succeeded in writing my first truly functional cartography application as part of the laboratory portion of my introductory physics course. The code was in PASCAL, and the output display device was a green-screen Tektronix vector display. In those days these screens had a much higher effective resolution than any raster device. I believe that its resolution rivals that of contemporary (1997) high resolution monitors. The display could be printed onto thermal paper, using a printer that was particularly designed for the display.
I generated map data by tracing maps from atlases onto acetate sheets. I then pasted the sheet onto my computer screen, and used the (rare in those days) movable pointer to enter the data. The final result was nice perspective views of the earth's surface. The perspective projection permits views from varying heights above the earth's surface to be generated. (The UNIX globeview only permits orthographic projection at this time). The PDP 11/785 version required about 5 minutes to render a single image.
At that time I had had no substantial training in matrix algebra, so I did not use any matrix operations to simplify the transformations necessary to draw the maps. Essentially I used the algebra, geometry, and trigonometry I had learned in high school, generating explicit expressions for each of the spatial coordinate calculations. A fellow student who was working on a similar project was impressed with my results and asked for my help with some of his computations. He had his work written out in standard matrix notation, but I was unable to help him because I could not understand matrix algebra at that time.
These images are scanned from old, yellowed thermal prints.
1987 - Amiga version
In 1987 I collaborated with Paul Ostrowski in writing a series of computer graphics applications. Among these was yet another cartography program. Paul and I greatly reinforced one another's programming skills, and we spent weeks picking over the code, making minor improvements. That's the way programming was done back in those days. The raster display of the Amiga was of high enough resolution to make nice images of the earth's surface. We even made a stereoscopic version, which would display 3D images of the earth using anaglyph (red/blue) stereo glasses. The program was written in AmigaBasic. An image of the earth's surface was rendered in about 15 seconds.
1997 - UNIX/X11 version
In order to teach myself the Motif windowing interface, I wrote another cartography program for UNIX/X11. I took a formal course in computer graphics in graduate school, and have had substantial exposure to matrix algebra in the meantime. Therefore I had a much easier time with the mathematical parts of the programming than I had had before. The result is GLOBEVIEW, which is written in C, and runs on many platforms including Solaris, IRIX, and Linux. Modern computers are now fast enough that the images be manipulated in real time. Simple images of the earth can be rendered in about 250 milliseconds on my PC, and in about 100 milliseconds on a fast SGI workstation. A simplified animation mode is available which works fast enough (<< 200 ms) on every platform that I have tried.
Start by setting the GLOBEDATA environment variable to the location of the "ciamaps" directory containing the geographical information. Then invoke the program by typing "globeview".
Use the main (left) mouse button to rotate the earth. Use the menu (right) button to zoom in and out. Use the middle button to rotate about the Z-axis (unless the "North Always up" option is selected). Open new geographical data files using the File/Open menu option. Select which data are being displayed by selecting the View/Map Files menu option.
2000 - Java versionJava GlobeView
Plans for the future
- Other projections
- Fill in the contintents instead of just drawing outlines. This is going to require that I reformat the data so that everything is in terms of strictly closed polygons, all drawn with the same convention. This is probably best done by creating a low level data browsing and modification menu.
- Stereoscopic modes for perspective and orthographic projections
- Incorporate elevation data. These data exist and could make nice coloring and shaded rendering available.
- Let the user choose different colors for everything
- Generating data for other planets is an exercise left to the user.