前言
python提供的地圖投影有很多,我主要使用Cartopy模塊進(jìn)行投影的選擇以及繪制浸赫。下面是官網(wǎng)對(duì)不同投影的解釋以及示例爽蝴,具體可以每個(gè)點(diǎn)開看看就知道
- PlateCarree
- AlbersEqualArea
- AzimuthalEquidistant
- EquidistantConic
- LambertConformal
- LambertCylindrical
- Mercator
- Miller
- Mollweide
- Orthographic
- Robinson
- Sinusoidal
- Stereographic
- TransverseMercator
- UTM
- InterruptedGoodeHomolosine
- RotatedPole
- OSGB
- EuroPP
- Geostationary
- NearsidePerspective
- EckertI
- EckertII
- EckertIII
- EckertIV
- EckertV
- EckertVI
- EqualEarth
- Gnomonic
- LambertAzimuthalEqualArea
- NorthPolarStereo
- OSNI
- SouthPolarStereo
需求
在研究全球氣象要素時(shí)我們經(jīng)常要進(jìn)行分區(qū)的討論,最簡(jiǎn)單的方法就是使用矩形框進(jìn)行經(jīng)緯度的選擇痢毒。為了讓讀者以及審稿人一眼就能看出你是如何分區(qū)澜建,經(jīng)緯度范圍等設(shè)置時(shí)向挖,在基礎(chǔ)的底圖上疊加矩形框并修改如線段顏色蝌以,填色等可以讓人一目了然,說了這么多何之,還不如弄幾張圖來看看跟畅。
方法
這兩種投影添加矩形框的方法不太一致,我查過很多資料后整理如下溶推。
PlateCarree投影
首先添加底圖
fig_1 = plt.figure(figsize=(12,14))
ax = fig_1.add_axes([0.3,2.6, 0.6, 0.5] , projection=ccrs.PlateCarree())
這時(shí)候運(yùn)行命令的話一張地圖就出來了徊件,比如我要添加北美的矩形框,就要使用patches的命令悼潭,并且transform要設(shè)置為PlateCarree庇忌,這時(shí)候就可以。
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
如果想添加矩形的區(qū)域要使用transform=ccrs.PlateCarree舰褪,如果你設(shè)置為Robinson是沒有結(jié)果的,這里要注意一下就行疏橄。
ax.add_patch(mpatches.Rectangle(xy=[-170, 25], width=120, height=45,
facecolor='blue',
alpha=0.5,
transform=ccrs.PlateCarree() ) )
當(dāng)然為了好玩也可以設(shè)置為其他的占拍,比如 transform=ccrs.Geodetic
這個(gè)Robinson投影我用的不太多,還是比較喜歡PlateCarree投影捎迫。最近看論文晃酒,發(fā)現(xiàn)一些好的期刊都喜歡用Robinson投影來研究全球的一些氣象信息,比如季風(fēng)窄绒,溫度等贝次。不深究,應(yīng)該有他獨(dú)特的含義吧彰导。
總結(jié)
沒什么好說的蛔翅,純粹記錄總結(jié)