Cartopy绘图—叠加遥感影像
Cartopy绘图—叠加遥感影像
前言
前次我们对站点数据进行克里金插值,绘制了水深克里金插值图。但很多时候我们还需要再叠加上遥感影像,将遥感影像置于底层,顶层显示专题图,这样出来的图更直观,且与地理要素更吻合,易于比较,如下图AOD浓度分布图(图片源自小xin之窗公众号)。这节就介绍一下叠加遥感影像的方法。
讨论
叠加显示遥感影像的思路主要有以下两种:
-
ax.imshow(data, extent, zorder)
显示打开的图像,ax.contourf()
显示数组插值得到的专题图,简单方便。 -
也可以先保存专题图、遥感影像的图片,然后新建一个三维数组,以遥感影像数组为底图,再叠加写入专题图数组。此法较烦,属于造轮子行为,不采用。
新增功能及其代码
- 叠加遥感影像
这里需要关注的是,在对ax导入投影(ccrs.PlateCarree()
)后,需要在ax.imshow()
中的extent参数设置该图像的角点坐标,以对应图框。这里笔者选用的是没有地理信息的Png图片,自定义了图片的角点坐标;如果输入是tiff遥感影像的话,可以用gdal读取出角点坐标。
- 设置专题图无值区域,透明显示
有时需要掩膜一些专题图值域范围,比如这里10米以上,14米以下区域不想显示,希望透明显示,可以用np.nan
或者np.ma.masked_array
加以设置;也可以设置clevs的着色范围达到同样的目的。
结果展示
后记
cartopy.ccrs
常用于在绘图中导入投影fig.add_subplot(111, projection=ccrs.PlateCarree())
ax.contourf()
用于显示有lon、lat、data的插值数据ax.imshow()
用于显示本地图片zorder
可以设置叠加顺序