on Maps

This has been happening the past few nights…
the-computer-demands-a-blog.gif
(apologies to Toothpaste for Dinner)
…so here goes…

There are few things that can keep me so inordinately entertained as a good map. I like figuring out where I’m at, trying to understand the way a place is organized and connecting the projection on paper to my real life experience, searching for buildings or roads I didn’t know about, or funny place names. This love is probably the clearest instance of my general affinity for information and seeing it represented in meaningful ways.

My love of maps goes back at least to age six, when I got my first atlas prior to spending a year in Costa Rica with my parents, who were leading a study-abroad program. In Costa Rica, I entertained myself by taping a blank paper over the country map on the window, and tracing a new copy. Before long I could recreate it from memory. Later, on road trips in the states, I would keep the road atlas open on my lap and (geek that I was/am) could at any given time rattle off the name of the nearest town and our estimated time of arrival at the next one.

I of course rejoiced with the masses when Google released Google Earth, with its satellite images of the entire globe, from my host home in Addis Ababa, Ethiopia to the up-close view of campus that I have turned into a giant poster in our living room. More recently, I have also had fun playing with Wikimapia, which takes Google’s satellite imagery and lets you tag places in it–the tags must be corroborated by other viewers to remain. And while investigating Seattle, WA as a place to move next year, I discovered Lost in Seattle, an extensive map of the city which identifies buildings and such. (By the way, for those of you who read my blog about options, I am leaning heavily toward Seattle at this point. Thanks to those of you who offered counsel and encouragement!)

Recently, Naf told me about his idea for a new map projection. One problem with conventional maps is that they are usually good either for looking at a huge area at low resolution or a very focused area in detail–but not for getting both detail and context. So his idea was to take a Mercator projection–in which two points, the poles, are spread out across the entire top and bottom of the map while points in between are less distorted–and adjust its orientation so that the location of interest (lets say Goshen) becomes the effective pole. Thus you would get a lot of detail where you want it, shrinking into the entire world to give context. One handy side effect of this projection is that it would make the vertical axis of your map into a measure of how far you are from Goshen, while the horizontal axis would be a measure of the direction from Goshen.

Computer programmer that I am, I had to try this out. The result is crude but satisfying: (click for large version)
goshen_earth_cropped.png
That’s Lake Michigan there in the upper left.

(For the geeks in the audience–this was generated with the following simple Perl script, thanks to the handy PDL::Transform::Cartography package from CPAN.)

#!/usr/bin/perl

use PDL;
use PDL::NiceSlice;
use PDL::Graphics::PGPLOT::Window;
use PDL::Transform::Cartography;

$a = earth_coast;
$a = graticule(10,1)->glue(1,earth_coast);        # Load coastline map
$a->((2)) += (7-3*$a->((2)))*($a->((2))>0);       # Make it more colorful
$a->((2)) -= 3*($a->((2))<0);
$ts = 'longitude '; $ps = 'latitude '; $as = "azimuth ";   # Shorthand strings
$ms = 'projection '; $rs = '(radians)'; $ds = '(degrees)';

@wopts = (size=>[16,20],j=>1,hardlw=>1,hardch=>2);
$w = pgwin(dev=>'goshen_earth.png/png', @wopts);
$ps = "projected ";
$opt = {title=>"Oblique Mercator $ms",xt=>"$ps theta $rs",yt=>"$ps tan phi"};
$w->lines($a->apply(t_mercator(c=>90,o=>[-86,-48]))->clean_lines,$opt);
$w->close;

When I get some free time again (har har) I’d like to try rendering one of these in detail using the satellite images from Blue Marble in concert with my big poster of campus that I mentioned above. But I think I will have to write some code in C or Java to coax my computer to do it without slowing to a standstill, and that will entail brushing up on said languages…

One Response to “on Maps”

  1. your post inspired me to see if I could find the compound that I lived on in Zambia, unfortunately the resolution isn’t high enough to see distinct landforms or villages, but I googled it, and found out some interesting things that have been going on there for the past 10 years.

Leave a Reply