EPSG
Research Institute for Geodesy Topography and Cartography (VUGTK); Prague, and Geodesy, Cartography and Cadastre Authority of Slovak Republic (UGKK SR).
2019-05-17
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. From the defining parameters the following constants for the projection may be calculated : A = a(1 - e^2)^0.5 / [1 - e^2 sin^2.(latC)] B = {1 + [e^2 * cos^4(latC) / (1 - e^2)]}^0.5 gammao = asin[sin(latC) / B] to = tan(pi/4 + gammao/2).[(1 + e sin(latC)) / (1 - e sin(latC))]^(e.B/2) / [tan(pi/4 + latC/2)]^B n = sin(latp) ro = kp.A / tan(latp) To derive the projected Southing and Westing coordinates of a point with geographical coordinates (lat, lon) the formulas for the Krovak are: U = 2(atan{to.tan^B(lat/2 + pi/4) / [(1 + e sin(lat)) / (1 - e sin(lat))]^[e.B/2]} - pi/4) V = B(lonO - lon) where lonO and lon must both be referenced to the same prime meridian. T = asin[cos(alphaC).sin(U) + sin(alphaC).cos(U). cos(V)] D = asin[cos(U).sin(V)/cos(T)] theta = n.D r = ro.tan^n(pi/4 + latp/2) / tan^n(T/2 + pi/4) Xp = r.cos(theta) Yp = r.sin(theta) Then Southing (X) = Xp + FN Westing (Y) = Yp + FE Note also that the formula for D is satisfactory for the normal use of the projection within the pseudo-longitude range on the conformal sphere of ±90 degrees from the central line of the projection. Should there be a need to exceed this range (which is not necessary for application in Czechia and Slovakia) then for the calculation of D use: sin(D1) = cos(U) * sin(V) / cos(T) cos(D1) = {[cos(alphaC)*sin(T) – sin(U)] / [sin(alphaC)*cos(T)]} D = atan2(sin(D1) , cos(D1)) (see implementation notes in preface for atan2 convention) The reverse formulas to derive the latitude and longitude of a point from its Southing and Westing values are: Xp' = Southing – FN Yp' = Westing – FE r' = [(Yp')^2 + (Xp')^2]^(1/2) theta' = atan2[Yp' , Xp'] (see GN7-2 implementation notes in preface for atan2 convention) D' = theta' / sin(latp) T' = 2{atan[((ro / r')^(1/n)).tan(pi/4 + latp/2)] - pi/4} U' = asin[cos(alphaC).sin(T') - sin(alphaC).cos(T').cos(D')] V' = asin(cos(T').sin(D') / cos(U')) Then latitude lat is found by iteration using U' as the value for lat(j-1) in the first iteration: lat(j) = 2*(atan{to^(-1/B) tan^(1/B).(U'/2 + pi/4).[(1 + e sin(lat(j-1)) / (1 - e sin(lat(j-1))]^(e/2)} - pi/4) Then lon = lonO - V' / B where lon is referenced to the same prime meridian as lonO.
For Geographic CRS S-JTSK and Projected CRS S-JTSK (Ferro) / Krovak Parameters: Ellipsoid Bessel 1841 a = 6377397.155m 1/f = 299.15281 then e = 0.081696831 e^2 = 0.006674372 Latitude of projection centre = 49°30'00"N = 0.863937979 rad Longitude of origin = 42°30'00"E of Ferro = 0.741764932 rad Co-latitude of cone axis = 30°17'17.30311" = 0.528627763 rad Latitude of pseudo standard parallel = 78°30'00"N = 1.370083463 rad Scale factor on pseudo Standard Parallel (ko) = 0.9999 False Easting = 0.00 m False Northing = 0.00 m Calculated projection constants: A=6380703.611 B=1.000597498 gammao=0.863239103 to=1.003419164 n= 0.979924705 ro=1298039.005 Forward calculation for: Latitude = 50°12'32.442"N = 0.876312568 rad Longitude = 16°50'59.179"E of Greenwich Firstly, because the projection definition includes longitudes referenced to the Ferro meridian, the longitude of the point needs to be transformed to be referenced to the Ferro meridian using the Longitude Rotation method (EPSG method code 9601). Longitude = 16°50'59.1790"E of Greenwich Longitude of Ferro = 17°40'00" west of Greenwich and then Longitude = 34°30'59.1790"E of Ferro = 0.602425500 rad Then the forward calculation first gives U = 0.875596949 V = 0.139422687 T = 1.386275049 D = 0.506554623 theta = 0.496385389 r = 1194731.014 Xp = 1050538.643 Yp = 568990.997 Then Southing (X) = 1050538.64 m Westing (Y) = 568991.00 m. Reverse calculation for the same Southing and Westing gives Xp' = 1050538.643 Yp' = 568990.997 r' = 1194731.014 theta' = 0.496385389 D' = 0.506554623 T' = 1.386275049 U' = 0.875596949 V' = 0.139422687 lat(iteration 1) = 0.876310601 lat(iteration 2) = 0.876312560 lat(iteration 3) = 0.876312566 Latitude = 0.876312566 rad = 50°12'32.442"N. Longitude of point = 0.602425500 rad = 34°30'59.179"E of Ferro. Then using the Longitude Rotation method (EPSG method code 9601): Longitude of Ferro = 17°40'00" west of Greenwich and Longitude of point = 34°30'59.179"E of Greenwich.