最低限 UNIX / Linux [III]

  1. シェル
    [1.1] シェル (Shell) とは
    [1.2] シェルの役割
    [1.3] 代表的なシェルの紹介
    [1.4] シェルの確認と変更
    [1.5] bash の機能
    [1.6] 環境のカスタマイズ (Bash)
    [1.7] その他のシェル
  1. 最低限 vi
    [2.1] vi とは
    [2.2] ファイルオープン/クローズ
    [2.3] vi の基礎 - 状態遷移
    [2.4] vi の基礎 - コマンドモード
    [2.5] vi の基礎 - 挿入モード
    [2.6] 実践編
    A 参考 [vi の応用]
  1. シェルスクリプト
    [3.1] シェルスクリプト入門
    [3.2] シェルスクリプト応用
    A 参考 [特殊記号の復習]
  1. gpview
    [4.1] gpview とは
    [4.2] gpview の使い方
  1. 本日の課題
    課題
    ヒント
    投稿の前に
<< 情報実験第4回トップへ

5. 本日の課題

課題

  1. A さんは数値計算を行ない, KH_Km.nc, KH_VelX.nc, KH_VelZ.nc, KH_BasicZ.nc の各 netcdf ファイルを得た. 各ファイルには乱流拡散係数 Km, 水平速度 VelX, 鉛直流速 VelZ, 密度 DensBasicZ のデータが含まれている. 計算結果を確認する為に, 以下のコマンドを用いて Km, VelX, VelZ, 運動エネルギー 0.5 x DensBasicZ x (VelX x VelX + VelZ x VelZ) の t = 0 -- 1000 sec における 200 sec ごとの絵を描いた (t = xxxx には各時刻が入る). ここで draw_KH-Energy.rb は A さんが運動エネルギーを描く為に作った ruby スクリプトである.

      $ gpview --wsn 4 --cint 0.3 --range 0.0:1.5 KH_Km.nc@Km,t=xxxx 
      $ gpview --wsn 4 --cint 1.0 --range -5.0:13.0 KH_VelX.nc@VelX,t=xxxx 
      $ gpview --wsn 4 --cint 0.5 --range -3.5:3.5 KH_VelZ.nc@VelZ,t=xxxx 
      $ ruby draw_KH-Energy.rb --Time xxxx --range 0.0:12.0 
     
    A さんは計算結果を見て 50 sec ごとに絵を描き直そうと思い立った. そこで A さんは以下の条件を満たす描画用シェルスクリプトを作ることにした.
    • 200 sec ごとに描いた絵を重複して描かずに, 今まで描いていない絵だけを描く. つまりスクリプト中で描くのは 50, 100, 150, 250, 300, 350, 450, ... sec の絵である.
    • スクリプト中で描画を行なう際, 等値線の間隔 cint 及び変数の値域 range で指定する値は上記のコマンドでの値をそのまま用いる.
    • 4 つの物理量を同時に表示した画像を作る. 左上に VelX, 右上に VelZ, 左下に Km, 右下に運動エネルギー という並びとする. このとき元々存在する 200 sec ごとの絵もそのまま使うこととする.
    • 4 つを同時に表示する画像を結合して 50 sec ごとの gif アニメーション を作る. 但し動画の 1 コマの表示時間(実時間)を 0.50 秒とする.
    これらの条件を満たすにはどのようなシェルスクリプトを作ればよいか?

    手順:

      0. 先ず, wget コマンドなどを用いて, 
         事前に以下の URL より netcdf ファイルを入手しておいて下さい. 
         また, 200 sec ごとに描いた画像と, 
         運動エネルギーを描画する為の ruby スクリプトも用意しましたので, 
         これも入手しておいて下さい. 
         200 sec ごとに描いた画像については, 
         スクリプトが作りやすいように画像名を変えてもらって構いませんが, 
         レポートに変えた旨を記述して下さい. 
    
        http://www.ep.sci.hokudai.ac.jp/~inex/y2010/0507/jitsugi/KH_Km.nc
        http://www.ep.sci.hokudai.ac.jp/~inex/y2010/0507/jitsugi/KH_VelX.nc
        http://www.ep.sci.hokudai.ac.jp/~inex/y2010/0507/jitsugi/KH_VelZ.nc
        http://www.ep.sci.hokudai.ac.jp/~inex/y2010/0507/jitsugi/KH_BasicZ.nc
        http://www.ep.sci.hokudai.ac.jp/~inex/y2010/0507/jitsugi/draw_KH-Energy.rb
        http://www.ep.sci.hokudai.ac.jp/~inex/y2010/0507/jitsugi/figdir/*.png
    
         wget コマンドで figdir 内の png 画像を取得するには, 
         例えば以下のようにオプションを指定すると良いでしょう
         (オプションの意味が気になる人は各自調査してみてください). 
    
         $ wget -r -l1 -nd -A.png http://www.ep.sci.hokudai.ac.jp/~inex/y2010/0507/jitsugi/figdir/ -P figdir
    
      1. gpview や ruby スクリプトを使って絵を描きます. 
    
      2. 同時刻における 4 つの物理量の画像を 1 枚の画像に結合します. 
    
      3. 画像を作ったら, それらを gif アニメーションに変換します. 
         画像が時系列の順番に並ぶようにアニメーションを作成しましょう. 
         その為には例えば画像に xx01.png, xx02.png ... 
         と通し番号を付けると良いでしょう. 
     

  2. 以下のものをレポートとして投稿・掲載して下さい.
    1. 作成したシェルスクリプト(解を沢山見つけたら, 複数個投稿してもらって構いません. )
    2. シェルスクリプトのファイル名(絶対パスで)
      (例: /home/yamasita/0507/kadai.sh)
    3. 完成した動画に関して, その様子を記述せよ.
    4. 工夫, または苦労した点
    5. 作業協力者がいれば必ず書く. 参考文献も掲載のこと.

<ヒント>


[レポート投稿の前に]




<< 戻る (gpview)      最初へ >> (実習の前準備)      情報実験 第4回 のトップへ >>

最終更新日: 2010/05/06(山下 達也) Copyright © 2010 inex