0

Does anyone have a quick and easy way of converting UK Cassini military grid coordinates in QGIS?

I'm currently transcribing military grid references from War Dairies for units in the UK. I have to use an external converter, then copy the grid refs into QGIS which I have set up for British National Grid/EPSG:27700 as the best modern standard which also aids exporting data for accession to heritage organisations.

I've seen some posts about creating a custom CRS, which don't really make any sense as I haven't got a clue when it comes to programming or Python.

For example, a War Diary will have a reference such as '880376' which doesn't include the overarching grid square but that's easy to add. I then have to convert that to BNG so I can plot the location. It would be much easier if I could just search for the grid in QGIS and plot the required location, rather than having to convert to a different CRS.

1 Answer 1

2

The wikipedia page:

https://en.wikipedia.org/wiki/Cassini_Grid

gives a reference to a conversion method:

J. Penny, "Straight to the point right on time", Regional Historian, vol. 5, pp. 11–15, 2000. Penny gives a formula for converting Cassini Grid to National Grid (epsg 27700) references.

Which I've found as a PDF, and gives a procedure to convert Cassini Grid coords to modern National Grid coords.

enter image description here

It then gives a worked example to convert vU205906, first to its full numeric value of 42051906 by looking up the vU grid offsets, and then to 8-figure modern grid coords 37631698 and hence to a grid-square plus six figure ST 763 698 (Charmy Down airfield).

Note there's a typo in the document! The formula has "Nc - 245" but the worked example has "Nc - 254". I'm not sure which is correct, the worked example is computed using 254 as shown.

The article gives some notes on precision of this. It seems to be an approximation because the Cassini grid is based on a Cassini projection, but the modern grid is a Transverse Mercator and I'm not sure the simple equations are doing this conversion precisely (eg to 1m precision), but it may be close enough for most work. You could implement this in QGIS by processing the grid coordinates in the attribute table, much like a spreadsheet. Once you have the Eastings and Northings in national grid you can then turn those two columns into a point geometry in EPSG 27700 coordinates and they should be in place...

To do this precisely and very simply in QGIS would involve creating a custom projection string (which doesn't involve Python coding!) but would need all the parameters of the Cassini projection used in the grid system. I've not found them (yet...).

I don't know if any of the online converters use the approximate method from John Penny or have got the projection parameters, and I can't find their source code...

I've now written up everything I know about these coordinates on a web site https://b-rowlingson.gitlab.io/fieldenmaps_converter/ and gitlab repository https://gitlab.com/b-rowlingson/fieldenmaps_converter

If you have a small number of grid references to convert then you can use the JavaScript that I've re-implemented. For bulk conversion from a spreadsheet there's a Python script (but you'll have to install prerequisites, its not properly packaged). For more complex sources you can use the Python code as a module. Its hard to provide a simple QGIS-based solution since you will probably have to massage the coordinates first to get them in the right form for conversion.

6
  • Thanks. I'm very poor at maths but will try this in an Excel spreadsheet. Would this work for grid refs smaller than 8 figures?
    – Klonko
    Commented Jun 18 at 14:57
  • 1
    For your example of 880376 you'd need to look up the grid cell codes to get something like 38804376 (if the grid square was (3,4). If you had only four digits, like vU1234 you'd add the grid numbers and pad with zeroes to get 41201340 as a full 8-figure reference, but this would only be precise to 1km. If you could post your data somewhere I'd be pleased to see what I can do with it (idle programming time during Euro football games at the moment...)
    – Spacedman
    Commented Jun 18 at 20:04
  • Thanks so much. Much appreciated. I've got thousands of grid refs but if you could test with wG 323015. That should be a point in Thetford near a bridge. If you could show me the process of transcribing that ref I should be able to pick it up easier.
    – Klonko
    Commented Jun 19 at 8:55
  • @Klonko just to update you I now have a pretty good working standard projection string that should work with QGIS (and other tools that use PROJ). It agrees with an online converter to about 5 metres.You have to lookup the grid code but that should be easy. Will write this up and update here.
    – Spacedman
    Commented Jun 26 at 15:40
  • Brilliant! Thank you. 5m accuracy is perfectly fine.
    – Klonko
    Commented Jun 28 at 6:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.