Skip to content

Instantly share code, notes, and snippets.

@BishopGIS
Last active March 1, 2023 17:38
Show Gist options
  • Save BishopGIS/ed0ce988f7a1bd93a293b11d64cc9b8c to your computer and use it in GitHub Desktop.
Save BishopGIS/ed0ce988f7a1bd93a293b11d64cc9b8c to your computer and use it in GitHub Desktop.
Test to WGS84 accuracy
from osgeo import ogr, osr
pulkovo42v1 = osr.SpatialReference()
pulkovo42v1.ImportFromWkt("""GEOGCS["Pulkovo 1942 v2",
DATUM["Pulkovo_1942",
SPHEROID["Krassowsky 1940",6378245,298.3],
TOWGS84[23.57,-140.95,-79.8,0,-0.35,-0.79,-0.22]],
PRIMEM["Greenwich",0,
AUTHORITY["EPSG","8901"]],
UNIT["degree",0.0174532925199433,
AUTHORITY["EPSG","9122"]]]""")
pulkovo42v1.SetAxisMappingStrategy(osr.OAMS_TRADITIONAL_GIS_ORDER)
# GOST R 51794-2008 - https://epsg.io/5044
# pulkovo42v1.SetTOWGS84(23.57, -140.95, -79.8, 0.0, -0.35, -0.79, -0.22)
pulkovo42v2 = osr.SpatialReference()
pulkovo42v2.ImportFromWkt("""GEOGCS["Pulkovo 1942 v1",
DATUM["Pulkovo_1942",
SPHEROID["Krassowsky 1940",6378245,298.3],
TOWGS84[23.92,-141.27,-80.9,0.0,-0.35,-0.82,-0.12]],
PRIMEM["Greenwich",0,
AUTHORITY["EPSG","8901"]],
UNIT["degree",0.0174532925199433,
AUTHORITY["EPSG","9122"]]]""")
pulkovo42v2.SetAxisMappingStrategy(osr.OAMS_TRADITIONAL_GIS_ORDER)
# GOST R 51794-2001 - https://epsg.io/1267
# pulkovo42v2.SetTOWGS84(23.92, -141.27, -80.9, 0.0, -0.35, -0.82, -0.12)
epsg3857 = osr.SpatialReference()
epsg3857.ImportFromEPSG(3857)
epsg3857.SetAxisMappingStrategy(osr.OAMS_TRADITIONAL_GIS_ORDER)
pt1 = ogr.CreateGeometryFromWkt('POINT(37.0 55.0)')
pt1.AssignSpatialReference(pulkovo42v1)
pt2 = ogr.CreateGeometryFromWkt('POINT(37.0 55.0)')
pt2.AssignSpatialReference(pulkovo42v2)
pt1.TransformTo(epsg3857)
pt2.TransformTo(epsg3857)
print('pt1 X {}/Y {}'.format(pt1.GetX(), pt1.GetY()))
print('pt2 X {}/Y {}'.format(pt2.GetX(), pt2.GetY()))
print('Delta (meters) X {}/Y {}'.format(abs(pt1.GetX() - pt2.GetX()), abs(pt1.GetY() - pt2.GetY())))
@BishopGIS
Copy link
Author

BishopGIS commented Mar 1, 2023

pt1 X 4118585.48022/Y 7361900.04858
pt2 X 4118583.7416/Y 7361898.8209
Delta (meters) X 1.73862091592/Y 1.22768053506

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment