I need to convert between WGS84, SK42, and ED50 geodetic reference datums in either a UTM or MGRS coordinate system given GPS coordinates I've been using pyproj for the conversion by finding the EPSG value, and using a Transformer to transform between the coordinate systems. The transform function has xx, yy, and zz parameters, but only xx and yy get changed and not zz. Should changing between these EPSG values change zz? It makes sense to me that it should, but I'm very new to this, as WGS84 and degree coordinates are the only two I have ever heard of before a week ago.

print(Transformer.from_crs("EPSG:4326", "EPSG:23036").transform(lat_deg, lon_deg, alt_m)) # GPS to ED50 / UTM zone 36N
print(Transformer.from_crs("EPSG:4326", "EPSG:2588" ).transform(lat_deg, lon_deg, alt_m)) # GPS to SK 42 3 deg Gauss Kruger
print(Transformer.from_crs("EPSG:4326", "EPSG:28407").transform(lat_deg, lon_deg, alt_m)) # GPS to SK 42 Gauss Kruger zone 7

1 Answer 1


It would depend on what the z coordinates represent and how the coordinate operations are implemented. There are two operations occurring in the transformer. The first converts between WGS 84 (EPSG::4326) and the underlying geodetic coordinate system of the target projected coordinate reference system (ProjCRS). EPSG::23036 is ED50 / UTM zone 36N, so the underlying geodetic CRS is ED50, EPSG::4230. The second operation projects the ED50 latitude-longitude values to the UTM coordinates.

The first operation is probably using a 3-parameter transformation method like geocentric translations. This method can convert ellipsoidal heights but not gravity-related ones like orthometric or similar elevations. The latter (gravity-related) are more common and more useful so no, they wouldn't change in this scenario.

Depending on the software, you might have to define the input as either a 3D geodetic CRS or a compound CRS where a 2D geodetic CRS and a vertical CRS (gravity-related) and the output is another compound with ED50 / UTM zone 36N plus a vertical CRS. That might trigger yet another operation to convert between the two gravity-related CRS or converting ellipsoidal heights into a gravity-related CRS, depending on what the output compound CRS is.

  • That kind of makes sense. 1440m above sea level is only really useful if you want to calculate the gravity at that point. Adding zz does update xx and yy marginally so worthwhile to add it to the function, but height above ground level will not change if you are changing between datums as that is an absolute value. Commented Oct 10, 2023 at 6:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.