-
各情報実験機の
/work/inex_2005_kadai/
以下のディレクトリに2004年6月から2005年9月までの
人工衛星によって撮影された1時間おきの全球赤外画像(jpeg)が置いてあります.
ディレクトリ名やファイル名は
/work/inex_2005_kadai/YYYY/MM/DD/qlYYMMDDhh.jpg
となっていて, YYYY: 年, MM: 月, DD: 日, hh: 時, を表しています.
次の一覧から, 自分の情報実験機名に該当する期間の画像を
以下の手順に従って結合し,
動画(mpeg)ファイルを生成するスクリプトを作成してください.
joho01: 2004/06
joho02: 2004/07
|
joho04: 2004/08
joho05: 2004/09
|
joho07: 2004/10
joho08: 2004/11
|
joho10: 2004/12
joho11: 2005/01
|
joho13: 2005/02
joho14: 2005/03
|
joho16: 2005/04
joho17: 2005/05
|
joho19: 2005/06
joho20: 2005/07
|
joho22: 2005/08
joho23: 2005/09
|
手順:
- まず, /work/以下に次のようなディレクトリを作成してください
(userは自分のアカウント名).
/work/user/
/work/user/jpg/
/work/user/mpg/
- 作成するシェルスクリプトファイルはuser/の下に
置いてください.
- jpg/は.jpgファイルを格納するために用いてください.
- mgp/はこれから作成する.mpgファイルを格納するために
用いてください.
- 上述のようにファイルは年月日時に対応した名前がつけられています.
これらのファイルを日付時間順にtmp00000000.jpgから始まる
通し番号に直してください.
例:
ql04060100.jpg
→ tmp00000000.jpg
ql04060101.jpg
→ tmp00000001.jpg
:
ql04060123.jpg
→ tmp00000023.jpg
ql04060200.jpg
→ tmp00000024.jpg
(注意)
- ファイルが通し番号順になっていないと,
次のコマンドでエラーが発生し,
動画ファイルを作成することができません.
- また, きちんと連番になっていない
(数字が続いていない) 場合,
そこで途切れてしまい, 1か月分の完成した動画ができあがりません.
- ファイルが欠けている(ある日時のファイルがない)
場合があるので注意してください.
欠損データのリスト /work/inex_2005_kadai/missing_value.txt
を利用しても良いでしょう.
- 日付が変わるところをうまく処理するのがこの問題の肝です.
- ファイル名を通し番号順にしたファイルから動画 (mpeg) ファイルを
作成するには /work/user/ に移動し, 以下のコマンドを使用します.
jpeg2yuv -f 1 -I p -j ./jpg/tmp%08d.jpg | mpeg2enc -a 1 -f 3 -b 5000 -F 5 -q 1 -o ./mpg/cloudmovie.mpg
詳細は省きますが, これは複数の静止画(jpeg)ファイルを結合して
動画ファイル(mpeg)を作成するためのコマンドです.
- ./jpg/tmp%08d.jpgは通し番号順のファイルを順番に読み込むように
指定している部分です.
- ./mpg/cloudmovie.mpgは作成される動画ファイル名です.
- このコマンドを実行するときに自分のいる
(シェルスクリプトのある)ディレクトリと.jpgファイルのある位置,
.mpgファイルを作成する位置の注意してください.
- 動画ファイルができたら以下のコマンドで再生し, 内容を確認します.
mplayer -speed 1.0 mpg/cloudmovie.mpg
最後の数値部分で再生速度を変更できます.
例えば, 0.5とすると再生速度が1.0のときの0.5倍になります.
再生中の操作方法
一時停止, 再開
|
Space キー
|
停止
|
q キー
|
巻き戻し
|
← キー
|
早送り
|
→ キー
|
再生速度アップ
|
] キー
|
再生速度ダウン
|
[ キー
|
雲の動きがでたらめな変化をすることなく, 滑らかに動いていますか?
動画の左上の部分に日時が表示されているので,
正しい時系列で再生されていること, 途中で動画が途切れていないこと
を確認してください.
- スクリプトが完成したら, 以下のものをレポートとして投稿・掲載して下さい.
- 作成したシェルスクリプト
- シェルスクリプトのファイル名と完成したmpegファイル名(絶対パスで)
(例: /work/kk/mkcloudmovie.sh, /work/kk/mpg/cloudmovie.mpg)
- 完成した動画を見た感想.
- 工夫, または苦労した点.
- 作業協力者がいれば必ず書く.
- 参考文献も掲載すること.
(人のレポートを参考にした場合もちゃんと書くこと).
- 余力のある人は任意の期間, 時間幅の動画ファイルを作成するスクリプトを
作ってみるのもいいでしょう.
- ヒントはこの授業で使用したテキストを始めとする WWW サイトにあり!
検索エンジン等を用いてものを調べる練習をしよう.
- コマンドの使い方が分からなくなったら
man で調べよう!
- やり方は一通りではない.
どうすれば一番楽か作業の順序立てを最初に考えよう.
- 沢山のファイルに同じ処理を施すには,
メタキャラクタや
ループ処理が便利.
- パイプを活用して
複数のコマンドを組み合わせてみよう.
- 文字列の操作 (英数字の変換) には,
sed や
tr
というコマンドが有効となるでしょう.
cat,
リダイレクトもキーワード.
- 文字列の解釈には,
grep
のコマンドラインオプションも有効であるようです.
- jpeg 画像の表示には qiv や
display というツールで
表示することができます. ウィンドウを閉じる場合に
q を押します.
- スクリプトの書き方にもよりますが, リネーム & 結合する
ファイル数が多いのでスクリプトの実行には数分程度の時間が
かかるかもしれません.
いきなり全ての期間を結合しようとすると, スクリプトの間違いなどの
発見が大変ですから, 初めは3日とか1週間など
短い期間で試し, うまくいったら
全ての期間を結合するなどの工夫をしましょう.
- (上級者向け)
大量のデータをコピーするとディスクアクセスに時間がかかります.
先週のシンボリックリンク
を活かせば処理を高速に出来ますよ…?
- ヒントや手順書に囚われず, 自由な発想をしよう.
ちょっと難しい様ですが... 健闘を祈ります!!
- Linux 上の firefox, vi での日本語入力の方法
firefox
や vi
と入力する前に,
export LC_ALL=ja_JP.eucJP
と
入力し, 言語環境を日本語にしてください.
入力状態で シフトキー (Shift)+ スペースキー (Space) を押すと
[あ]という表示がでて日本語入力が可能になります.
また日本語入力を終える際も同様に Shift + Space を押してください.
なお, 切り替えの際, 「Num Lock」や「Caps Lock」が有効に
なっていると 日本語⇒英語 の切り替えが不可能になる症状が
発見されました. 切り替えできなくなった際はチェックしてみてください.
- Linux X-window system における文字のコピー and ペースト
以下の要領でコピー and ペーストできます
(最初うまく出来なくても 何度か試せば慣れるでしょう).
コピーしたい文字列にマウスポインタをもっていき 左クリックをしたまま
コピーしたい最後の文字まで移動させます
[これによりコピーしたい文字列の表示が白黒反転していることを確認すること].
そのままマウスポインタをコピー先に移動(ドラッグしなくて良い)させ,
マウス中央ボタンをクリック(2ボタンの場合 左右を同時にクリック)します.
- レポートの複数分割について
2005 年度の課題は, シェルスクリプトの量が多くなった場合,
1 つのレポート投稿可能な量を超えてしまう可能性があります.
その場合には, レポートを複数に分割して投稿してください.
過去の INEX の後半のレポートが良い例になると思います.
[例]
(INEX トップページ → 右下の「過去の情報実験資料」→ 「200? 年度」→
「レポート投稿システム」→「レポート閲覧」)
始めからブラウザ (firefox) でレポートを作成するのではなく,
vi で一通り内容を作成してからコピー and ペーストを行うと,
ブラウザの異常終了や「進む」, 「戻る」の操作間違えで書きかけの
レポートが消えてしまうということが無くなるので,
こちらの方法をオススメします.
なお, 1つのレポートに投稿できるのはおおよそ 3000 バイト
(半角英数字 3000 文字 ≒ 全角日本語 1500 文字) です.
今回は,
高知大学気象情報頁
で公開されている画像を利用して動画作成を行いました.
ここでは他にも様々な画像データを入手可能です.
<< 戻る
(シェルスクリプト)
最初へ >>
(実習の前準備)
情報実験 第4回 のトップへ >>