我正在使用photutils执行光圈测光。我遵循了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']
关于如何获取错误的任何想法都会受到赞赏。最好的祝愿。萨拉
欢迎来到萨拉!
这是一个很好的问题,几年前我与photutils
合作时发现自己问了一个问题。关于[错误估计 in the docs的部分指出:
[且仅当将error
关键字输入到aperture_photometry()时,返回的表除'aperture_sum_err'
之外还将包括'aperture_sum'
列。'aperture_sum_err
'提供了与'aperture_sum'
相关的传播的不确定性。
这假定您先前已获得
total error并将其存储在数组中(通过error
参数传递)。阅读文档,这将帮助您了解一些内容。
photutils
。用户建议使用脚本以与IRAF相同的方式获得孔径光度学误差。不幸的是,我显然没有对photutils
进行测试,因此我想现在取决于您了。[不幸的是,第2条。IRAF濒临死亡,人们可以用来了解其如何执行某些任务(例如光圈测光)的大部分资源现在已经消失了。 (专业)天文学家有provided script,您可能会对这类问题有所帮助。