Я думаю, что вы видите из-за набора данных низкого разрешения земли / озера. Для карт такого масштаба вам, вероятно, лучше использовать плитки карт вместо элемента NaturalEarth land. Есть несколько вариантов, уже доступных в картопы, Stamen Terrain или Open Street Map могут быть хорошими вариантами:
import numpy as np
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
from cartopy.io.shapereader import Reader
from cartopy.io.img_tiles import StamenTerrain, OSM
standard_parallels = (49, 77)
central_longitude = -(91 + 52 / 60)
data = Reader('citygcs')
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1,
projection=ccrs.LambertConformal(central_longitude=central_longitude,
standard_parallels=standard_parallels))
ax.set_extent([-79.65, -79.1, 43.57, 43.87])
tiler = OSM()
ax.add_image(tiler, 10)
ax.add_geometries(data.geometries(), crs=ccrs.Geodetic(), edgecolor='k',
facecolor='none')
plt.show()
Или используя StamenTerrain
:
Могут быть и другие проблемы, связанные со ссылкой на эллипс (я заметил WGS84 в названии шейп-файла), здесь есть хорошая ссылка: https://scitools.org.uk/cartopy/docs/v0.16/gallery/effects_of_the_ellipse.html.
В будущем будет полезно, если ваш пример кода будет минимальным и все данные будут доступны (мне пришлось самостоятельно найти подобный шейп-файл для воспроизведения), см. Здесь руководство: https://stackoverflow.com/help/mcve.