Skip to content

Instantly share code, notes, and snippets.

@tmcw
Created March 9, 2015 14:55
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tmcw/6e8f45358b038606765b to your computer and use it in GitHub Desktop.
Save tmcw/6e8f45358b038606765b to your computer and use it in GitHub Desktop.
Stale Blog Post I'm Not Posting

Maps are made of numbers. Most of the time, these numbers are pretty simple: latitude and longitude are pretty well-accepted systems for turning a place like 'Washington, DC' into the numbers 38.9, -77.0.

Latitude and longitude are simple at first glance: the Earth as a sphere, lined by 360° of longitude values and 180° of latitude values. The first thing to break this simple system is the Earth's elliptical shape: instead of being a sphere, it's a little pudgy, about 42 kilometers of equatorial bulge.

To compensate, the most popular standard for storing latitude and longitude values, WGS84, contains a pretty decent estimate of the Earth's shape.

WGS84 is a datum: a specific system for converting locations in numbers and back. It's certainly not the only one: in order to store really accurate locations - house locations up to the centimeter and beyond - surveyors around the world created their own systems specialized to specific little parts of land. Instead of applying to the whole sphere of the world, local datums tend to be relative to a local point.

Rethinking Datums

There's good reason to rethink datums: the advent of GPS measurements means that an increasing number of recordings are sourced from satellites, rather than lasers, benchmarks, and the other conventional tools of surveyors.

Datums are more often than not a nuisance and sometimes a blocker for interoperability. Some shift grids essential to reading geospatial data are non-free and non-distributable: you'll need to register for an account and download extra files just to read any data in those datums.

For datums that are free, what happens in the guts of proj4 or your projection/datum implementation is still ugly: usually special projections are stored in hardcoded files and loaded dynamically. So new datums can't be supported until everyone either downloads shift grids from your website, or a patch is accepted and distributed in a major piece of software.

Problems for Interoperability

Technology tends towards standards at levels that benefit everyone where it matters: while there have been contentious battles around video standards, simpler levels like TCP and UTF8 have attained near-universal acceptance.

Standardizing datums, however, isn't subject to the same market forces. The fractured world of geospatial formats and standards has benefited the creators of 'proprietary' tools like Esri as well as the brokers of standards like Safe software.

Vertical datums are datums that just apply to elevation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment