这个环境配置问题困扰了我好几天,现在记录下来,避免再走弯路,事情还是从报错说起,“ERROR 1: PROJ: proj_create_from_database: Cannot find proj.db“,发现运行以下代码时是没有正确导入坐标wgs84坐标信息,即srs为空。
from osgeo import osr
srs = osr.SpatialReference()
srs.ImportFromEPSG(4326) # 空间参考:WGS84
网上CSDN查询解决办法大概说一下:
一、设置系统环境变量,在系统环境变量都设置了没有作用
二、在程序中首先定义proj的位置,具体代码如下,可以临时解决问题(因为只要用到上述语句,程序就得加上这句话,非常麻烦)
from osgeo import osr
import os
os.environ['PROJ_LIB'] = r"D:\ProgramData\Anaconda3\Lib\site-packages\osgeo\data\proj"
srs = osr.SpatialReference()
srs.ImportFromEPSG(4326) # 空间参考:WGS84
三、换一种导入方式,即使用wkt方法,具体代码如下,可以永久解决
from osgeo import osr
srs = osr.SpatialReference()
wkt = 'GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AXIS["Latitude",NORTH],AXIS["Longitude",EAST],AUTHORITY["EPSG","4326"]]'
srs.ImportFromWkt(wkt) # 空间参考:WGS84
四、本着犟种的精神,我还是想使用原来简单一点方法,就开始排查GDAL和PROJ的兼容性问题,一开始我以为是pyproj这个库的版本,发现它和proj不是一个东西,首先查看gdal版本,终端输入命令 gdalinfo --version,我的是3.4.3,然后查看proj版本,同样输入命令proj,我的是6.2.1,版本比较低是,使用conda命令升级 conda update proj,最后升到9.3.1,运行发现没有问题了,大快人心呀。python版本为3.9.19。
注:使用conda命令一直报错,类似这样
参考这篇博客解决了:基于conda安装pytorch---一看就会超稳定安装步骤详解【多次踩坑实践最终成功版!!!】【适用于WIN系统】_conda pytorch-CSDN博客