数値データの取り扱いの初歩

  1. 数値データの取り扱いの初歩

1. 数値データの取り扱いの初歩

[1.1] 簡単なグラフを書く

まずは gnuplot を使って sin(x) のグラフを書いてみましょう.
$ gnuplot
gnuplot>  sin(x) 

この他にも自分で好きなグラフを書いてみましょう. gnuplot の詳しい使い方は gnuplot のホームページ などを参照してください. ruby のスクリプトを作成してグラフを書くこともできます. 以下のスクリプトをダウンロードして実行してみましょう.

[1.2] ruby

ruby はまつもとひろゆき氏によって開発されているオブジェクト指向 のスクリプト言語です. ruby を使ったスクリプトの例としてシェルスクリプトの課題を 解決する ruby スクリプトを挙げます. こちらを見て 各自で作成したシェルスクリプトと比較してみてください. メソッドとは オブジェクトとは GPhys については GPhys のホームページを参照してください.

[1.3] netCDF ファイルの中身を見る

まずは netCDF ファイルの中身を見てみましょう. 実験を行なったディレクトリに行き, ファイルの中身を見ます.

$ ncdump Temp.nc | less

これで, メタデータには何が書かれているかを確認してください.

このようにして netCDF ファイルの中身を確認することができます. 中身がわからなくなってしまった netCDF データについては, メタデータを確認するようにしましょう.

では, 次に温度のデータの軸を確認しましょう. 温度が

[1.4] 作図スクリプトを作成して大気の状態を眺める

前回, irb を使って図を 1 枚かきました. ここではその内容をスクリプトに保存して同じことができるようにしましょう. やり方は簡単です.

スクリプトの簡単な解説です.

snapshot.sh で3 年計算のデータの図を書こうとすると エラーが出るかもしれません. その場合は open の箇所で

gphys = GPhys::IO.open('Temp.nc', 'Temp').cut('time'=>730..1095)
などと時間範囲を指定してください. 上記の例では, 730 日目から 1095 日目 (3 年目の 1 年間) のデータ を gphys オブジェクトに読みこみます.

ここまでは瞬間値の図 (スナップショットと言います) を書いてきましたが 時間範囲を指定して時間平均の図も作ってみましょう.

スクリプトを使って他の物理量の図も書いてみる.

画像ファイルの保存方法. 作成した図をファイルに保存するには, スクリプト中において
DCL.gropn(2)
と変更します. これでスクリプトを走らせると, 画像の pdf ファイルが生成されます. ただし, この pdf ファイルは画像が横倒しになってしまって いますので, 回転させる必要があります. 画像を回転させ, 更に png 形式に変換するには以下のようにします.
$ convert -rotate 90 dcl.pdf Temp_zonalmean.png

[1.5] 水に関する量をいくつかかいてみる

降水量と蒸発量のデータを使って簡単なデータ処理をやってみましょう.

snapshot.rb を改変して, 降水 (PRCP.nc) と地表面蒸発フラックス (SurfH2OVapFlux.nc) それぞれの 1 年平均の水平分布図を作ってみましょう.

snapshot.rb を更に改変します. 降水を gphys_prcp オブジェクトに, 蒸発を gphys_h2ovapflux オブジェクトに読みこむように しましょう. その上で降水と蒸発の差 gphys_prcp - gphys_h2ovapflux の 平面分布の図を描くように変更してください.

次に東西平均の図を作りましょう. snapshot.rb を壊変して, 降水, 蒸発, 降水と蒸発の差の東西平均グラフを描いてみましょう.

最後に全球平均値の計算もやる (これは時間が足りないかも). PRCP を全球平均するスクリプトを渡す (まだスクリプトできてない). そのスクリプトを以下のように改編する.

[1.6] 課題に向けて

季節ごとの図を作ってみる? 説明はもっと丁寧に. それぞれのスクリプトを渡すぐらいの方が良いかも. 意味はわからせないと. できるかどうかは VTA にやってもらうしか無いのでは

>> 次ページへ

最終更新日: 2017/05/13 石渡 正樹 2017年度用に改訂 Copyright © 2000-2016 inex