Python气象数据处理与绘图:在不同地图投影上叠加矩形的方法

前言

python提供的地图投影有很多,我主要使用Cartopy模块进行投影的选择以及绘制。下面是官网对不同投影的解释以及示例,具体可以每个点开看看就知道

需求

在研究全球气象要素时我们经常要进行分区的讨论,最简单的方法就是使用矩形框进行经纬度的选择。为了让读者以及审稿人一眼就能看出你是如何分区,经纬度范围等设置时,在基础的底图上叠加矩形框并修改如线段颜色,填色等可以让人一目了然,说了这么多,还不如弄几张图来看看。


Robinson投影

PlateCarree投影

方法

这两种投影添加矩形框的方法不太一致,我查过很多资料后整理如下。

PlateCarree投影

首先添加底图

fig_1 = plt.figure(figsize=(12,14))
ax  = fig_1.add_axes([0.3,2.6, 0.6, 0.5] , projection=ccrs.PlateCarree())

这时候运行命令的话一张地图就出来了,比如我要添加北美的矩形框,就要使用patches的命令,并且transform要设置为PlateCarree,这时候就可以。

ax.coastlines()
ax.set_global()
NA= patches.Rectangle((-170, 25),120,45,linewidth=4,linestyle='-' ,zorder=4,edgecolor='grey',facecolor='none', transform=ccrs.PlateCarree())
ax.add_patch(NA)  #-170 -50  25-70
北美

然后使用

Robinson

如果想添加矩形的区域要使用transform=ccrs.PlateCarree,如果你设置为Robinson是没有结果的,这里要注意一下就行。

ax.add_patch(mpatches.Rectangle(xy=[-170, 25], width=120, height=45,
                                    facecolor='blue',
                                    alpha=0.5,
                                    transform=ccrs.PlateCarree() )  )

当然为了好玩也可以设置为其他的,比如 transform=ccrs.Geodetic


这是好玩儿随便设置的投影

这个Robinson投影我用的不太多,还是比较喜欢PlateCarree投影。最近看论文,发现一些好的期刊都喜欢用Robinson投影来研究全球的一些气象信息,比如季风,温度等。不深究,应该有他独特的含义吧。

总结

没什么好说的,纯粹记录总结

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。