我正在使用http://techcenter.jefferson.kctcs.edu/data/处的大陆(Continents-Polygon)形状文件来绘制南极洲海岸线。 shapefile从180ºW到180ºE,这意味着多边形结束并从太平洋的某个地方开始。当我在太平洋中心绘制这个shapefile时,结果是海岸线从180ºW开始,离开它的西部没有任何海岸线,如下所示:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
shapefile = 'continent'
lat = np.arange(-90,-55,2.5)
lon = np.arange(-260,20,2.5)
X, Y = np.meshgrid(lon,lat)
fig=plt.figure(dpi=200)
m=Basemap(projection='cyl',resolution='i',llcrnrlon=np.nanmin(lon),llcrnrlat=np.nanmin(lat),\
urcrnrlon=np.nanmax(lon),urcrnrlat=np.nanmax(lat))
xi, yi = m(X,Y)
m.readshapefile(shapefile, 'continent',color='k',linewidth=0.6)
m.drawparallels(np.arange(-80,-40,10),labels=[True,False,False,True],color='0.55',fontsize=6)
m.drawmeridians(np.arange(-260,20,20),labels=[True,False,False,True],color='0.55',fontsize=6
plt.show()
有关如何避免这种情况发生的任何想法?
我没有使用底图的drawcoastlines
,因为它包含了我在剧情中不想要的海冰的一些部分,而且我对QGIS一无所知,所以这对我来说并不是真正的首选。
编辑:使用另一个投影,如Polar Stereographic,在图表上显示一条线,我假设它是shapefile的开头/结尾(从90ºS到海岸线的180°直线)。以下是使用spstere
投影的相同代码,但使用fig=plt.figure(dpi=200)
m=Basemap(projection='spstere',boundinglat=-60,lon_0=90,resolution='l')
xi, yi = m(X,Y)
m.readshapefile(shapefile, 'continent',color='k',linewidth=0.6)
m.drawparallels(np.arange(-80,-40,10),labels=[True,False,False,True],color='0.55',fontsize=6)
m.drawmeridians(np.arange(-180,200,20),labels=[True,False,False,True],color='0.55',fontsize=6)
投影:
{{1}}
输出: