SQUDE Mock Spectrum 教程:M82 星暴风 50 ks 模拟光谱
从 Chandra best-fit → SQUDE fake_pha → 再拟合验证
概述
本教程完整还原 M82 SQUDE proposal 中 50 ks 模拟光谱 的制作过程。 核心流程分三步:
flowchart LR
A[Chandra 4×4' 光谱] --> B[Sherpa fit<br/>→ best-fit 参数]
B --> C[SQUDE fake_pha<br/>ARF+RMF, 50 ks]
C --> D[再拟合<br/>→ 参数恢复验证]
D --> E[Proposal<br/>可行性论证]
关键工具: Sherpa (fake_pha, levmar, chi2gehrels), SQUDE ARF/RMF v1.1.1/1.1.2, XSPEC models (tbabs, vapec, gaussian, powerlaw)
输入数据: Chandra ACIS 4×4 arcmin 区域提取光谱 (9 个 early ObsID 叠加, ~100 ks 总曝光)
Step 1: Chandra 基线拟合
1.1 数据准备
从 Chandra 档案数据中提取 M82 中心 4′×4′ 区域光谱:
- 选取 9 个 early ObsID (总曝光 ~100 ks), 含 ObsID 380 经
splitobs拆分 specextract提取源光谱 + ARF + RMFcombine_spectra叠加为m82_4x4arcmin_early100ks_combined_src.pi
# 提取命令 (extract_m82_early100ks.sh)
bash scripts/extract_m82_early100ks.sh1.2 物理模型
模型结构(文献启发的星暴风模型):
\[ \text{Model} = \text{tbabs}_{\text{Gal}} \times \left[ \text{tbabs}_{\text{wind}} \times (\text{vapec}_{\text{cool}} + \text{vapec}_{\text{hot}} + \text{gaussian}_{\text{O VIII}} + \text{gaussian}_{\text{Mg XI}}) + \text{tbabs}_{\text{PL}} \times \text{powerlaw} \right] \]
| 成分 | 物理含义 | 参数 |
|---|---|---|
tbabs_Gal |
银河系前景吸收 | \(N_H = 4 \times 10^{20} \; \text{cm}^{-2}\) (固定) |
tbabs_wind |
M82 星风内禀吸收 | \(N_H\) (自由) |
vapec_cool |
冷相热等离子体 | \(kT\), O/Ne/Mg/Si/S/Fe 丰度, norm (自由) |
vapec_hot |
热相热等离子体 | \(kT = 5 \; \text{keV}\) (固定), 丰度链接 cool, norm (自由) |
gaussian ×2 |
电荷交换 (CX) 发射线 | O VIII (0.777 keV), Mg XI (1.234 keV) |
powerlaw |
硬 X 射线点源连续谱 | \(\Gamma = 1.6\) (固定), norm (自由), 吸收独立 |
固定参数: 银河 \(N_H = 0.04 \times 10^{22}\), 热相 \(kT = 5\) keV, \(\Gamma = 1.6\), redshift = 0.000677. 自由参数: 14 个 (wind \(N_H\), cool \(kT\), 6 个丰度, 2 个 norm, 2 个 CX norm, PL \(N_H\), PL norm).
1.3 拟合配置
set_stat("chi2gehrels")
set_method("levmar")
notice(0.3, 7.0)
group_counts(50) # 每 bin 至少 50 counts1.4 Best-fit 结果
| 参数 | 拟合值 | ±1σ |
|---|---|---|
absth.nH |
0.3578 | ±0.0087 |
vcool.kT |
0.7048 keV | ±0.0072 |
vcool.O |
0.1302 | ±0.0336 |
vcool.Ne |
0.4383 | ±0.0571 |
vcool.Mg |
0.6462 | ±0.0545 |
vcool.Si |
0.9557 | ±0.0821 |
vcool.S |
1.1453 | ±0.0933 |
vcool.Fe |
0.1001 | ±0.0093 |
vcool.norm |
0.02454 | ±0.00204 |
vhot.norm |
0.00264 | ±0.00105 |
gce_o.norm |
9.15×10⁻⁵ | ±3.77×10⁻⁵ |
gce_mg.norm |
3.98×10⁻⁵ | ±6.61×10⁻⁶ |
abspl.nH |
3.2736 | ±0.2415 |
pl.ampl |
0.00460 | ±0.00020 |
拟合统计: rstat = 1.94, dof = 430, 444 data points.
丰度模式: O/Fe ≈ 1.3, Ne/Fe ≈ 4.4, Mg/Fe ≈ 6.5 — 显著的 α 增强,符合超新星核合成预期。 Si/S 接近太阳值,Fe 严重偏低 (~0.1 solar),暗示 Fe 仍被锁在尘埃中。
Step 2: SQUDE 模拟光谱生成
2.1 核心函数: fake_pha
Sherpa 的 fake_pha 函数使用源模型 + 仪器响应矩阵,通过 Poisson 随机化生成模拟 PHA 文件:
from sherpa.astro.ui import *
# 加载 SQUDE 响应
SQUDE_ARF = "SQUDE_response/SQUDE_rsp_v1.1.1.arf"
SQUDE_RMF = "SQUDE_response/SQUDE_rsp_v1.1.2.rmf"
# 设置模型 (Step 1 的 best-fit 参数)
setup_bestfit_model()
# 生成模拟光谱
fake_pha(
1, # dataset ID
arf=SQUDE_ARF,
rmf=SQUDE_RMF,
exposure=50000.0, # 50 ks
grouped=False, # 不分组,保留原始 channel
)
# 保存 PHA
save_pha("m82_squde_simulated_50ks.pha")2.2 SQUDE 仪器响应
| 参数 | 值 |
|---|---|
| 能段 | 0.3–4 keV |
| 能量分辨率 | ~4 eV (FWHM) |
| 有效面积 | ~125 cm² @ 0.5 keV, ~230 cm² @ 1.49 keV |
| 视场 | 4×4 arcmin |
| PSF HPD | ~40 arcsec |
注意: fake_pha 生成的是 Poisson 随机化的模拟数据。每次运行结果不同(除非固定 seed)。 在 proposal 中我们使用了 N=50 realization 来量化统计涨落。
2.3 模拟结果
| 指标 | 值 |
|---|---|
| 总计数 | 58,553 counts |
| 能量通道数 | ~1024 (0.3–4 keV) |
| 曝光时间 | 50,000 s |
# 查看模拟数据统计
data = get_data()
print(f"Total counts: {data.counts.sum():.0f}")
print(f"Channels: {len(data.channel)}")58,553 counts / 50 ks ≈ 1,171 cts/ks — M82 极高的表面亮度使 SQUDE 单次指向即可获得充足光子统计。
Step 3: 再拟合与参数恢复验证
3.1 拟合配置
与 Step 1 相同的模型结构和拟合方法,但使用 SQUDE 模拟数据:
load_pha("m82_squde_simulated_50ks.pha")
load_arf("SQUDE_response/SQUDE_rsp_v1.1.1.arf")
load_rmf("SQUDE_response/SQUDE_rsp_v1.1.2.rmf")
group_counts(50)
notice(0.3, 7.0)
set_stat("chi2gehrels")
set_method("levmar")
setup_model()
fit()3.2 参数恢复结果
| 参数 | 输入 (Chandra) | SQUDE 恢复 | 偏差 |
|---|---|---|---|
absth.nH |
0.3578 | 0.3592 | +0.4% |
vcool.kT |
0.7048 | 0.7071 | +0.3% |
vcool.O |
0.1302 | 0.1241 | −4.7% |
vcool.Ne |
0.4383 | 0.4144 | −5.5% |
vcool.Mg |
0.6462 | 0.6228 | −3.6% |
vcool.Si |
0.9557 | 0.8894 | −6.9% |
vcool.S |
1.1453 | 1.0666 | −6.9% |
vcool.Fe |
0.1001 | 0.0954 | −4.7% |
拟合统计: rstat = 0.775, qval ≈ 1.0, 965 data points / 951 dof — 拟合质量优秀。
- \(N_H\) 和 \(kT\) 恢复精度 <1% — SQUDE 对连续谱形状约束极强
- 丰度系统性偏负 3–7% — 可能因 SQUDE 能量分辨率 (~4 eV) 低于 Chandra ACIS CCD (~150 eV @ 1 keV) 导致发射线 EW 系统偏低
- 所有偏差 <5% (除 Si/S 约 7%) — 满足 proposal 可行性论证要求
- 拟合质量优秀 (rstat=0.775, qval≈1.0) — 模型结构正确,无显著 model misspecification
Step 4: 可视化输出
4.1 全波段拟合图

上图展示 50 ks SQUDE 模拟光谱 (黑色数据点) 与 best-fit 模型 (红色实线)。 下方残差面板显示 (data−model)/error,无显著系统偏差。
4.2 发射线局部放大

0.54–1.4 keV 区域的发射线细节。SQUDE 的 4 eV 分辨率清晰分离了:
- O VII (0.57 keV) 三重态: 禁线 (f), 互组合线 (i), 共振线 (r)
- O VIII Lyα (0.65 keV) + Lyβ (0.77 keV)
- Fe XVII–XIX L-shell 线系 (0.7–1.0 keV)
- Ne IX (0.92 keV) + Ne X Lyα (1.02 keV)
- Mg XI (1.33 keV) + Mg XII Lyα (1.47 keV)
4.3 单元素区域




4.4 空间分辨模拟


空间分辨(“亚网格”)分析: 将 4×4 arcmin 视场划分为垂直条带, 每区域独立模拟 SQUDE 光谱。用于约束温度/丰度/速度的径向梯度。
系统误差评估
Background/Foreground Bracket 模拟
我们还运行了 simulate_m82_bg_fg_squde_50ks.py 进行系统误差 bracket 测试:
| 场景 | 描述 | N realization |
|---|---|---|
| Sim-0 | Pure (无背景) | 50 |
| Sim-1 | Nominal bg + 前景 O VII | 50 |
| Sim-2 | High bg bracket (+20% bg) | 50 |
| Sim-1-low-ps | Low point-source residual | 50 |
结果:
- 背景归一化 ±20%: 软波段丰度统计误差膨胀 1.2–1.3× (O) 或 <1.06× (Ne, Mg, Fe)
- 温度几乎不受背景不确定度影响
- 主要剩余系统误差: 前景 O VII (影响 O 丰度与三重态诊断), PSF 泄漏 (影响空间分辨风区丰度)
- 无背景模拟 (Sim-0): 参数恢复 <5% 的前提是 source-only。真实观测中背景会增大误差,见 bracket 测试。
- 前景 O VII: M82 视向速度 ~200 km/s,在 4 eV 分辨率下无法与银河系前景 O VII 完全分离。必须将前景纳入光谱建模。
- PSF 泄漏: SQUDE 40″ HPD 导致中心星暴区 ~30% 计数泄漏进风区孔径。亚网格分析须以 Chandra 图像约束的 PSF 泄漏矩阵作为正向模型。
- 增益校准: 绝对速度位移精度受 ~几 eV 增益校准地板限制 (对应 keV 能区数百 km/s)。科学重点在相对运动学差异。
代码清单
所有脚本位于 ~/program/M82/scripts/:
| 脚本 | 功能 | Step |
|---|---|---|
extract_m82_early100ks.sh |
Chandra 数据提取 | 1 (数据准备) |
fit_m82_wind_literature.py |
Chandra baseline 拟合 | 1 |
simulate_m82_squde_50ks.py |
SQUDE fake_pha 模拟 | 2 |
fit_m82_squde_50ks.py |
SQUDE 再拟合 + 可视化 | 3, 4 |
simulate_m82_bg_fg_squde_50ks.py |
背景/前景 bracket 测试 | 系统误差 |
simulate_m82_subregion_squde_50ks.py |
亚网格 PSF 泄漏模拟 | 4 |
simulate_m82_abundance_toy_50ks.py |
单元素 dex 扫描 | 丰度灵敏度 |
plot_m82_chandra_squde_fov.py |
Chandra+SQUDE FoV 叠加图 | 可视化 |
参考文献
- XRISM Collaboration (2026): M82 高温风 \(kT=2.0\) keV, \(\sigma \approx 600\) km/s
- Strickland & Heckman (2009): M82 软 X 射线星风 \(L_X \sim 10^{40}\) erg/s
- Ranalli et al. (2008): M82 多相星风质量加载因子
- Zhang et al. (2014): M82 星风金属丰度 Chandra 分析
- Lopez et al. (2020): M82 星风动力学 XMM/RGS 分析
页面构建: 2026-07-16 · 数据来源: Chandra ACIS + SQUDE ARF/RMF v1.1.1/1.1.2