Как подсказывают @ImportanceOfBeingErnest и @swatchai, параметр CRS (система координат) в ShapelyFeature cartopy.feature.ShapelyFeature()
был неверным.
Правильный код EPSG (European Petroleum Survey Group?) Можно найти в одном из XML-файлов, включенных в шейп-файл:
<gco:CharacterString>26910</gco:CharacterString>
</code>
<codeSpace>
<gco:CharacterString>EPSG</gco:CharacterString>
и передача его в качестве второго параметра в ShapelyFeature()
- это все, что нужно, чтобы получить шейп-файл для правильного построения границ города:
# Add city borders
filename = r'./shapefile/ba_cities.shp'
shape_feature = ShapelyFeature(Reader(filename).geometries(), ccrs.epsg(26910),
linewidth = 1, facecolor = (1, 1, 1, 0),
edgecolor = (0.5, 0.5, 0.5, 1))
ax.add_feature(shape_feature)
plt.show()