本日の課題:シェルスクリプトの作成
本日の実習の内容+αを用いて, 動画を作るシェルスクリプトを組んでみましょう.
課題概要
各情報実験機には課題データ /home/wataken/script_kadai/homework.tar.gz が置かれています.
課題データの中に格納されている衛星画像を適切につなげてgif 動画を作成するシェルスクリプトを作成してください.
suu には,(1) 上記のシェルスクリプト,(2) 課題に関するコメント,を提出してください (以下の提出内容参照).
課題データ詳細
課題データ(homework.tar.gz) を解凍すると,kadai という名前のディレクトリができます.
kadai ディレクトリの中には画像ファイルが 750 枚,テキストファイルが 750 枚格納されています.
それぞれの説明は以下の通りです.
- 画像ファイル: IMG_0001.png ~ IMG_0750.png
- テキストファイル: SRC_0001.txt ~ SRC_0750.txt
- 画像ファイルに関する情報が記述されたテキストファイル (以下このファイルを単に「テキストファイル」とする) です.
- テキストファイルの名前にある数字 (例: SRC_0020.txt) と同じ数字が付いた画像ファイル (例:IMG_0020.png) は対応しています.
- テキストファイルには,対応する画像ファイルが衛星画像の場合であれば撮影日時"YYYYMMDDHHmm" が,ダミー画像の場合には"dummy" という文字列が書かれています.
- 衛星画像例 画像ファイル[IMG_0295.png]
- ダミー画像例 画像ファイル[IMG_0023.png]
ここで"YYYY" は西暦年(例: 2015 年=> 2015), "MM" は月(例: 5 月=> 05),"DD" は日(例: 1 日=> 01),"HH" は時(例: 午前0 時=> 00, 午後8 時 => 20 ),"mm" は分(ex. 00 分=> 00)です.
例えばテキストファイルに"201502100900" と書かれていれば,これは2015 年 2 月 10 日 午前9 時 00 分 を表しています.
テキストファイル[SRC_0295.txt]
テキストファイル[SRC_0023.txt]
課題詳細
今回の課題で作成するgif 動画とディレクトリ構造の完成見本は,それぞれgif 動画例とディレクトリ構造例のようになります.参考にしてください.
なお, 皆さんにお配りする課題データとは異なるデータを用いているので同じgif 動画にはなりません.
事前準備として,自分のホームディレクトリ以下に作業ディレクトリ(例: work ディレクトリ) を作成してください.
課題の作業は全部この作業ディレクトリ以下で行ってください.
なお作業ディレクトリ以下はレポート提出後,TA, VTA が仕様を満たしているか確認するまで削除しないでください.
シェルスクリプト(名前: mkanim.sh ) は実行(./mkanim.sh)した際に以下の仕様を満たすように作成してください. そのシェルスクリプトには実行権限を与えてください.
シェルスクリプトの仕様
シェルスクリプトは実行(./mkanim.sh) した際に,以下の動作を全て行うようにすること.
- 作業ディレクトリ以下に各情報実験機の /home/wataken/script_kadai に置かれた課題データ (homework.tar.gz) をコピーする.
- 課題データを解凍する (解凍方法は,「5. [付録] データの圧縮・解凍」を参照) .
- 解凍してできた kadai ディレクトの中に "src" という名前のディレクトリを作成し, そこに衛星画像を全て格納する.
ここで,画像ファイル名は (撮影日時).png の形式に変更する.撮影日時の表し方に関してはテキストファイルに記述されている YYYYMMDDHHmm と同じものとする(例: 201502100900.png). - 解凍してできた kadai ディレクトリの中に "dummy" という名前のディレクトリを作成し,そこにダミー画像を全て格納する.
ここで,画像ファイル名は"dummy_XX.png" (例: dummy_01.png, dummy_02.png...) として順番に番号をつける. - 解凍してできた kadai ディレクトリの中に "true" という名前のディレクトリを作成する.
"kadai/true" ディレクトリには,情報実験機番号ごとに指定された期間 (下記の指定期間参照) の衛星画像のみを格納する.
画像ファイル名は (撮影日時).png の形式とする.ここで,撮影日時の表し方に関してはテキストファイルに記述されている YYYYMMDDHHmm と同じものとする(例: 201502100900.png).
衛星画像中にテキストファイルにある撮影日時いれる.その際,撮影日時を表す文字列は地球と重ならないようにする.(衛星画像に撮影日時を入れた例 ) - "kadai/true" ディレクトリ以下にある衛星画像を撮影日時順につなげて,gif 動画にする.
- ここで画像一枚当たりの表示時間は0.2 秒とする.
- 完成した gif 動画のファイル名はkadaianim.gif とし, 作業ディレクトリ直下に置く.
- 作業ディレクトリ以下のディレクトリ構造を "kadai_tree.txt" ファイルに出力する.
- firefox を起動して,gif 動画を再生する.(2016/07/05 変更 「以前 : iceweasel を起動して gif 動画を再生する.」)
指定期間
それぞれの情報実験機番号に対応した期間は以下のようになります.
いずれも二週間分です.
- joho01-joho05 : 2015/05/08/12:00 - 2015/05/22/11:00
- joho07-joho11 : 2015/08/12/00:00 - 2015/08/25/23:00
- joho13-joho17 : 2015/12/04/00:00 - 2015/12/17/23:00
- joho19-joho23 : 2016/02/16/12:00 - 2016/03/01/11:00
提出内容
以下のものをsuu に投稿してください.
- シェルスクリプト(タグ : [2016] 3-1. シェルスクリプト本文)
- 作成したシェルスクリプトmkanim.sh の全文
- 課題に関するコメント (タグ : [2016] 3-2. 課題に関するコメント)
- 作成したgif 動画を見て,気象や大気循環などに関して考察した点
- 工夫,または苦労した点.
- 作業協力者がいればその名前, 参考文献(人のレポートを参考にした場合もしっかり挙げること).
- その他コメントなど.
- 「ファイルアップロード」から以下のファイルをアップロードし,このタグのレポートにリンクを貼ってください.
- diary.sh(スクリプトファイル)
- diary.tar.gz("diary"ディレクトリの圧縮ファイル)
注意点
- 情報実験機で作業する場合には本日の事前準備を参考に x window system を立ち上げる.
- 衛星画像には画像の欠け(例: 北半球の一部が無い) や黒い点が存在するものがあります.
これは衛星の撮影時の影響を受けたものなので問題はありません.構わずに作業をしてください.
困ったときは
- わからないことがあったらまずは文献(過去のレポート含む)あるいはインターネット上の検索エンジンを利用しましょう.
- やっぱりわからないときは友達と相談しましょう.
- どうしてもわからないときは inex2016-ml を活用しましょう. あなたの質問は人の助けになるかもしれません.
- もちろん直接 TA・VTA をつかまえてもけっこうです(8 号館二階にいると思います).
ヒント
- やり方は一通りではない. どうすれば一番楽か作業の順序立てを最初に考えよう.
- コマンドの使い方が分からなくなったらman で調べよう!
- 沢山のファイルに同じ処理を施すには, メタキャラクタや ループ処理が便利.
- パイプを活用して 複数のコマンドを組み合わせてみよう.
- 一つのコマンドでも オプション によって様々な機能を発揮します. man や Web サイトで いろいろ調べてみるべし.
- cat, grep,sed,awk等のよく使われる便利なコマンドを調べてみよう!
- 画像処理等に便利なimagemagick の使い方
- ヒントに囚われず, 自由な発想をしよう!!
参考文献
本課題の画像データは以下のサイトから引用しました
<< 戻る (データ圧縮・解凍とアーカイブ) 最初へ >> (実習の前準備) 情報実験 第 3 回 のトップへ >>