EPSG
EPSG guidance note #7-2, http://www.epsg.org
2018-08-29
Note: These formulas have been transcribed from EPSG Guidance Note #7-2. Users are encouraged to use that document rather than the text which follows as reference because limitations in the transcription will be avoided. To convert latitude P, longitude L and ellipsoidal height h into topocentric coordinates U,V,W: U = (nu + h) cos(P) sin (L – Lo) V = (nu + h) [sin(P) cos(Po) – cos(P) sin(Po) cos(L – Lo)] + e^2 (nuO sin(Po) – nu sin(P)) cos(Po) W = (nu + h) [sin(P) sin(Po) + cos(P) cos(Po) cos(L – Lo)] + e^2 (nuO sin(Po) – nu sin(P)) sin(Po) – (nuO – ho) where Po, Lo and ho are the ellipsoidal coordinates of the topocentric origin and nu is the radius of curvature in the prime vertical at latitude P = a /(1 – e^2 sin^2 P)^0.5 nuO is the radius of curvature in the prime vertical at latitude Po = a /(1 – e^2 sin^2 Po)^0.5 e is the eccentricity of the ellipsoid here e^2 = (a^2 – b^2)/a^2 = 2f – f^2 The reverse formulae to convert topocentric coordinates (U, V, W) into latitude, longitude and ellipsoidal height (P, L, h) first draws on the reverse case of method 9836 to derive geocentric coordinates X, Y, Z and then on the reverse case of method 9602 to derive latitude, longitude and height. First, X = Xo – U sin(Lo) – V sin(Po) cos(Lo) + W cos(Po) cos(Lo) Y = Yo + U cos(Lo) – V sin(Po) sin(Lo) + W cos(Po) sin(Lo) Z = Zo + V cos(Po) + W sin(Po) where, XO = (nuO + hO) cos(Po) cos(Lo) YO = (nuO + hO) cos(Po) sin(Lo) ZO = [(1 – e2) nuO + hO] sin(Po) Po, Lo, hO are the ellipsoidal coordinates of the topocentric origin, nuO is the radius of curvature in the prime vertical at latitude Po = a /(1 – e^2 sin^2(Po))^0.5, and e is the eccentricity of the ellipsoid where e^2 = (a^2 – b^2)/a^2 = 2f – f^2. Then, lat = atan2[(Z + ε b sin^3(q)) , (p – e^2 a cos^3(q))] lon = atan2 (Y , X) where ε = e^2 / (1 – e^2) b = a(1 – f) p = (X^2 + Y^2)^0.5 q = atan2[(Z a) , (p b)] L is relative to the Greenwich prime meridian. and h = (p / cos(P)) – nu where nu is the radius of curvature in the prime vertical at latitude lat = a /(1 – e^2sin^2(P))^0.5 (see implementation notes in preface for atan2 convention)
For Geographic 3D CRS = WGS 84 (EPSG CRS code 4979) and Topocentric origin latitude Po = 55deg N Topocentric origin longitude Lo = 5 deg E Topocentric origin ellipsoidal height ho = 200 metres Ellipsoid parameters: = 6378137.0 metres, 1/f = 298.25722236 First calculate additional ellipsoid parameter e^2 and radius of curvature nuO at the topocentric origin: e^2=0.006694380 nuO = 0. 6392510.727 Forward calculation for: Latitude P = 53°48'382"N Longitude L = 2°07'468"E Height h = 73.0 metres nu = 6392088.017 then U = –189 013.869 m V = –128 642.040 m W = – 4 220.171 m Reverse calculation for: U = –189 013.869 m V = –128 642.040 m W = – 4 220.171 m First calculate additional ellipsoid parameter e^2 and radius of curvature nuO at the topocentric origin: e^2 = 0.006694380 nuO = 6392510.727 then the following intermediate terms: Xo = 3652755.306 Yo = 319574.680 Zo = 5201547.353 X = 3771793.968 Y = 140253.342 Z = 5124304.349 eta = 0.006739496674 b = 6356752.314 p = 3774400.712 q = .937549875 P = 0.9391511015 rad L = 0.0371676591 rad nu = 6392088.017 for a final result of: Latitude P = 53°48'33.820"N Longitude L = 2°07'46.380"E Height h = 73.0 metres