Python3.8环境下Cartopy/Fiona报错shapefile不被识别为支持的文件格式
问题核心诱因
- 第一诱因是手动从GitHub拉取的
ne_110m_admin_1_states_provinces_lakes.shp文件不完整或损坏:Shapefile为多文件格式,必须同时包含.shp、.shx、.dbf三个核心文件,部分场景还需要配套.prj投影文件,缺少任意一个都会触发GDAL/Fiona的「不支持的文件格式」报错。 - 不存在PROJ、GDAL等依赖版本不兼容问题:如果是依赖版本冲突,海岸线文件、后续cartopy_offlinedata提供的州界文件都会加载失败,不会出现部分文件可正常渲染的情况。
已验证的可行解决方案
直接调用conda安装的cartopy_offlinedata包内置的Natural Earth预置数据集即可,无需手动拉取外部文件,示例代码如下:
import cartopy.feature as cfeat states_provinces = cfeat.NaturalEarthFeature( category='cultural', name='admin_1_states_provinces_shp', scale='110m', facecolor='none') ax.add_feature(states_provinces, edgecolor='black', linewidth=0.5)
后续验证方案
待NACIS CDN恢复服务后,删除本地路径/home/fewx/.local/share/cartopy/shapefiles/natural_earth/cultural/下所有前缀为ne_110m_admin_1_states_provinces_lakes的文件,重新运行原始代码让Cartopy自动下载完整压缩包并解压,即可验证此前的文件损坏猜想。
内容的提问来源于stack exchange,提问作者wxninja
相关产品推荐
相关产品推荐

