OTO-Ohshima Tamashima Observatory-  Index  Search  Changes  Login

GNUPLOTで光度曲線を描く−AIP4Winのlogファイルからグラフ化する−

AIP4Winを使って測光しlogファイルに記録した場合の、データファイル化と光度曲線のグラフ化をWindowsPCで行う方法のメモです。

  • 1つは、Excelを使いテキストファイルを読み込んで処理する方法で、Excelに慣れた人には方法は簡単ですが、同じ処理を何度も繰り返すといい加減嫌になります。グラフも大きさが一定にならず、グラフタイトルや目盛を毎回毎回付けるのうんざりしています。(VBAマクロを組めばよいのでしょうが、それに慣れるまで大仕事です)
  • そこで、AWK(テキスト処理)とGNUPLOT(グラフ処理)の出番です。この方法はコマンドプロンプトからコマンドを打ち込むのですが、テキストファイルに書いておいたものをコピー・ペーストすれば良いので手間は要りません。以下はその方法です。

準備

まず、GAWKGNUPLOTをそれぞれWindows PCにインストールします。その具体的な方法は、ここでは省略しますが、検索して見てください、世の中には日本語の丁寧な解説が溢れています。

データファイルの整理

あるディレクトリ(=フォルダー)例えば、"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行スクリプトを保存して置き、コピーしてコマンドプロンプトにマウス右クリックでペーストします。(最近は私はテキストエディタには、サクラエディター(オープンソース)を使っています。ちなみにその場合のフォントは、Ricty Diminishedを使っています)

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" が書きだされます。

LT_Gem20130118IRVB.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測光トップへ戻る

OTO-Ohshima Tamashima Observatory-トップへ戻る

1470
Last modified:2015/11/07 20:14:04
Keyword(s):[GNUPLOT] [lightcurves] [AIP4Win]
References:[CCD測光]