Py学习  »  Python

pyproj“未找到crs”(Docker)-Python

mdl518 • 3 年前 • 1402 次点击  

我试图运行一个Docker容器,其中包含几个按顺序执行的Python脚本,包括一个将UTM坐标转换为其纬度/经度等效值的脚本。当作为独立脚本运行时(例如在Spyder环境中),该脚本可以工作,但当在docker容器中执行相同的脚本时,我会出错。以下是检索EPSG 3857和EPSG 4326投影的脚本片段:

import glob
from osgeo import gdal, osr, ogr
from pyproj import Proj, transform

for file in glob.glob("*.tif"):
    dem = gdal.Open(file)
    epsg_zone='EPSG:'+ osr.SpatialReference(dem.GetProjection()).GetAttrValue("PROJCS|AUTHORITY", 1))
    P3857 = Proj(init=epsg_zone)
    P4326 = Proj(init='epsg:4326')

我的docker容器是通过安装GDAL v3构建的。0.2和pyproj v.3.0.0。post1和其他图书馆。然而,当启动这个特定脚本时,当处理到达“P3857=Proj(init=epsg_zone)”的线段时,我遇到了一个错误:

File "pyproj/_crs.pyx", line 2302, in pyproj._crs._CRS.__init__
pyproj.exceptions.CRSError: Invalid projection: +init=epsg:None +type=crs: (Internal Proj 
Error: proj_create: crs not found)

我进一步指出了另一个关于如何阅读GeoTIFF的问题。当我为“dem.GetProjection()”运行打印语句以在docker容器中运行脚本时,它会返回一个空字符串,而作为独立工具运行时,它会返回完整的投影和坐标参考系信息。它具体读取dem对象(打印(dem)),如下所示:

osgeo.gdal.Dataset; proxy of <Swig Object of type 'GDALDatasetShadow *' at 0x7f5e48651120>

我不明白为什么脚本在Spyder环境中作为独立脚本运行良好,但我从Docker容器中得到了这些错误。非常感谢您的帮助!

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/130029
 
1402 次点击  
文章 [ 1 ]  |  最新文章 3 年前