使用 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',得到这个图。
以下程序在我不包含 "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',得到这个图。