大气海洋领域有很多空间分布的二维数据需要绘制成填色图(或等值线图),python中常用matplotlib中的contour或contourf函数,但是这两个函数要求数据分布于规则网格上。
对于很多模式数据,如ERA5、FNL再分析数据,或者WRF、ROMS模式输出的结构网格数据,使用contour绘制填色图不成问题。
对于很多不规则分布的数据,如实际观测的气象站数据,或者非结构网格的模式数据(如MPAS模式,FVCOM模式),其数据的空间分布是不规则的,此类数据不能直接使用contour函数。
一个常用的方法是将不规则空间数据插入到规则网格中,然后再进行绘制。其中将不规则网格数据插值到规则网格可以使用scipy.interpolate的griddata和RBF等函数。
本篇介绍另外一种方法,即通过matplotlib.tri的tricontour或tricontourf函数直接绘制非规则网格数据的二维填色图。此方法不仅更简便,而且速度更快。
以下为全部代码 (截图,需要复制可关注气海同途公众号获取):
参考:
https://matplotlib.org/stable/gallery/images_contours_and_fields/irregulardatagrid.html
欢迎扫码关注气海同途,获取更多大气海洋相关内容
气海同途
大气和海洋科学领域的分享,包括数值模式、机器学习,可视化和编程等内容。
45篇原创内容
公众号