python-3.x - Photutils/Aperture 测光 如何找到测光的错误?
问题描述
我正在使用 photoutils 进行光圈测光。我遵循了 photutils 页面中的教程,从源周围的圆形环计算背景并将其减去。现在我必须计算光度测量的误差,但是,aperture_photometry 任务不会给出光圈误差或背景误差,除非我给它一个输入误差。我应该给任务什么输入错误?为了获得光圈测光,我使用了以下代码:
import numpy as np
import matplotlib.pyplot as plt
from astropy.io import fits
from matplotlib.colors import LogNorm
from astropy.stats import sigma_clipped_stats
from photutils import aperture_photometry
from photutils import CircularAnnulus
from photutils import CircularAperture
image = fits.open('cut_F555_03.fits')
hdu_list = image
image_data = hdu_list[0].data
import pandas as pd
sources = pd.read_csv('daofind.tab', delimiter = '\s+', header = 0)
loc = np.array([sources['xcentroid'], sources['ycentroid']])
positions = np.transpose(loc)
apertures = CircularAperture(positions, r = 8.12)
rawflux = aperture_photometry(image_data, apertures)
annulus_apertures = CircularAnnulus(positions, r_in = 8.12, r_out = 18.12)
annulus_masks = annulus_apertures.to_mask(method = 'center')
bkg_median = []
for mask in annulus_masks:
annulus_data = mask.multiply(image_data)
annulus_data_1d = annulus_data[mask.data > 0]
_, median_sigclip, _ = sigma_clipped_stats(annulus_data_1d)
bkg_median.append(median_sigclip)
bkg_median = np.array(bkg_median)
rawflux['annulus_median'] = bkg_median / annulus_apertures.area
rawflux['aper_bkg'] = bkg_median * apertures.area
rawflux['final_phot'] = rawflux['aperture_sum'] - rawflux['aper_bkg']
任何关于如何获得错误的想法将不胜感激。最好的祝愿。萨拉
解决方案
欢迎来到 SO Sara!
这是一个很好的问题,几年前我发现自己在与photutils
. 文档中有一个关于错误估计 的部分,其中指出:
当且仅当
error
关键字被输入到opening_photometry()时,返回的表将包含'aperture_sum_err'
除'aperture_sum'
.'aperture_sum_err
' 提供与 相关的传播不确定性'aperture_sum'
。
这假设您之前已经获得了总误差并将其存储在一个数组中(您通过error
参数传递)。阅读文档,它将帮助您理解一些事情。
两年多前,我就这个话题打开了一个问题。photutils
一位用户建议使用与 IRAF 相同的方式获取光圈测光误差的脚本。不幸的是,我显然没有完成对提供的脚本的测试,所以我想现在取决于你了。
不幸的是,第 2 号。IRAF 已濒临死亡,人们可以用来了解它如何执行某些任务(例如,孔径光度测量)的大部分资源现在都消失了。有一个面向(专业)天文学家的Facebook 群组,您可能会发现对这类问题很有帮助。