GNUPLOTで光度曲線を描く−AIP4Winのlogファイルからグラフ化する−
AIP4Winを使って測光しlogファイルに記録した場合の、データファイル化と光度曲線のグラフ化をWindowsPCで行う方法のメモです。
- 1つは、Excelを使いテキストファイルを読み込んで処理する方法で、Excelに慣れた人には方法は簡単ですが、同じ処理を何度も繰り返すといい加減嫌になります。グラフも大きさが一定にならず、グラフタイトルや目盛を毎回毎回付けるのうんざりしています。(VBAマクロを組めばよいのでしょうが、それに慣れるまで大仕事です)
- そこで、AWK(テキスト処理)とGNUPLOT(グラフ処理)の出番です。この方法はコマンドプロンプトからコマンドを打ち込むのですが、テキストファイルに書いておいたものをコピー・ペーストすれば良いので手間は要りません。以下はその方法です。
データファイルの整理
あるディレクトリ(=フォルダー)例えば、"20130118"にAIP4WinのLogファイルが"LT_GemR.txt"というファイル名で置いてあるとします。ちょっと長いですが実物を示します。
AIP4Win Multiple-Image Photometry Tool Differential (w/ Extra Decimals) Photometry Report AIP4Win Licensed to: osamu ohshima AIP4Win v. 2.4.0 Folder containing files: X:\20130107\LT_Gem\R Filename of first image: st8.00000238.RED.FIT Number of files selected: 127 Star aperture radius: 12 Sky annulus inner radius: 13 Sky annulus outer radius: 18 Star aperture pixels: 451 Sky annulus pixels: 292 Default integration time: 90.0 Zero point: 25.0 Gain [e/ADU]: 2.3 Readout noise [e rms]: 15.0 Dark current [e/sec/pix]: 0.09 Time of observation: Date, time, exposure from FITS header First Image Date: 2013-01-07 First Image Time: 09:41:23.616 First Exposure Time: 60 seconds Filter: Rc Clock time zone: 0 hours Offset (true-clock): 0 seconds Heliocentric correction: 477 seconds Julian Day (midexposure): ImageTime + (Exposure / 2) First Mid-exposure Date: 2013-01-07 First Mid-exposure Time: 09:41:53.616 Stars selected in the first image Star Star_X Star_Y Integr Max_PV Sky_ADU Star_ADU Mag アSigma Var 620.891 52.181 60.000 22534.2 2393.52 271183. 15.862 0.0047 C1 84.649 293.597 60.000 53455.1 2459.91 777309. 14.719 0.0018 C2 456.437 305.733 60.000 21470.8 2418.44 237943. 16.004 0.0053 Ens 1015252. 14.429 0.0018 ------------------------------------------------------------------- Seq_# YYYY-MM-DD HH:MM:SS.sss Julian_Day Integr Filt (V-C1) アSigma (C2-C1) アSigma (V-Ens) アSigma Sky_ADU File_Name 00001 2013-01-07 09:41:53.616 56299.9096135 60.00 Rc 1.1433 0.0050 1.2853 0.0056 1.4333 0.0050 2393.52 st8.00000238.RED.FIT 00002 2013-01-07 09:46:32.147 56299.9128373 60.00 Rc 1.1522 0.0048 1.2970 0.0054 1.4394 0.0049 2272.6 st8.00000242.RED.FIT 00003 2013-01-07 09:51:10.647 56299.9160606 60.00 Rc 1.1443 0.0046 1.2903 0.0052 1.4331 0.0046 2140.49 st8.00000246.RED.FIT 00004 2013-01-07 09:55:49.164 56299.9192843 60.00 Rc 1.1465 0.0044 1.2908 0.0049 1.4352 0.0044 2008.06 st8.00000250.RED.FIT 00005 2013-01-07 10:00:27.617 56299.9225071 60.00 Rc 1.1583 0.0042 1.2985 0.0047 1.4451 0.0042 1890.116 st8.00000254.RED.FIT <以下省略>
実際には、1晩観測すると測光データが延々と続きます。何行あっても以下の処理は、行数に無関係に全く同じように処理出来ます。
このディレクトリ内にテキストエディタで、次のAWK用の1行スクリプトを保存して置き、コピーしてコマンドプロンプトにマウス右クリックでペーストします。(最近は私はテキストエディタには、サクラエディター(オープンソース)を使っています。)
gawk "(NR >=39)&&($1!=\"\") {printf \"%9.6f %s %s %s %s\n\", $4-56200.0,$7, $8, $9, $10}" LT_GemR.txt >LT_GemR.dat
この1行スクリプト(1行野郎とかワンライナーと呼ぶようです)の意味は次のとおりです。
最初の38行分と空行を無視し、次のブロックを抜き出し出力する。第4フィールド(Julian_Day)から56200.0を引いたもの、第7から第10フィールド(V-C1、sigma、C2-C1、sigma)。これらのデータを"LT_GemR.txt"というファイルから抜き出し(計算し)、"LT_GemR.dat"というファイルに書き出す。
コマンドプロンプトに、マウス右クリックでペーストすると次のようになり、Enterキーを押します。
D:\20130118>gawk "(NR >=39)&&($1!=\"\") {printf \"%9.6f %s %s %s %s\n\", $4-56200.0,$7, $8, $9, $10}" LT_GemR.txt >LT_GemR.dat
するとそのディレクトリに次の様な内容のテキストファイル"LT_GemR.dat"が書きだされます。
99.909613 1.1433 0.0050 1.2853 0.0056 99.912837 1.1522 0.0048 1.2970 0.0054 99.916061 1.1443 0.0046 1.2903 0.0052 99.919284 1.1465 0.0044 1.2908 0.0049 99.922507 1.1583 0.0042 1.2985 0.0047 <以下省略>
以上で、測光データファイルが整理できました。
この夜の光度曲線を描く
上記の作業で、この夜はIc、Rc、V、Bの4バンドで測光し、次のファイル名で保存してあるとします。"LT_GemIc.dat","LT_GemR.dat","LT_GemV.dat","LT_GemB.dat"
GNUPLOTのスクリプトファイルを準備する
データファイルが置いてあるのと同じディレクトリに、GNUPLOTの作図のためのpltファイルを作ります。 次のような内容のテキストファイルを、例えば"LT_GemBVRI.plt"というファイル名で保存しておきます。
set title "LT Gem @OTO 20cm f/6.3 ST-8XME -35deg 90sec 2X2bin Comp=HD43966" set yrange [2.0:0.8] reverse #縦軸範囲と 方向が逆(等級なのでマイナスが上) #unset xrange set xrange [99.85:100.35] #横軸の範囲指定 ここでは日の少数で指定 set ytics 0.1 #縦軸目盛間隔 set xtics 0.05 #横軸目盛間隔 #set y2tics 0.1 set ylabel "delta_mag" #縦軸のタイトル set xlabel "Hel.J.D. - 2455900.0" #横軸のタイトル set format x '%2.2f' #横軸の数字のフォーマット set format y '%1.2f' #縦軸の数字のフォーマット set size 1,1 set key top right #凡例を上の右に表示 #set terminal windows set terminal png #pngファイルで出力 set output "LT_Gem201301118IRVB.png" # 出力ファイル名 plot 'LT_GemR.dat' using 1:2 title "Rc" pt 13 ps 0.5 lt 1, 'LT_GemV.dat' using 1:2 title "V" pt 13 ps 0.5 lt 2, 'LT_GemB.dat' using 1:2 title "B" pt 13 ps 0.5 lt 3,'LT_GemIc.dat' using 1:2 title "Ic" pt 13 ps 0.5 lt -1 #using 1:2はデータファイルの第1(HJD)と第2フィールド(V-C1)のデータを使うことを意味し、ptとpsとltはそれぞれ 点の形、点の大きさ、点の色を表す。
GNUPLOTを動かす
コマンドプロンプトから次のように打ち込みます。
D:\20130118>gnuplot LT_GemBVRI.plt
するとそのディレクトリに次の様な内容の画像ファイル"LT_Gem201301118IRVB.png" が書きだされます。
まとめ
光度曲線を描くのに行った作業は次の3種類だけです。
(1)データファイルを作る(実際にはマウスの右クリック)
D:\20130118>gawk "(NR >=39)&&($1!=\"\") {printf \"%9.6f %s %s %s %s\n\", $4-56200.0,$7, $8, $9, $10}" LT_GemR.txt >LT_GemR.dat
これをIc,R,V,Bの各バンドについて行う
(2)次のようにコマンドプロンプトにタイプした
D:\20130118>gnuplot LT_GemBVRI.plt
(3)その前に GNUPLOTのスクリプトファイルを、その日の内容に合わせて、次の2行だけを編集して、"LT_GemBVRI.plt"として保存した
set xrange [99.85:100.35] set output "LT_Gem20130107IRVBC1.png"
何日もの観測データを整理する場合、Excelで行う作業量に比べると圧倒的に少ない手数で、しかも統一のとれたフォーマットのグラフが得られます。
CCD測光トップへ戻る
4604
Keyword(s):[GNUPLOT] [lightcurves] [AIP4Win]
References:[CCD測光]