解决Try setting the GDAL_DATA environment variable

博客指出GDAL安装时缺少数据文件会报错,解决办法是将数据文件下载后放在GDAL对应的Python目录下,再在系统中添加环境变量指向该路径,还给出了参考文章及GDAL data下载地址。

Try setting the GDAL_DATA environment variable to point to the directory containing EPSG csv files

报错原因是GDAL装时缺少了gcs.csv数据文件,将此文件下载后放在GDAL对应的python目录下,然后在系统中添加GDAL_DATA的环境变量指向该路径即可。

  • 参考文章
    https://inbo.github.io/niche_vlaanderen/faq.html
    https://blog.youkuaiyun.com/zsc201825/article/details/90112302
    GDAL data下载地址
你遇到的警告信息: ``` Warning 3: Cannot find header.dxf (GDAL_DATA is not defined) RuntimeWarning: Could not detect GDAL data files. Set GDAL_DATA environment variable to the correct path. ``` 是由于 GDAL 无法找到其数据文件(如投影定义、驱动配置等)导致的。这个警告通常不会导致程序崩溃,但可能会影响某些功能(如坐标参考系统支持、导出格式等)。 --- ## ✅ 解决方案 ### ✅ 方法一:设置 `GDAL_DATA` 环境变量(推荐) 你需要将 `GDAL_DATA` 环境变量指向 GDAL 的数据目录。这个目录通常位于你当前 Python 环境下的 `Library\share\gdal`。 ### 示例路径(以你的 Conda 环境为例): ``` C:\Users\Administrator\.conda\envs\pythonProject\Library\share\gdal ``` ### 修改方式: #### 方式 A:在代码中临时设置(推荐用于调试) ```python import os # 设置 GDAL_DATA 环境变量 os.environ['GDAL_DATA'] = r'C:\Users\Administrator\.conda\envs\pythonProject\Library\share\gdal' ``` 将这段代码放在你脚本的最前面,比如: ```python import os os.environ['GDAL_DATA'] = r'C:\Users\Administrator\.conda\envs\pythonProject\Library\share\gdal' import geopandas as gpd ``` --- #### 方式 B:设置系统环境变量(永久有效) 1. 打开“系统属性” → “高级系统设置” → “环境变量” 2. 在“系统变量”或“用户变量”中点击“新建” 3. 变量名:`GDAL_DATA` 4. 变量值:`C:\Users\Administrator\.conda\envs\pythonProject\Library\share\gdal` 5. 确定并重启你的终端或 IDE --- ## ✅ 方法二:使用 `conda install` 安装完整 GDAL 支持 如果你使用的是 Conda 环境,建议使用以下命令安装 geopandas 和 GDAL: ```bash conda install -c conda-forge geopandas ``` 这会自动安装 GDAL 及其依赖,并正确配置 `GDAL_DATA` 路径。 --- ## ✅ 方法三:验证 GDAL 数据路径是否正确 你可以通过以下代码验证 GDAL 是否能找到数据路径: ```python import os from osgeo import gdal print("GDAL_DATA 环境变量:", os.environ.get("GDAL_DATA")) print("GDAL 版本:", gdal.__version__) ``` --- ## ✅ 修改后的完整代码示例 ```python import os os.environ['GDAL_DATA'] = r'C:\Users\Administrator\.conda\envs\pythonProject\Library\share\gdal' import geopandas as gpd def batch_shp_to_geojson(input_folder: str): if not os.path.exists(input_folder): print(f"路径不存在: {input_folder}") return shp_files = [f for f in os.listdir(input_folder) if f.endswith('.shp')] if not shp_files: print(f"未找到任何 .shp 文件: {input_folder}") return print(f"找到 {len(shp_files)} 个 .shp 文件,开始转换...") for shp_file in shp_files: shp_path = os.path.join(input_folder, shp_file) json_path = os.path.splitext(shp_path)[0] + ".geojson" try: print(f"正在处理: {shp_file}") gdf = gpd.read_file(shp_path) gdf.to_file(json_path, driver="GeoJSON") print(f"转换完成: {json_path}") except Exception as e: print(f"转换 {shp_file} 时出错: {e}") if __name__ == "__main__": folder_path = r"C:\Users\Administrator\Desktop\1\伊犁州路网" batch_shp_to_geojson(folder_path) ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值