Mapping Hacks

by Schuyler Erle, Rich Gibson and Jo Walsh

Thought for the day

October 27th, 2008 by Jo

I confess to reading the American political blogs as if they were a distributed “Hello” magazine.
I enjoyed the coverage of Sarah Palin’s benediction by the witch-hunting pastor Thomas Muthee. The Christian Science Monitor reported in 1999 on Muthee’s efforts at Targeting cities with “spiritual mapping”

Spiritual Mapping” is the collaborative mapping component of militant evangelism . A team of the devout researches and annotates spaces meeting with disapproval - non-conforming churches, vendors of magic supplies, family planning clinics, gay bars. Thus is gathered “the strategic information necessary for effective intercessory “smart prayer” deployment.“, and warfare (in the form of cluster prayer bombardment) is carried to the territorial spirits.

The roundest critiques of spiritual mapping come from within the evangelical movement itself, viewing it as a magical, works centered ploy, unjustified by scripture and infected by an unhealthy sensationalism. Good works and good faith alone don’t satisfy the impulse to activism. As games with the language of “neo-pagans” lost its appeal, mappers play with the language of military planners, and pronounce “strategic level spiritual warfare” on the genius locii.

I want to see some of these maps.

Posted in collaborative mapping | No Comments »


New version of Garnix

July 10th, 2008 by Rich

We wrote about Garnix in _Mapping Hacks_. It is a command line tool written by Anton Helm to communicate with Garmin GPS units. It will run under DOS 5.0, various Windows versions, Macintosh, and Linux.

It was the first tool I used to communicate with a GPS.
The new version is here.

OEM Store

Posted in Uncategorized | No Comments »


Vertex: where taxation meets innovation and dies in shock

July 9th, 2008 by Rich

I received an email me asking if there was a way to get a latitude and longitude from a number which his ERP calls a ‘Geocode.’

Forgive my confusion, since I thought the whole point of ‘geocoding’ was to get coordinates, or a code of some sort, which would let you specify the location of something on the Earth.

It turns out that this person’s vendor, Vertex ‘where taxation meets innovation,’ has created the ‘Vertex GeoCoder™’ which appears to be both a super and sub set of a georeferenced zip code database, with all of the cross jurisdictional ugliness of zip codes removed.

For example, zip code 80227 includes parts of both Denver and Lakewood Colorado and so is in two different tax jurisdictions.  At least, it used to include parts of both Denver and Lakewood.  It is possible that it has been split or reassigned.  That is one of the main advantages of their ‘geocode’ system.

That is fine.  Even useful if you are trying to manage different tax jurisdictions.  Except that once you assign a number and call it a ‘geocode’ your customers are going to want to act like they have something which will let them map and analyze their data.

And so I was asked if there was a way to get Latitude and Longitude out of this so called ‘geocode.’

I made one of the most frustrating telephone calls of my life.  The answer is that this is their proprietery scheme, and I use the word ’scheme’ in the most perjorative sense, and that they won’t even answer my question without ‘logging’ the call and determing that the customer’s support agreements were up to date.

I told the representative that I did not feel entitled, for privacy reasons, to reveal the name of my contact person to a third party.
I asked questions like ‘do you have a product this person can buy which will let them turn a ‘geocode’ into a latitude and longitude?’  But no, even the capabilities of the mythical ‘geocode’ were to be hidden from me.

I am, frankly, disgusted.

Posted in geodata, data, annoying_gits, disaster | No Comments »


googsh.org - the unofficial google shell

June 5th, 2008 by Rich

Go to phorum board goosh.org is cool! It gives your browser a command line complete with command history, and you get a scrollback.

K-Traxx K.C. Milian K.D. Lang

It supports searching wikipedia and google, including images, video, blogs, etc.

It also has a command line map mode. You can type ‘map ‘ and get a bit larger than thumbnail map. Location can be any of the search terms which google maps recognizes (but not the proximity searches - you can not look for ‘pizza near SFO’). Instead of ‘map’ you can also type ‘places’ or ‘p.’ (’m’ is reserved for ‘more’).
Goosh implements a simple command history with the up and down arrows.

I have made it my default home page.

muisichole.com regamp3.com mp3rolez.com mp3carz.com 1podmp3.com 1podmp3s.com 1podmp3z.com allofrnp3.com applemp3s.com quolitiesmp3.com naiomimp3.com torontomp3s.com futuremp3s.com mp3skylion.com mp3f1esta.com rnp3fiesta.com rnp3f1esta.com ipodmusicz.com

Posted in Uncategorized | No Comments »


What is 2 centimeter imagery? Open Aerial Map and Calculating Field of View

June 3rd, 2008 by Rich

Open Aerial Map is an open collection of aerial photographs, collected into a single coherent view of the world.”

It is run by our good friend Chris Schmidt, and it rocks.

Chris has posted imagery of Where Camp 2008 taken by Pict Earth. Pict Earth is what happens when RC hobbyists become geowankers, or vice versa. They have a number of stock radio control planes mounted with cameras and GPS units. It is very cool.

This image is centered on the registration tent at Where Camp.

Aerial imagery precision is referred to by the resolution. If you say you have ‘2 meter imagery’ it means that you have 1 pixel of image data for every 2 meters of the subject. Other things being equal, if you are closer to the subject you have higher resolution (more pixels per meter), and if you are higher you have fewer pixels.

The resolution of an image is simply the number of pixels in the image divided by the area covered by the image. Resolution is just a fancy word for ’scale.’ You could say ‘100 pixels = 1km’ which would mean 10 meter imagery.

You can calculate the area covered by an image if you know the distance to the subject, the size of the camera sensor (or film plane), and the focal length of the lens. The focal length of common lenses is given in the 35mm film equivalent. First calculate the (horizontal) angle or field of view:

Angle = 2 * ArcTan(35/2f)

Where f is the focal length of the lens. The ‘35′ is the width of a 35mm negative (35 mm film is 35 x 24mm).

As a rule of thumb a 50mm lens has a 40 degree angle of view, and the angle of view is inversely related to the focal length. A 100 mm lens has a 20 degree angle of view, 200 mm is 10, 400mm is 5 degrees, and a 25mm lens is 80%. (For 50mm and larger lenses the actual field of view is about 3% higher - but 3% seems pretty good for a rule of thumb!).

You can determine the subject width from the angle of view and the distance:

subject width = distance * sin(angle of view)

Shooting a 50 mm lens from 100 meters away  you get just under 64 meters of subject in each shot.

To get pixels per / meter:

pixel resolution per meter = number of pixels / number of meters

With my 8 megapixel Canon S5IS (3264 pixels horizontal) shooting a 50mm lens at 100 meters I get about 50 pixels per meter of subject, or 2 cm resolution.

As a (rougher) rule of thumb, doubling the focal length of the lens doubles the resolution.  This is about a 10% overstatement - a 400 mm lens is about 360 pixels per meter, rather than the 400 of that rule of thum.

In order to continue my theme of ‘all Gigapan all of the time’ I have documented some of these notes on another page.

Posted in Uncategorized | No Comments »


Who has conquered the middle east

June 3rd, 2008 by Rich

Going through old notes I stumbled on this link to a flash animation of the Middle East, showing the growth and decay of empires over time (link).
“Imperial History of the Middle East: Who has conquered the Middle East over the course of World events. See 5000 years of history in 90 seconds.”

I used to sit in history class staring at the maps showing European borders from pre-WWI, then through the two World Wars. I’d marvel at the strange names. It was not just countries, but whole empires of which I was totally, or nearly totally, ignorant.

And now, through the power of the internets, I can revisit that profound sense of ignorance!

update: 6/3/2008 13:56

Ortelius sent in a link to his blog post which included this map, and a lot of other maps and history of ‘Southwest Asia.’

Interesting stuff.

Posted in Uncategorized | No Comments »


Coordinate Conversion with Google Maps

May 31st, 2008 by Rich

I just got an email from someone wanting to know how to convert from degrees-minutes-seconds to decimal degrees.  There are calculators online to do that, and we wrote about how to do it in Mapping Hacks, but you can also use Google Maps:

Example, enter this as your location:
38 54′ 4.35″ N, 76 42′ 45.22″ W

The result is a marker box which includes the coordinates in decimal degrees.

38.901208, -76.712561
You don’t need the degree symbol, but it works if you have it.

It works the other way as well.  Enter ‘38.901208, -76.712561′ in the location box and the info box will show you degrees-minutes-seconds.

Posted in Uncategorized | No Comments »


Gigapans of WhereCamp

May 29th, 2008 by Rich

WhereCamp2008 rocked my world. Here is a gigapan from the event, and links to more. (this is implemented in an iframe, because I don’t know how to get wordpress to allow an embedded object in a post - email me if you have advice)

Posted in Uncategorized | No Comments »


Gigapans and Quadtrees

May 29th, 2008 by Rich

I’ve been taking lots of Gigapan images. One of the neat things about Gigapans is that they are using image tiling to let you pan and zoom around in image-space. They are using a modified version of the Flash Earth browser which Paul Neave wrote to access Google Maps tiles.

I wrote up a description of the process of embedding gigapans in other web pages. I included a bit on Quadtrees and doing tile math which might be of interest.

(I am also available to take gigapans for hire)

Posted in Uncategorized | No Comments »


Geohash implemented in Python

May 29th, 2008 by Rich

Schuyler wrote a python module to support the Geohash latitude/longitude encoding system created by Gustavo Niemeyer. (wikipedia link).

Schuyler’s python implementation of geohashing code is here.

Geohashing is not to be confused with the more amusing but arguably less useful xkcd geohashing, an implementation of that code lives here .

There is of course also an implementation on the CPAN.

I’ve been doing a lot of thinking about geoprivacy, and during Where 2.0, between taking Gigapans, I wrote up some code to show geohash bounding boxes at different levels of precision in KML.

This example shows the center points for each geohash center point as I drop the number of digits in the geohash.

geohash bounding boxes

9qbbbujv5n center (38.123451769352, -122.654322981834) bbox diagonal distance= 1.96944 feet
9qbbbujv5 center (38.1234383583069, -122.65430688858) bbox diagonal distance= 15.650976 feet
9qbbbujv center (38.1235027313232, -122.654285430908) bbox diagonal distance= 62.612352 feet
9qbbbuj center (38.1232452392578, -122.654800415039) bbox diagonal distance= 500.898288 feet
9qbbbu center (38.1253051757812, -122.656860351562) bbox diagonal distance= 2003.59368 feet
9qbbb center (38.12255859375, -122.67333984375) bbox diagonal distance= 3.0357480 miles
9qbb center (38.056640625, -122.51953125) bbox diagonal distance= 12.1429919 miles
9qb center (38.671875, -123.046875) bbox diagonal distance= 97.1439353 miles
9q center (36.5625, -118.125) bbox diagonal distance= 388.5757413 miles
9 center (22.5, -112.5) bbox diagonal distance= 3108.6059307 miles
Some of the jumps work visually better than others. I suspect that is perceptual - we have non linear perceptual response curves :-/
A sample of the kml output is here and this is the perl to generate that kml.

Posted in Uncategorized | No Comments »


« Previous Entries

Archives

Categories

Meta


Entries (RSS) and Comments (RSS).