Hi Adrian, many thanks for the extensive and worked example answers... more below...
On Thu, 25 Jun 2026 at 13:10, Adrian via Talk-GB <[email protected]> wrote: > I am replying to some of the questions asked by Graham Whaley. For less > expert readers, I have tried to explain some of the technical terms, at the > end of this message. > 'less expert' - oh, how I laughed... believe me, expert at this I am definitely not... > There are a couple of slips in what Chris Andrew wrote. The difference > between ODN and EGM96 is less than a metre. And (in the UK) EGM96 is above > the ellipsoid. > > For ele tags, I would specify four: > ele > ele:EGM96 > ele:ODN > ele:WGS84 > The ele tag would contain the EGM96 value. This is my way of complying > with the recommendation that the the ele tag should be referred to EGM96, > while making it crystal clear what is going on. I am assuming that > man_made=survey_point would not generally be rendered in maps, so that the > presence of decimals in ele values would not be a problem. If someone > produced a specialist map showing survey points, they could choose how to > deal with the decimals, e.g. they could round the values if the decimals > are cluttering the map. > > This is an example of my tagging of a peak: > https://www.openstreetmap.org/node/518577471 Tags - storing the different EGM96/ODN/WGS85 in separate tags, sure thing. That's easy. I'm still not totally sold on EGM96 in plain 'ele'. As you say, afaict nobody yet renders the survey_points (which I find odd for trigpoints, coming from a more hiking than highway background ;-) ). If I look at the OSM survey_point data I have I see 1338 nodes with 'ele' set. ~15 of them are in feet!, but the rest I'm pretty sure are all going to be ODN. I've tried to search the survey_point data I have, and I see four references to ODN, all of them for non-pillar benchmark cutmarks. No mentions of EGM96. And in the UK, would all the peaks currently be in ODN? Let's take for instance Ben Nevis - it is rendered on OSM and shows 1345m - which is its 'official' height I think... I think it would be darned confusing to show it as anything else, and it only has plain 'ele' associated with it right now (no ele:local for instance). But hey, if community consensus is that we are going to put EGM96 into trigpoint 'ele' (and make that clear by having the other 'ele:*' tags present), then that's what I'll do... I don't have a major problem with it as long as there is consensus or at least a decision, and nobody shoots the messenger :-). But I think this will still need broader discussion somehow. (oh, and I note the peak you pointed to is in France ... where I know they did their own large trigpoint import but google failed to translate their page for me and I don't know what reference they used for their ele tags - but if I pick a random node from the import, it only has a single 'ele' tag:) https://www.openstreetmap.org/node/670163029 > > The ele:ODN value could be as given by the Ordnance Survey, with however > many decimals there were. I prefer ele:ODN to ele:local because it is > clearer what the reference is. I would retain all the decimal places in the > calculations, but then round the other ele values to the nearest centimetre > (2 decimal places) because the third decimal place (millimetres) would not > be meaningful. I say this, because of this quote "The National Geoid Model > OSGM15 is a grid of geoid-ellipsoid separation values... The nominal > accuracy of the geoid model is 8 mm rms (root mean square) in mainland > UK..." which comes from here > https://docs.os.uk/more-than-maps/a-guide-to-coordinate-systems-in-great-britain/from-one-coordinate-system-to-another-geodetic-transformations/national-geoid-model-osgm15-etrs89-orthometric-height > (very long URL). > sure, 2 decimal places doesn't sound unreasonable for converted ele values - but for ODN I'll probably stick to the values as provided in the trigpoint database. > Now, the conversion to latitude, longitude and EGM96 height. As examples, > I have chosen two triangulation pillars more or less at random, one, well > to the south and one, well to the north. > Box Hill trig point https://www.openstreetmap.org/node/4267733568 > Strathy Point trig point https://www.openstreetmap.org/node/612893275 > British National Grid (BNG) eastings and northings from OS: > Box Hill 517971.06 151163.16 > Strathy Point 282007.756 968512.562 > Box Hill height is 171.968 in trig archive and 171.9682 in benchmark > archive. > Strathy Point height is 90.293 in trig archive and 90.294 in benchmark > archive. > Right - nice, I've extracted those two and will run them through my R conversion code... > > I did a manual conversion giving these results (these really need to be > displayed with a monospaced font as in the mailing list web pages): > Ht of EGM96 Ht above Offset from > ODN HAE geoid EGM96 geoid Latitude Longitude OSM object > Box Hill 171.968 217.439 45.809 171.630 51.2474475 -0.3111227 0.82m > Strathy Point 90.293 143.410 53.686 89.724 58.5885068 -4.0314345 13.00m > You can see that the difference between ele:ODN and ele:EGM96 is 30-60cm. > The height of the geoid is within the range given by Chris Andrew. You can > use these results to check your calculations. You will sometimes see a > difference of 1 in the 7th decimal place of latitude and longitude. I > suggest you replicate my manual conversions (to give confidence in the > process) and then do a couple more trig points in the same way, to give a > more comprehensive check on your calculations. How I did it... > (err, did you mean 30-60metres there, not cm?) I tried rendering that table in a txt file, but I'm not sure I got it right. I do have a query though... just this morning I got some R/sf(GDAL/PROJ) code running to do the 3D height conversions. Now, here is where I a bit confused - if the EGM96 geoid is *above*, so the 'base 0 level' is moved 'up', then the heights of our peaks... will 'look lower' and come down, no? So, if we take Box Hill with 171.968/ODN, and a 45.8m difference between ODN and EGM96 - my EGM96 data currently comes out as 126.155 (171.968 - 45.813), and not 217.439 (171.968 + 45.525)? I'm very happy to be told it is my misunderstanding and my code is not working - just want to check, as right now I'm confused... > I downloaded the Ordnance Survey Grid InQuestII application from > https://www.ordnancesurvey.co.uk/geodesy-positioning/coordinate-transformations/grid-inquest2-software > . You need to set suitable numbers of decimal places for the input and > output boxes, in the options. Then I did a conversion from OSGB36/BNG to > ETRS89 geodetic. This gave me the latitude, the longitude and the height > above the ellipsoid (HAE, the ele:WGS84 value). Then I obtained the height > of the EGM96 geoid (above the ellipsoid) from > https://geographiclib.sourceforge.io/cgi-bin/GeoidEval . Then the height > relative to the EGM96 geoid is a simple subtraction. Then the last stage is > optional... In JOSM, I created a node at the position of the trig point. I > drew a way from there to the OSM object. With the way selected, the status > bar gives its length, i.e. the offset. (If you only see one decimal place, > you need to change statusbar.decimal-format to 0.00 in the expert > preferences and restart.) > > Right, I have inquestII here. Thanks for the geoid link. My code is in R, using the 'sf' library that sits atop GDAL and PROJ. I'm doing a 3 step conversion from: EPSG:7405 : OSGB36 + ODN ->EPSG:4937 : ETRS89 -> EPSG:9707 : WGS84 + EGM96 height Here is the (trimmed) output for my Box Hill result for reference: > osz_sf_7405[2,]$geometry Projected CRS: OSGB36 / British National Grid + ODN height POINT Z (517971.06 151163.16 171.968) > osz_sf_4937[2,]$geometry Geodetic CRS: ETRS89 POINT Z (-0.3111317188 51.24743604 171.968) > osz_sf_9707[2,]$geometry Geodetic CRS: WGS 84 + EGM96 height POINT Z (-0.3111317188 51.24743604 126.1553988) You can see that I have guided you to ETRS89 coordinates. This is because, > in Great Britain, we are recommending that users align aerial imagery to > the OSMUK Cadastral Parcels before tracing features. The Cadastral Parcels > are based on Ordnance Survey data which is aligned to ETRS89. ETRS89 can be > regarded as WGS84 epoch 1989.0, in other words, the WGS84 coordinates as > they were at the beginning of 1989. WGS84 coordinates in Europe move at > 25mm per year relative to the land because of the motion of the Eurasian > tectonic plate. So the difference between epochs 1989.0 and 2026.0 is a > little over 90cm. In contrast, the Cadastral Parcels do not move relative > to the land. They remain at the property boundaries. They track the > tectonic plate - ETRS89 is a plate-fixed datum. > ack - I've come to have a much better understanding of world-referenced and plate-referenced data in this last week :-) But - can I use ETRS89 co-ordinates in OSC XML change files? That is how I currently generate the 'new nodes' dataset, and I'm sure not going to be doing all 4400 by hand in JOSM ;-) I thought core OSM was WGS84, and that is what goes in the OSC files? I'm happy to change the output format if there is a better way to generate a plate-relative co-ordinate and have that injected into OSM... Many thanks for the input Adrian - it helps, and at least it feels I'm on the right path. Graham > > Finally, an explanation of some technical terms. > > The geoid is the shape of the earth - of a level surface at sea level. It > is uneven because of variations in density from place to place within the > earth. It is usually expressed in terms of the height relative to the > ellipsoid. > > "The ellipsoid" is the GRS80 ellipsoid, used by WGS84 and ETRS89. An > ellipsoid is a geometrical figure, a "squashed sphere". Because it is a > geometrical figure, we can work with it, using equations. The ellipsoid > provides a rough approximation to the shape of the earth. A GNSS receiver > measures the height above the ellipsoid - HAE is the raw data. GNSS stands > for Global Navigation Satellite System. Many GNSS receivers contain a geoid > model so that they can do an approximate conversion to height above sea > level. > > A geoid model - such as EGM96 - provides a much closer approximation to > the shape of the earth. It is essentially a set of numbers which describe > the details of the shape. EGM stands for Earth Gravitational Model. > > ODN is the Ordnance Datum Newlyn. It is the Ordnance Survey's geoid model, > covering Great Britain. It is the zero altitude reference level ("sea > level") for all heights given by the Ordnance Survey. > > _______________________________________________ > Talk-GB mailing list > [email protected] > https://lists.openstreetmap.org/listinfo/talk-gb >
_______________________________________________ Talk-GB mailing list [email protected] https://lists.openstreetmap.org/listinfo/talk-gb

