J'écris un script python qui lit plusieurs fichiers XML contenant des coordonnées x et y et les combine tous dans un seul fichier csv. La latitude et la longitude sont des champs obligatoires dans le csv, mais j'ai du mal à convertir les coordonnées x, y dans l'Ohio North State Plane usFt en WGS84.
>>> p = Proj(r'+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39.66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defs') #Nad83 State Plane Ohio North US Feet Proj object using parameters
>>> p(739400.91,2339327.3,inverse=True)
(-80.138057868777224, 60.278230707978487)
>>> p1 = Proj(init="epsg:3734") #Nad83 State Plane Ohio North US Feet Proj object using EPSG code
>>> p1(739400.91,2339327.3,inverse=True)
(-80.138057868777224, 60.278230707978487)
Les deux méthodes ci-dessus renvoient le même résultat, mais ce dernier se situe quelque part dans la baie d'Hudson. Lorsque je trace les coordonnées dans ArcMap, la lat longue correcte est: -81.142311,41.688205.
* Notez que tous les lat longs sont fournis longtemps, lat car c'est l'ordre utilisé par Proj
Est-ce que quelqu'un sait pourquoi j'obtiendrais les mauvaises coordonnées de Proj.4 et pyproj?
p1 = Proj( init="epsg:3734", preserve_units=True )
J'essayais en fait de faire la même chose, sauf avec la grille de l'avion de l'État sud de l'OH et je suis tombé sur votre question. J'obtenais de mauvais résultats avec 3735, maintenant j'obtiens des résultats corrects avec 3729. Je m'attends à ce que si vous changez de 3734 à 3728, vous obtiendrez les résultats corrects.
EPSG: 3728: NAD83 (NSRS2007) / Ohio North (ftUS) EPSG: 3729: NAD83 (NSRS2007) / Ohio South (ftUS) EPSG: 3734: NAD83 / Ohio North (ftUS) EPSG: 3735: NAD83 / Ohio South (ftUS)
J'ai utilisé votre lat fourni, long et je suis hors de moins d'un pied.
p2 = pyproj.Proj (init = "epsg: 3728", preserve_units = True)
p2 (-81.142311,41.688205)
(2339326.6558868014, 739401.4226131936)
vs 2339327.3, 739400.91
la source