牧夫天文网

 找回密码
 加入牧夫(请注明天文爱好者,否则无法通过审核)

QQ登录

只需一步,快速开始

牧夫天文网 首页 天文書庫 天文器材 查看内容

LBT大型双筒望远镜MODS短缝光谱数据处理笔记

2021-7-25 12:40| 发布者: xxxxxxxxx| 查看: 10704| 评论: 0

摘要: LBT全称是Large Binocular Telescope,位于亚利桑那州格拉汉姆山顶,是个俩8.4米口径的望远镜组成的双筒望远镜,鲜红色镜架非常显眼,最近处理了这个望远镜上的Multi-Object Double Spectrographs (MODS)的数据,遇 ...
LBT全称是Large Binocular Telescope,位于亚利桑那州格拉汉姆山顶,是个俩8.4米口径的望远镜组成的双筒望远镜,鲜红色镜架非常显眼,最近处理了这个望远镜上的Multi-Object Double Spectrographs (MODS)的数据,遇到了很多不大不小的报错,所以留个笔记

LBT的纪录片有很多,比如说 超大建筑狂想曲 (Big Bigger Biggest) 第二季第九集 Telescope 等等,处理数据前有必要看一遍

LBG近况的文章是去年年底发表的 Current status of the facility instruments at the Large Binocular Telescope Observatory,作者 Barry Rothberg, Jennifer Power, Olga Kuhn, David Thompson, John M. Hill, R. Mark Wagner, Christian Veillet,原文网站在:

https://www.spiedigitallibrary.org/conference-proceedings-of-spie/11447/1144706/Current-status-of-the-facility-instruments-at-the-Large-Binocular/10.1117/12.2563352.full?SSO=1&tab=ArticleLink

有文章和报告视频,处理数据前有必要看一遍

MODS是LBT上的一个光谱仪,可以拍长缝光谱或者多目标短缝儿光谱,望远镜的文档在:https://sites.google.com/a/lbto.org/mods/documents-links 比较重要的俩文件是MODS设备使用说明书 MODSManual.pdf 和 数据处理软件的说明书 modsIDL.pdf ,处理数据前有必要看一遍

LBT用队列模式观测,也就是提交观测的所有配置后,由观测站的老师根据天气和优先级安排观测,LBT每晚都会拍一些定标数据,包括平场,bias,标准星等等,观测夜前后几天总会有点儿用得到的定标数据

LBT两个镜片后面各有一个MODS设备,分布叫MODS1和MODS2,每个MODS上又有两个CCD,分布接收红端和蓝端的谱,这样一来,一次观测就会得到四块儿数据,分别是MODS1红端,MODS1蓝端,MODS2红端,MODS2蓝端,科学数据里还有一些补充图,用来看狭缝位置

短缝观测的准备工作是要在视场内安排狭缝,有时候软件会警告说这里放狭缝可能有问题,比如得到的谱可能会超出视场,配置好后会得到mms文件,观测和数据处理都会需要这个mms文件

从LBT数据网站下载到的是原始数据,先做CCD的基本处理,用到的软件是modsCCDRed,包括合并平场、处理overscan、平场、合并灯谱,照明谱,合并科学数据等

这里需要多做一步扣除宇宙线,我这里用LA_COSMIC,效果很好 ,生成的fits的头文件需要替换回原来的头文件,方便后面的信息读取,处理完这些基本的步骤后,准备好:短缝目标源谱、短缝照明谱、短缝灯谱、标准星谱、标准星狭缝照明谱、标准星狭缝灯谱 这些数据和定标文件,下一步是用modsIDL程序包处理短缝数据,用到的命令只有:

做mask文件的 mkmms_ls,mkmms_lw

做观测计划文件的 long_plan

找各个狭缝光谱位置等处理的 mods_reduce,找狭缝位置,各个aperture的谱的位置

拟合各个狭缝天光背景的 mods_skyfit2d

做标准星流量校准文件的 mods_fluxstand

抽一维光谱的 mods_extract1d

这7个,其实如果下载网上提供的例子数据,按说明书走一遍流程,再对照一下网上提供的结果,基本上就明白是怎么回事儿了,而我之所以要写个笔记,是因为在用IDL这个pipeline的时候遇到了各种各样的报错,为了解决报错我也查看和修改了源程序,改的越来越多了以后,感觉有必要写个笔记 记录可能遇到的报错,提醒下次处理MODS短缝光谱的我

在pipeline手册里说需要IDL版本是8,我的版本是7.1,也许换成合适的IDL版本会有不一样的体验

我从mods1r的数据开始处理,前几部都很顺利,运行到 mods_reduce 这一步的时候,MODS_MASK会报错说找不到短缝观测的mms文件,这个文件是在观测的时候提交过的mms文件,在光谱数据头文件里也能找到maskname,找到这个文件放在数据处理的文件夹里就好了,默认的放mms文件的地方是modsIDL/xidl/Spec/Longslit/pro/LBT/MODS/Calib_Lib/facility_masks,存了很多长缝观测的mask,我试了一下放在当前目录下就行,就没去打扰facility_masks文件夹

之后的 MODS_SLITMASK 可能会被stop,这里可以画一下 coord_pix0[*,0]值看看,如果前俩数小于零的话可以手动赋值为零

mods_reduce 还会报错说找不到这个光栅名字,进一步检查发现我得到的 m1r数据头文件结尾有:

GRATNAME= 'Flat' GRATTC>M1.RC DONE: TCSTATUS' /                               

DATAPROD= 'spectrum'           / Spectrum or image                             

END                                                                            

所以mods1r数据的头文件里有俩GRATNAME,一个是G670L,一个是FLAT,long_plan以为GRATNAME是FLAT,mods_reduce不认识Flat这名字就报错,修改办法是把mods1r的数据头文件的GRATNAME=FLAT这一行删掉

接下来的 MODS_WSTRUCT 会报错说 没有 mods_blue_400kev.lst,检查modsIDL/xidl/Spec/Arcs/Lists,比较接近的名字是 amods_blue_400.lst ,直接改名为mods_blue_400kev.lst,也顺便把mods_red_670.lst 改成 mods_red_670kev.lst 这一步就能走下去了

之后还有时候的报错是

% Attempt to subscript JNDX with <LONG     (          -1)> is out of range.

IDL第7版的各个数组是没有 第 负一 个元素的,第八版的数组第 负一 个元素是数组最末一个元素,于是 第八版的IDL程序 运行在 第七版的IDL 的时候,会有些误会

经过一些修修补补,mods_reduce 终于可以运行了

mods_skyfit2d做天光背景拟合这一步要指定波长和像素关系文件和照明文件,否则也会报错提醒我找到合适的文件

mods_fluxstand这一步的报错主要是用到的标准星的谱在

modsIDL/xidl/Spec/Longslit/pro/LBT/MODS/Calib_Lib

这里找不到,可以从 modsIDL/xidl/Spec/Longslit/calib/standards/calspec 这里找一些放过去,指定标准星名字就好了,运行完会得到流量定标文件

另一个报错是 说我在结构体里没定义 FLUX2项目,查了一下源文件发现 std_spectrum_red 结构体的定义是

std_spectrum_red = {wave: new_red_wave, flux: corflux_red, ivar: corvar_red}

确实没有flux2这个项目,看了看程序也没怎么要用到FLUX2,于是我把 alt_flux = stdstar.flux2 改成 alt_flux = stdstar.flux,mods_fluxstand就能继续运行了

好了,经历了各种各样的报错,以及迫不得已的查看源文件检查错误后,终于可以用mods_extract1d抽谱了,场面是这样的


抽谱的场景,我后来也改了这个图的比例,位置,window编号,坐标范围等等方便查看

可以选抽谱的中心位置和宽度,有时候能看到谱,也有时候没啥信号,只能愣选个位置抽谱看看

抽出来谱后会发现文件结构和说明书里说的不一样,最重要的是没有一列像是波长信息,修改了很多源程序的我丝毫不觉得意外,打开mods_extract1d源文件,发现生成 xxx.cal.fits 文件的时候,确实没有存波长信息:

mwrfits,red_objspec_cal,redoutcal,red_hdrcal,/create

mwrfits,red_varspec_cal,redoutcal

mwrfits,red_skyspec_cal,redoutcal

mwrfits,red_extract,redoutcal

mwrfits,red_illspec_cal,redoutcal

而抽谱的时候,上图的右上角的图都是有波长信息的,就是说波长数组是存在的,只是没有被存入fits,进一步检查源程序发现波长被 x_specrebin 重采样后,存在 new_blue_wave 数组里,我就模仿别的xxx_cal数据样子,做了二维数组:

new_blue_wave_cal = [[new_blue_wave_cal],[new_blue_wave]]

存到fits里:

mwrfits,new_blue_wave_cal,blueoutcal

这样得到的数据终于有波长,流量,误差,天光 等信息了

这里抽谱是对红端和蓝端各自抽谱,抽谱位置可能会不一样,得到的谱可能也有些流量差,实在看着不顺眼的话可以对指定孔径再抽一次

处理完mods1的数据,我开始处理mods2,文件名字里的编号几乎是一样的,也就是观测的时候是两个镜子同时观测和存储数据,有时候会错位,得到的谱线数据曝光时间也不太一样,当然这都不是事儿,我轻快地用modsCCDRed处理完图像,开始用modsIDL的时候:

long_plan这里报错找不到设备,熟练地检查程序发现一句:

endif else if (strmatch(sxpar(hdr, 'INSTRUME'), 'MODS1*')) then begin

看来这个pipeline确实只是为mods1写的,改成

endif else if (strmatch(sxpar(hdr, 'INSTRUME'), 'MODS*')) then begin

就能处理mods2的数据了

处理完MODS的短缝数据的时候,我已经看了很多modsIDL的程序了,也修改了大大小小的细节,很惊讶会遇到这么多报错,仔细想来,modsIDL里的Doc文件夹里的pipeline说明书有三个,我这里的数据处理默认文件名和modsIDL.pdf里的介绍的名字很不一样,和 modsIDL0.1.pdf 讲解的非常一致,所以,也许我下载到的版本只是0.1版本,还有个更新的modsIDL版本,可以更加流畅地处理数据吧


路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部