我正在运行一个简单的python脚本,将longlat Nad83转换为Ky州平面南Nad83(epsg 4269到6474)。当我将输入投影设置为:
inProj = pyproj.Proj(proj='longlat', datum ='NAD83')
我得到了一个答案(似乎是正确的)。设置输入投影时:
inProj = pyproj.Proj('epsg:4269')
我得到了不同的答案。我在Proj上打印了两次,两次看起来都一样
运行1:
import pyproj
import numpy as np
# nad 83 latt and longs
inProj = pyproj.Proj('epsg:4269')
# KY State Nad83 Meter (2011)
outProj = pyproj.Proj("epsg:6474") # KY State South Nad83 Meter (2011)
long = np.array([-83.88259259,-83.88259259,-83.55083333,-83.55083333])
latt = np.array([ 36.49333333, 36.79203704, 36.79203704, 36.49333333])
x,y = pyproj.transform(inProj, outProj ,long ,latt)
print('\ninProj = ',inProj,'\n\noutProj = ',outProj,'\n')
for i in range(len(long)):
print('long = ',long[i],'latt = ',latt[i],
'x = ',x[i],'y = ',y[i])
输出:
inProj = Proj('+proj=longlat +datum=NAD83 +no_defs', preserve_units=True)
outProj = Proj('+proj=lcc +lat_0=36.3333333333333 +lon_0=-85.75 +lat_1=37.9333333333333 +lat_2=36.7333333333333 +x_0=500000 +y_0=500000 +ellps=GRS80 +units=m +no_defs', preserve_units=True)
long = -83.88259259 latt = 36.49333333 x = 72927331.14729036 y = -11599224.291812904
long = -83.88259259 latt = 36.79203704 x = 72992044.27873956 y = -11370127.68625123
long = -83.55083333 latt = 36.79203704 x = 70702668.24198839 y = -10727351.707669286
long = -83.55083333 latt = 36.49333333 x = 70639998.82021627 y = -10949213.198204307
运行2:
import pyproj
import numpy as np
# nad 83 latt and longs
inProj = pyproj.Proj(proj='longlat', datum ='NAD83')
# KY State Nad83 Meter (2011)
outProj = pyproj.Proj("epsg:6474") # KY State South Nad83 Meter (2011)
long = np.array([-83.88259259,-83.88259259,-83.55083333,-83.55083333])
latt = np.array([ 36.49333333, 36.79203704, 36.79203704, 36.49333333])
x,y = pyproj.transform(inProj, outProj ,long ,latt)
print('\ninProj = ',inProj,'\n\noutProj = ',outProj,'\n')
for i in range(len(long)):
print('long = ',long[i],'latt = ',latt[i],
'x = ',x[i],'y = ',y[i]
输出:
inProj = Proj('+proj=longlat +datum=NAD83 +no_defs', preserve_units=True)
outProj = Proj('+proj=lcc +lat_0=36.3333333333333 +lon_0=-85.75 +lat_1=37.9333333333333 +lat_2=36.7333333333333 +x_0=500000 +y_0=500000 +ellps=GRS80 +units=m +no_defs', preserve_units=True)
long = -83.88259259 latt = 36.49333333 x = 667315.2681430576 y = 519409.6151513982
long = -83.88259259 latt = 36.79203704 x = 666660.1039730347 y = 552551.2004212044
long = -83.55083333 latt = 36.79203704 x = 696263.6061808041 y = 553188.4213983886
long = -83.55083333 latt = 36.49333333 x = 697035.1458569702 y = 520049.34113333403
Pyproj似乎将输入参数视为相同的,但结果却大不相同
您将遇到PROJ 6引入的轴顺序更改:
传统上,顺序为东(x)北(y),如项目参数版本所示:
但是,在EPSG版本中,它是北(y)、东(x)顺序:
因此,如果您希望它提供正确的输出,请执行以下任一操作:
always_xy
:我还建议阅读: https://pyproj4.github.io/pyproj/stable/gotchas.html#axis-order-changes-in-proj-6
相关问题 更多 >
编程相关推荐