林眾
(暨南大學(xué) 計(jì)算機(jī)科學(xué)系,廣東 廣州 510632)
密集星場的測光研究及其進(jìn)展在恒星物理星系動力學(xué)、星系形成和演化及宇宙學(xué)等眾多天文學(xué)領(lǐng)域具有重要意義。隨著天文研究的進(jìn)步和發(fā)展,對密集星場測光軟件的要求越來越高。密集場測光軟件作為天文研究的重要組成部分,不僅要實(shí)現(xiàn)自動尋星、孔徑測光、建立點(diǎn)擴(kuò)散函數(shù)(PSF)模型、星象分組、光度擬合等功能還要能方便廣大天文研究者使用。而國際現(xiàn)有的密集場測光軟件都是基于Linux的,對于非計(jì)算機(jī)專業(yè)的研究者來說安裝和使用十分不便。
設(shè)計(jì)和實(shí)現(xiàn)基于VC的密集星場測光軟件是解決上述問題的有效途徑。本系統(tǒng)采用MFC架構(gòu)結(jié)合STL庫,在Windows平臺上開發(fā),提高了代碼的運(yùn)行效率,為二次開發(fā)提供了極大的擴(kuò)展性和靈活性。
為了在密集場中測量出星像的亮度,通常的點(diǎn)擴(kuò)散函數(shù)測光方法是在實(shí)際拍攝的CCD圖像上擬合一個(gè)二維的光度分布函數(shù)模型(點(diǎn)擴(kuò)散函數(shù))并在這個(gè)模型上加一個(gè)天空背景[2]。因此要實(shí)現(xiàn)密集星場測光,計(jì)算機(jī)軟件必須完成如下任務(wù):
(1)自動尋星。自動尋星是指能自動在CCD圖像上搜尋并初步定位一些亮度比較強(qiáng)的物體,并且這些物體代表了實(shí)際的星象。
(2)孔徑測光。在稀疏場,孔徑測光[5]是一種可靠的測光方法,在密集場孔徑測光,為最后的光度擬合提供了合適的初值。
(3)建立點(diǎn)擴(kuò)散函數(shù)(PSF)模型。一個(gè)準(zhǔn)確的點(diǎn)擴(kuò)散模型必須被建立用來在密集星場測光。
(4)光度擬合。一旦PSF模型被建立,就可以把它放在不同的星像上來擬合它們的光度。
系統(tǒng)采用VC6.0和WindowsXP開發(fā)環(huán)境,系統(tǒng)的程序流程圖如圖1所示。
動態(tài)鏈接庫模塊主要調(diào)用了CFISIO庫實(shí)現(xiàn)對FIT文件的讀取,使用了如下函數(shù):
圖1 系統(tǒng)流程圖
打開fit文件:
fits_open_image(&fptr, FilePath, READONLY, &status);
讀取圖像數(shù)據(jù)類型:
fits_get_img_type(fptr,&BITPIX,&status);
讀取圖像維數(shù):
fits_get_img_dim(fptr,&NAXIS,&status);
讀取圖像各維的長度:
fits_get_img_size(fptr,NAXIS,NAXES,&status);
讀取曝光時(shí)間:
fits_read_keyword(fptr,keyname,m_exposure,NULL,&status);
關(guān)閉文件:
fits_close_file(fptr,&status);
其中fptr為fits文件句柄,status為狀態(tài)指針,NAXIS只能為2,表示二維圖像。NAEXS[0]存儲橫向像素?cái)?shù),NAEXS[1]存儲縱向像素?cái)?shù)。
首先,選擇一顆中等亮度的處在比較稀疏區(qū)域的星象,用二維高斯擬合法[4]來測得這顆星的半高全寬(full width half maximum);然后選擇一個(gè)形如圖2所示的高斯模板來與原始圖像做卷積。在卷積后的圖像上識別星象。這個(gè)卷積核(nbox)一般取3倍的高斯函數(shù)標(biāo)準(zhǔn)差(即1.274倍的 FWHM)大小。
圖2 fwhm=4.8,卷積核為7×7的高斯模板
設(shè)卷積前的灰度分布函數(shù)為D(x,y),卷積后為H(x,y),可以得到如圖3所示的在X方向的一維灰度分布函數(shù)。其中G表示一個(gè)降低了的高斯函數(shù),1表示一顆星象,2表示一個(gè)雙星,3代表一個(gè)勉強(qiáng)解析到的星系,4代表一個(gè)宇宙射線,5表示一個(gè)低值的壞像素。
卷積后:(1)星系輪廓的高度被抑制了,而星像的輪廓并沒有明顯變化;(2)雙星的輪廓分開了;(3)天空背景被抑制到0值附近。但對于宇宙射線和壞像素點(diǎn)還沒有明顯區(qū)別。下面將分別計(jì)算星像的銳度和圓度2個(gè)參數(shù)值用以識別它們。
(1)星象銳度(sharp)表示了最優(yōu)擬合的高斯函數(shù)的中心點(diǎn)與其周圍像素灰度的平均值的強(qiáng)度之比,可用來剔除宇宙射線。對于宇宙射線或者其他的非常窄的輪廓來說,由于其亮度大多分布在中心像素上,因此其sharp值大于1。對于正常的星象來說,這個(gè)值的范圍是0.2~1之間。計(jì)算公式如下:
圖3 卷積前后的一維灰度分布
其中 i0、j0表示在卷積區(qū)域的局部最大值的坐標(biāo),<Di,j>表示周圍像素灰度平均值。
(2)星像的圓度代表星象在x方向和y方向的流量分布對比,可用來剔除壞像素。正常星像在各個(gè)方向上的流量應(yīng)該基本對稱,而壞像素通常不對稱(例如由于電荷溢出產(chǎn)生的十字)。對于正常的星像來說,這個(gè)值的范圍在-2~2之間。計(jì)算公式如下:
其中hx和hy分別表示一維高斯函數(shù)擬合值的高度。再以卷積區(qū)域的局部最大值 (必須高于一定的閾值,如4倍天空背景的標(biāo)準(zhǔn)偏差)的坐標(biāo)為初始值,再次使用高斯定心算法給出星像的初步中心。
點(diǎn)擴(kuò)散函數(shù)一般是用來反映光強(qiáng)(灰度)隨距離星象中心距離變化的函數(shù)。它反映了大氣寧靜度、圖像抖動以及望遠(yuǎn)鏡跟蹤誤差等的綜合效應(yīng)。一個(gè)恒星的星像輪廓大部分是由儀器點(diǎn)擴(kuò)散函數(shù)和大氣擾動以及跟蹤誤差綜合的結(jié)果[1]。這里使用式(4)的Gauss函數(shù),把這個(gè)函數(shù)正確地放置在一顆星像上,對這個(gè)函數(shù)在星像范圍內(nèi)每個(gè)像素所占的面積積分,取其積分結(jié)果和該像素觀測流量值之差,以此達(dá)到最接近的擬合,從而建立起所采用的點(diǎn)擴(kuò)散函數(shù)[4]。
其中 x0、y0,表示星像中心的所在位置。
具體算法如下:
(1)首先定義2個(gè)半徑。①PSFRAD:在這個(gè)以像素為單位半徑的圓形區(qū)域內(nèi)定義PSF。通常要比最亮的星的半徑稍微大一些。②FITRAD:在這個(gè)以像素為單位半徑的圓形區(qū)域內(nèi)進(jìn)行最小二乘擬合,通常應(yīng)該等于星像的半高全寬,在比較密集時(shí)稍小。
(2)選星。挑選比較不密集的、沒有伴星、沒有星云的比較好的星像,星像的中心距離圖像邊緣大于PSFRAD。但如果選出的星在接下來的高斯擬合中迭代次數(shù)超出25次,將被忽略。這里建議挑選6~18顆星。
(3)初始定出星象中心和天空背景(前面的尋星和孔徑測光給出)。
(4)使用(4)式對第一顆星分格點(diǎn)進(jìn)行雙變量高斯擬合。如果某個(gè)方向上的σ<=1,處理區(qū)域?yàn)?3×3,如果σ>3,處理區(qū)域?yàn)?7×7,其余為 5×5。 σ初始值為 2.0。 相鄰兩次迭代擬合時(shí),測量所得的星象中心位置在X軸和Y軸方向上的偏差絕對值均不大于 0.001及 H、σx、σy的偏差均不大于0.01時(shí)退出迭代。
(5)用實(shí)際星像輪廓減去求出的最佳高斯擬合函數(shù)求出殘差表。
(6)加入其他候選星提高信噪比。
這里求出的PSF是由高斯函數(shù)和殘差表組成的。
將真實(shí)的圖像數(shù)據(jù)減去點(diǎn)擴(kuò)散函數(shù)值得到殘差。這個(gè)殘差是由天空背景、隨機(jī)噪聲以及不合適的點(diǎn)擴(kuò)散函數(shù)參數(shù)組成。使用最小二乘[5]擬合式(5)使得殘差最小,用以調(diào)整點(diǎn)擴(kuò)散函數(shù)的參數(shù),從而得到合適的參數(shù)值,并計(jì)算出最終的星等。
式中Δi,j代表(i,j)像素處的殘差,Pk表示經(jīng)過位置平移和亮度縮放后第 k顆星的 PSF,Δx0,k表示第 k顆星中星像中心在 x方向上的修正量,Δy0,k表示第 k顆星中星象中心在 y方向上的修正量,Δh0,k表示第 k顆星的亮度縮放因子的修正量,n表示星的個(gè)數(shù)。
找出測量比較準(zhǔn)確的中等亮度星作為參考星,計(jì)算它們的平均星等mi,r。 通過m′i,j=mi,j-mi,r計(jì)算星像之間的亮度差,然后在多幅圖像中統(tǒng)計(jì)這些亮度差的平均值m′j及標(biāo)準(zhǔn)差σj,最后用σj來衡量測量的內(nèi)部精度。
通過使用自己開發(fā)的程序,對山東大學(xué)威海天文臺1米望遠(yuǎn)鏡所拍攝M39星團(tuán)CCD圖像進(jìn)行實(shí)際測量。結(jié)果表明:在使用相同的星建立點(diǎn)擴(kuò)散函數(shù)的情況下,對于比較稀疏區(qū)域的亮星 (約14 mag)內(nèi)部精度達(dá)到0.003 mag,而對于較密集的區(qū)域的暗星(約17 mag)內(nèi)部精度達(dá)到0.128 mag。
[1]Da Costa G S.Basic photometry techniques[J].ASPC,1992,24:90-104.
[2]STETSON P B.On the growth-curve method for calibrating stellar photometry with CCDs[J].PASP,1990,102:932-948.
[3]Stetson P B.DAOPHOT:a computer program for crowdedfield stellar photometry[J].PASP,1987,99:191-227.
[4]李展,彭青玉,韓國強(qiáng).CCD圖像數(shù)字定心算法的比較.天文學(xué)報(bào),2009,340-348.
[5]曾開華,彭青玉,高精度恒星孔徑測光注釋[J].天文研究與技術(shù),2010,7:124-131.