Passage Data

Check a file →

How to tell if your latitude and longitude are swapped

Darwin Core · decimalLatitude / decimalLongitude

What you are seeing PRESUMED_SWAPPED_COORDINATE COORDINATE_OUT_OF_RANGE

The short answer

There are two versions of this problem and they are not equally solvable.

The provable one. Latitude is bounded at ±90 and longitude at ±180. If your latitude column holds a value of 120, that is not a latitude, and if the pair becomes legal when exchanged then the swap is arithmetic rather than an opinion. We report that as FS_COORDINATES_PROVABLY_SWAPPED. It works on exactly one condition: your longitudes have to be outside ±90, which is the 90th meridian and nothing to do with which continent you are on. Australia, New Zealand and southeast Asia are always past it; the Americas and Asia straddle it, so Denver at −105 is provable and Chicago at −88 is not.

The one that cannot be proved from the file, and it is the common case. If every longitude sits inside ±90, both readings are legal coordinates and the file contains nothing that distinguishes them. That is all of Europe and all of Africa — a Paris longitude of 2.35 is a perfectly good latitude — and South America too. Europe is the case people expect to be easy and it is the hard one. We measured it on our own corpus of 53 published files carrying real coordinates: swap every one of them, and this proof catches 13. The other 40 are invisible to it. A header cannot settle those, because the header is exactly what is wrong. Here we can offer evidence and not proof: we can say that one reading puts your records where records of that kind exist and the other puts them in open ocean, and report it as suspect rather than as a fact.

The strongest check available is one you already have. If your survey has a site boundary, type it into the optional box on the front page. A declared boundary needs no reference data, cannot go stale, and is accurate to the scale of your site — so a swapped pair stops being a suspicion and becomes arithmetic. It is the one input that turns this from evidence into proof.

A related failure is worth naming because it looks nothing like a swap. A column of whole numbers between 1 and 31 is a day of the month, and if it has been mapped to latitude the resulting points are perfectly plausible — a day paired with a Canadian longitude lands in the Amazon. No map inspection catches that. Only the shape of the values does.

Check the values, not the headers

We confirm every coordinate column from what is in it, and we will tell you when we can prove a swap, when we can only see evidence of one, and when we cannot tell and refused to guess. Add your site boundary and the check gets sharper. Free until 1 September 2026, 00:00 UTC · no account · your rows are discarded after the check.

Check the file you have →

Why we can say that

5,064records already published to GBIF
0findings in GBIF's vocabulary
4,268findings from ours
31.7%came back clean

Measured on a file GBIF had already accepted and served — their validator asks will this load, and it had. Every figure is read from ops/data.json, never typed here. We issue no rating and no seal — each finding names the rule it applied.

Related