PyGrADS使用實例入門指南

PyGrADS提供了 gacore 類,容許用戶調用任何GrADS 可執行程序,例如: grads, gradsnc, gradshdf, gradsdods, gradsdap等。而且用戶可以像使用函數一樣,把GrADS命令發給gacore類,請看下面的例子:

from grads.gacore import GaCore
ga = GaCore(Bin='grads') # 如果GrADS的版本小於2.0,可以使用ga = GaCore(Bin='gradsnc')
fh = ga.open("http://monsoondata.org:9090/dods/model")
ga("display ps")

實際上,在GrADS大於2.0的版本中,可以更簡潔一點:

import grads #導入庫
ga=grads.GrADS() #使用GrADS客戶端程序,要求GrADS版本大於2.0.0
fh = ga.open("http://monsoondata.org:9090/dods/model") #讀取文件
ga("display ps")   #顯示圖形
ga("printim D:/x.png white") #保存圖形,將背景設爲白色

繪製的圖形如下:

如果你安裝了Numpy,那麼可以很方便地在python和GrADS客戶端之間傳遞數據:

  from grads.ganum import GaNum 
  ga = GaNum()
  ts = ga.exp("ts")  # export variable ts from GrADS
  ts = ts - 273      # convert ts to Celsius
  ga.imp("tc",ts)    # send the NumPy array to GrADS
  ga("display tc")   # display the just imported variable
如果你還安裝了MatPlotLib,那麼繪製圖形將非常輕鬆方便:

  from pylab import contourf
  contourf(ts.grid.lon,ts.grid.lat,tc) 
如果你還安裝了Matplotlib/Basemap,那麼PyGrADS還提供了galab類,容許你使用basemap繪圖:

from grads.galab import GaLab
ga = GaLab()
fh = ga.open("http://monsoondata.org:9090/dods/model") #讀取文件
ga.blue_marble('on')
ga("set lon -180 180")
ga.contour('ua')
title('Zonal Wind')
繪製的圖形如下:

如果將GrADS、MatPlotLib、Pylab結合起來威力更加強大。在GrADS中做統計分析是很不方便的,但是Python中卻非常輕鬆。

例如計算eof(empirical ortoghonal functions):

 ga.open("slp.nc")
 ga("set t 1 41")
 v, d, pc = ga.eof('slp')
更多的內容可以自己去PyGrADS的官方主頁摸索吧!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章