跳转到主要内容

使用协方差推断多项式频谱模型

项目描述

Specfit

推断用于拟合射电天文学校准器谱的多项式系数及其协方差结构。

  • 作者: Tim Molteno. tim@elec.ac.nz
  • 出版物: Molteno, Timothy CA. "Correlation structure in flux-density calibrator models." Monthly Notices of the Royal Astronomical Society 527.3 (2024): 5732-5740.

数据

该目录的机器可读数据可在数据目录中的HDF文件中找到。 calibrator_catalogue.hdf5

安装

sudo pip3 install specfit

开发

pip3 install -e .

示例

以下是一个示例。此代码位于示例目录中。

import numpy as np
import specfit as sf
import matplotlib.pyplot as plt

# Data from J.E. Reynolds for J1939-6342
original_data = np.array(
    [[0.408,  6.24, 0.312 ],
     [0.843, 13.65, 0.6825],
     [1.38 , 14.96, 0.748 ],
     [1.413, 14.87, 0.7435],
     [1.612, 14.47, 0.7235],
     [1.66 , 14.06, 0.703 ],
     [1.665, 14.21, 0.7105],
     [2.295, 11.95, 0.5975],
     [2.378, 11.75, 0.5875],
     [4.8  ,  5.81, 0.2905],
     [4.8  ,  5.76, 0.288 ],
     [4.835,  5.72, 0.286 ],
     [4.85 ,  5.74, 0.287 ],
     [8.415,  2.99, 0.1495],
     [8.42 ,  2.97, 0.1485],
     [8.64 ,  2.81, 0.1405],
     [8.64 ,  2.81, 0.1405]])

freq_ghz, mu, sigma = original_data.T
freq = freq_ghz*1e9

names, stats, a_cov, a_corr, idata = \
    sf.spectral_inference("J1939-6342", 
        freq=nu, mu=data, sigma=sigma, order=4, nu0=1.4e9)

现在我们可以绘制数据并显示结果。

fig, ax = sf.dataplot(plt, "J1939-6342", freq=freq, mu=data, sigma=sigma)

a = stats[0] # Means

nu = np.linspace(min_freq, max_freq, 100)
S = sf.flux(nu, a, nu0=1.4e9)
ax.plot(nu/1e9, S, label="polynomial fit")
ax.legend()
fig.tight_layout()
plt.show()

print(names, stats)
print(a_cov)

待办事项

  • 将有关使用参数方差和流量不确定性的约束(而不是要求显式假设sigma)的一些想法纳入其中(在无数据推断的情况下)
  • 使用平滑性作为先验(而不是模型阶数)。

变更日志

  • 0.5.0b2 将构建系统移动到hatchling,并添加pyproject.toml。
  • 0.5.0b1 添加样条拟合和分段线性拟合。(进行中)。添加处理边际似然度的新函数。
  • 0.4.0b1 更新边际似然度方法,不再使用inferenceData对象,以避免pymc中的错误。返回相对边际似然度(而不是对数边际似然度)
  • 0.3.0b3 清理以使用自然对数! (重要) 使用一致的方法从后验中获得变量名称。添加机器可读的hdf5文件输出。
  • 0.3.0b2 使用pymc并升级到新版本。
  • 0.2.0b4 包含一个单独的函数(marginal_likelihood),用于使用SMC估计边际似然度。将似然度更改为使用学生t分布以提高稳健性。
  • 0.2.0b3 修复示例,将发布信息移至github自动化。
  • 0.1.0b3 第一次功能发布。
  • 0.1.0b4 [进行中] 将频率范围添加到full_column输出。返回推理数据以允许进一步处理。改进了绘图和后期处理。添加了后验PDF辅助绘图函数(较慢)。根据多项式阶数使用不同的调谐。输出到文件,包括备用名称列表

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

specfit-0.5.0b2.tar.gz (175.5 kB 查看哈希值)

上传时间 源代码

构建分发

specfit-0.5.0b2-py3-none-any.whl (26.4 kB 查看哈希值)

上传时间 Python 3

支持者