2022-08-24

Grid reference

The UK, like many countries, have a simple system based on UTM for "grid reference" to say where you are. In the UK this is two letters to say the main map square and then digits. How many digits depends on how exact you want it. All digits (two letters and ten digits, so no worse than a phone number) gets you to the metre, ish.

Wikipedia covers this well (here).

One of the issues is correctly conveying the letters and numbers over an audio link. If you have any form of data, SMS, etc, you can convey an exact latitude and longitude, and that should always be preferred, but conveyed over a call, or radio, map references are all about people reading and typing the sequence of letters and numbers.

For example: SO 29902 14197

The sequence is no harder to convey than a phone number, which works well, but would help if there was a way of checking what you heard was right. There are alternative ways to convey location, but not with a proper check character, surprisingly.

So what would be really cool is if Ordnance Survey, or some international body, defined a check character for such things. Then apps, and the like could add that.

Make it SO 29902 14197 Q or some such where Q is the check. This could be a simple mod 23 of a sum/multiplier of the letters/numbers, or some such. But the idea is you can quote a location with a check. As a letter on the end (avoid O and I and Z to avoid confusion with digits) you have an optional, and obvious, check.

Please can they define this - it is simple, and no cost to do so, but means we could have apps and devices quoting grid references with an integrity check.


OK, I am going to go ahead and define a standard - it would be nice if Ordnance Survey approved it.

  • Each character (ignoring spaces) is assigned a value. For the letters is is 0 to 24 for the position in the 25 letters that are valid (all normal letters except I). Each digit has the value of the digit 0-9.
  • The value of each character is multiplied by the position (ignoring spaces), starting with the first character (letter) being 1, then 2, etc.
  • The result is added and then modulo 23 (a prime).
  • The check character is the position 0-22 in all letters (except I, O, and Z).

18 comments:

  1. We've coped ok for a century or more without that. Now we exchange much more info digitally with CRCs in the protocols, why would we want to go there at this point?

    ReplyDelete
  2. If you are getting the location in an app, why not just share it directly, without the faff of reading it out? For non-emergency situations, just copy and paste. For an emergency, text a short link to a super simple page which requests location and shares

    If not using an app, I really can't see someone finding themselves on a paper map, then spending 10 minutes working out the check digit and getting it right...

    ReplyDelete
    Replies
    1. You absolutely want it sent electronically if at all possible. I am just trying to address the criticism that grid reference have no means to check. Simply defining a standard means would be painless, and possibly useful in some few cases or poor quality audio.

      Delete
    2. The use-case is when the grid reference is read over a radio or phone call. The app used to show the grid reference would automatically calculate it, and the system the "other end" would check it. The users would likely have no idea that it's a check digit, just they would get an error like "The grid reference entered is not valid, please check it"

      Delete
  3. What3Words is what you are looking for. It's more granular, and a one character mistake is likely to yield an obviously incorrect result because it'll be far away.

    For example, mis-hearing your location as SO 29FIVE02 14197 gives a plausible location nearby but you'd miss a rendezvous, or the emergency services wouldn't find a fire or the heart attack victim.

    The equivalent W3W location is ///branched.necklaces.everyone, but
    ///branch.necklaces.everyone is in Alaska and ///branched.necklace.everyone is in Norway.

    ReplyDelete
    Replies
    1. LOL, LOL, and LOL, no! That is the point. W3W is really bad. Unlike 10 digits that people rarely get confused, it has thousands of words, many of which sound the similar or even sounds exactly the same (homonyms). A lot are outside a normal vocabulary so not something people pronounce or hear correctly, and many are very different in different accents. Simply mishearing plurals can lead to somewhere else in the same city, and there are loads of examples of simple mishearing leading to someone close but not close enough (e.g. other side of a river, like likely.stage.sock and likely.stages.sock). See w3w.me.ss for a lot more examples.

      Delete
    2. I think we need a new meme variant.

      "I'm going to solve my location problem using W3W!"

      You now have 2 problems.

      Delete
    3. Not really, defining a check digit does not change or break anything that exists in any way. If it is supplied and can be check, great, but if not, you still have the option to read back something simple like a sequence of digits, as people had done with phone numbers for years. Any way to "solve" W3W is far more problematic, especially as a huge part of the problem is the massive word list (and different in many languages) which cannot be "solved" because it is "baked in".

      Delete
    4. Ok, but "branch.necklaces.anyone" is also in Alaska. I'm sure there are countless other examples, that took me ten seconds to find. "Ok you are in Alaska?" and then a rescue is deployed...

      Delete
    5. I meant that W3W itself was the "second problem", not your check digit idea.

      Your idea seems fine to me as an incremental improvement over OS grid references, although I think PlusCodes solve the same problem with far greater accuracy. I find it difficult to imagine many situations in which you would have access to an OS map and some form of telephony but no access to GPS — if you're calling from a landline then you can't be all that lost.

      Delete
    6. Ah, OK. My concern really is this is all "reinventing the wheel" when not actually needed. The basic UTM logic, metre easting/northings and letter grids, is global, and O/S grid references have been in use for a long time and very much "do the job" needed, even with paper maps. No actual need for a new, and non compatible system to be created, the only flaw is a check character, which can easily be added in a backwards compatible way. Don't get me wrong, plus codes are a pretty good step forward, and well thought out, and an excellent alternative - they have the same flaw in lack of check character, shame, and they have the "local" format which only really works if you have a large database of place names and locations - that concerns me. But yes, nice.

      Delete
  4. You should use Plus Codes... https://en.wikipedia.org/wiki/Open_Location_Code#Usage_with_Plus_codes
    But these dont have a check digit either. But these are implemented in many consumer mapping apps.

    ReplyDelete
    Replies
    1. Indeed, plus codes also good, but as you say, no check character. Basically, IMHO, stuff should either be transferred electronically or have a check character for verbal use. (no, W3W's algorithm is not a check).

      Delete
  5. Slightly more doable in your head would be, rather than sending a single point, to send a pair which define a box around your point. If the box doesn't come out as a standard size, with the points top left and bottom right, one of the points is wrong.

    Obviously you run into resolution and efficiency issues, but it's easier to do in your head than mod23 arithmetic. And it's better than just repeating a single point, because saying the same thing twice is likely to repeat encoding/decoding errors.

    ReplyDelete
    Replies
    1. I would not suggest remotely that people do the mod23 in their head, and this is what is nice about a check character being optional and obvious - being a letter at the end it is clear it is not part of the normal grid reference and can easily be ignored if cannot be checked, and similar if not provided there is no check, so read back. A box potentially means 4 times the points, which is getting silly, and not exactly backwards compatible like this, IMHO. The "reading back" works well as the other party says it. I get this with phone numbers all the time, someone mishears say 401 as 410 at the end and I say, "no, 401", and they say again. We are so used to this and it works well. But defining a check character is just on little extra help in such cases.

      Delete
  6. Another option would be to properly teach people the NATO phonetic alphabet which was designed for communicating letters and numbers "over radio and telephone, regardless of language barriers and connection quality." https://en.wikipedia.org/wiki/NATO_phonetic_alphabet

    It's easy to encourage people to use this for grid references as they are already a string of random characters and this just changes how you say them without extending the time to communicate by that much (rather than say, reading each character of a word in a w3w which would take far longer).

    ReplyDelete
  7. I use this all the time, and even if the person I am talking to doesn't know the right words it works. Obviously better if they do understand the NATO phonetic words.

    ReplyDelete
  8. Would also like to throw Four King maps into the mix. Four words rather that three. No patent restrictions, and freely licensed. Perhaps more understandable as the word list uses only swear words. https://www.fourkingmaps.co.uk/

    ReplyDelete

Comments are moderated purely to filter out obvious spam, but it means they may not show immediately.

Lies, and politicians

I am perhaps old enough to remember when, in general politicians did not outright lie. OK, bear with me, usually they have speeches and stat...