使用Python2.7.9和gdal1.11.1,以及miniconda进行包管理--
执行此操作时,简单地重新投影一个坐标点会导致下面所述的错误。在
我对GDAL比较陌生,所以我检查了Python GDAL/OGR 1.0 Cookbook中的代码是否产生了相同的问题,它确实:
from osgeo import ogr
from osgeo import osr
source = osr.SpatialReference()
source.ImportFromEPSG(2927)
target = osr.SpatialReference()
target.ImportFromEPSG(4326)
transform = osr.CoordinateTransformation(source, target)
point = ogr.CreateGeometryFromWkt("POINT (1120351.57 741921.42)")
point.Transform(transform)
print point.ExportToWkt()
这是错误:
^{pr2}$坐标转换是用SWIG生成的C++ OSRealTraseTrimeS影类的代理。 根据source code for osgeo.ogr.Geometry(点是什么),正确的类型被传递给Transform方法。在
最佳猜测:这是不是因为使用了太旧的gr版本,以及_几何图形转换(self,*args)期望的是不同的? _ogr是另一个SWIG生成的代理,我猜是ogr类吗?在
每个刚接触GDAL的人都必须了解:分配一个错误处理程序。(示例:http://pcjericks.github.io/py-gdalogr-cookbook/gdal_general.html#install-gdal-ogr-error-handler)
分配了错误处理程序后,输出将包含对错误的解释。在本例中,它是:“无法加载项目4库(利伯杰·索),创建OGRCoordinateTransformation失败。“
希望,传授启用GDAL错误处理的知识将有助于其他可能无意中发现这个问题的人。在
我在anaconda3qgis环境中运行GDAL转换时遇到了这个问题。问题是没有通过
GDAL_DATA
环境变量加载坐标系信息。在要补救,请找到包含gcs.csv版存在于系统中(可能是“../Library/share/gdal”)。在导入GDAL和其他依赖项之前,将其添加到您的环境中。在
相关问题 更多 >
编程相关推荐