使用底图在其纵向端绘制无缝shapefile

时间:2018-04-16 13:53:42

标签: python-3.x shapefile matplotlib-basemap

我正在使用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()

Antarctica

有关如何避免这种情况发生的任何想法?

我没有使用底图的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}}

输出:

Stereographic Projection

0 个答案:

没有答案