% 表題 地球流体電脳倶楽部 ごくらく GTOOL3   グラフ描画
%
% 履歴
\Drireki{92/09/21  沼口 敦}     % howtoloo.doc(92/09/21)
\Drireki{97/02/21  余田 成男}
%

\Dchapterhead

この章では, 文字出力(\verb!gtshow!), および, 等値線図(\verb!gtcont!), 
折れ線図(\verb!gtcurv!), ベクトル図(\verb!gtvect!) の基本描画を概観す
る. それぞれの詳細は「格子点データ解析ツールGTOOL3 利用の手引」(第8章 
サンプルプログラム)を参照のこと. また, dclのオプションを使った簡単なア
ニメーション表示についても述べる.


\section{文字出力：gtshow}

GTOOL3用のデータはバイナリ形式で書かれているので, そのままでは読めない. 
この中身を文字で確認したいときは, \verb!gtshow! コマンドを使う.
\begin{verbatim}
% gtshow sst.data
\end{verbatim}
ただ単に \verb!gtshow! とすると, データが全部出てくる. ヘッダ部分だけ
を出力するには, 
\begin{verbatim}
% gtshow -head sst.data
\end{verbatim}
と, オプション \verb!-head! をつければよい. データの内容がよくわからな
いときには, このようにしてヘッダ情報を得ることができる.      
\vspace{1em}

ある格子点の値だけを確認するには, 
\begin{verbatim}
% gtshow x=10 y=10 sst.data
\end{verbatim}
とすればよい. やはり, ヘッダ情報が出て, そのあとに格子点番号とそこでの
値が出力される.



\section{等値線図：gtcont}

スカラー量の2次元データを等値線図であらわすコマンドが \verb!gtcont! で
ある. カラーディスプレイの使用がデフォルトである. モノクロディスプレイ
の場合にはエラーメッセージが出るので, \verb!-mono! というオプションを
つける.


\subsection{2次元データのコンター表現}

まず, 水平2次元データである \verb!sst.data! を具体例に, 等値線図描画コ
マンド \verb!gtcont! でどのようなグラフ化が可能かを概観する. 何もオプ
ションを指定せずに,
\begin{verbatim}
% gtcont sst.data 
\end{verbatim}
とすると, AGCM5で境界値として与えるSSTデータの経度-緯度分布図がXウイン
ドウに描かれ, 様々な情報が上下左右に表示される.
\vspace{1em}

GTOOL3では, 基本的にdcl-5で図を描いている. dclでさまざまなグラフ表現が
可能であったように, GTOOL3でもオプションを陽に指定することにより, さま
ざまな表現が可能となる. コンター間隔を自分で指定したい場合には,
\begin{verbatim}
% gtcont cont=5 sst.data
\end{verbatim}
とすれば, 等値線が5単位(いまの場合は5K)ごとに引かれる. 
\vspace{1em}

指定した値の範囲にある領域にトーン(陰影)をかけるには, 次のようにする：
\begin{verbatim}
% gtcont tone=260,280 pat=15 sst.data
\end{verbatim}
これで, 値が260から280の間の領域が, dclのトーンパターン番号15のパター
ンでぬりつぶされる. \verb!pat!オプションで指定するdclのトーンパターン
については, 地球流体電脳ライブラリマニュアル「GRPH1」を参照のこと.
\vspace{1em}

上の例で, 5桁のトーンパターン番号を指定(例えば, \verb!pat=30999!)すれ
ばカラーのトーンになるが, \verb!color! オプションを指定すれば簡単にカ
ラーで等高線図を塗り分けることもできる：
\begin{verbatim}
% gtcont color=40 sst.data
\end{verbatim}
この場合, 最大40色で適当に塗り分けられる. このとき, コンターも重ねて描
かれるが, それをやめるには, 
\begin{verbatim}
% gtcont color=40 -nocont sst.data
\end{verbatim}
と, \verb!-nocont! のオプションを指定すればよい. 
\vspace{1em}

地図投影法を変えるには, prjオプションを使う：
\begin{verbatim}
% gtcont prj=33 sst.data
\end{verbatim}
\verb!prj! オプションで指定するdclの地図投影番号については, 地球流体電
脳ライブラリ「GRPH1」「サンプル集」を参照のこと. ちなみに, 33番はラン
ベルト正積方位図法である. さらに, 海岸線を重ねて描きたいときには, map
オプションを使う：
\begin{verbatim}
% gtcont prj=33 map=1 sst.data
\end{verbatim}


\subsection{平均図・断面図}

空間3次元データが与えられたときに, ある空間軸に沿って平均をとるか, ま
たは, ある座標値での断面をとると, 2次元のデータとなる. 3次元データの時
系列 \verb!t.data! を与えて, \verb!gtcont! のデフォルトで等値線図を描
いてみる：
\begin{verbatim}
% gtcont t.data
\end{verbatim}
描かれた図は, 温度の鉛直平均された値の経度-緯度分布である. 右上に小さ
な字で vert mean と表示されている. デフォルトでは, 3次元データを鉛直平
均して, その水平分布を等値線図に描く. Xウインドウ中でマウスの左クリッ
クをすると次の日の分布図に変わり, 40日分が表示される. これは, 「ごくら
くAGCM5体験」で, (ほとんど知らないうちに)そのようなファイル出力をして 
\verb!t.data! などを作ったからである.
\vspace{1em}

このような時系列データで, 描画するためのデータの切り出し始め, 終り, お
よび, 間隔を指定するオプションが, それぞれ, 
\verb!str=!$n_1$, \verb!end=!$n_2$, \verb!step=!$n_3$ である. 例えば, 
\begin{verbatim}
% gtcont str=20 end=30 step=10 t.data
\end{verbatim}
とすると, 20日と30日の2枚の等値線図が描かれる.
\vspace{1em}

オプションで鉛直平均を陽に指定するには, \verb!z=0! とする. \verb!x=0!, 
または, \verb!y=0! とすれば, x軸(経度)またはy軸(緯度)に対する平均を指
定することになる. 例えば, 20日と30日の東西平均値の緯度-高度分布を描く
には,
\begin{verbatim}
% gtcont str=20 end=30 step=10 x=0 t.data
\end{verbatim}
とすればよい. 右上の小さな字による表示は zonal mean となる. 
\verb!y=0! では merid mean と表示される.
\vspace{1em}

上の例のようにある軸に沿って平均をとるのではなく, ある格子点での断面図
を描くには, \verb![x,y,z]=!$n$ という形式で格子点番号を指定する. ここ
で, 記号 \verb![x,y,z]! は, \verb!x!, \verb!y!, \verb!z! のいずれかを
選ぶことを表し, $n$は格子点番号($=1, 2, \cdots$)である. 例えば, ある経
度での緯度-高度断面なら,
\begin{verbatim}
% gtcont str=20 end=30 step=10 x=5 t.data
\end{verbatim}
とする. これで, 軸ファイルで指定した5番目のx座標値での断面図となる. 経
度の値は, やはり右上に小さな字でGLON32=45.0と表示される. 



\subsection{プリンタ出力}

デフォルトでは, データに関する多くの情報が図の上下左右に書き出される.
清書の時など, 余計な文字情報を消して画面を大きくするには, 
\verb!lay=[1,2,3]! オプションを使う：
\begin{verbatim}
% gtcont str=20 end=30 step=10 x=0 lay=3 t.data
\end{verbatim}
\verb!lay=1!がデフォルトで, \verb!lay=3!と指定すると, 右側に示されてい
た多くの情報が表示されず, 等値線図も拡大される. タイトルを変えるには,
\verb!title! オプションを指定する. 文字型のオプションの指定は,
\begin{verbatim}
% gtcont str=20 end=30 step=10 x=0 lay=3 title:"Zonal Mean Temperature" t.data
\end{verbatim}
のように, \verb!:! と \verb!"! を用いる. これで, タイトルに空白も挿入
できる.
\vspace{1em}

プリンタ出力用にpsファイルを作るには, 
dclのワークステーション番号を \verb!wsn! オプションで2に指定する：
\begin{verbatim}
% gtcont str=20 end=30 step=10 x=0 lay=3 title:"Zonal Mean Temperature" wsn=2 t.data
\end{verbatim}
これで, 環境変数 \verb!$GTTMPDIR! で設定したディレクトリ(設定しなけれ
ばカレントディレクトリ)の下に, psファイル \verb!dcl.ps! ができる. そこ
で, \verb!lpr! すればよい. 図\ref{f:graph1}は, このようにして出力した
結果の一例である.

\begin{figure}
\begin{center}
\Depsf[10cm]{graph/f:graph1.eps}
\caption{gtcontの出力例.}
\label{f:graph1}
\end{center}
\end{figure}


\section{折れ線図：gtcurv}

空間2次元データが与えられたときに, ある空間軸に沿って平均をとるか, ま
たは, ある座標値での断面をとると, 1次元のデータとなる. また, 空間3次元
データが与えられたときに, 2つの空間軸で張る平面平均をとるか, 2つの座標
軸を切る2断面を指定すると, 残った空間軸に対する1次元のデータとなる. こ
のような1次元のデータの折れ線図を描くには, \verb!gtcurv! コマンドを使
う.
\vspace{1em} 

\subsection{1次元データの折れ線表現}

まず, 水平2次元データ \verb!sst.data! で東西に切ったり(\verb!y=!$n$), 
南北に切ったり(\verb!x=!$n$)してみよう：
\begin{verbatim}
% gtcurv x=1 sst.data
\end{verbatim}
ここでの座標値の指定の仕方は, \verb!x=0! ならば 東西平均, 
\verb!y=0! ならば南北平均である. このオプションを省略したときは, デフォ
ルト \verb!x=0! となる. 
このようにオプションは基本的に \verb!gtcont! と同じである.
\vspace{1em}

線種の変更などは, dclに従って行なえる. オプション \verb!lidx=!$n_1$,
\verb!ltype=!$n_2$ で, 折れ線のラインインデックスとラインタイプが変更で
きる：
\begin{verbatim}
% gtcurv lidx=308 ltype=2 sst.data
\end{verbatim}


\subsection{平均図・交線図}

空間3次元データの場合には, デフォルトでは, 鉛直平均と東西平均をした結
果の緯度依存性を示す折れ線が描かれる：
\begin{verbatim}
% gtcurv str=40 end=40 t.data
\end{verbatim}
これで, 40日目だけの折れ線図が描かれる. 断面を2つ陽に指定すると, その
交線に沿った折れ線図が描かれる：
\begin{verbatim}
% gtcurv str=40 end=40 y=4 z=3 t.data
\end{verbatim}
右上に表示された情報を見ると, この場合には $\sigma$座標が0.444, 緯度が
49.1度である．
%\vspace{1em}

%ここで, 2つのファイルを指定すると, 2つの折れ線が同じフレー
%ムの中に重ねて描かれる：
%\begin{verbatim}
%% gtcurv x=0 z=1 t.data u.data
%\end{verbatim}



\section{ベクトル図：gtvect}

2次元ベクトル量の2次元分布データを矢印群であらわす
コマンドが \verb!gtvect! である. 2次元ベクトルの各成分を与える2つのファ
イルを指定することになる：
\begin{verbatim}
% gtvect str=40 end=40 z=1 u.data v.data
\end{verbatim}
格子点間隔が細かすぎる場合には, \verb!intv! オプションでデータを間引い
て表示させることも可能である. また, 矢印の長さを変えるには,
\verb!fact! オプションでその拡大率を与えてやれば良い：
\begin{verbatim}
% gtvect str=40 end=40 z=1 intv=2,2 u.data v.data 
% gtvect str=40 end=40 z=1 fact=1.5 u.data v.data
\end{verbatim}



\section{アニメーション}

出力結果をGTOOL3のアニメーションで見てみる(「ごくらくAGCM5体験」で体験
済).
\begin{verbatim}
% gtcont -sw:lalt=T -sw:lwait=F -greset z=4 v.data
\end{verbatim}
ここで, \verb!-sw:lalt=T -sw:lwait=F!は, dclのswpackが管理する内部変数
を置き換えるオプションで, \verb!lalt! を \verb!T! (True),
\verb!lwait! を \verb!F! (False) と指定することにより, アニメーション
表示が可能となる(1ページの画面が比較的短時間で作画できる場合). 詳細は, 
地球流体電脳ライブラリ「GRPH1」第7章を参照のこと. また, \verb!-greset! 
は, 風速のコンター間隔を結果の値に応じて変えるようにするためのオプショ
ンである. デフォルトでは, 風速のコンタ─間隔が2.5m/sに固定されてい
る. \verb!z=4! で下から4レベル目を選択し, 南北風 V の水平面コンター図
を描いている.
\vspace{1em}

ベクトル図でも同様である.
\begin{verbatim}
% gtvect -sw:lalt=T -sw:lwait=F str=20 z=1 u.data v.data
\end{verbatim}
この例では, \verb!str! で, 時系列データの読み込の始めを指定し, 
最下層 \verb!z=1! での水平風のベクトル図を描いている. 
