Mehr

Proj4-String für NAD83(2011) / Louisiana South (ftUS)


Ich versuche, die Koordinaten von NAD83 (2011) / Louisiana South (ftUS) auf Vermessungskarten mit Proj4 in Python in Lat / Lon zu konvertieren.

Könnte mir jemand in die richtige Richtung weisen?

Ich habe das Lat/Lon auf der Website earthpoint.us überprüft. Ihre Umwandlung scheint zu funktionieren. Dies ist mein Python-Code, der die Proj4-Zeichenfolge enthält.

===============

von pyproj import Proj #EPSG:6479 von epsg-registry.org southla = '+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91.33333333333333 +x_0=3280833.3333 +y_0=0 +ellps=GRS80 +datum=NAD83 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs' p=Proj(southla) lonlat = p(3037416.890, 709211.549,inverse=True) print "% s, %s" % (lonlat[1],lonlat[0])

Da es in PROJ4 keine Unterstützung für EPSG:6479 (NAD83(2011) / Louisiana South (ftUS)) gibt (siehe Kommentar von mkennedy) werde ich das Problem mit EPSG:3452, NAD83 / Louisiana South (ftUS) veranschaulichen, da die Problem ist das gleiche, die Einheiten der Projektion.

Lösung mit Pyproj

import pyproj southla = pyproj.Proj('+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91.333333333333 +x_0=3280833.3333 +y_0=0 +ellps=GRS80 +datum=NAD83 +towgs84=0 ,0,0,0,0,0,0 +units=us-ft +no_defs') # oder southla = pyproj.Proj(init='epsg:3452') wgs84 = pyproj.Proj('+proj=longlat + ellps=WGS84 +datum=WGS84 +no_defs') longlat = pyproj.transform(southla,wgs84,3037416.890, 709211.549) print longlat (-93.986162555568697, 34.865093872789771)

Ergebnis

Lösung mit GDAL

from osgeo import osr southla = osr.SpatialReference() southla.ImportFromEPSG(3452) wgs84 = osr.SpatialReference() wgs84.ImportFromEPSG(4326) x = 3037416.890 y = 709211.549 Transformation = osr.CoordinateTransformation(sout84hla) result,wgs. TransformPoint(x, y) Druckergebnis (-92.105819299234454, 30.447920720765676, 0.0)

Ergebnis

Warum der Unterschied?

Da PyProj davon ausgeht, dass Ihre Koordinaten in Metern sind und die Einheit von EPSG: 3452 (oder EPSG: 6479) "US-Vermessungsfuß" (Einheiten = us-ft) ist -> siehe Konvertieren von X,Y-Koordinaten in Breite / Länge mit pyproj und Proj.4 gibt die falschen Koordinaten zurück

bewahren_units=WahrBehebung des Problems (pyproj ändert still den Parameter '+units=')

foot_proj = pyproj.Proj(init="epsg:3452", konservative_units=True) longlat = pyproj.transform(foot_proj,wgs84,3037416.890, 709211.549)>>> longlat print longlat (-92.105819299234469, 30.447920720765683)

Ergebnis


PROJ.4-Strings wollen immer den falschen Rechtswert (x_0) und den falschen Nordwert (y_0) in Metern, unabhängig von den Einheiten des Koordinatenreferenzsystems. Ändern Sie +x_0 in 1000000.0 und Sie sollten die gewünschten Ergebnisse erhalten.


QGIS bietet diese Proj-Strings für NAD83 Louisiana South (ftUS):

EPSG:3452 EPSG:3457 EPSG:3553 +proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91.33333333333333 +x_0=999999.9999898402 +y_0=0 +ellps=GRS80 +towgs84=0,0,0 ,0,0,0,0 +units=us-ft +no_defs EPSG:102282 (von ESRI) +proj=lcc +lat_1=29.3 +lat_2=30.7 +lat_0=28.5 +lon_0=-91.33333333333333 +x_0=1000000 +y_0 =0 +ellps=GRS80 +units=m +no_defs EPSG:102682 (von ESRI) +proj=lcc +lat_1=29.3 +lat_2=30.7 +lat_0=28.5 +lon_0=-91.33333333333333 +x_0=1000000 +y_0=0 +datum =NAD83 +Einheiten=us-ft +no_defs

Der Zeitrahmen NAD83(2011) ist noch nicht in QGIS integriert.


Schau das Video: Alaska Albers NAD83 Coordinate System (Oktober 2021).