10

我试图从自然地球的世界 shp 文件中提取某些国家。

我目前使用的是windows 10,所以我安装了python 3.7、gdal来使用ogr2​​ogr。

我在命令中键入以下代码以提取韩国

ogr2ogr -f GeoJSON -where "geonunit='韩国'" korea-geo.json ne_10m_admin_1_states_provinces.shp

但是出现了以下错误。

错误 1:项目:proj_create_from_wkt:找不到 proj.db

错误 1:PROJ:proj_identify:找不到 proj.db

我已经为 Gdal 设置了环境变量..

C:\Program Files\GDAL\gdal-数据

C:\Program Files\GDAL\gdalplugins

请指导我解决这个问题。

4

4 回答 4

14

检查您的 environment_variable:

setx GDAL_DATA "C:\Program Files\GDAL\gdal-data"

setx GDAL_DRIVER_PATH "C:\Program Files\GDAL\gdalplugins"

setx PROJ_LIB "C:\Program Files\GDAL\projlib"

setx PYTHONPATH "C:\Program Files\GDAL\"
于 2019-09-09T11:52:25.357 回答
6

将 PROJ_DEBUG=3 添加到您的 environment_variable 非常有用。然后错误消息将告诉您 PROJ 期望该文件的位置。

于 2020-03-23T20:22:27.613 回答
4

您可能需要设置PROJ_LIB环境变量。但我不确定这些数据在您的系统上的位置。它也可能受到您安装 GDAL 的影响。

如果您进入您的C:\Program Files\GDAL目录,您是否有一个名为 的文件夹proj?如果有,看看里面有没有proj.db文件。如果是这样,那就是您的 PROJ_LIB 路径值。您可能还会在某种share文件夹中找到它。

如果您没有发现它嵌套在您的 GDAL 目录中的某个位置,请尝试在系统中搜索该proj.db文件,如果找到,将该目录(不是完整的文件路径)设置为您的PROJ_LIB值,重新启动,然后查看是否启动在职的。

于 2019-07-16T16:25:31.847 回答
2

在导入 GDAL 之前,将这些命令添加到您的代码的开头您的问题将得到解决

import os
os.environ['PROJ_LIB'] = 'C:\\Users\\Sai kiran\\anaconda3\\envs\\sai\\Library\\share\\proj'
os.environ['GDAL_DATA'] = 'C:\\Users\\Sai kiran\\anaconda3\\envs\sai\\Library\\share'

import gdal

在您的 anaconda 目录中搜索proj.db文件的位置,并将相同的位置替换C:\\Users\\Sai kiran\\anaconda3\\envs\\sai\\Library\\share\\proj为上述命令中的位置。gdal此外,如上例所示,替换 anaconda 目录中的文件夹位置。

于 2020-06-10T07:59:32.683 回答