すばる望遠鏡が動きはじめ、データ解析の重要性がますます高まって
きています。データ解析の道具として IRAF を使いこなす必要性もまた
高まってきていると言えるでしょう。
しかしながら、IRAF を使う際に、知っている人には何でもないことで思
わず時間を費やしてしまったり、非効率な手順をとらざるを得なかったり
することが少なくありません。この IRAF ノウハウ集は、そのような無駄を
できるだけ減らし、迅速で能率的なデータ解析を実現するべくノウハウ
を蓄積していくことを目的としたものです。
 この IRAF ノウハウ集は、天文情報処理研究会の後援の下、
東大天文D3の大朝由美子さんが各方面の協力を得て作成したものです。
 このノウハウ集をより良いものにし、より多くの時間を天文学そのものに
注げるようにしていくために、皆様お持ちのノウハウをぜひご提供下さい。
また、皆様のご意見・ご希望をお待ちしています。誤りの指摘も歓迎いたします。
これらは、 iraf-know-how@db01.mtk.nao.ac.jp にお願いします。

なお、米 NOAO 提供のノウハウ集等、 IRAF FAQTips & TricksNewsgroups、 もご参照下さい。

2000年09月19日 天文情報処理研究会

[JAIPA Home]

IRAFノウハウ集 (FAQ)






Q 1 : IRAF を立上げるにはどうすればいいのでしょうか?

A 1 : IRAFを使ったことがあるかどうかで異なります





Q 2 : IRAF を起動しようとしてもうまくいきません。

A 2 : mkiraf を行なったディレクトリ(login.clというファイルがあるディレクトリ)で、 cl を起動しましょう。



Q 3 : kterm上でIRAFを使いたいのですが。

A 3 : もう一度 mkiraf xtermjhs で行なってください。これまでのパラメーターを保存しておきたい場合は uparm を初期化するかどうかのところで no にしてください。なお、ktermは Tek-windowの設定がうまく行われていない場合にTek-windowを使う操作で不都合が起こる場合があるようです。この場合は、kterm & Tek-window の設定を行う、もしくはxgtermなどほかのterminalを使用しましょう。



Q 4 : mkiraf xtermjhs と指定するとどのようなtermからIRAF起動可能ですか?

A 4 : kterm, xterm, xgterm等から可能です。



Q 5 : cl> で display とうっても画像が出てきません。

A 5 : まず、画像を表示させるもの( SAOimage, Ximtool, SAOtng etc.)を起動してください。それから display を実行すると画像が表示されます。



Q 6 : 画像を表示させるときに、いつも im tv.display filename とフルパスで実行しているのですが、簡単にできませんか?

A 6 : 代表的なtaskは最初にロードされているので、pacakage名まで指定しなくても大丈夫です。また、task名は他のtaskと重ならない程度に省略可能で、例えば display disp で実行してもうまくいきます。



Q 7 : 画像を SAOimage に表示すると画像全体が表示されない。

A 7 : displayのパラメーター fill = yes に、 epar displayで編集してください。



Q 8 : Ximtool に 512x512 より大きな画像を表示したいがうまくいかない場合があります(IRAF2.11.3@plamo linux 1.3)。どうすればよいでしょうか?

A 8 : この症状はUNIXでのIRAFには見られない、あるlinux特有の問題のようです。 例えば1024x1024の画像を表示させる場合は以下のように行いましょう。
(1) /usr/iraf/iraf/dev/imtoolrc(/usr/iraf以下にiraf本体がある場合)を自分のホームディレクトリの下にコピーします。
(2) Ximtool -config 3 Ximtool を起動します。
(3) login.cl を編集し、 set stdimage = imt1024 とします。
(4) irafを立ち上げて display で表示させる。
画像の大きさに応じて、 -config 4 (1600x1600の場合)等かえてください。



Q 9 : display で 表示したが、表示の仕方が自動的にスケー リングされてしまい、見にくいのですが表示レンジはどのようにしてかえる ことができるのですか?

A 9 : 例えばレンジを1000から2000で表示させたい場合、 display のパラメーターを epar display で、 zscale = no, zrange = no z1=1000 z2=2000に編集してください。その後、再度 display を実行すると、1000-2000のレンジで表示されます。 デフォルトではauto-scaleで表示されます。 disp 1 filename zr- zs- z1=1000 z2=2000 (z1=1000, z2=2000で表示させたい場合)でも実行できます。



Q 10 : 画像をlog-scaleで表示したいのですが、どうすればよいのですか?

A 10 : display の パラメーターを epar display で、 ztrans=log に編集してから 再度 display で表示しましょう。 これは SAO image, SAOtng 等から直接操作することもできます。 SAO image では scaleというボタンを押すと、log ボタンが出てくるのでそこを押すと、log-scaleの表示にかわります。 SAO tng ではScalesを左クリックすると出てくるlog scalingでクリックするとlog-scaleになります。



Q 11 : display を実行するときに聞かれる"1" はなんですか?

A 11 : frameの数です。 SAOimage で表示するときはframeが1つしかないのですが、 Ximtool, SAOtng にはframeが4つあり、1、2、3、4と指定してそのフレームに表示することができます。



Q 12 : 複数の画像を一度に表示させたいのだけど、どのような方法がありますか?

A 12 : Ximtool, SAOtng ではtile frame(Control panelからのオプション操作)を用いると、4つのフレームまで同時に表示させることができます。



Q 13 : 画像のある一部分をズームしたいのですが、どうすればいいのですか?

A 13 : SAOimage, Ximtool, SAOtng の全てにおいて、ズームさせたい場所にポインターを持っていき、まんなかクリックでズームができます。 なお、SAOimage では Panというボタンを押すと出てくる、x2,x4などのボタンで、Ximtool, SAOtng はControl Panel(Options,Imagesを左クリックすると出てくる)で操作できます。Zoomボタンからも操作できます。



Q 14 : 画像を表示させたのですが、白黒以外の色で表示できないのですか?

A 14 : SAOimage では、Colorボタンを押すと出てくる、cmapというボタンを押すと、様々な色のボタンが出てくるので、ここでかえてください。 Ximtool では Viewを左クリックすると出てくるColormapの中に、 SAOtng では Colorsを左クリックすると、それぞれ色のボタンがあります。 Ximtool, SAOtng はControl Panel(Options,Imagesを左クリックすると出てくる)でも操作できます。



Q 15 : 画像をblinkして見たいのですが、どうすればよいのですか?

A 15 : SAOimage では、Scaleボタンを押すと出てくる、blinkというボタンを左クリックすると、今表示されている画像が記憶されます。 異なる画像を表示し、左クリックすると先ほど記憶した画像がブリンクされます。 左、真中、右クリックと3つ画像が記憶できます。 Ximtool では Optionsを左クリックすると出てくるBlink frames、 SAOtng では Framesを左クリックすると出てくる、Blink framesでブリンクができます。 Ximtool, SAOtng は Control Panel(Options,Imagesを左クリックすると出てくる)でも操作できます。



Q 16 : 画像のある部分にマーキングしたいのですが、どうすればよいですか?

A 16 : SAOimage では、Cursorボタンを押すと出てくる、regionというボタンを押すと、マークの形が選択でき、画像の上で左クリックするとマーキングされます。 Ximtool, SAOtng では画像の上で左クリックするとマーキング出来ます。 SAOtng では Markersを左クリックするとマークの形や色が選択できます。 deleteボタンを押すとマークが消えます。



Q 17 : SAOtng 上で画像の表示レンジを変えることはできませんか?

A 17 : SAOimage, Ximtool, SAOtng 全てでできます。 SAOimage では、Colorボタンを押すと出てくる、矢印ボタンを押し、右(左でもOK)クリックしながらポインターを動かすとレンジが変わります。 Ximtool, SAOtng は右クリックしながらポインターを動かす、もしくは、Control Panel 上で操作できます。



Q 18 : SAOtng 上で画像をX、Y方向に反転して表示することはできませんか?

A 18 : Ximtool, SAOtng でできます。 Ximtool では 右上の横矢印、縦矢印をクリックするとそれぞれX、Y方向に反転します。Viewsを左クリックすると出てくるFlipでもできます。 SAOtng では Zoomを左クリックすると出てくる、Flip by X, Y等で反転します。 Control Panel(Options,Imagesを左クリックすると出てくる)でも操作できます。



Q 19 : "fits"の拡張子がついていないfits file(.fit等)を SAOtng で表示したいのですがうまくいきません。どうすればよいのでしょうか?

A 19 : mkiraf を実行したときに作成される login.cl ファイルの中を set imtype = "fits" と編集してください。defalutでは #set imtype = "imh" となっているはずです。



Q 20 : 複数の人で同時にIRAFを立上げて画像を出力すると自分の画像が、他人 のSAOtng に出力されます。どうすればよいのですか?

A 20 : 同じ計算機で同時にIRAFから画像を出力する場合、例えば二つ目ではViewerを saotng -fifo /dev/imt2 と起動し IRAF上で reset stdimage=imtx2 としてから display を実行してください。 (この場合IRAFにはimtx2等の設定がされていなければなりません、されていない場合はまずこの設定が必要となります) 同時に複数人がしようすることが想定されている場合は、あらかじめ、自分はimtx2を使用すると取り決めておき、login.clファイルを set stdimage=imtx2 と編集しておいたほうがよいかと思われます。



Q 21 : Ximtool, SAOtng を二人で立上げるとあとから立上げた人には ximtool: cannot open socket on port 5137, error=125 というメッセージが出ます。不都合な様子はみられませんが、何か設定がまずいのでしょうか?

A 21 : このポート番号は他のプログラムとの通信の場合に使用するもので、Ximtoolが直接画像を読む場合や、IRAFを使う(FIFOで通信する)場合は関係ありません。気にしない、というのが正解でしょう。



Q 22 : SAOimage, Ximtool で画像を印刷したいのですが、どうすればよいのですか?

A 22 : SAO image 上の etc ボタンを押すと print という項目が出てくるので、そこをクリックしてください。印刷先を指定したい場合は SAOimageを起動する前に
setenv PRINTER printername, setenv PSPRINTER printername
で設定します。 login.cl の中でも指定できますので設定しておくと毎回設定しなくてすみます。Ximtool では Fileボタンを押すと Printいう項目が出てくるので、そこをクリックすると印刷できます。設定は、Print Setupでできます。



Q 23 : Ximtool で画像を印刷したいのですが、どうすればよいのですか?

A 23 : Ximtool の 左上にあるFileボタンを押すと Printいう項目が出てくるので、そこをクリックすると印刷できます。設定は、FileボタンのなかのPrint Setupでできます(古いVersionのものはこの項目がありません)。



Q 24 : SAOtng で印刷したいのですが、どうすればよいのですか?

A 24 : SAOtng の images ボタンを押すと Send Screen to Printer/File という項目が出てくるので、そこをクリックして出てきた画面で lpr -Pprintername と打ち込んでください。



Q 25 : 画像をファイルに出力したいのですが、どうすればよいのですか?

A 25 : SAOimage の場合は、SAOimageを起動する前に SAOimage を立上げるterminal上で
setenv R_DISPOSE 'mv %s filename'
と設定してから SAOimage を起動してください。 Ximtool では Fileボタンを押すと Save to Diskという項目が出てくるので、そこをクリックして出てきた画面で、file format, file 名 を指定してください。 SAO tng では images ボタンを押すと Save Screen to Gif File という項目が出てくるので、そこをクリックして出てきた画面で file名を指定してください。



Q 26 : Tek-window の画面を印刷したいのですが、どうすればよいのですか?

A 26 : =gcur というコマンドで実行出来ます。 =gcur として、 Tek-window 上で=とすると印刷されます。



Q 27 : Tek-window の画面を eps fileに出力したいのですが、どうすればよいのですか?

A 27 : =gcur のあとに、 Tek-window 上で :.snap epsとうつと、sgi****.epsというファイルに保存されます。landscape形式にしたい場合は:.snap epsl にします。



Q 28 : パラメーターの編集はどうすればよいのですか?

A 28 : epar taskname で各種パラメーターを vi-mode or emacs-mode で編集できます。 デフォルトではviになっています。 login.cl set editor = emacs で変更できます。 task中の隠しパラメーターを編集する際は、そこにもっていき、 :e とうつとそのパラメーターを編集できます。



Q 29 : taskのパラメーターをテキスト形式で保存したいのですが、どうすれば良いのでしょうか?

A 29 : lpar tasknameでパラメーターがテキスト化されるので、 > でファイルに落とすとテキスト形式のパラメーターが保存できます。



Q 30 : taskのパラメーターをコマンドラインで指定できないのですか?

A 30 : taskの後に並べて実行することができます。その際、yes+ で、no- で省略して表わせます。例えば、 レンジを1000から2000に指定して2番のフレームに画像を表示させる場合、
disp filename 2 zr- zs- z1=1000 z2=2000
で実行できます。



Q 31 : ある package の中にある taskを知りたいのだけれど、どうすればいいのでしょう?

A 31 : 最初にそのpackageをロードさせたときにその中に含まれるtask及びさらにその下にあるpackageがみれます。一度ロードさせると、そこで help とうつと、そのpackage中に含まれるtaskの一覧を簡単な説明とともにみることができます。



Q 32 : 目的に応じた task を調べたいのですが、 検索する task はありますか?

A 32 : reference で検索ができます。package ctio (標準インストールには含まれない) の中にある aproposというtaskがあり、これでも同様に実行できます。



Q 33 : tcshのように一つ前に実行したtaskをもう一度実行したいのですが、出来ませんか?

A 33 : eとうつと一つ前に遡れます。 さらに前に遡りたい場合は、↑key でどんどんと遡れます。 history コマンドも使えます。



Q 34 : taskを実行している途中でそのtaskのoptionをみたいけど、方法ありますか?

A 34 : taskを実行している途中で ? とうつと、optionがみれます。



Q 35 : taskの parameter の初期化はできますか?

A 35 : unlearn tasknameで実行できます。



Q 36 : IRAF上でmoreを使いたいのですが、どうすればいいのですか?

A 36 : ! で shコマンドが使えます。 login.cl の中の task $..に書き加えて task 登録しておくといつでも使えます。



Q 37 : IRAF形式(imh+pix)の画像の名前を変えたいのですか、mv以外の方法はありますか?

A 37 : imrename で一度に imh+pix, fitsの名前を変更できます。画像を消去する場合は imdelete 、画像を複製する場合は imcopy で実行できます。



Q 38 : imheader を実行するとobject名と画像サイズなどしか見れないのですが、headerを詳しく見る場合にはどうすればいいのでしょうか?

A 38 : imheader のパラメーターを epar imheader で、 longhea = yes に編集してください。 これは imhe filename l+ でも実行できます。



Q 39 : fitsの画像を扱っているのに、 imarith 等の演算処理を行なっているうちにデータがIRAF形式 (imh+pix) に書き変わってしまう。

A 39 : mkiraf を実行したときに作成される login.cl ファイルの中を set imtype = "fits" と編集してください。defalutでは #set imtype = "imh" となっているはずです。



Q 40 : rfits して作成した pixファイルが見当たりません。どこにあるのでしょうか?

A 40 : login.cl の中に指定してあるdirectoryです。defaultでは login.cl と同じディレクトリにあるようです。 指定するには、 login.cl 中の set imdir を書き換えてください。



Q 41 : 星のPSFのプロファイルを見たいのですが、どのようなtaskがありますか?

A 41 : この種のtaskは多数存在しますが、簡単にプロファイルをみるだけならば imexam で、 r とうつとradial profileがみれます。



Q 42 : 統計量を調べるためには、どのようなtaskがありますか?

A 42 : imstatistics を用いると画像の各種平均値などを求めることができます。



Q 43 : ピクセル値の log を求めたいけどどうすればよいのでしょうか?

A 43 : package stsdas の中の imcalc で四則演算以外の処理ができます。また images.imutil のしたの imfunctionでも可能です。



Q 44 : airmassを計算したいのですが、どのようなtaskがありますか?

A 44 : package noao.astutil. の中の airmass で調べたい天体のelevationの値を与えると計算で きます。IRAFではありませんが、 skycalcを使うと便利です。



Q 45 : 三色合成図を作成したいのですが、どのようなtaskがありますか?

A 45 : package color の中の rgbsun というtaskで実行できます。



Q 46 : 画像をテキスト形式のファイルに落としたいのですが、どうすればよいでしょうか?

A 46 : 値だけ書き出すためには、 wtextimage で簡単に行えます。column, lineとともに書き出したい場合は、 listpixels というtaskで実行できます。



Q 47 : x方向についての値の変化(プロファイル)をみたいのですが、どのようなtaskがありますか?

A 47 : implot で簡単に行えます。 imexamine でも実行可能で、ラインプロファイルだけでなく星のPSFを求めるなど様々な機能がついています。



Q 48 : 画像のある領域をbinningしたいのですが、どのようなtaskがありますか?

A 48 : blkavg というtaskで2次元及び3次元の画像に対してbinningを行えます。



Q 49 : 画像のある領域をbinningして、x方向についての値の変化(プロファイル)をみたいのですが、どうすればよいでしょうか?

A 49 : A 48 の方法でbinnigしてからプロファイル表示させる方法もありますが、表示だけならば implot で実行可能です。 例えばy=300-600をbinningする場合、 implot filenameを実行し、 :l 300 600 とすると、binningされたプロファイルが表示されます。



Q 50 : implot SAO image 上で interactiveに行いたいのですが、どうすれば良いでしょうか?

A 50 : 残念ながら現時点ではできないようです。 imexmaine ではinteractiveにできますので、そちらをお使い下さい。



Q 51 : implot, imexamine を 実行してもplot画面(Tek-window)が出てきません。

A 51 : mkiraf で指定した terminal 以外で起動するとTek-windowが出てきません。 mkiraf を xgtermとした場合は、xgtermで cl を起動してください。なお、ktermは Tek-windowの設定がうまく行われていない場合にTek-windowを使う操作で不都合が起こる場合があるようです。この場合は、kterm & Tek-window の設定を行う、もしくはxgtermなどほかのterminalを使用しましょう。



Q 52 : imexmaine でラインプロファイルを見るときにピクセルのWorld Coordinateを知りたい。

A 52 : imexamine のパラメーター wcs=world, xformat=%H, yformat=%h epar imexamine で編集してください。ただし、fits headerにRA, DECの値が記録されていなければ計算されません。また、装置側でのfits headerの設定によっては、うまく計算されないこともあります。



Q 53 : 画像を反転させたいのですが、どうすればよいでしょうか?

A 53 : imtranspose で反転できます。このtaskではinput filename, output filenameが同一でも実行されます(上書きされます)。 imcopy でも実行できます。



Q 54 : imstatistics で領域を指定したいのですが、どうすれば良いのですか?

A 54 : 例えば、isで始まる名前のファイル全てについて、X,Yともに100:200, 100:200の領域を調べたい場合、 imstatics is*fits[100:200,100:200]で実行できます。



Q 55 : スペクトルフィーチャーの有効幅などを簡単に求められるtaskはありますか?

A 55 : package noao.onedspec の中の splot というtaskで単純有効幅を求められます。 splot は、有効幅を求める以外にも、スペクトル同士の演算や シングルフィーチャーへの関数形フィット等を実行できます。



Q 56 : imheader を実行すると "Old format=..."や"No write permission on file"等というエラーメッセージが出て実行できません。どうしてでしょうか?

A 56 : IRAFの version が 2.11.3 以前である場合に起こる現象で、2000年問題の一つです。version をあたらしいものにするか、fits headerを見るという問題だけであればmoreで見ることは可能です。



Q 57 : imcombine を実行すると、なぜか一枚だけcombineされずに省かれてしまいます。 display で見たところおかしいようには見えないのですが。

A 57 : まず、全てのファイルのサイズが同じかどうか imheader 等で確認してください。 imcombine では次元やサイズが異なるとうまくcombineされません。fits file が ftp, cp等の何らかの原因で壊れてしまっている場合もありますので( display では正常に見える場合がある)、 ls -la 等で確認してください。



Q 58 : imcombine を実行すると、全てcombineされずに途中でとまってしまいました。combineする数を減らすとうまくいくようですが。

A 58 : imcombine は、メモリ、HDDの容量によって、combine出来る枚数に制限があります。 このような場合は、幾つかに分けてcombineするか、メモリ、HDDが非常に大きなWSで解析しましょう。



Q 59 : IRAFを使っていると、パラメーターが読み込めない、保存できないというメッセージが出て、どのtaskもうまく実行できません。

A 59 : データ及びlogin.clのあるHDDがfullになっていないか確認してください。IRAFを使う場合は、HDDに少し余裕を持ちながら解析することをお勧めします。



Q 60 : imarith で画像演算をしていたら、途中で全てのピクセル値がゼロになってしまう。 calctype = double にしてもうまくいかないのですが、どうすればよいでしょうか。

A 60 : imarith において割り算を行う場合には、割る方の画像のピクセル値がゼロかゼロに近い値の場合、出力画像の該当するピクセルの値は imarith のパラメーター divzero で指定されている値(defaultではゼロ)になります。このような演算をする場合には掛け算だけで行うように工夫するか、割る画像に一度大きな定数を掛けたあとで割り算を行い、その結果に対して定数を割り戻すことで対処しましょう。



Q 61 : IRAFの動作が不安定で、処理が正常に行なわれません。どうしたら良いのでしょうか?

A 61 : 不正な処理を行なったり、無理なキー入力をした場合、そのような状態になることがあります。この場合、一度IRAFをログアウトし、再び cl を立ち上げましょう。



Q 62 : テープに入っているファイルをHDDに落としたいのですが、データをいれたいマシンにはテープ装置がついていません。ネットワークでつながっている別のマシンから出来ませんか?

A 62 : ssh を使うことで出来ます。 例えばDAT装置がついているWS(ballade)のテープ(/dev/rmt/0ln)からデータを書き込みたいWS(owl)にリモートで展開する場合、owlのWS上で
ssh ballade -l username dd if=/dev/rmt/0ln bs=20b | tar xvBfb -20
逆に、リモートで書き込みたい場合は、owlのWS上で
tar cvfb - 20 filenames | ssh ballade -l username dd of=/dev/rmt/0ln obs=20b
で実行可能です。