Introduction
Most tools perform conversions between GPS coordinates and British grid references using Helmert transformations. These ignore continental drift, and become increasingly wrong by 1 m every 40 years since 1989. They also work on a best-fit approximation of the difference between the shape of the British Isles and the shape of the planet, and ignore the variations in gravity over that area. This adds as much as a 3 m error.
This sounds bad, but it is dwarfed by the inaccuracies of most GPS devices, as most of them cannot give an actual location fix any more accurately than about 10-15 m anyway, or 6-10 m for a good device (no matter what they might like to claim on the screen). Therefore, for most cases, a Helmert transformation is perfectly adequate, and they can be performed extremely quickly without needing much complexity. For more details of this, see my article about obtaining location fixes for cave surveys.
Once you start taking location readings with higher accuracy devices, such as augmented dual frequency devices or carrier phase tracking devices with lengthy GPS averaging, the errors introduced by the conversions can become the most significant source of error. This tool performs the conversion using a much more accurate approach, taking account of continental drift, the date used as the mapping epoch, and the database of gravity adjustments used by the mapping agencies. It can also be used with coordinates obtained using a differential GPS which is tied to ETRS89 coordinates, and therefore already has continental drift applied.
If all you need is Helmert transformed coordinates, use my Grid Reference Utilities.
Conversion tool
Captcha
Yes, this has a captcha. Why? Because I don't need my website hammered because of your project. If you need to do large amounts of these conversions, perhaps it would help to ask me for the source, and we can get it working on your server instead.
Also, this relies on third party services. They ask for me to limit the usage of this tool to the amount that a regular visitor to their website might use. I have to enforce that somehow. Yes it is annoying. I am sorry, but that is the point. If you abuse this service, we all get blocked from using it. Play nice, please.
Batching
Unfortunately, the plate motion velocity calculator does not have a batching mode, so no, the overall process cannot be batched. The IETF-ETRF conversion tool can batch coordinates, but unfortunately, if there is a single part of the process that cannot do batching, then the whole process cannot do batching. As a result, unless I can find a way to perform these calculations myself instead of using external services, it will not be possible to perform batch conversions. The algorithms and factors are all public, but I have not yet been able to understand enough to implement it.
Accuracy
The approach used by this tool is vastly superior to the basic Helmert Transformation typically used for transforming coordinates. It uses public tools to apply continental drift, and then transforms coordinates using the highest accuracy methods used by the mapping agencies themselves.
Due to the limited precision of the plate motion velocities, conversion results in a horizontal and vertical precision error of 0.01 mm per year since 1989 in each direction. The conversion accuracy is also limited by the plate motion velocities being a calculated approximation, rather than a perfect measurement, and therefore the actual error is likely to be noticeably higher. The plate velocities are calculated using the definitive model NNR-NUVEL-1A, which cannot perfectly represent all motion, but is close enough that the error over Britain is known to be significantly less than 1 mm per year. There have been subsequent refinements of this plate motion model, but it is the model that the GPS systems are calibrated on.
Note that ideally, this would use an iterative process to perform the ETRS89 => WGS84 conversion, since the plate motion velocities can be 0.01 mm different between locations 1 m apart. However the free services being used do not need to be hammered just for the sake of a 0.01 mm accuracy gain (per year since 1989), especially given that their numbers are below that accuracy anyway. Therefore that step is performed only once. It is worth noting that in most cases, converting forwards then backwards can result in no measurable displacement, at 12 decimal places precision. Differences could only be detected in places where the plate motion is on the verge of changing at the 0.01 mm precision level, and in such cases, the practical difference could be 0.1 mm (in 2021).
The GPS/GNSS systems themselves output coordinates aligned to the centre of mass of the Earth, not a specific continent, so the coordinates of a point change constantly over time, as every continent moves over time. The GPS system is realigned to match global continental drift once per year, in January (unless you are using a differential GPS, which is computed in real-time), which can cause tiny alignment errors depending on how perfectly the continental drift is predicted. This is very steady and measured extremely precisely, so the errors caused by this occasional realignment are extremely small; likely to be less than 0.01 mm (but the actual amount is not stated).
Continental drift moves the British Isles around 2.5 cm per year, around 0.07 mm per day. This tool asks for the date of GPS readings, not the time of day. This limitation is caused by the external tools which are used to apply continental drift, which can only accept a date, not a time. As a result, there is a 0.07 mm positioning uncertainty in the coordinates. This is quite unimportant, especially since at this precision level, readings are usually refined over several minutes or hours, so the exact time of the readings is largely meaningless.
Earthquakes can cause sudden shifts in the positions of continents or subcontinents. Fortunately, the effects of this are very minimal within the British Isles, but could cause significant errors in some circumstances. The conversion routines use the current reference frame used by the GNSS systems, which is based on the current continental positions and current continental drift. Therefore if you are trying to obtain GPS positions from times in the past before major earthquakes, there could be errors in the conversions of a few mm or more, depending on how much the earthquake displaced the British Isles. In those cases, this will be the overriding source of error.
For dates before 2013, the GPS system used different reference coordinates which do not have a proper transformation to current coordinates. From 2013 to 2018, GPS was aligned to ITRF2008 (with a 4-6 mm error), which equates to current coordinates with only a tiny error. Between 2008 and 2013, the coordinates were within 1 cm of current GPS coordinates (separate from continental drift). Between 1994 and 2008, the coordinates were within 10 cm of current GPS coordinates (separate from continental drift). Between around 1989 and 1994, the coordinates were within 1 metre of current GPS coordinates (separate from continental drift). Before around 1989, the coordinates were within about 10 metres of current GPS coordinates (again, separate from continental drift). The error is down to how well the GPS systems had been calibrated at the time, and is therefore an error that has not been considered by this conversion tool; this conversion tool gives the coordinates as they should have been if the systems had been calibrated as well as they are now, not the coordinates that would actually have been measured at the time. Before 2000, the GPS system would intentionally give randomly incorrect coordinates by up to 100 metres to non-military users, called "selective availability", which is not considered by this tool. In those cases, this will be the overriding source of error. This tool is therefore accurate to within millimetres only for GPS readings taken from 2013 onwards.
It is worth noting that each GNSS constellation gives its satellite positions in its own reference frame. GLONASS uses PZ-90 which needs to be translated into ITRF2000 then transformed through several steps to get to ITRF2014. Galileo uses GTRF (based on ITRF2014, but with up to 3 cm differences from it). BeiDou uses CGCS, which needs to be translated into ITRF97 then transformed through several steps to get to ITRF2014. A lot of transformations have to happen to get coordinates from any of those into the same reference frame as each other, which the GNSS device has to do in order to work out where each satellite is, compared with each other. A device might output coordinates in whichever reference frame they think might be useful for the user. A device relying only on GLONASS might choose not perform any translations at all, and might just output PZ-90 coordinates. The majority of devices choose ITRF2014 (currently IGb14). Therefore this tool assumes that the GPS coordinates you are looking for are those that would be given in ITRF2014. GPS's WGS84 is almost completely aligned to ITRF2014 (as it would have been in 2010, with predicted tectonic motion since then), with differences of only a couple of millimetres at most in some places. The coordinate translation tools assume that IRTF2014 exactly matches GPS's WGS84. It's close enough.
The OSTN15 and OSGM15 conversions show a 10 cm RMS displacement, when compared with traditional land-based surveying techniques. Most of this comes down to the limitations of the land-based surveying techniques, but some may be due to imperfections in the OSTN15 and OSGM15 models, which are prepared using highly precise gravimetric scans. The OSTN15 and OSGM15 conversions are the definitive conversions of the British National Grid itself, and therefore the conversion is considered error free when converting between ETRS89 and OSGB36. Basically, this means that the error is treated as if it is all in the traditional land-based surveying techniques. This conversion tool therefore introduces no error when converting between ETRS89 and OSGB36.
All in all, this conversion is therefore extremely accurate, on a par with highly advanced differential GNSS devices, which can get between 9-20 mm accuracy in ideal conditions.
Credits
Most of the conversions (all the parts that run quickly) are done using my Grid Reference Utilities library. This includes interpreting supplied coordinates, conversions between GPS coordinate formats, XYZ conversions, high accuracy OSTN15 conversion, and conversion between grid references and grid coordinates for the main conversion, as well as Helmert transformations, grid projections, and geodesics for the Helmert transformation error measurements (the scripts can do a lot more, that is just what they are used for here).
The plate motion calculations are done using the UNAVCO Plate Motion Calculator and the ETRF/ITRF transformations are performed using the EUREF ETRF/ITRF Transformation tool, both free external tools, whose policies allow this sort of use, as long as they are not overused. These services will be mentioned by name when they are used.
Parts of this conversion use the OSTN15 and OSGM15 data set © Copyright and database rights Ordnance Survey Limited 2016, © Crown copyright and database rights Land & Property Services 2016 and/or © Ordnance Survey Ireland, 2016. All rights reserved.
Updates
30/09/2021
- Added the ability to convert from/to ETRF2000 2000.0 instead of the OS standard ETRF97 2009.756.
01/09/2021
- Changed from ITRF2008 to ITRF2014 as the reference frame, to match what the GNSS systems use.
29/08/2021
- Fixed a significant bug which caused the date to be ignored when converting from ETRS89 to WGS84; this could introduce an error of over 1 metre in the resulting GPS coordinates (oops!).
- Switched from using the year of GPS readings to using the date of GPS readings, removing the largest source of inaccuracy in the conversion. Conversion is now as accurate as the continental drift models will allow.