目標有兩個
1. 將原本的白色地圖背景改為使用類似衛星圖的背景
2. 將輸出的資料篩成只有陸表的資料。像下面這個CWB的圖,只畫出了陸上的資料,海上的資 料不會畫出來
1. ArcGis
basemap中有一些蠻有趣的東西
其中可以使用arcgis的圖層
前面讀取資料的部分就跟前兩篇一樣
比較不一樣的是第3、11行
第3行要指定epsg
第11行會畫出arcgis的底圖
如果想試試看不同底圖的話,可以翻一下這篇有列出來
http://qingkaikong.blogspot.tw/2016/06/nice-python-basemap-background.html
畫出來會像這樣
另外我把colormap原本的白色和灰色拿掉
然後contour改成從2mm開始畫
不然如果照原本的設定會讓畫面一大堆白
2. maskoceans
maskoceans位在mpl_toolkits.basemap.maskoceans
文檔可以看這邊
https://matplotlib.org/basemap/api/basemap_api.html#mpl_toolkits.basemap.maskoceans
maskoceans的用法長這樣
maskoceans(lonsin, latsin, datain, inlands=True, resolution='l', grid=5)
是要輸入lonsin、latsin、datain
也就是經緯座標以及資料,當然資料是要跟經緯座標對應的
然後這三個都要是2維的
另外inlands是設定要留的資料,True代表留陸地資料篩掉海洋資料,False就相反
圖會長這個樣子
關於更多海陸面的遮罩
這裡也有其他討論,像是is_land之類的
https://stackoverflow.com/questions/13796315/plot-only-on-continent-in-matplotlib/13811775#13811775