ISOCAM Interactive Analysis (CIA)
東大・理・天文学教育研究センター
田辺 俊彦
日本とISOCAM チームとの協定により、ISOCAM チームによって開発された ISCAM Interactive Analysis (CIA) を東京大学理学部天文センターのワークステーショ ンに導入した。 CIA は、IDL 上で開発された解析ソフトであるが、一部 C 及び C++ による executable を使用しており、machine-dependent である。 現在は、Solaris 版のみ配布が許されている。 日本においては、ただ一か所のみの導入が許されているので、使用されたい方は、 田辺まで連絡されたい。 詳しい使い方は、ISOCAM Interactive Analysis User's Manual に書かれている。
ここでは、ごくごく簡単に CIA によるデータ解析について述べる。
CIA によるデータ解析は、Edited Raw Data (ERD) を用いる。 Standard Processed Data (SPD) や Auto Analysis Results (AAR) は、基本的に用いない。
CIA では、まず、x_slicer というコマンドにより ERD (CAM Edited Raw Data, cier.fit) を raster scan の場合は raster の各点各点毎の、CVF の場合 は各波長ポジション毎のデータに切り分けの作業を行う。 切り分けられたデータを Science CAM Data (SCD) といい、cscd*.cubという名前 でハードディスクの上に展開される。 また、同時にcssc*.cub という名前のファイルも作られるが、これは、同じ CONFIGURATION の SCD をテーブルにしたようなもので Set of Science CAM Data (SSCD) という。 この時、ERD (cier.fit) と共に CD-ROM によって配布される望遠鏡の pointing 情報 (Instrument Instantaneous Pinting History, iiph.fit) 、観測中 の ISOCAM の状態 (Compact Status Data, csta.fit) も同時に SCD に取 り込まれる。 次に、get_sscdraster、get_sscdcvf あるいは get_sscdstruct というコマン ドにより、一つの CONFIGURATION の全データを読み込んで cia 特有の構造体 (Prepared Data Structure, PDS) を作る。 この段階で、CIA の内部に備わっている calibration data (CAL-G file) も同時 に PDS の中に取り込まれる。 PDS には、raster PDS、CVF PDS、general PDS がある。 上に述べたことから明らかなようにこの PDS は、データ解析に必要な全ての情報 を持っている。
例として、raster PDS と CVF PDS を最後に付ける。
この raster は、NGC 1783 (TARGET) 領域を 7 (RASTERCOL) 7 (RASTERLINE)
で space craft Y-axis に沿って (RASTER_ORIENTATION) raster scan したもので、
raster の step size は、どちらの方向も 24
(M_STEPCOL,
N_STEPLINE) である。
さらに、filter は LW10 (FLTRWHL)、中心波長は 11.5
m (WAVELENGTH)、
pixel field of view は 3
(PFOV) 、fundamental integration
time は 2.10007 sec (TINT)、 gain は 2 (GAIN) などということもこの PDS を
見れば判る。
この場合、raster 点の数は 49 (NSCD) であり、最終的に合成される image は、
80 pixels (NX_RASTER)
80 (NY_RASTER) の大きさ (つまり、
) になる。
この例では、全 frame 数は 878 (NBR_FRAME) であり、その生データが、cube と
いう名前の array に格納されている。
FROM と TO という array には、各 scan 点のデータが何番目の frame から始まり、
何番目の frame で終っているかという情報が入っている。
先にも触れた calibration data (この場合は、dark, flat, point spread function
など) は、PDS の中の構造体 calg の中に収められている。
後の CIA における作業は、基本的にこの PDS の中の空の部分を少しづつ埋めていく という形で進められる。 例えば、MASk という array では、cosmic ray などのために除去すべき pixel に flag が立てられ、IMAGE という array には、何枚かづつとられた各 scan 点の frame の重ね併せデータが入れられ、最終的な一枚の合成画像は、RASTER という array に入れられる。 現時点では、raster の最終的なイメージデータは、ADU pixel-1 s-1 と いう単位を持っている。
CVF データも同様である。
この CVF の例は、NGC 419 (TARGET) 領域を LW-CVF1 (CVF_NAME) によって、
9.143 m (WAVELENGTH_START) から 4.956
m まで、波長 step 2 (CVF_INCR)
(つまり 0.1
m おき (CVF_NAME)) で波長 scan しているもので、この間の
39 波長点 (NSCD) でデータがとられている。
pixel field of view は 6
(PFOV)、fundamental integration
time は 5.4018 sec (TINT)、 gain は 2 (GAIN) である。
raster 同様観測された全 frame は、cube という array に入っており、calibration
data は、calg という構造体に収められている。
CIA による作業は、raster とほぼ同様であり、最終的には PDS の IMAGE という
array を完成させることにある。
ただし、CVF の場合 raster より進んでいて、response という構造体に各波長での
response が含まれていて、最終的な結果は、Jy pixel-1 s-1 となって
出てくる。
CIA における具体的な手順は、
dark subtraction
deglitching (cleaning of cosmic ray events)
memory effect correction
flat fielding
であり、memory effect の補正以外は、2次元検出器によるデータ整約と同じである。
Example of raster PDS
>> help, /struct, n1783_lw10_red
** Structure <441528>, 45 tags, length=5810248, refs=1:
SSCD_NAME STRING 'CSSCN1783LW10____97012909590520'
AOT STRING 'raster'
SAD_NAME STRING 'CSADN1783LW10_00_97012910064469'
TARGET STRING 'NGC 1783'
NSCD INT 49
NBR_FRAME INT 878
TAB_FRAME FLOAT Array(49)
ADU_SEC_COEFF FLOAT Array(49)
INFO STRUCT -> <Anonymous> Array(1)
CCIM STRUCT -> <Anonymous> Array(1)
CALG STRUCT -> <Anonymous> Array(1)
CHANNEL STRING 'LW'
RA_RASTER DOUBLE 74.785309
DEC_RASTER DOUBLE -65.985847
ANGLE_RASTER DOUBLE 45.558598
RASTER_ROTATION DOUBLE 135.55860
RASTER_ORIENTATIONSTRING 'SPACECRAFT Y_AXIS'
M_STEPCOL FLOAT 24.0000
N_STEPLINE FLOAT 24.0000
RASTERCOL INT 7
RASTERLINE INT 7
PFOV FLOAT 3.00000
TINT FLOAT 2.10007
GAIN BYTE 2
FLTRWHL STRING 'LW10'
WAVELENGTH FLOAT 11.5000
FROM INT Array(49)
TO INT Array(49)
CUBE FLOAT Array(32, 32, 878)
MASK BYTE Array(32, 32, 878)
OTF BYTE Array(878)
IMAGE FLOAT Array(32, 32, 49)
RMS FLOAT Array(32, 32, 49)
NPIX FLOAT Array(32, 32, 49)
DARK FLOAT Array(32, 32)
FLAT FLOAT Array(32, 32)
DU FLOAT Array(878)
DV FLOAT Array(878)
TABFLATCOEF FLOAT Array(49)
NX_RASTER INT 80
NY_RASTER INT 80
RASTER FLOAT Array(80, 80)
RMSRASTER FLOAT Array(80, 80)
NPIXRASTER FLOAT Array(80, 80)
HISTORY STRING Array(40)
>> hs, n1783_lw10_red.info
** Structure <45aaa8>, 16 tags, length=4216, refs=2:
SCD_NAME STRING Array(49)
RA DOUBLE Array(49)
DEC DOUBLE Array(49)
ROLL DOUBLE Array(49)
CRPIX1 FLOAT Array(49)
CRPIX2 FLOAT Array(49)
GAIN FLOAT Array(49)
OFFSET INT Array(49)
TINT FLOAT Array(49)
ENTWHL STRING Array(49)
SELWHL STRING Array(49)
FLTRWHL STRING Array(49)
PFOV FLOAT Array(49)
N_ACCU FLOAT Array(49)
N_RASTER INT Array(49)
M_RASTER INT Array(49)
>> hs, n1783_lw10_red.ccim
** Structure <45b058>, 3 tags, length=602112, refs=2:
IMAGE FLOAT Array(32, 32, 49)
RMS FLOAT Array(32, 32, 49)
NPIX FLOAT Array(32, 32, 49)
>> hs, n1783_lw10_red.calg
** Structure <457778>, 7 tags, length=12320, refs=2:
DARK FLOAT Array(32, 32)
DARK_NAME STRING 'UNDEFINED'
FLAT FLOAT Array(32, 32)
OFLAT_NAME STRING 'UNDEFINED'
DFLAT_NAME STRING 'UNDEFINED'
PSF FLOAT Array(32, 32)
PSF_NAME STRING 'CCGLWPSF_96061912392532'
Example of CVF PDS
CIA> help, /struct, cvf1
** Structure <b46708>, 35 tags, length=4157032, refs=1:
AOT STRING 'cvf'
TARGET STRING 'NGC 419 '
SSCD_NAME STRING 'CSSCN419_CVF1____97013110382488'
SAD_NAME STRING 'CSADN419_CVF1_19_97040322250449'
CVF_NAME STRING 'LW-CVF1 9.14300 0.100000'
NSCD INT 39
CHANNEL STRING 'LW'
NBR_FRAME INT 727
TAB_FRAME INT Array(39)
PFOV FLOAT 6.00000
ASTR STRUCT -> ASTR_STRUC Array(1)
ADU_SEC_COEFF FLOAT Array(39)
TINT FLOAT 5.04018
GAIN INT 2
ENTWHL STRING Array(39)
SELWHL STRING Array(39)
CVF_INCR INT -2
WAVELENGTH_STARTFLOAT 9.14300
WAVELENGTH_END FLOAT 4.95600
FROM INT Array(39)
TO INT Array(39)
IMAGE FLOAT Array(32, 32, 39)
CUBE FLOAT Array(32, 32, 727)
TABFLATCOEF FLOAT Array(39)
MASK BYTE Array(32, 32, 727)
OTF BYTE Array(727)
DU FLOAT Array(727)
DV FLOAT Array(727)
NPIX INT Array(32, 32, 39)
RMS FLOAT Array(32, 32, 39)
DARK FLOAT Array(32, 32)
FLAT FLOAT Array(32, 32)
CALG STRUCT -> <Anonymous> Array(1)
RESPONSE STRUCT -> <Anonymous> Array(39)
HISTORY STRING Array(40)
CIA> hs, cvf1.astr
** Structure ASTR_STRUC, 8 tags, length=96:
CD DOUBLE Array(2, 2)
CDELT FLOAT Array(2)
CRPIX FLOAT Array(2)
CRVAL DOUBLE Array(2)
CTYPE STRING Array(2)
LONGPOLE FLOAT 180.000
PROJP1 FLOAT -1.00000
PROJP2 FLOAT -2.00000
CIA> hs, cvf1.calg
** Structure <4dfe40>, 7 tags, length=12320, refs=2:
DARK FLOAT Array(32, 32)
DARK_NAME STRING 'CCGLWDARK_96072615424101'
FLAT FLOAT Array(32, 32)
OFLAT_NAME STRING 'CCGLWOFLT_96072915584037'
DFLAT_NAME STRING 'CCGLWDFLT_96080115021433'
PSF FLOAT Array(32, 32)
PSF_NAME STRING 'CCGLWPSF_96061912392532'
CIA> hs, cvf1.response
** Structure <5f8ef0>, 5 tags, length=172, refs=2:
WAVELENG FLOAT 9.14300
FCVF INT 339
SENSITIV FLOAT 116.420
TRANSMIS FLOAT 0.936662
TRANS FLOAT Array(39)