FLI USB-CCDカメラのReadout Noiseのチェック

(2009/9/16 :利川)

前回の実験から計算するとReadout Noiseが45e位になり、大きすぎたので再チェック。
(実際はConversion Factorが計算ミスで2倍になっていたので、Readout Noiseは22-24eくらいだった)

●温度の安定性のチェック(2009/09/15 :小西)
前回まで、ダンボール箱で覆って外部の光を遮っていた。しかし密閉されてしまうので、以下のように、
うまく排熱できずに温度が上がりすぎるようだ。
○in box


○without box

箱無しで開放すると10分ほどで温度が安定する。アタカマ山頂なら外気温が低いので、もっと低温で安定するはず。
ダンボールで密閉するのはよろしくないので以下のようにセットアップを進めた。

●セットアップ(2009/09/15 :小西、利川)
密閉による方法をとるのを止め、暗室(精密実験室1013@IoA)に置いてリモートで撮像を進めた
1.)
先ず、以下のようにしてみる。懐中電灯の点灯部にはガムテープを多重に貼って光量を減らしてある。

試し撮りの結果、
画像名露出時間カウント
ANOA00002003.fits3sさちった
ANOA00002004.fits1sさちった
ANOA00002005.fits0.1s50000くらい
明るすぎるようだ

2.)
直接ライトを当てると明るすぎるようなので、一面のみ開けたダンボール箱内面に反射させた光を当てる(下の写真)

試し撮りの結果、
画像名露出時間カウント
ANOA00002006.fits3sさちった
ANOA00002007.fits2sさちった
ANOA00002008.fits0.1s32000くらい
まだ明るすぎるようだ

3.)
以前にダンボール箱の中で実験したときのように、カメラのシャッター前方を封筒で遮蔽した

試し撮りの結果、
画像名露出時間カウント
ANOA00002009.fits0.1s3800くらい
ANOA00002010.fits3s51000くらい
ANOA00002011.fits1s18000弱
ANOA00002012.fits1s34000くらい
積分時間と明るさがちょうどいい感じ.大雑把に見積もって線型性もありそう
以下、このセットアップで実験を進める

●撮像、解析(2009/09/15 :小西、利川)
以下のように進めた

#!/bin/sh

#100msec-4000msecで各2枚ずつバイアス、ダーク、オブジェクト画像の撮像
awk -v n=2 'BEGIN{for(i=100;i<=4000;i+=300){for (j=1;j<=n;j++){print "./fliexp 1 1 e 0"};for (j=1;j<=n;j++){print "./fliexp 1 1 d",i/1000};for (j=1;j<=n;j++){print "./fliexp 1 1 e", i/1000};printf("echo \"echo sleep 1\"\n");print "sleep 1"}}' | sh

#画像リストファイルの作成
cd ~/data/20090612
rm conversion.090915*
awk 'BEGIN{ns=2013;for(i=0;i<84;i++)printf("ANOA%08d.fits\n",ns+i)}' > conversion.090915

#ヘッダの書き出し
cat <<EOF|cl
hselect @conversion.090915 "\$I,DATA-TYP,EXPTIME" yes > conversion.090915.head
logout
EOF

#各リストファイルの作成
awk '$3==0{print $1}' conversion.090915.head > conversion.090915.bias
awk '$2=="DARK"{print $1}' conversion.090915.head >
conversion.090915.dark
awk '$2=="TEST" && $3>0{print $1}' conversion.090915.head >
conversion.090915.obj
awk '{print "sub"$1"[384:640,384:640]"}' conversion.090915.obj >
conversion.090915.sub.sect
バイアスの撮像からReadout Noiseをチェック
#バイアスを撮像したものの標準偏差からReadout Noise(ADU)がわかる
cat <<EOF|cl
imstat @conversion.090915.bias nclip=10 fields="image,mean,midpt,stddev"
#               IMAGE      MEAN     MIDPT    STDDEV
#    ANOA00002013.fits     1982.     1981.     8.003
#    ANOA00002014.fits     1982.     1981.     8.016
#    ANOA00002019.fits     1982.     1981.     8.009
#    ANOA00002020.fits     1982.     1982.     8.031
#    ANOA00002025.fits     1982.     1981.     8.005
#    ANOA00002026.fits     1982.     1982.     8.036
#    ANOA00002031.fits     1982.     1982.     8.005
#    ANOA00002032.fits     1982.     1982.     8.031
#    ANOA00002037.fits     1982.     1982.     8.032
#    ANOA00002038.fits     1982.     1982.     8.007
#    ANOA00002043.fits     1982.     1981.     8.004
#    ANOA00002044.fits     1982.     1982.      8.04
#    ANOA00002049.fits     1982.     1982.     8.026
#    ANOA00002050.fits     1982.     1982.     8.028
#    ANOA00002055.fits     1982.     1982.     8.035
#    ANOA00002056.fits     1982.     1982.     8.032
#    ANOA00002061.fits     1982.     1982.     8.032
#    ANOA00002062.fits     1982.     1982.     8.005
#    ANOA00002067.fits     1982.     1981.     8.004
#    ANOA00002068.fits     1982.     1982.     8.035
#    ANOA00002073.fits     1982.     1982.     8.021
#    ANOA00002074.fits     1982.     1982.     8.033
#    ANOA00002079.fits     1982.     1981.     8.013
#    ANOA00002080.fits     1982.     1982.     8.027
#    ANOA00002085.fits     1982.     1982.     8.019
#    ANOA00002086.fits     1982.     1982.     8.031
#    ANOA00002091.fits     1982.     1981.     8.019
#    ANOA00002092.fits     1982.     1981.      8.01
Readout Noiseはだいたい8.01-8.03[ADU]であるとわかる

カウントの、露出時間に対するリニアリティをチェックする
#積分時間に対する、カウントのリニアリティをチェックする
#オブジェクト画像からダークを引く
!awk '{print "subdark"$1}' conversion.090915.dark > conversion.090915.sub.dark
imarith @conversion.090915.obj - @conversion.090915.dark @conversion.090915.sub.dark
#ダークを引いた画像のexptimeを書き出す
hselect @conversion.090915.obj "\$EXPTIME" yes > conversion.090915.head.sub.dark.exptime
#ダークを引いた画像の、光量の一様な領域の、カウントの平均値をとる
!awk '{print $1"[384:640,384:640]"}' conversion.090915.sub.dark > conversion.090915.sub.dark.sect
imstat @conversion.090915.sub.dark.sect nclip=10 fields="mean" format- > conversion.090915.sub.dark.mean
#exptime-meanのテーブルファイルの作成
!paste conversion.090915.head.sub.dark.exptime conversion.090915.sub.dark.mean > conversion.090915.sub.dark.exp-mean
logout
EOF
#gnuplotでフィット
cat <<EOF|gnuplot
set term png
set output "conversion.090915.liner.png"
f(x)=a*x+b
fit f(x) "
プロット結果が以下

一番右の点が外れているのはさちっている為.線型性は信頼できるようだ

以下、Conversion Factorを求める
cat <<EOF|cl
#同積分時間のオブジェクト画像同士の差分、バイアス引き
!awk 'NR%2 == 0' conversion.090915.obj > conversion.090915.obj2
!awk 'NR%2 == 1' conversion.090915.obj > conversion.090915.obj1
!awk '{print "sub"$1}' conversion.090915.obj1 > conversion.090915.sub
!awk '{print "subbias"$1}' conversion.090915.obj > conversion.090915.sub.bias
#同積分時間のオブジェクト画像同士で引く
imarith @conversion.090915.obj1 - @conversion.090915.obj2 @conversion.090915.sub
#バイアス引き
imarith @conversion.090915.obj - @conversion.090915.bias @conversion.090915.sub.bias
logout
EOF

#obj1-obj2で感度ムラが消えたのを確認、カウント0を中心に対称的に分布す
 るはず
awk '{print "imhist "$1 ; print "sleep 2"} END{print "logout"}' conversion.090915.sub | cl

#バイアスを引いた画像のカウントの平均値をとる
cat <<EOF|cl
imstat @conversion.090915.sub.bias nclip=10 fields="mean" format- > conversion.090915.sub.bias.mean
#同積分時間のオブジェクト画像同士で引いた画像の標準偏差をとる
imstat @conversion.090915.sub nclip=10 fields="stddev" format- > conversion.090915.sub.stddev
logout
EOF

#両者の値をconversion factor算出用に処理
#./a
#./a > conversion.090915.mean-stddev
awk 'FILENAME==ARGV[1]{if(NR%2==1){i++;file1[i]=$1}}FILENAME==ARGV[2]{j++;file2[j]=$1}END{for(n=1;n<=i;n++){print log(file1[n])/log(10),log(file2[n]/1.41421356)/log(10)}}' conversion.090915.sub.bias.mean conversion.090915.sub.stddev

#出来たテーブルファイルからgnuplotでフィット
cat <<EOF|gnuplot
set term png
set output "conversion.090915.png"
f(x)=0.5*x-0.5*b
fit f(x) "<awk '\$1<4.8' conversion.090915.mean-stddev" u 1:2 via b
plot "conversion.090915.mean-stddev" u 1:2, f(x)
q
EOF
横軸:log(カウント)、縦軸:log(σ)でプロット

(結論)
fitした直線のy切片=0.5*log(conv.)
y切片の値 :0.5*(0.259778±0.004444)

よって、
conv.=1.818±0.018[e/ADU]
となる
このconv.の値を用いるとReadout Noiseは
RN=14-15e