memoring - NCL

導入

Earth System GridからNCAR command Languageを選び最新バージョンの「precompiled binaries, not OPeNDAP-enabled」を選びダウンロード。ダウンロードするにはEarth System Gridのアカウントが必要なのでアカウントを作ってログインしておく。途中使用理由を聞かれるので適当に書く。

ダウンロードしたら適当なところ(今回は/opt/ncl/ncl_ncarg-6.0.0にした)に展開する。あとは環境変数を通すだけ。
# NCL/NCARG-6.0.0_x86_64                                                                         
export NCARG="/opt/ncl/ncl_ncarg-6.0.0"
export NCARG_ROOT="${NCARG}"
export NCARG_BIN="${NCARG}/bin"
export NCARG_LIB="${NCARG}/lib"
export NCARG_INCLUDE="${NCARG}/include"
export NCLCOMMAND="${NCARG}/bin/idt"
export NCL_COMMAND="${NCARG}/bin/ncl"
export PATH="${NCARG}/bin:${PATH}"
export LD_LIBRARY_PATH="${NCARG}/lib:${LD_LIBRARY_PATH}"
起動して以下のメッセージが出ればOK。
$ ncl
 Copyright (C) 1995-2011 - All Rights Reserved
 University Corporation for Atmospheric Research
 NCAR Command Language Version 6.0.0
 The use of this software is governed by a License Agreement.
 See http://www.ncl.ucar.edu/ for more details.
ncl 0> 
OPeNDAP-enabledのバージョンだとssh関係のライブラリで不足があるかもしれない。
ncl: error while loading shared libraries: libssl.so.0.9.8: cannot open shared object file: No such file or directory
などとlibssl関係のライブラリが見つからないと言われたらバージョンを指定してaptで入れる。
$ sudo apt-get install libssl0.9.8

基本

スクリプトの構成はおおむね以下のとおり。
  1. スクリプトのロード
  2. begin~endで囲まれた領域にファイルIO、解析等記述する。
その他特徴としては
  • "";""でコメントアウト
  • オブジェクト指向
  • ""オブジェクト名""@""属性名""の形で属性にアクセス

スクリプトのロード

まず関数の書かれたスクリプトをロードする。自分でまとめたものをロードすることもできる。
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" 

プロット

プロットの流れ
  1. グラフィックの出力先(wks)を作成(X, eps, psファイルなど)
  2. wksと変数を指定してプロット
  3. 線種、色、ラベルなどはresource(変数名などは変数の属性に与えることもできる)というオブジェクトに属性として与えてプロットの際に引数として与える。
wks = gsn_open_wks("x11","名前")                 ;X-windowに出力。ファイル出力の場合はファイル名を指定。  
resources                    = True                           ; リソースを指定する場合はTrue。Falseの場合はデフォルトになる。
resources@xyLineColors        = (/2,3,4/)         ; Define line colors.
resources@xyLineThicknesses   = (/1.,2.,5./) ; Define line thicknesses 

plot = gsn_xy(wks,x,y2,resources)                  ; Draw an XY plot.

ファイルの読み込み

fn  = "83.nc"                                 ;ファイル名
in  = addfile(fn,"r")                       ; open netcdf file
ts  = in->TS                                  ; select variable to ave

*解析のTips

*[[グラフィックのTips>>NCL_graphic]]