python - 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 之间执行两次...
有没有人遇到过这个问题并找到了解决方案?
解决方案
推荐阅读
- javascript - 带有链表的 Javascript 队列实现
- python - 阻止python替换错误的文本
- php - Codeigniter 未解码电子邮件地址
- javascript - 使用 groupBy 时向 JS 中的对象添加值
- python - 在python中导入2个字典列表和嵌套键/值对
- ios - [project] 的 Xcode Capabilities 警告可能无法正常运行,因为它的权利使用占位符团队 ID
- typescript - 如何在运行时更改链式调用的方法?
- regex - 禁止带有属性的 BBCode 标记中的空内容
- c# - 如何在uwp c#中循环并检查xbox控制器状态
- javascript - React setState 更新不正确的子组件