0

我有由两个 6 位数字(例如 300,000 250,000)组成的坐标数据,我想将其转换为 long.、lat。坐标。我被告知坐标数据(称为 GLNX,GLNY)来自密歇根州平面坐标系,EPSG 编号 ESRI:102121 但是,当我将该 102121 编号传递给 gdal.ImportFromEPSG 时,它抱怨说它不知道. 两个问题:

  1. 如何为 ESRI:102121 创建空间参考
  2. 我可以将我的 6 位数字对直接传递给 reProject,还是需要“调整”它,例如,按 10 的幂次方缩放,或者从英尺转换为米,还是什么?
4

1 回答 1

0

我不确定您如何使用 GDAL API,但是通过 Python 使用 GDAL 2.0,这对我有用:

from osgeo import osr
osr.UseExceptions()
sr = osr.SpatialReference()
sr.ImportFromEPSG(102121)  # returns 0 for success, which I get

但我怀疑这不起作用,如您的问题中所述。因此,您可以改为从 PROJ.4 代码导入,您可以从http://epsg.io/102121获取该代码,或者在原始代码中添加.proj4扩展:

import urllib2
srid = 102121
response = urllib2.urlopen('http://epsg.io/%d.proj4' % (srid,))
sr.ImportFromProj4(response.read())  # returns 0 for success
print(sr.ExportToPrettyWkt())  # shows that it is understood

PROJ.4 代码最终由 libproj 用于进行实际投影,而不是 WKT。

于 2016-05-01T23:04:55.380 回答