慣れてくると、同じ処理を対象を変えて繰り返したり、複数のタスクを順番に何 度も実行したりすることが大変苦痛に感じられる時があります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 |
cl> task $watch = check.cl cl> |
儀式はあっけなく終了です。だまされたと思って、watchをやらせてみましょう。
cl> watch |
画像が順番に出てくるはずです。実際にあなたのデータで試してみて下さい。こ こで watch が 新しく定義されたタスク名です。1度 IRAFから logout してしま うと、この定義は無効になります。再定義して下さい。
実際には、ある程度順序だったことを書き込んでおけばその通りに動きます。例 えば複数枚あるバイアスフレームをコンバインして、その結果をオブジェクトフ レームから引いて、フラットでオブジェクトを割って…といった具合です。最初 にたった1つのタスクを定義してしまえば、あとはまとめて自動でやってくれま す。ただし、記述に間違いがあった場合にはそこでタスクが終了します。
デバッグ(プログラムやスクリプトといった、この手の記述を修正し役に立つも のに直すこと)はちゃんとやりましょう。6.2でも簡単に触れましたが、オブジェ クトとかバイアスなどといった言葉は然るべき経験(観測や処理)を通じて学んで 下さい15。
いろいろ出来るようになった後にここを読むと良いかもしれません。