首页 > 解决方案 > Python -basemap:经度约定问题,如何通过 180° 绘制构造边界

问题描述

我是使用 Python matplotlib-basemap 绘制地图的新手(通常使用 GMT,但需要一种可以轻松用于绘制地图以进行教学的方法)。我想绘制一张印度尼西亚到中太平洋的地图,在 90°E 和 160°W 之间 - 到目前为止一切都很好 - 我想在上面绘制构造边界。我下载了类似于官方的构造板块数据库:https ://github.com/fraxen/tectonicplates, 包括 shapefile。

显然与 0/360° 与 180/-180 之间的经度惯例不兼容,我无法让构造边界跨越 180° !

这是我的代码,附上结果:

m  = Basemap(llcrnrlon=90.,urcrnrlon=220.,llcrnrlat=-30.,urcrnrlat=70.,\
            resolution='h',projection='gall', lon_0=240.,lat_0=20.)
m.readshapefile('tectonicplates-master/PB2002_boundaries', 
            name='Pacific', 
            drawbounds=True, 
            color='blue', zorder=2)

m.drawcoastlines()

m.drawparallels(np.arange(-30,65,20),labels=[1,0,0,0])
m.drawmeridians(np.arange(90,220,30),labels=[0,0,0,1])

我尝试了不同的投影,没有任何效果,我不知道是否可能,如果可以,如何使用 readshapefile 选择特定区域,可能在 0/180 和 -180/0 之间执行两次...

有没有人遇到过这个问题并找到了解决方案?

印度尼西亚-太平洋

标签: pythonlatitude-longitudematplotlib-basemap

解决方案


推荐阅读