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
可以設置疊加順序