![]() |
Documentation > SXT Observation Notes > this page |
Image name: Photon_Transfer_Sept_98.png (click image to enlarge)
Image size: 111.329 KB (962x640)
Date submitted: 02-Oct-1998
CCD Photon Transfer Experiment
The figure given in the upper right is a photon transfer curve of the SXT CCD.
The crosses are from the bottom half of the CCD and the diamonds are from the
top half. The two, nearly identical, straight lines have been fitted to the
middle portion (signal 100-275 DN, slope =1.2) of the bottom points and to all
of the top points.
This work yields the surprising (alarming?) result that the camera gain on
22-24 April 1998 was 13 electrons/DN -- 1/7 of the pre-launch gain setting.
This is a PRELIMINARY result and should not be taken too seriously until what
I've done has been validated by experts. The last attempt to determine CCD
camera gain was by Barry LaBonte and is reported in
show_pix/calibration/sxt_ccd_gain.
Barry concluded, using a different technique, that the camera gain in June
1996 was 87.9 +/- 1.4 electrons per DN.
The photon transfer curve technique is one of the most powerful means of
determining the performance of a CCD camera system. In this technique the
signal variance (ordinate) is plotted versus the signal in DN (abcissa) on a
log-log plot. I processed the data from the bottom and top FR images in two
different ways. The problem in such an analysis is to minimize contributions
to the variance from fixed-pattern noise. In the case of the bottom half of
the CCD I had two images so I got the signal from the sum of the 2 images and
the variances from their difference. This permitted me to the sort the
signals by intensity (DN) and compute the variance from the difference image
for each of these sortings. For the top-half case I only had a single photon
transfer image so I computed the average signal and the variance for 61
columns (460:520) around the flat top of the illumination of the CCD, for each
row of the image. This greatly increased the scatter but the result is in
agreement with the analysis of the bottom half. The IDL code used for this
purpose is appended to this message.
It is difficult to believe that the camera gain has shifted to such a high
value. This would mean that our absolute solar intensities are off by the same
factor of 7, i.e., a factor of 7 too large. Also, the pre-launch system gain
was adjusted so that the CCD would saturate (exceed full-well capacity) before
the ADC saturates for FR operation. This level, about 235 DN does not
appear to have changed significantly. I hope that someone can help me to
undestand what is going on here!
L. Acton
2 Oct 1998
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;10/02/98
;Photon Transfer Curve Analysis
;Data:
; 12 22-SEP-98 22:38:06 QT/M NaBan/Open Full Dark L 2 1.0 1024x512
; 13 22-SEP-98 23:10:06 QT/H Open /AlMg Full Dark L 2 1.0 1024x512
; 17 23-SEP-98 00:50:36 QT/H NaBan/Open Full Dark L 2 1.0 1024x512
; 20 24-SEP-98 00:36:40 QT/H NaBan/Open Full Dark L 2 1.0 1024x512
; 21 24-SEP-98 01:08:44 QT/H Open /AlMg Full Dark L 2 1.0 1024x512
; 22 24-SEP-98 01:13:00 QT/H Open /AlMg Full Dark L 2 1.0 1024x512
;READ THE DATA
rd_sda,'ccd_phot_xfer.sda',-1,index,data
;PROCESS THE 'BOTTOM HALF' IMAGES
noise=float(data(*,*,12))-data(*,*,20)
signal=(float(data(*,*,12))-data(*,*,13))+$
(float(data(*,*,20))-data(*,*,21))
;EXCLUDE EDGES AND BLEMS
okx=indgen(1021)+2
okx=delind(okx,[366,601])
oky=indgen(502)+10
cleansig=fltarr(1019,502)
for i=0,501 do cleansig(*,i)=signal(okx,oky(i))
cleannoise=fltarr(1019,502)
for i=0,501 do cleannoise(*,i)=noise(okx,oky(i))
;ANALYZE THE 'BOTTOM' PHOTON TRANSFER DATA, SORTED BY SIGNAL LEVEL
; SET UP THE PROCESSING PARAMETERS AND THE ARRAYS
h=histogram(cleansig)
n = n_elements(h)
pp=where(cleansig gt 0)
amin = min(cleansig(pp))
x = findgen(n) + long(amin)
xxx=fltarr(max(x)-min(x)+1) ;SIGNAL ARRAY
yyy=fltarr(max(x)-min(x)+1) ;VARIANCE ARRAY
nnn=lonarr(n_elements(x)) ;"NUMBER OF SAMPLES" ARRAY
for i=fix(amin),fix(max(x)) do begin
j=i-fix(amin)
ii=where(long(cleansig) eq i,nn)
nnn(j)=nn
if (nn ge 400) then begin
xxx(j)=total(cleansig(ii))/nn
yyy(j)=(stddev(cleannoise(ii)))^2
endif
endfor
jj=where(xxx gt 0)
xxx=xxx(jj)
yyy=yyy(jj)
;PROCESS THE 'TOP HALF' IMAGES
topsig=float(data(okx,oky,17))-data(okx,oky,22)
xxxt=fltarr(n_elements(oky)) ;SIGNAL ARRAY
yyyt=fltarr(n_elements(oky)) ;VARIANCE ARRAY
for i=0,n_elements(oky)-1 do begin
xxxt(i)=mean(topsig(460:520,i)) ;CHOOSE 60 COLUMNS FROM FLAT TOP OF
yyyt(i)=(stddev(topsig(460:520,i)))^2 ;OF THE INTENSITY DISTRIBUTION
endfor
;PLOT THE RESULTS
wdef,1,450
plot_oo,xxx,yyy,$
xtit='Mean Signal (DN)',$
ytit='Variance (DN)',psym=1,symsiz=0.5,$
tit='SXT CCD Photon Transfer Curve',$
charsize=1.3
oplot,xxxt,yyyt,psym=4,symsiz=0.4
plottime
;FIT AND PLOT A CURVE TO THE CENTRAL PORTION OF THE 'BOTTOM' CURVE
ii=where(xxx ge 100 and xxx le 275)
sln=poly_fit(alog10(xxx(ii)),alog10(yyy(ii)),1,sfit)
;print,sln
; -0.701368
; 0.500844
aa=1000
bb=10^(sln(0)+(sln(1)*alog10(aa)))
aa=1
cc=10^(sln(0)+(sln(1)*alog10(aa)))
oplot,[1,1e3],[cc,bb],color=100
;FIT AND PLOT A CURVE TO THE 'TOP' RESULTS (DIAMONDS)
sln=poly_fit(alog10(xxxt),alog10(yyyt),1,tyfit)
;print,sln
; -0.581393
; 0.514919
aa=1000
bb=10^(sln(0)+(sln(1)*alog10(aa)))
aa=1
cc=10^(sln(0)+(sln(1)*alog10(aa)))
oplot,[1,1e3],[cc,bb]
end