next up previous contents index
次へ: 独り立ちの日〜一次処理、またの名をリダクション〜 上へ: iraf_beginners 戻る: imrename(imren)   目次   索引

とっても簡単なルーチンワーク

慣れてくると、同じ処理を対象を変えて繰り返したり、複数のタスクを順番に何 度も実行したりすることが大変苦痛に感じられる時があります14。 なんとかならんもんでしょうか? そこでこういったルーチンワーク (繰り返し処理)をあらかじめ何かのファイルに書いておいて、それを実行させて みます。例えば取得した画像フレームを、処理に入る前に1枚1枚目で確認してい きたいとします。そこでこんなファイルを作成します。

display sample1.fits 1
!sleep 10
display sample2.fits 1
!sleep 10
display sample3.fits 1
!sleep 10
display sample4.fits 1
!sleep 10
display sample5.fits 1
!sleep 10
display sample6.fits 1
これは、 ``sample1.fitsを表示しろ'' の後 ``そのまま10秒眠れ'' を全てのフ レームに関してただ書き並べただけです。!については、6.2 私の出会ったタス クたちを参照して下さい。さて、こうやって書き並べたファイルを実行させれば いいわけです。そのためには久しぶりに新たな儀式を行わなければなりません。 このファイル(そうですね、名前を check.cl とでもしましょうか)をタスクにし てしまう儀式は以下の通りです。

cl> task $watch = check.cl
cl>

儀式はあっけなく終了です。だまされたと思って、watchをやらせてみましょう。

cl> watch

画像が順番に出てくるはずです。実際にあなたのデータで試してみて下さい。こ こで watch が 新しく定義されたタスク名です。1度 IRAFから logout してしま うと、この定義は無効になります。再定義して下さい。

実際には、ある程度順序だったことを書き込んでおけばその通りに動きます。例 えば複数枚あるバイアスフレームをコンバインして、その結果をオブジェクトフ レームから引いて、フラットでオブジェクトを割って…といった具合です。最初 にたった1つのタスクを定義してしまえば、あとはまとめて自動でやってくれま す。ただし、記述に間違いがあった場合にはそこでタスクが終了します。

デバッグ(プログラムやスクリプトといった、この手の記述を修正し役に立つも のに直すこと)はちゃんとやりましょう。6.2でも簡単に触れましたが、オブジェ クトとかバイアスなどといった言葉は然るべき経験(観測や処理)を通じて学んで 下さい15

いろいろ出来るようになった後にここを読むと良いかもしれません。



HAMABE Masaru 平成15年11月27日