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. The following constants for the projection may be calculated : B = {1 + [e^2 * cos^4(latc) / (1 - e^2 )]}^0.5 A = a * B * kc *(1 - e^2 )^0.5 / ( 1 - e^2 * sin^2(latc)) to = tan(pi/4 - latc/2) / ((1 - e*sin(latc)) / (1 + e*sin(latc)))^(e/2) D = B (1 - e^2)^0.5 / (cos(latc) * ( 1 - e^2*sin^2(latc))^0.5) if D < 1 to avoid problems with computation of F make D^2 = 1 F = D + (D^2 - 1)^0.5 * SIGN(latc) H = F*(to)^B G = (F - 1/F) / 2 gammao = asin(sin(alphac) / D) lonO = lonc - (asin(G*tan(gamma0))) / B vc = 0 In general: uc = (A / B) atan2((Dsq - 1)^0.5 , cos (alphac) ) * SIGN(latc) (see Gn7-2 implementation notes in preface for atan2 convention) but for the special cases where alphac = 90 degrees (e.g. Hungary, Switzerland) then uc = A*(lonc - lonO) Forward case: To compute (E,N) from a given (lat,lon) : t = tan(pi/4 - lat/2) / ((1 - e sin (lat)) / (1 + e sin (lat)))^(e/2) Q = H / t^B S = (Q - 1 / Q) / 2 T = (Q + 1 / Q) / 2 V = sin(B (lon - lonO)) U = (- V cos(gammao) + S sin(gammao)) / T v = A ln((1 - U) / (1 + U)) / 2 B In general: u = (A atan2((S cos(gammao) + V sin(gammao)) , cos(B (lon - lonO))) / B) - (ABS(uc) . SIGN(latc)) but when alphac = pi/2 rad if lon = lonc, u = 0 else u = (A atan((S cos(gammao) + V sin(gammao)) / cos(B (lon - lonO))) / B) - (ABS(uc) . SIGN(latc) . SIGN(lonc – lon)) The rectified skew co-ordinates are then derived from: E = v cos(gammac) + u sin(gammac) + Ec N = u cos(gammac) - v sin(gammac) + Nc Reverse case: Compute (lat,lon) from a given (E,N) : v’ = (E - Ec) cos(gammac) - (N - Nc) sin(gammac) u’ = (N - Nc) cos(gammac) + (E - Ec) sin(gammac) + (ABS(uc) . SIGN(latc)) Q’ = e- (B v ‘/ A) where e is the base of natural logarithms. S' = (Q’ - 1 / Q’) / 2 T’ = (Q’ + 1 / Q’) / 2 V’ = sin (B u’ / A) U’ = (V’ cos(gammac) + S’ sin(gammac)) / T’ t’ = (H / ((1 + U’) / (1 - U’))^0.5)^(1 / B) chi = pi / 2 - 2 atan(t’) lat = chi + sin(2chi).( e^2 / 2 + 5*e^4 / 24 + e^6 / 12 + 13*e^8 / 360) + sin(4*chi).( 7*e^4 /48 + 29*e^6 / 240 + 811*e8 / 11520) + sin(6chi).( 7*e^6 / 120 + 81*e8 / 1120) + sin(8chi).(4279 e^8 / 161280) lon= lonO - atan2 ((S’ cos(gammao) , V’ sin(gammao)) / cos(B*u’ / A)) / B
For Projected Coordinate System Timbalai 1948 / R.S.O. Borneo (m) Parameters: Ellipsoid: Everest 1830 (1967 Definition) a = 6377298.556 metres 1/f = 300.8017 then e = 0.081472981and e^2 = 0.006637847 Latitude Projection Centre fc = 4°00'00"N = 0.069813170 rad Longitude Projection Centre lc = 115°00'00"E = 2.007128640 rad Azimuth of central line ac = 53°18'56.9537" = 0.930536611 rad Rectified to skew gc= 53°07'48.3685" = 0.927295218 rad Scale factor ko= 0.99984 Easting at projection centre Ec = 590476.87 m Northing at projection centre Nc = 442857.65 m Forward calculation for: Latitude lat = 5°23'14.1129"N = 0.094025313 rad Longitude lon = 115°48'19.8196"E = 2.021187362 rad B = 1.003303209 F = 1.072121256 A =6376278.686 H = 1.000002991 to = 0.932946976 g0 = 0.927295218 D = 1.002425787 lon0 = 1.914373469 D2 =1.004857458 uc =738096.09 vc =0.00 t =0.910700729 Q =1.098398182 S =0.093990763 T = 1.004407419 V =0.106961709 U = 0.010967247 v =-69702.787 u = 163238.163 Then Easting E = 679245.73 m Northing N = 596562.78 m Reverse calculations for same easting and northing first gives : v’ = -69702.787 u’ = 901334.257 Q’ = 1.011028053 S’ = 0.010967907 T’ = 1.000060146 V’ = 0.141349378 U’ = 0.093578324 t’ = 0.910700729 c = 0.093404829 Then Latitude = 5°23'14.113"N Longitude = 115°48'19.820"E