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")
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的官方主页摸索吧!