在 astropy 中,可以使用 uncertainties 包将不确定性量化为不确定性量和值。在 QTable 中,可以使用 Column 的 meta 属性来标识每个 Column 的不确定性。
示例:
import numpy as np
from astropy.table import QTable, Column
from astropy import units as u
from astropy import uncertainty as unc
# 构造数据
data = {
'name': ['source1', 'source2', 'source3'],
'flux': [0.5, 1.2, 2.0] * u.Jy,
'flux_err': [0.1, 0.2, 0.3] * u.Jy,
}
# 将值和不确定性量化
flux_col = unc.Quantity(data['flux'])
flux_err_col = unc.Quantity(data['flux_err'])
# 创建 QTable
table = QTable()
table['name'] = Column(data['name'], description='source name')
table['flux'] = Column(flux_col.nominal_values, description='flux', unit='Jy')
table['flux'].meta['uncertainty'] = flux_err_col
在这个示例中,使用 uncertainties 包将 flux 和 flux_err 数组转换为量化值,然后使用 QTable 中的 Column 来表示 flux 和 flux_err。通过设置 meta 属性,将不确定性信息与 flux 关联。