$ sudo apt-get install libssl0.9.8 #open-dap版の場合 $ sudo apt-get install netcdf-bin libnetcdf-dev #すでに入っていれば不要 $ sudo apt-get install libx11-dev libjpeg-dev
$ export F2CLIBS=gfortran $ export F2CLIBS_PREFIX=/usr/local/lib $ sudo -E python setup.py install
$ sudo apt-get install libx11-devあとはPythonのパスを通す。
#PyNCL export PYTHONPATH="${PYTHONPATH}:/usr/local/lib/python2.7/dist-packages/PyNGL" export PYNGL_NCARG="/usr/local/lib/python2.7/dist-packages/PyNGL/ncarg" #PyNIO export PYTHONPATH="${PYTHONPATH}:/usr/local/lib/python2.7/dist-packages/PyNIO"
# netcdf4 export NETCDF4_PREFIX=/usr/local/netcdf-4.1.3 export HAS_NETCDF4=1 # hdf5 export HDF5_PREFIX=/usr/local/hdf5-1.8.10 export HAS_HDF5=1 #szip export SZIP_PREFIX=/usr/local/szip-2.1 export HAS_SZIP=1
$ sudo apt-get install libcurl4-openssl-dev
#インポート import numpy, Ngl #描画領域の作成 wks = Ngl.open_wks(wks_type,"ファイル名") #描画領域を引数にプロット plot = Ngl.xy(wks,x,y) Ngl.end() #スクリプトの最後に記述
resources = Ngl.Resources() #リソースの作成 plot = Ngl.xy(wks,x,y,resources) del resources #使わなくなったリソースの削除
data = Ngl.asciiread(ファイル名,次元,型)先頭から順に読み込んでNumPy Array型が返される。次元に-1を指定すると先頭から最後まで読み込んで1次元のNumPy Arrayを返す。
経度次元 u v t 1.00 38.24 1.13 221.66 2.00 36.29 1.18 221.47 3.00 34.46 1.57 221.30
data = Ngl.asciiread("filename",[516],"float") lon = data[0:512:4] u = data[1:513:4] v = data[2:514:4] t = data[3:515:4] lon = (lon-1.) * 360./128. t = (t-273.15) * 9./5. + 32.NumPy Array型の部分配列はarray[開始:終了:間隔]。Pythonのスライスだね。
temp = cdf_file.variables["T"] # temperature lon = cdf_file.variables["lon"] # longitudeあとは部分配列として扱う。
variables: … short hgt(time, level, lat, lon) ; …なら
hgt = cdf_file.variables["hgt"] hgta = hgt[0,0,:,:]
resources.cnMonoLineColor = False #コンターカラーを複数色にする
resources.cnFillOn = True # コンターを塗りつぶす resources.cnLinesOn = False # コンターを表示しない plot = Ngl.contour(描画領域,2次元配列,resources)
resources.xyLineColor = 色番号or"色の名前" resources.xyLineColors = 色番号or"色の名前"のリスト #異なる色で複数プロットの場合
resources.xyMarkLineMode = "Lines" #線のみ resources.xyMarkLineMode = "Markers" #マークのみ resources.xyMarkLineMode = "MarkLines" #線とマーク resources.xyMarkLineModes = ["MarkLines",...] #異なる条件で複数プロット
resources.xyMarkerColor = 色番号 resources.xyMarkerColors = [色番号1,色番号2,...] #異なる色で複数プロット
resources.xyMarkerSizeF = サイズ resources.xyMarkerSizes = [サイズ1,サイズ2,...] #異なるサイズで複数プロットデフォルトのサイズは0.01
resources.xyLabelMode = "Custom" resources.xyExplicitLabels = ["U","V"] # ラベルの文字 resources.xyLineLabelFontHeightF = 0.02 # ラベルのサイズ resources.xyLineLabelFontColor = 2 # ラベルの色
resources.tiMainFont = フォント名 or フォント番号 # タイトル resources.tiXAxisFont = フォント名 or フォント番号 # x軸 resources.tiYAxisFont = フォント名 or フォント番号 # y軸