---
title: "重走P Cygni的IUE紫外谱"
description: "从完整IUE原生级次重现镁、硅紫外轮廓，保留质量缺口与连续谱选择，再计算声明条件下的单线残差。"
canonical_url: "https://sandboxphysics.com/zh/stories/stellar-winds/replay-p-cygni-iue-spectra/"
language: "zh-CN"
page_type: "story"
alternate_languages:
  en: "https://sandboxphysics.com/stories/stellar-winds/replay-p-cygni-iue-spectra/"
last_modified: "2026-11-03"
---

[从星光读懂恒星风](https://sandboxphysics.com/zh/stories/stellar-winds/)

恒星风 · L3

# 重走P Cygni的IUE紫外谱

Sandbox Physics · 2026-11-03

这次从原始IUE文件走到P Cygni的紫外轮廓，再用独立算出的孤立线参考作条件比较。打开NEWSIPS的MXHI格式说明，与配套的SWP36331、LWP15586和LWP04483三个文件并排。每一步都保留原生级次和质量缺口，最后还能重新画出模型没有描述好的地方。

## 开始前需要什么

先读共振面或一条谱能确定什么。需要基本Python；FITS向量、日心波长和噪声单位在下文就地解释。

## 先认出三个原件的身份

目标P Cygni的编号为HD193237。SWP36331在1989年5月23日观测，曝光2999.781秒；LWP15586在翌日观测，曝光239.493秒。它们覆盖不同紫外波段，日期接近，却不是完全同时的同一份观测。

另一个长波文件LWP04483来自1984年10月2日，曝光299.704秒，用于检查不同时期的轮廓。先验证完整文件的字节数与SHA，再读主头里的目标、观测日期、曝光和处理日期。九十年代的处理日期，不是恒星在那时又被观察了一次。

科学包包含原始公共任务的小型完整MXHI成员和独立Python，不需要下载光谱整库。它也保留NASA、ESA、英国IUE任务及STScI/MAST致谢。

```
python3 replay.py --inputs input --out-dir rerun
```

对应阅读：IUE NEWSIPS manual, high-dispersion MXHI format · MAST original mission data use

## 一行里装着整条光谱级次

MXHI的主头后面是二进制表，不是一列简单的波长与流量。每行对应一个高色散级次，有17个字段；流量、噪声、质量等向量都补齐到768点。SWP36331含60个原生级次。

先读ORDER、WAVELENGTH、STARTPIX、DELTAW和NPOINTS。STARTPIX从一开始计数，它指出起始波长对应哪个原生像素。波长从那个位置往前或往后推，不能误把向量第零点当成起始波长。

ABS\_CAL是绝对校准后的能量流量，单位为每平方厘米、每秒、每埃的尔格。NOISE的单位却是FN，处在另一校准层级；QUALITY是带符号整数存储的位标记。把FN噪声直接贴到ABS\_CAL上当标准差，会造出错误的权重。

$$
\lambda_k=\lambda_{\rm start}+(k-\mathrm{STARTPIX})\Delta\lambda,\qquad k=1,\ldots,768
$$

每行只在STARTPIX起的NPOINTS个点内有提取数据，向量两端的补零标记未提取位置。

对应阅读：IUE NEWSIPS manual, high-dispersion MXHI format

## 把质量缺口原样留下

默认选择只保留提取范围内、质量标记为零、ABS\_CAL有限且非零的点。绘图时把被排除位置留成缺口，不跨过去连一条看似平滑的线，也不把负的有效流量全部截成零。

以两个硅候选窗口为例，原生99级和98级在各自八埃宽的区域里，分别有224、221个点，严格筛选后留下207、206个。这个选择是可重复的处理规则，不是给每个留下的点做了真实性认证。

IUE文档特别说明，高色散NEWSIPS没有自动清除宇宙线。异常点甚至可能带零质量标记。这里没有取得二维原像来完成逐点清理，因此尖峰、背景拟合和相邻级次的差异仍应作为检查线索。

对应阅读：IUE data-analysis FAQ · IUE NEWSIPS manual, high-dispersion MXHI format

## 统一到真空、日心与实验室参照

NEWSIPS波长已经采用真空标度，并做了日心速度修正。NIST的镁能级波数倒数给出两条实验室真空参照：约2796.3543与2803.5315埃。把空气波长混进来，或者再重复做一次日心修正，都会挪动线位。

把波长转成相对实验室波长的速度坐标时，红移取正。这个坐标仍包含恒星自身的系统速度。头里的LRADVELO描述处理所用速度校正，不是可以直接代入的恒星系统速度。

图上相对实验室的零点，与风相对恒星的零点应分别理解。蓝边还可能受离子范围、湍流、星际吸收和线重叠影响，不能从最左一个低点直接读出渐近终端速度。

$$
u_{\rm helio,lab}\simeq c\left(\lambda/\lambda_0-1\right)
$$

这是非相对论速度坐标定义，$\lambda_0$为明确给出的实验室真空波长；这里没有拟合或消去恒星系统速度。

对应阅读：IUE NEWSIPS manual, high-dispersion MXHI format · NIST magnesium energy levels

## 连续谱选择本身也要检查

镁窗口采用一条可复算的局部基线：取83级在2789至2791埃的质量零流量中位数，以及82级在2808至2810埃的中位数，再用直线连起来。1989年两个锚窗分别留下30与29点；1984年分别为29与29点。

这不是宣称那里有一条完美、无吸收的恒星连续谱。线遮蔽、级次拼接和校准都可能影响它。第一次只用一个级次寻找红端锚窗时没有有效点，原始失败和图已保存，最终步骤明确使用两个指定级次。

再改用2799埃处的常数基线，比较归一化轮廓怎样改变。在本例某些红分量窗口，差别可到约0.13个连续谱单位。这个差别量化处理敏感性，应与独立观测和统计标准差分别报告。

对应阅读：IUE data-analysis FAQ · Standalone stellar-wind scientific reproduction

## 先分别画级次和时期

运行probe-observation.py，查看两张镁图。每个时期把83、82级分别画出，质量缺口原样保留；不同颜色表示不同原生级次，不把重叠区悄悄平均。

两级提取来自同次观测，可能共享校准问题。它们的差别让人检查轮廓是否稳健，不能直接按两份独立重复实验来提高精度。1984与1989年也各占一幅图，恒星变化不会被平均掉。

硅窗口另画。短波中包含较复杂的线与吸收结构，本练习保留候选识别和基线选择，没有把它们塞进一条孤立线的定量拟合。

![1989与1984年P Cygni镁双重线的两个原生级次及质量缺口](https://sandboxphysics.com/stories/stellar-winds/materials/real-mgII-preflight.png)

横轴为真空日心波长，纵轴除以上述两侧锚窗的线性基线。两种颜色保留83/82级差异，两幅图保留观测时期差异。

```
python3 probe-observation.py --inputs input --out-dir rerun
```

对应阅读：IUE NEWSIPS manual, high-dispersion MXHI format · Standalone stellar-wind scientific reproduction

## 做一份条件明确的单线比较

compare\_real\_line\_shapes.py重新计算一条孤立线参考，采用渐近速度每秒二百千米、速度律指数一、乘积参数一、完整孔径和示例仪器标准差每秒八千米。这条参考采用示例线展宽，未作IUE宽度标定或参数优化。

每个镁分量只取实验室参照两侧各每秒二百五十千米的窗口，分别比较，绝不把两条孤立线直接相加当成双重线传输。这个参考风的最大体速度为每秒176.25千米，在给定窗口和宽度下，两条参考分量保持隔离；真实混叠仍可能存在。

逐波长转换时，能量流量变成每速度单位的光子流量，需要乘波长与坐标Jacobian。但若数据和局部连续谱一起转换，这些因子在归一化比值中相消。归一化轮廓便可比较，同时保留真实连续谱结构与模型平坦照明之间的差别。

程序保存八组时期、级次、分量组合的残差。1989年蓝分量在83级的归一化均方根残差约为0.66，这组理想参考显然没有描述好实际轮廓。残差的形状可用于寻找恒星背景、星际吸收、离子布居、系统速度与仪器条件的问题，不能把这个数改叫卡方或质量损失误差。

![P Cygni两时期镁分量与独立孤立线参考的条件比较及残差](https://sandboxphysics.com/stories/stellar-winds/materials/real-iue-conditional-shapes.png)

上部曲线保留原生级次，黑线为声明条件的孤立线参考；下部为归一化差值。它展示模型未描述好的结构，图中没有物理噪声标准差或真实质量损失后验。

```
python3 compare_real_line_shapes.py --inputs input --out-dir rerun
```

对应阅读：Standalone stellar-wind scientific reproduction · Lamers, Cerruti-Sola & Perinotto1987, the SEI line-profile method

## 为什么计数练习的区间不能搬过来

上一章的泊松练习有保存整数光子、已知连续谱与仪器、固定几何，以及质量流量和电离乘数各0.5至2的二维先验。即使条件如此清楚，一条线仍只辨识乘积。

三组各100次的固定真值检验里，质量流量区间分别覆盖100、100、0次。最后一组靠近先验边界，宽的先验退化带仍让中心区间反复排除固定真值。先验平均覆盖与这个逐点失败要一起解释，不能把宽区间包装成精密质量损失率。

IUE资料连这份合成计数练习的误差模型都没有直接给出。保持它的原始能量流量与FN噪声身份，比较可复算的轮廓、级次和连续谱敏感性，才是这批文件实际支持的练习。

对应阅读：Standalone stellar-wind scientific reproduction · IUE NEWSIPS manual, high-dispersion MXHI format

## 留下别人能重走的步骤

从空目录解包，安装requirements中固定的NumPy、SciPy、Matplotlib，再运行replay.py。它先检查输入字节与SHA，再真正重算传输、光子去向、力诊断、计数推断、IUE轮廓和公开表对照，全部成功后才生成收据。

阅读新的光谱时，可以重复这几个问题：坐标处在哪个参考系，哪些点被质量筛选，噪声与流量是否同单位，连续谱怎样选，比较模型究竟固定了什么。每个答案都应能在保存字段和计算命令里找到。

对应阅读：Standalone stellar-wind scientific reproduction · MAST original mission data use

## 练习与解释性答案

1. 把STARTPIX当作从零开始，会怎样影响波长？

   展开解释

   它把每个有效点的波长整体错开一个DELTAW。这个偏移可能与局部速度结构相当，随后转换速度时就会制造系统误差。

2. 为什么不能直接用FN噪声作为ABS\_CAL的误差，算出“好看”的卡方？

   展开解释

   它们处于不同校准层级和单位，FN噪声没有经过成为物理流量误差所需的完整转换。错误权重会改变拟合与区间；本例没有把这个向量当作已知物理标准差。

3. 条件单线参考残差很大，最先应该做什么？

   展开解释

   先检查参考系、质量缺口、两级差异、连续谱以及已固定的仪器和物理条件，再定位缺失的恒星背景或混叠。残差首先指出需要改进的物理与校准条件，质量损失推断还需要完整的测量和误差模型。

## 动手检验预测

### [改变气流，跟着散射光读谱](https://sandboxphysics.com/zh/labs/stellar-wind-p-cygni/)

1. 查看真实MgII资料，交替选择1989和1984年，保持模型参数不动，确认真实观测不会被滑块改写。
2. 比较两条原生级次的重叠与缺口，回到源文件找到质量标记，不把空白区插值成新观测。
3. 运行独立包，先读一个连续谱敏感性，再读条件单线残差，最后说出还缺哪种校准或物理信息。

## 独立科学复算材料

[下载科学复算ZIP](https://sandboxphysics.com/stories/stellar-winds/materials/stellar-wind-science.zip) · [阅读安装与来源说明](https://sandboxphysics.com/stories/stellar-winds/materials/README.md)

独立包包含完整的小型原任务文件和许可清晰的公开表，可离线重算传输、合成计数推断与真实资料对照；它不求风加速，也不测真实恒星质量损失。

[上一篇：从一条谱反推风，有多少种答案](https://sandboxphysics.com/zh/stories/stellar-winds/what-a-wind-line-can-determine/) [下一篇：团块、速度空隙与质量损失率](https://sandboxphysics.com/zh/stories/stellar-winds/clumps-velocity-gaps-and-mass-loss/)

## 来源与计算范围

1. [Lamers, Cerruti-Sola & Perinotto1987, the SEI line-profile method](https://adsabs.harvard.edu/pdf/1987ApJ...314..726L)

   ApJ314,726，第II至V节、式4至10与14至19。这里的局部逃逸单线与固定源函数有限宽度检验各有近似，不声称复现完整SEI或非LTE求解器。

2. [IUE NEWSIPS manual, high-dispersion MXHI format](https://archive.stsci.edu/iue/manual/newsips/node155.html)

   原生17字段二进制行、补齐至768点的向量、从一计数的STARTPIX、真空日心波长、ABS\_CAL物理单位和FN噪声。

3. [IUE data-analysis FAQ](https://archive.stsci.edu/iue/faq.html)

   第13至15问：定量分析排除非零质量标记，高色散宇宙线并未自动清除，曝光时长本身也不能决定噪声权重。

4. [NIST magnesium energy levels](https://physics.nist.gov/PhysRefData/Handbook/Tables/magnesiumtable7.htm)

   MgII能级波数35760.848与35669.298每厘米，对应实验室真空2796.3543与2803.5315埃；实验室静止波长与恒星系统速度要分开。

5. [MAST original mission data use](https://archive.stsci.edu/publishing/data-use)

   NASA/ESA/英国IUE原任务公共产品；独立包保留固定名称、完整字节、SHA及任务/STScI/MAST致谢。

6. [Standalone stellar-wind scientific reproduction](https://sandboxphysics.com/stories/stellar-winds/materials/stellar-wind-science.zip)

   原始小数据、独立传输/光子/力/有限宽度参照、197个生产检查和合成泊松练习；固定真值与先验平均覆盖分别保留。
