PIPELINE II 一. cob50 (合并图象) 补充 二. pip2 概貌 三. pip2 流程 四. pip2 参数文件 五. 单个程序说明 六. 自动选取PSF星程序 j_auto 的详细说明: 一. cob50 (合并图象) 补充 每生成一个合并图象, 其FITS文件头上的项目关键词 NAXIS,NAXIS1,NAXIS2的 同一行上的第66列位置起, 分别加上: 被合并图象的幅数和没饱和点的ADU值; 合并 图象的公共区域的列方向上的两个值; 行方向上的两个值; 这6个值在pip2运行时 要用到. 有关没饱和点的ADU值的补充说明如下: 在pip2中, 若遇到饱和的星象, 是不进行测光的, 但必须告诉pip2一个值, 在 pip2.par中称之为HIGH GOOD DATUM, 即上面所说到的没饱和点的ADU值. 在cob50中是如下解决的: 若当前目录内存在一个名为cob.par文件, 那么每幅CCD图的饱和点(>29000)的 替换值取自该文件, 若当前目录内不存在cob.par文件, 那么替换值设定为500,000 写在FITS文件头上的没饱和点的值, 定义为: 替换值-1000. 有关pip2中的 HIGH GOOD DATUM 的取值, 下面还会提到. 二. pip2 概貌 当今世界上, 处理点源测光, 基本上都采用加拿大Peter B. Stetson的DAOPHOT 程序, 版本不少, 我们从其 UNIX 版本出发, 进行改造. 改造的原因是, 该版本自成体系: 有自己的环境, 对话交互式, 不能进行批处 理. 而且还依赖于STSDAS库. DAOPHOT 提供了全部 FORTRAN源程序, 除了一些STSDAS库中的输入输出子程序. 我们的做法是: 分割其程序, 取出所需部分, 根据程序上下文的要求, 编写缺 的哪部分,(STSDAD库没提供源程序), 脱离DAOPHOT的工作环境, 添加自动选PSF星的 程序, 编制适合于处理BATC图象的流程, 修改DAOPHOT部分源程序的处理方法, 这就 构成了pip2. pip2 能处理合并的或没合并的BATC 2048*2048 象元的FITS图象, 每幅图上至多 测星 50,000 颗. (一般在 5,000 颗左右) 我们的pip2包括如下独立的任务, 不依赖任何软件环境, 均可独立运行: 1. j_find 在CCD图像上找出点源位置, 生成 .coo 文件 2. j_phot 从 .coo 文件出发, 点源测光, 生成 .ap 文件 3. j_auto 从 .ap 文件出发, 自动选取PSF星候选者, 生成 .lst 文件 3.1 dismk 辅助程序, 查看PSF星候选者 在CCD图上的分布 3.2 dispsf3 辅助程序, 查看每一个PSF星候选者的详细星图及轮廓曲线 4. j_psf 从 .lst 文件出发, 构造PSF表,(点扩散函数), 生成 .psf 文件 5. j_star 从 .psf .ap 文件出发,(原型为allstar), 给出最终结果, 生成.als 6. j_substar 从CCD图上减星, 在pip2流程中要用到 上述程序运行十分简单, 键入程序名, 得一个简单的帮助信息, 在大多数情况下, 程序名加上被处理的图像名, 就能执行. pip2 就是使用不同的选项和文件, 反复调用上述6个程序, 达到最终目的. 类似 批处理, 但不是批处理. pip2 运行时要用到一个名为pip2.par的参数文件. 实际运行如下: pip2 图像名 在奔腾100机上, linux操作系统下, 20分钟左右得到结果. 当pip2运行完毕, 产生两个文件: 1. *.als 测光星等位置文件, 格式与 DAOPHOT 的输出结果一致. 每行是一颗星的内容, 它们是: 序号, 列位置, 行位置, 星等, 星等误差, 天光 迭代次数, CHI值, SHARPNESS值 (有关 CHI,SHARPNESS 的说明, 请查阅 DAOPHOT 资料) 2. *.mes 信息文件, 包含了pip2.par参数和图像FITS文件头上的部分重要参数. 文 件很小, 易于保存. 为后续资料处理, 提供方便. 例: j_xy4ad, 利用上述两个文件, 很容易将点源位置转成 赤径赤纬 值. 三. pip2 流程 pip2 由 fortran 写成, 几乎全由系统调用语句组成, 十分明潦, 容易修改. 当前PIP2版本的流程如下, 由22步组成, ( f1 代表FITS图像文件名) 1. 12. j_find f1 j_psf f1 1 2. 13. j_phot f1 mv f1.fitt f1.fit 3. j_star f1 j_auto f1 14. 4. mv f1.als f1.ap j_psf f1 -1 j_substar f1 5. 15. mv f1.ap f1.apt mv f1.fit f1.fitt mv f1.nei f1.ap mv f1.fits f1.fit j_star f1 16. 6. j_psf f1 2 mv f1.als f1.ap 17. j_substar f1 mv f1.fitt f1.fit 7. j_star f1 mv f1.fit f1.fitt 18. mv f1.fits f1.fit mv f1.als f1.ap 8. j_substar f1 j_psf f1 0 19. 9. mv f1.fit f1.fitt mv f1.fitt f1.fit mv f1.fits f1.fit j_star f1 20. 10. j_psf f1 mv f1.als f1.ap 21. j_substar f1 mv f1.apt f1.ap 11. mv f1.fitt f1.fit mv f1.fit f1.fitt 22. mv f1.fits f1.fit j_star f1 四. pip2 参数文件 pip2.par 文件存放在一个固定的文件目录内, 其中参数均已选好, 适合我们的 2048*2048像元的FITS图像. 若不满意, 可以把此文件拷到当前工作目录, 进行修改, pip2 总是先在当前目录内查找此文件. 若不存在, 再去/qso5/bin/目录内寻找. pip2.par内容如下: ** if following data modified, left a mark as following ** Ex. FITTINF RADIUS = 3.00 /12 96,12,9 old is 3.50 ** allowed add comments here only, lines not limited ********************************************* daophot.opt READ NOISE (ADU; 1 frame) = 3.50 / 1 GAIN (e-/ADU; 1 frame) = 3.30 / 2 LOW GOOD DATUM (in sigmas) = 5.00 / 3 HIGH GOOD DATUM (in ADU) = 28000.00 / 4 FWHM OF OBJECT = 3.37 / 5 THRESHOLD (in sigmas) = 3.50 / 6 LS (LOW SHARPNESS CUTOFF) = 0.40 / 7 HS (HIGH SHARPNESS CUTOFF) = 1.20 / 8 LR (LOW ROUNDNESS CUTOFF) = -1.15 / 9 HR (HIGH ROUNDNESS CUTOFF) = 1.25 /10 WATCH PROGRESS = -2.00 /11 -2.0 FITTING RADIUS = 3.00 /12 PSF RADIUS = 6.00 /13 VARIABLE PSF = 2.00 /14 FRACTIONAL-PIXEL EXPANSION = 0.00 /15 ANALYTIC MODEL PSF = 3.00 /16 EXTRA PSF CLEANING PASSES = 3.00 /17 USE SATURATED PSF STARS = 0.00 /18 PERCENT ERROR (in %) = 0.75 /19 PROFILE ERROR (in %) = 5.00 /20 ********************************************* photo.opt A1 RADIUS OF APERTURE 1 = 3.00 / 1 A2 RADIUS OF APERTURE 2 = 4.00 / 2 A3 RADIUS OF APERTURE 3 = 5.00 / 3 A4 RADIUS OF APERTURE 4 = 6.00 / 4 A5 RADIUS OF APERTURE 5 = 7.00 / 5 A6 RADIUS OF APERTURE 6 = 8.00 / 6 A7 RADIUS OF APERTURE 7 = 10.00 / 7 A8 RADIUS OF APERTURE 8 = 12.00 / 8 A9 RADIUS OF APERTURE 9 = 14.00 / 9 AA RADIUS OF APERTURE 10 = 16.00 /10 AB RADIUS OF APERTURE 11 = 18.00 /11 AC RADIUS OF APERTURE 12 = 20.00 /12 IS INNER SKY RADIUS = 10.00 /13 OS OUTER SKY RADIUS = 20.00 /14 ********************************************* allstar.opt FITTING RADIUS = 3.00 / 1 CE (CLIPPING EXPONENT) = 6.00 / 2 REDETERMINE CENTROIDS = 1.00 / 3 CR (CLIPPING RANGE) = 2.50 / 4 WATCH PROGRESS = -2.00 / 5 MAXIMUM GROUP SIZE = 60.00 / 6 PERCENT ERROR (in %) = 0.75 / 7 PROFILE ERROR (in %) = 5.00 / 8 IS (INNER SKY RADIUS) = 3.00 / 9 OS (OUTER SKY RADIUS) = 6.00 /10 ********************************************* end 有二点说明: 1. 参数 HIGH GOOD DATUM 的取值 若是单幅图像, 就取pip2.par中的值, ADU=28000 若是合并图像, 取 被处理图像FITS头上的NAXIS行上的列出值 与 pip2.par 文件中的值 的最大值. 2. FWHM of OBJECT, 在pip2.par中失去意义, 程序自动从FITS头上读取, 根据 seeing大小/1.67 得到象元数. 五. 单个程序说明 j_find: 读出噪声与FITS文件上列出的合并图像数目有关, 决定选星多少 选星区域和与FITS文件上列出的合并图像的公共区域有关, 靠近边缘5个 象元以内的星不选. j_phot: 考虑了HIGH GOOD DATUM 和 FWHM 的自动选取问题 j_psf: 程序运行时会对PSF候选者的品质打上记号, 差一点的打上?号, 认为有 问题的打上*号. 若遇到*号, 程序自动删除该PSF星候选者, 重做PSF轮廓. 某些情况下, 例焦面不平, 并不希望删除*者, 那么在命令行上加上 ! 号. 其它程序没有特别说明. 六. 自动选取PSF星程序 j_auto 的详细说明: 概要: 由于CCD上的成像品质与位置变化有关(焦面中心到焦面边缘), 选出的PSF 星应该均匀分布在整个区域. 所以划分成512*512小块, 单独求解. 在运算 过程中, 均利用统计方法, 一步步筛选出好的样本. 若最后不够数, 放宽 筛选条件重做. 最后, 集中每小块结果, 若超过40 个, 则删除星等暗者. 流程: 1. 从合并图像的公共区域, 确定每一小块 512*512象元区域 PSF选出星的上限. K8 = 取整[20e6/(列pixel*行pixel)]; K8 一般取值为 4~~5 颗. 2. 选出星与其它星的 星间距的阀值暂取 >20 象元 3. 读入 *.ap 文件上认为测得比较好的星, (不饱和, 孔径测光结果不奇特(不运算)) 4. 去掉靠近总边框31象元以内的星 5. 统计求出选出星的邻近天光的平均值和本块内最亮且不饱和星的星等值. 去掉大 于1.2倍天光的星, 去掉暗于 最亮星等+3等 的暗星. 6. 利用 .ap 文件中提供的孔径测光的信息, 每颗星有不同的一组测值, 去掉"星系" 类的星, 去掉反常测值的星(运算). 7. 去掉邻近星 如果做完此步, 所剩星数已经小于规定上限 K8, 说明该星场为密集星场, 星间距 取20象元太苛刻, 于是星间距缩小5象元后重做. 当星间距等于10象元, 则不再迭 代, 直接往下走. 8. 求出所剩星的seeing 及平均seeing 若大于平均seeing 的1.05倍, 删去, 怀疑为星系或双星 若小于平均seeing 的0.75倍, 删去, 怀疑为坏点或宇宙线 9. 删除邻近有亮星的候选者 统计出一个平均天光; 以选出星为中心, 在环形区域内, 15--70象元, 求出大于平均天光的点数; 再统计出上述点数的平均值, 删去大于1.2倍平均值的星; 10. 分别以所选星为中心, 半径为横坐标, ADU值为纵坐标, 构造平面曲线, 形状为 半支高斯曲线, 求出其翼上的起伏值, 具体做法: 在半径为星间距的范围内, 取 出全部 R(i),ADU(I), 以 R 大小排队, 截取 R=FWHM 到 R=星间距 的一段数据. 累加 绝对值[(ADU(I)-ADU(I+1))/R(I)] 11. 统计上述所剩星的起伏平均值, 常数取1.2, 删去大于 平均值常数倍的星 若所剩星大于 K8, 重做第11步, 至多5次 12. 若所剩星仍大于K8, 则常数减去0.05, 跳到第11步. 总可以使所剩星的数目小于 等于K8. 13. 若选出的星还不到K8的一半, 则放宽一开始的 在.ap 中选星条件. 跳到第 3 步 重做, 仅仅迭代一次 14. 把每小块选出的星合在一起考虑 15. 删掉所剩星之间的星间距小于20象元的星. 16. 把所剩星按亮度排队, 若星数目大于40, 则适当删去尾巴上的暗星. PSF候选者 = M - (M-40)/2 最后, 显示每小块的星数目和PSF候选星的值. 98,07,15 最近, 对 pipeline 2 作了些修正 对2048*2048 pixels 的图, 分成9块来做DAOPHOT, 1 2 3 每相邻两块重迭 200 象元 4 5 6 经测试, 选psf星 取一阶为好 7 8 9 每小块星等校正如下: 以 5 为基准, 先分别校正第2,4,6,8小块 然后, 四个角上的第1,3,7,9块, 用5及相邻两块来校正 最后, 形成总的一个文件. 由于, 选PSF星的区域变小, 自动选星程序有一个新的版本, j_auto9 初始参数: 星等范围 4 个星等, 星间距 15 pixels 如选不到 25颗星, 那么逐步放宽选星条件, 星等从4-->5, pixel 15-->10 如选到的星数目多于30, 那么取亮的星作为PSF星. 保留原有的pip2不变. 新增的程序名为: pip21 (一阶的意思) 将调用新程序: j_1to9, j_auto9, j_9to1 --------------------- 询找变星等等..... 一旦有了 2 幅位置基本相同的 pipeline2 的输出结果. 例 t491.als, t493.als (以及 t491.fit, t491.mes, t493.fit, t493.mes) 1. j_xy4ad t491 生成 t491.cat (转成 赤经,赤纬) j_xy4ad t493 t493.cat 2. no1 t491.cat t493.cat no1_outfile (成对 找出坐标相同的星) 3. no3 no1_outfile t491.fit t493.fit (图示结果) 灰度图: 101*101 pixels 曲线图: 半径 8 pixels 数据阵: 15*15 pixels 孔径测光半径: 5 pixels 现有子命令: (有待扩充) 鼠标左键: 选星, 再次在刚选中的星上点左键, 则在图上抹去该星 鼠标右键: 退出 鼠标箭头放在所选星上, 敲键盘 d, 显示数据阵, 孔径测光星等