使用 Basemap 时确定是否存在海岸线

Determining if a coastline is present when using Basemap

以下程序在我不包含 "drawcoastlines" 时有效。我绘制的大部分点都足够大,可以包括海岸线,但在一张特定地图上,没有海岸线。发生这种情况时,我收到以下错误消息:

文件 "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\path.py",第 130 行,在 init 中 "'vertices' 必须是二维列表或形状为 Nx2 的数组")

ValueError: 'vertices' 必须是形状为 Nx2

的二维列表或数组

这是程序的简化版本:

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt

latMin = 25
latMax = 45
longMin = 95
longMax = 115

m = Basemap(projection='cyl', resolution='h', area_thresh = 0.1,
        llcrnrlat=latMin, urcrnrlat=latMax,
        llcrnrlon=longMin, urcrnrlon=longMax)

m.drawcountries(linewidth=1.00)
m.drawcoastlines(linewidth=0.5)
m.drawstates(linewidth = 0.2)
m.drawrivers(color='#6D5F47', linewidth=.4)
m.shadedrelief()
plt.show()

我想查看地图是否包含海岸线。如果确实包含海岸线代码,如果没有,则绕过代码。

有什么建议吗?

"try - except" 的简单使用应该适用于您的情况。 只需将引起问题的代码行包裹起来,如下所示:

try:
    m.drawcoastlines(linewidth=0.5)
except:
    pass

我试过分辨率='c',得到这个图。