我正在用光管进行光圈光度测量。我遵循了照片页中的教程,从源周围的圆环计算背景,并减去它。现在我必须计算光度法的误差,但是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']任何关于如何获得错误的想法都是非常感谢的。谨致问候。萨拉
发布于 2020-02-22 13:38:37
欢迎来到这样的莎拉!
这是一个很好的问题,几年前我在photutils工作时发现自己问过这个问题。有一节介绍了误差估计 在医生里,其中指出:
如果并且只有当
error关键字被输入到光度法()时,返回的表将在'aperture_sum'之外包含一个'aperture_sum_err'列。'aperture_sum_err‘提供了与'aperture_sum'相关的传播不确定性。
这假设您以前获得了总错误,并将其存储在一个数组中(通过error参数传递该数组)。让医生读一读,它会帮助你理解一些事情。
两年前,我就这个话题开设了photutils。一个用户建议一个脚本来获得孔径光度误差,就像IRAF那样。不幸的是,我显然没有继续测试提供脚本,所以我想现在该由您来决定了。
不幸的是,N.2. IRAF已经奄奄一息,人们可以用来了解它如何执行某些任务(例如光圈光度法)的大部分资源现在都消失了。有一个(专业的)天文学家的Facebook组,你可能会发现这类问题有帮助。
https://stackoverflow.com/questions/60335437
复制相似问题