GeoDataFrame导出ESRI Shapefile时触发InvalidVersion错误(GDAL版本问题)
解决GeoDataFrame导出Shapefile时的GDAL版本错误(InvalidVersion: '3.4.0e')
问题原因
ArcGIS Pro克隆环境中的GDAL版本字符串被标记为3.4.0e,而GeoPandas的版本校验逻辑无法识别带后缀的版本号,触发InvalidVersion错误。
解决方案
方案1:临时修改GDAL版本字符串(快速修复)
在导出代码前手动覆盖GDAL的版本返回值,绕过校验:
import osgeo.gdal as gdal # 将版本信息替换为GeoPandas可识别的纯数值编码(对应3.4.0) gdal.VersionInfo = lambda: '3040000' # 执行导出 geoPoliDF.to_file(polyOutFc, driver='ESRI Shapefile', crs='EPSG:27700')
方案2:重新安装纯版本GDAL(环境级修复)
如果允许修改ArcGIS Pro克隆环境,通过conda替换GDAL包:
# 激活目标环境 conda activate arcgispro_py39_17150 # 卸载带后缀的GDAL conda remove --force gdal # 安装官方3.4.0版本 conda install gdal=3.4.0 -c conda-forge
注意:操作前备份环境,避免影响ArcGIS Pro原生功能。
方案3:使用ArcPy替代导出(适配ArcGIS生态)
直接利用ArcGIS原生工具导出,规避GDAL版本冲突:
import arcpy # 将GeoDataFrame转为ArcPy要素类 arcpy.da.NumPyArrayToFeatureClass( geoPoliDF.to_records(), polyOutFc, ['pol_geometry'], # 几何字段名 spatial_reference=arcpy.SpatialReference(27700) )
内容的提问来源于stack exchange,提问作者estitxust
相关产品推荐
相关产品推荐

