Last active
March 1, 2023 17:38
-
-
Save BishopGIS/ed0ce988f7a1bd93a293b11d64cc9b8c to your computer and use it in GitHub Desktop.
Test to WGS84 accuracy
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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()))) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
pt1 X 4118585.48022/Y 7361900.04858
pt2 X 4118583.7416/Y 7361898.8209
Delta (meters) X 1.73862091592/Y 1.22768053506