What a machine does with it

A coordinate without its system is not a location

The same two numbers name ground 103 metres apart on one datum, 195 on another, and 7,942 kilometres away if the pair is read in the other order. The datum errors are the dangerous ones because they are plausible — and the axis swap, which everyone calls obvious, does nothing at all along a line that crosses three continents.

A file contains the numbers −2.0 and 53.0. That is not a location. It is a pair of numbers which becomes a location once four other things are known, and three of them are usually absent from the file.

53° north, 2° west: four places one pair of numbers could be. The same two numbers, read as three datums and as the pair in the other order. The centre is the WGS84 reading; the marks are where the ground is if the numbers were measured against OSGB36, ED50, NAD27 instead, at 103 m, 138 m, 195 m. Every one of those is a plausible position — near enough to look like a survey difference and far enough to be a different field. Reversing the two numbers instead moves the point 7942 kilometres, and is the mistake nobody worries about because it is usually obvious.
Fig. 1 The same two numbers, read four ways. The centre is the WGS84 reading; the marks are where the ground is if the numbers were measured against OSGB36, ED50 or NAD27 — 103, 138 and 195 metres away. Reversing the pair instead moves the point 7,942 kilometres, which is off this frame by a factor of thirty thousand.

The four things

A datum, which is the model the numbers are about: its shape, where it sits relative to the Earth’s centre of mass, and which marked points realise it. What a coordinate refers to is the whole essay on that, and its consequence here is that a latitude is a statement about an ellipsoid rather than about the ground.

An epoch, because the ground moves. The epoch is part of the coordinate measures plate motion at up to 70 millimetres a year, which is 1.75 metres over a working lifetime and enough to matter on a datum realised at a stated date.

Units and axis order, which sound like clerical matters and are the two largest failures in this essay.

And an identifier, so that all of the above travels with the numbers. That a registry of such identifiers exists is the practical answer; that most files do not carry one is why this essay has content.

The datum readings, and why they are the dangerous ones

Read against the three published datums, the point at 2° west, 53° north lands 102.9, 137.8 and 194.8 metres from where WGS84 puts it. Those come from seven-parameter Helmert transformations through geocentric Cartesian coordinates, and the site’s gate requires the round trip to close to under a millimetre before any of them is printed.

A hundred metres is the dangerous magnitude, and it is worth saying why. It is far too large for any survey purpose — thirty times a chain’s own closing tolerance, on the numbers what a tape measures works through. It is far too small to look wrong: the point is still in the right town, on the right side of the right river, and every sanity check a human would apply passes.

Datum shifts dwarf projection errors makes the comparison that gives this its proportion: the difference between two datums is one to two orders of magnitude larger than the difference between two reasonable projections of the same region, and it is the one nobody argues about.

The horizontal picture leaves out a third of the shift. A datum change moves a point in three dimensions and the height component is routinely the largest of the three — a fact invisible to anybody treating a coordinate as a pair of numbers on a map.

The axis swap, and the line where it hides

Reversing longitude and latitude is the mistake everyone has met and nobody worries about, because the result is usually absurd: 53° east, 2° north is in the Arabian Sea, 7,942 kilometres from a point in England.

The magnitudes elsewhere are similar. At 0°E 60°N the swap moves the point 8,390 kilometres; at 70°W 40°N, 14,872; at 12°E 52°N, 5,701. Any of those would be caught by a glance at a map.

Except on the diagonal. Where longitude equals latitude the two numbers are the same and reversing them does nothing at all — measured as under 10610^{-6} metres, which is the assertion’s way of saying exactly nothing. And near the diagonal the displacement is small: for a swap to move a point by more than a kilometre it must be at least

latitude offset from λ = φ half-width on the ground
10° 0.0064° 703 m
20° 0.0066° 686 m
30° 0.0068° 655 m
40° 0.0071° 608 m
50° 0.0076° 540 m
60° 0.0080° 446 m

so the band inside which a swapped coordinate is within a kilometre of its true position is roughly 1.3 hundredths of a degree wide, and it runs from the Gulf of Guinea through the Sahara, the eastern Mediterranean, the Balkans and central Asia.

Where longitude and latitude can be exchanged without noticing, to 1 km. An equirectangular frame with the line λ = φ drawn on it. Reversing the two numbers of a coordinate is the most common coordinate mistake there is and is usually called obvious; it is obvious everywhere except along this line, where it does exactly nothing. The marked points are 0°E 60°N, 40°E 40°N, 70°W 40°N, displaced by 8390 km, 0 km, 14872 km. The band inside which the mistake stays under 1 kilometre is 0.013° wide at 10° and 0.016° at 60° — narrow, and not zero.
Fig. 2 The one line on Earth where the mistake is invisible, drawn with three sample points and the move each of them makes. The middle sample is on the diagonal and its two marks coincide; the others are thousands of kilometres apart. The table is the band’s width for a one-kilometre tolerance, and it is narrow rather than zero.

That band is a curiosity rather than a hazard — a swapped coordinate is unlikely to land in it — but the reasoning it refutes is not a curiosity at all. “An axis swap is obvious” is a claim that a check by eye is sufficient, and the correct statement is that a check by eye catches the mistake everywhere except on a set that can be described exactly. Which is what a measurement is for.

Two conventions, both official, in opposite orders

The swap is not simply carelessness. Two conventions are in genuine conflict.

The geodetic tradition writes latitude first: a position is quoted as 53° north, 2° west, in that order, and the registry entry for the geographic system says the axes are latitude then longitude.

The computing tradition writes x first, and on any projected system x is the easting, so a coordinate pair is horizontal then vertical: longitude then latitude. Every plotting routine, every geometry library and every interchange format built on the idea of a point as (x,y)(x, y) inherits it.

Both are internally consistent and neither is wrong. What produces the failure is that the identifier travels — the system is named — while the order does not, so two programs agreeing perfectly on which datum is meant can still disagree about which number is which. That is what a grid is made of at one further remove: five declarations a coordinate does not carry, and this is the sixth.

Reading degrees as metres

The last failure is the units, and it is the one that produces the famous cluster of points off the coast of West Africa.

A coordinate of −2.0, 53.0 read as metres on a projected grid is two metres west and fifty-three metres north of that grid’s origin. On a national grid with a false origin the result is somewhere odd but within the country’s frame; on a system whose origin is the intersection of the equator and the prime meridian, it is in the Atlantic, 570 kilometres south of Ghana, and every dataset in the world that has ever suffered the mistake has a point there.

The magnitude is a factor of about 111,000 — the metres in a degree — which is why this mistake is never subtle. It is the opposite of the datum case: too large to be plausible, therefore caught immediately, therefore harmless. The units are part of the coordinate has the version that is not harmless, where the two units differ by two parts per million and a coordinate is wrong by three metres in a way nothing detects.

The unit confusion at the other end of the scale does not announce itself either. Two definitions of the foot differing by two parts per million, over a coordinate of a million and a half units, give a discrepancy of three metres — and over a site three hundred feet across, four hundredths of a millimetre. The mistake is invisible locally and large in absolute position, which is the exact opposite of reading degrees as metres.

How much of the world the range check actually covers

The first of the four checks is the cheapest and it is the one whose coverage is easiest to overstate. Latitudes outside ±90 are not latitudes catches a swapped pair only when the longitude, arriving in the latitude field, exceeds 90 in magnitude. Where it does not, the swapped pair is a perfectly well-formed coordinate and nothing about its arithmetic complains.

Over a dataset spread uniformly by area over the sphere, exactly half the points are caught, because half the sphere lies within 90° of the prime meridian. That is a reassuring number and it is the wrong one for almost every real dataset, because real datasets are not spread over the sphere.

The half-world the check cannot see is the band from 90° west to 90° east, and its contents decide the matter:

  • the whole of Europe and Africa, which span about 25° west to 45° east — not one point of either is caught;
  • the whole of the Middle East, India and western Asia;
  • every part of South America, whose westernmost point is near 81° west, and every part of North America east of the Rockies — so a dataset of the conterminous United States is caught only west of about 90° west, which is roughly half of it, and a dataset of Brazil is never caught at all.

What the check does catch is East Asia, Australia, the Pacific and the eastern Atlantic beyond 90° west — which is to say it works best exactly where the world’s coordinate data is thinnest.

So the check’s power is a property of where the data is and not of the check. A European dataset gains nothing from it whatever; a global one gains half; and no amount of care in implementing it changes either figure. That is worth stating beside the check rather than after it, because a validation step that passes tells a reader something only if its coverage is known, and this one is habitually described as though it caught the failure rather than half of it.

The second check — plausibility against a stated extent — is what actually does the work, and the reason is the complement of the same argument: an extent is a statement about where the data should be, so it is exactly the external information the range check lacks. A European dataset with a declared bounding box catches every swap, because 53° of longitude against a box ending at 45° is outside it even though 53 is a valid latitude. A check gains its power from the declaration it is compared against, not from the arithmetic it performs, which is the essay’s own thesis about identifiers arriving one level down, in the validation rather than in the file.

And it is why the fourth check is the one that matters for the middle of the table. A datum offset is inside any plausible extent, inside every range, and invariant under every internal consistency test — so the only declaration that could catch it is one about the ground, and the ground is not in the file.

The ordering of the four failures

Collecting them by size, which is the useful way to hold them:

failure displacement caught by
degrees read as metres ~5,000 km anyone, immediately
axis order reversed 5,000–15,000 km anyone, except near λ = φ
datum confusion 100–200 m nothing, without a check
survey foot against metre foot 2 ppm, ~3 m nothing, without a check
epoch ignored up to 1.75 m in 25 years nothing, without a date

The pattern is not that some failures are worse. It is that the failures nothing catches are the small ones, and the small ones are exactly the sizes at which coordinates are worth having. A dataset good to a metre is ruined by a 100-metre datum error and unaffected by a 5,000-kilometre one, because the second gets fixed on the day it happens.

That is the argument for carrying the identifier. Not because the large mistakes are dangerous — they are self-correcting — but because the ones in the middle of the table are indistinguishable from correct data by every means except knowing what the numbers refer to.

One failure has a clock in it. Plate motion carried over twenty-five years, measured from rigid-plate rotation rather than quoted, puts a coordinate correct at its epoch and used without one up to 1.75 metres wrong — and the error grows every year the dataset sits unchanged.

One further asymmetry follows from the same geography and points the other way. The band the range check cannot see is centred on the prime meridian, which is where it is because of a decision made in 1884 about a telescope in Greenwich. Had the zero of longitude been placed in the Pacific — which was seriously proposed, and which is where the date line ended up — the uncatchable half would have been the empty half, and this check would work almost everywhere that data exists. The coverage of a validation rule is therefore a consequence of a nineteenth-century committee, which is not a fact anybody would predict and is exactly the kind of thing this ladder exists to notice.

Why no check on the file can find the middle of the table

The datum failure is undetectable from inside the data, and the reason is a property of the transformation rather than a shortage of ingenuity.

A datum shift is a Helmert transformation: three translations, three small rotations and a scale. That is a similarity — it preserves shape exactly and changes size by one factor — so a dataset shifted from one datum to another has the same angles everywhere and the same distances up to a single multiplier. Every internal consistency check passes, because nothing internal has changed.

What does change is measurable if there is an external length standard. The OSGB36 transformation carries a scale term of −20.49 parts per million and rotations of up to 0.84 arcseconds, so a ten-kilometre line comes out 20 centimetres shorter and a long bearing rotates by a fraction of a second. Those are the traces, and reading them requires knowing what the line’s length actually is — which is a measurement, not a check.

The seven parameters of a datum transformation divide unevenly. The three translations dominate, the scale term is twenty parts per million and the rotations are under an arcsecond — and those last four are exactly what a three-parameter shortcut leaves out, which on one measured point is twenty-seven metres of it.

The identifier is a claim, and it moves

Carrying a code with the numbers is the right answer and it is not a complete one, because the thing a code names has a history.

A datum is realised by a set of marked points with published coordinates, and the set is re-observed. Successive realisations of the same named system differ — by metres in the early ones, by centimetres in the modern ones — so two files both correctly labelled with the same code can disagree by more than the precision either of them claims. A published coordinate is a result is the essay on that: a control coordinate is held fixed by convention, so re-observing disagrees and both are right.

There is a second version of the same problem in the transformations. The essays on datums measure it directly: a seven-parameter fit over a lopsided network absorbs part of the network’s own strain into its scale term, so two authorities fitting the same pair of datums over different sets of markers publish different parameters and neither is mistaken. Where a fit leaves residuals has the measurement — 1.44 parts per million of fitted scale moving when the markers are cut to a wedge — and the consequence here is that even the transformation between two named systems is not unique.

So the honest statement is a chain: the numbers need a system, the system needs a realisation, and converting between realisations needs a transformation that is itself a choice. Each link is a convention and each has a measured size.

Only one of a grid's five parameters changes the map. The same ground point written on the British National Grid and on UTM zone 31N, with the difference between the two coordinate pairs taken apart. The largest term by four orders of magnitude is where the two grids put zero — 5544 km, being a different central meridian, a different true origin and different false constants, all of which move every coordinate and no distance. The datum, which is the term everybody names, moves the ground 106 m. And the whole geometric difference between two transverse Mercators is their scale factors — 0.9996012717 against 0.9996 — which at this point is 50 cm. Four of a grid's five parameters are bookkeeping; the fifth is the map.
Fig. 3 The whole chain taken apart on one point in two national systems: 5,544 kilometres of where-zero-goes, 106 metres of datum, and 50 centimetres of geometry. Only the last of those is about the projection, and the middle one is the failure this essay is about — large enough to matter and small enough to look like data.

What a check would look like

The site’s habit is to give every claim a test it could fail, and the same discipline can be applied to a file of coordinates. Four checks, each computable from the numbers alone:

Range. Latitudes outside ±90 are not latitudes, which catches the axis swap for any point beyond 90° of longitude — a majority of the inhabited world, and none of Europe or Africa.

Plausibility against a known extent. A dataset with a stated area of interest can be tested against it; this catches the units failure and most swaps.

Round-trip through a transformation. Applying a datum shift and its inverse must return the original to under a millimetre, which is the assertion this site’s own library carries and which catches a transformation applied in the wrong direction.

And a second source. No arithmetic on a file can detect a systematic hundred-metre datum offset, because the file is entirely self-consistent. That failure is only visible against something else — another dataset, a control point, an image — which is why a published coordinate is a result matters here: the fixed points a system is realised by are the only external reference there is.

What the same numbers do at a different place

The sizes in this essay are not constants, and quoting them as though they were is the mistake the site’s parameterisation rule exists to prevent. The same four readings, taken in central Europe at 8° east, 47° north, come out at 216.2, 131.7 and 204.3 metres for the three datums and 5,687 kilometres for the swap.

The ordering has changed. OSGB36 is now the largest of the three rather than the smallest, which is exactly what a datum fitted to a region does when it is used outside that region — the argument of a datum is fitted to a region, arriving here as a number that doubles when the point moves eight hundred kilometres.

That is the reason the figure takes the location as a parameter rather than drawing one place. A caption reading the shifts are around a hundred metres would be true in England and wrong in Switzerland, and the version of this figure that hardcoded its point would have said so with equal confidence at both.

47° north, 8° east: four places one pair of numbers could be. The same two numbers, read as three datums and as the pair in the other order. The centre is the WGS84 reading; the marks are where the ground is if the numbers were measured against OSGB36, ED50, NAD27 instead, at 216 m, 132 m, 204 m. Every one of those is a plausible position — near enough to look like a survey difference and far enough to be a different field. Reversing the two numbers instead moves the point 5687 kilometres, and is the mistake nobody worries about because it is usually obvious.
Fig. 4 The same four readings eight hundred kilometres away. OSGB36 has gone from the smallest shift to the largest, at 216 metres, because a datum fitted to Britain in the 1930s has no obligation to behave in the Alps. The axis swap is smaller here too — 5,687 kilometres rather than 7,942 — because the point is nearer the diagonal.

Where this ladder goes

The rest of this ladder is about operations rather than about identity: what a program computes when it is handed geometry, and what each computation assumed. The first of them is the smallest and the most common — a distance written in degrees, which is not a distance at all.

Named alongside this one

Essays reaching for the same objects. Nobody chose these; they are what the concept index makes visible.

What links here

The 8 essays that link to this one and share the most of its objects, of 22 that link here.

The objects this essay names

Each one links to every other essay that touches it.

Axis orderConventionCoordinate reference systemDatumEPSGHelmert transformationOSGB36RealisationUnit of measureVerificationWGS84