跳到主要内容
Sandbox Physics
读懂恒星内部

AC26 · L3

用TESS光变检验红巨星模型

这次比较可以从真实光变文件一路走到可见的径向、偶极节奏,再走到同一颗星的许可模型。把Lindsay等人2025年的arXiv2507.01091v1放在旁边:图3、表3和图5分别连接观测、模态身份与模型比较。配套Python包能离线复算这里的小型数据分析。

从两段确定的观测开始

HD128279的目标编号是TIC13727。包里放入原始TESS SPOC第38和65扇区光变,来源发布号分别为55和98,文件名保留完整产品身份。不要换成附近恒星、另一种去趋势产品,或方便演示的光变。

先看主文件头:TICID指明恒星,SECTOR指明观测扇区。TIME是以日计的重心动力学时,零点为BJD2457000。PDCSAP_FLUX是校准孔径流量,单位为电子每秒,另有对应误差列。QUALITY是位标记,不是另一种亮度。

严格练习只保留质量标记为零、时间与流量有限、流量误差有限且为正的样本。第38扇区留下18248个,第65扇区留下16819个。筛选前先验证文件SHA和每个FITS数据单元的校验和;再根据质量标记,判断完整文件里的哪些观测适合留下。

python3 verify_inputs.py .
PYTHONDONTWRITEBYTECODE=1 PYTHONWARNINGS=error::RuntimeWarning python3 science/replay.py --inputs input --out-dir rerun

对应阅读:Lindsay et al. 2025, Precise Asteroseismic Ages for the Helmi Streams · MAST public data use and acknowledgment

让两年空档留在方法里

两段扇区跨度合计约51.8天,首尾保留时刻却相隔近760天。沿实际时间画光变,巨大的空档马上就能看见。填零会制造观测,把空档压掉则会改变频率窗口。

每段先除以自己的流量中位数,把变化表示为百万分之一,再减去拟合的均值和线性趋势,并保存这个处理选择。现象搜索分别计算两段Lomb–Scargle周期图,再平均功率;它把长空档两侧当作独立随机记录,没有假定恒星保存了两年相位。

这里的周期图采用残差平方和下降统计量,按样本数归一,再除以局部滑动中位数背景,图上比值无量纲。图上比值无量纲。要用它构造概率模型,还需处理密集频率格之间的关联。

对应阅读:Lindsay et al. 2025, Precise Asteroseismic Ages for the Helmi Streams · MAST public data use and acknowledgment

找到径向阶梯,再看它多容易移动

先盲看谱的相关,能得到接近15.8微赫兹的间隔备选值。再打开四个发表径向模态附近,在0.02微赫兹网格上,平均周期图的接收系局部最高点约为177.000、192.740、208.880和225.480微赫兹。这些位置直接来自保存观测。

接着分别只用一个扇区。第38扇区的首个局部最高点落在176.40附近,第65扇区最后一个搜索最高点落在224.66附近,而且碰到了搜索边缘。后一段数据在这个窗口内,没有给出可靠的孤立峰顶。两段平均后更清楚,不代表每个单段最高点都成了精密模态测量。

程序还比较只减常数的PDC处理与线性去趋势的SAP处理。例如,SAP把第三个最高点放在209.08附近,默认PDC结果则是208.88。这些差别属于处理和随机激发的敏感性,不是几份独立置信区间。

局部最高点受到寿命、混叠、噪声和窗口共同影响。发表表格里的0.234微赫兹频率误差,来自论文分析及其采用的下限,属于外部模态表,不能移给这里的局部最高点。

Δν‾four peaks=225.480−177.0003 μHz=16.160 μHz\overline{\Delta\nu}_{\rm four\ peaks}=\frac{225.480-177.000}{3}\,\mathrm{\mu Hz}=16.160\,\mathrm{\mu Hz}
这是横跨四个局部最高点的平均间隔,定义不同于盲相关备选值和论文拟合的整体大间隔。

对应阅读:Lindsay et al. 2025, Precise Asteroseismic Ages for the Helmi Streams · Lindsay et al., Zenodo15102877 v1 model/observed-mode archive

让目录与望远镜使用同一个频率系

HD128279发表频率已经校正恒星的视向速度,光变周期图却描述接收到的节奏。重心时间修正处理观测者位置的变化,并不会自动消去恒星自身的视向速度。

采用来源给出的Gaia视向速度,每秒负75.68千米,再使用下方的相对论因子。这颗星在接近我们,发射频率略低于收到的频率。只校正一次,同时保留两列。

例如,来源径向频率176.918微赫兹,在接收系里约为176.963微赫兹。直接拿176.918去比观测中的177.000,就混用了参考系。修正虽小,却会系统地作用于整列模态。

νemitted=νreceived1+β1−β,β=vradial/c\nu_{\rm emitted}=\nu_{\rm received}\sqrt{\frac{1+\beta}{1-\beta}},\qquad\beta=v_{\rm radial}/c
正视向速度表示远离。来源分析对频率误差也乘同一因子,这里不把该误差赋给现象搜索的最高点。

对应阅读:Lindsay et al. 2025, Precise Asteroseismic Ages for the Helmi Streams · Lindsay et al., Zenodo15102877 v1 model/observed-mode archive

看看径向峰之间多出的节奏

来源表把八个峰辨认为偶极模态。平均TESS谱里,按这些来源位置搜索,可以在184.22与185.72、200.00与201.66微赫兹附近找到局部最高点。一个径向间隔里出现不止一个偶极候选,外部模态身份与附近实测功率共同支持混合模图景。

这里要保留辨认步骤:角向阶数来自发表表格,局部最高点来自我们处理的光变。除过背景的峰高,不是盲搜索的假警报概率;混叠也能挪动最高点,稀疏序列还不足以唯一安排每个纯重力模的径向阶数。

Kepler扩展使用KIC3860179第7至9季度DR25。质量筛选后分别留下3700、2780和4283个样本,在275.69天里保留实际间断。随包程序真正计算谱相关,最强间隔备选值为15.16微赫兹,来源目录值为15.200537。预研中不同背景与频率格曾给出15.18;方法变化也要跟着数值保存。

这颗Kepler星的偶极bin_points文件只给出15个粗略种子,没有拟合误差。例如,193.4616附近种子对应的局部最高点约193.46,而195.2116附近搜索得到195.40。附近别的方位分量或噪声也可能赢过原峰。程序保留这些候选,不把相邻周期差直接改叫测得的纯重力模间隔或核心转速。

对应阅读:Lindsay et al. 2025, Precise Asteroseismic Ages for the Helmi Streams · Lindsay et al., Zenodo15102877 v1 model/observed-mode archive · Li, Deheuvels & Ballot, Zenodo13207485 v2

把十六个成分放进同一个模型

打开real-multimode-fit.json。supports保存来源给出的四个径向、八个偶极、四个四极身份,以及各自0.65微赫兹的搜索半宽。接下来读取estimatesByAssumedLifetime:其中的频率与强度,来自我们对保存光变的共同拟合。

程序按实际质量掩码形成逐扇区窗口,把随机阻尼振子的曝光协方差变成平均功率,再加上相邻模态和局部背景。在8天阻尼时间假设下,一对偶极分量为184.186与185.936微赫兹;改为2天,则为184.379与185.969。0.5天时有多条弱成分或边界解。

两个扇区的功率分别进入拟合。快速计算把保留时刻放到最近的120秒采样位置,原时刻直接Fourier投影用来检查这一近似;这次两种处理的拟合频率最多相差0.0198微赫兹。曝光、阻尼和背景仍是声明的模型条件。

拟合差异量只负责寻找一组峰位。密集谱格有关联,程序没有把它们当成独立数据来生成精密后验。后面的注入实验会直接检查,在这些窗口里能把峰位找得多准。

python3 science/fit_real_modes.py --inputs input --out rerun/real-multimode-fit.json

对应阅读:Lindsay et al. 2025, Precise Asteroseismic Ages for the Helmi Streams · Lindsay et al., Zenodo15102877 v1 model/observed-mode archive

读同一颗星的完整内部结构

许可源档提供一条固定初始物理的HD128279轨迹,包含327行history和327个GYRE结构。科学包放入完整history/index及八个选定完整剖面。history起点已经过了主序,年龄列是模型的恒星绝对年龄,不是这个文件开始保存后的经过时间。

profile269对应来源模型546,半径约3.79976个太阳半径,有效温度5458.11开尔文,光度11.5445个太阳光度,与发表最佳模型的属性在其给定精度内相符。轨迹年龄为约125亿年,它属于这个固定模型族。

积分前先读GYRE101文件头和单位:半径为厘米,压力为barye,密度为克每立方厘米,Gamma1无量纲。按下式计算声速。文件最外侧的大气点超过了文件头给出的光球半径,因此积分到哪一层必须说清。

这个剖面积分到光球,得到的高阶声学间隔约17.4801微赫兹;把给定大气一起算进去,则为16.5624。外层虽然薄,声速却慢,仍会显著增加声程。它们都不自动等于有限阶径向模态的间隔。

c(r)=Γ1P/ρ,τacoustic=∫drc(r),Δνasym=12τacousticc(r)=\sqrt{\Gamma_1P/\rho},\qquad\tau_{\rm acoustic}=\int\frac{dr}{c(r)},\qquad\Delta\nu_{\rm asym}=\frac{1}{2\tau_{\rm acoustic}}
积分终点属于模型定义。CGS长度和声速要一起换算,传播时间才能正确保留为秒。

对应阅读:Lindsay et al., Zenodo15102877 v1 model/observed-mode archive · GYRE MESA file format version 1.01 · Lindsay et al. 2025, Precise Asteroseismic Ages for the Helmi Streams

把名字相近、定义不同的量分开比较

history里叫delta_nu的列尤其容易看错。原inlist明确开启get_delta_nu_from_scaled_solar,327个值都按同一个太阳平均密度归一化变化,常数约134.650015微赫兹。它们不是GYRE本征频率;profile269的这个缩放值是15.94972。

发表的四个未修正GYRE径向频率,平均相邻差为16.17053微赫兹,修正后为16.20265。来源观测四峰平均是16.15882,这里接收系局部最高点平均则为16.16000。论文整体拟合的大间隔是15.87,盲相关备选值为15.8。每个数都要连着定义与频段一起读。

最佳模型表里的修正、未修正偶极列,行序并不一致。逐行相减,会制造巨大的假表面频移。程序只比较关联正确的修正模型/观测行,未修正偶极频移要先匹配模态身份,不能先填一个看似方便的答案。

这些外部频率适合检查定义。沿轨迹比较我们自己的峰位,还需要对每份内部结构重新求模态,下一步就做这件事。

对应阅读:Lindsay et al. 2025, Precise Asteroseismic Ages for the Helmi Streams · Lindsay et al., Zenodo15102877 v1 model/observed-mode archive

让八份结构各自算出一组模态

model-grid目录保存八份原始结构经过GYRE7.2.1新算的本征频率、模态惯量和声学、重力节点数。完整绝热振动方程容许声学腔与重力腔耦合,两类节点数帮助辨认混合模分支,惯量反映相同表面归一化下需要带动多少恒星物质。

先检查相邻profile267、269、271。它们分别得到145、145、147条计算域内模态。改用更高阶积分、加倍空间网格权重和频率扫描后,节点身份与总数全部保持,最大频差约0.00182微赫兹。这个数检验求解器的离散误差,观测误差还要另算。

compare_model_grid.py读取我们的fittedEmittedMicroHz,按已知角向阶数作一对一频率匹配。以8天拟合为例,267、269、271的十六模原频率均方根残差约为1.3815、0.2998、1.0270微赫兹。打开每个匹配旁的三个备选分支,比较它们的惯量和节点数;密集重力模会给频率匹配许多机会,单靠最近距离不能决定可观测性。

再只用四个径向估计校准两项惯量加权表面修正,相应距离变为0.5236、0.2762、0.3849。若阻尼假设改为0.5天,这种修正后的最小距离会转到271。表面修正能吸收一部分结构差别,读者应把两种比较并排看。这里的距离没有使用真实频率误差构成似然。

默认离线复算读取这些固定GYRE输出,并重新分析光变、比较模型。tools/GYRE-rebuild.md另给实际重算命令,需要已经安装GYRE;完整结构与输入文件均随包保存。研究执行记录证明这一步确实跑过,默认离线复算则不自动安装或执行它。轨迹年龄始终是固定初始物理下的模型属性。

python3 science/compare_model_grid.py --inputs input --fit rerun/real-multimode-fit.json --grid model-grid --refined model-refined --out rerun/real-mode-grid-comparison.json

对应阅读:GYRE7.2.1 official release and source · Lindsay et al., Zenodo15102877 v1 model/observed-mode archive · Ball & Gizon 2014, A new correction of stellar oscillation frequencies for near-surface effects

用已知真值检查容易认错的地方

multimode-injection-calibration.json保存三组各96次实验。独立程序用数值曝光积分和高斯随机过程生成测量,保留实际质量缺测,再由拟合程序读取保存的谱功率。真频率单独存放,只在最后评价误差时使用。

第一组采用8天寿命,另两组检查短寿命失配和挤在一起的偶极对。前48次的误差分位数给出经验区间,后48次独立检验,最差一条模态只覆盖38次。背景在这些注入里是声明幅度的白测量噪声;实验没有校准真实红背景或盲搜索的假警报概率。

再从新算的profile269选定十六个模态频率,按同样窗口、曝光和声明的光度振幅生成48份观测。原频率比较48次都选到269;允许表面修正后,45次选269,1次选267,2次选271。这检验指定频率图样的恢复,也给出了相邻结构被认错的具体例子。

打开重新生成的real-lightcurve-to-grid.png:上图把真实谱与平均谱模型叠在一起,中图按15.8微赫兹折叠我们估计的峰位,下图比较三份相邻结构。每条曲线连着自己的寿命和表面项假设,图上没有由单轨迹推出的精密年龄误差棒。

对应阅读:Lindsay et al. 2025, Precise Asteroseismic Ages for the Helmi Streams · GYRE7.2.1 official release and source

检查曝光,再保存整条计算

文件头说明一次采样由许多短帧组成。对于190微赫兹,标称TESS帧梳的振幅响应约0.999145,Kepler长采样则约0.824924,功率响应还要平方。程序比较了标称逐帧梳、覆盖整段采样的矩形曝光,以及只按积分时间总和构造的矩形曝光。

TESS还记录死时间与处理相关因子,但没有提供每次保留短帧的完整权重,因此均匀帧梳只是标称近似。文件头EXPOSURE是以日计的总曝光,不是一帧长度,也不能当成单次采样时长,或再次乘进已经校准的流量。

复算保留原文件、掩码、来源参照、候选搜索、敏感性和各类间隔定义。最后的输出检查逐项比对数值,同时留下已知模态覆盖不足的例子。这样得到的是可重走的观测到模型比较,并能清楚看见完整恒星推断还需要哪些信息。

对应阅读:MAST public data use and acknowledgment · Lindsay et al. 2025, Precise Asteroseismic Ages for the Helmi Streams

练习与解释性答案

  1. 为什么短寿命假设下,表面修正后的最小距离转到271,还不能据此宣布恒星年龄换成271的年龄?

    展开解释

    寿命改变从光变估计的峰位,表面项又能吸收一部分结构频移;密集重力模还提供多个匹配分支。这次翻转表明条件假设影响比较结果。模型集合只沿一条固定初始物理轨迹取样,距离也没有转成经过真实误差验证的年龄概率。

  2. 为什么四个观测径向峰的平均间隔,可以不同于论文整体大间隔?

    展开解释

    它们的定义、频率权重不同,有限阶模态的间隔也会随频段改变。这里四峰平均为16.160微赫兹,论文整体值为15.87,应保留各自标签和频段,强行相等就改变了结果。

  3. 哪两个保存量能立刻说明TESS没有连续观察760天的随机运动?

    展开解释

    实际时间序列显示长空档,两段扇区跨度合计却只有约51.8天。连接两段随机运动时,还要考虑模态寿命。

  4. profile269匹配发表最佳半径,也给出年龄,为什么仍不是独立测得的年龄区间?

    展开解释

    它属于一条指定初始物理的轨迹,单条轨迹没有代表其他质量、成分、混合与模型不确定性,完整优化集合也不在这里。

动手检验预测

改变内部一层,读出模态变化

  1. 打开真实数据区域,选择TESS,找到橙色径向参照和其他来源标记的模态。
  2. 切到Kepler,比较更丰富的频率结构,并分清真实模型声速图与可操纵的声学示意。
  3. 运行独立包,先看一个碰到搜索边缘的失败例和一种处理敏感性,再决定能怎样解释峰位。

独立科学复算材料

下载科学复算ZIP · 阅读安装与来源说明

独立包包含完整的小型观测和许可清晰的模型成员,已知真值与真实数据练习均可离线复算,无需网站或恒星演化工具。

来源与计算范围

  1. GYRE7.2.1 official release and source

    固定求解器版本;从八个原始结构实际重算完整绝热径向、偶极和四极频率、惯量与声学/重力节点,科学包附构建方法、原件SHA256与执行记录。

  2. GYRE MESA file format version 1.01

    完整许可结构成员采用的文件头、逐列定义与CGS单位。

  3. Lindsay et al. 2025, Precise Asteroseismic Ages for the Helmi Streams

    固定arXiv2507.01091v1;第II.2、III、V.3、V.4节,图3/5、表3/4/6和附录A;已发表于ApJ 989, 189,完整优化和年龄误差属于外部发表结果。

  4. Lindsay et al., Zenodo15102877 v1 model/observed-mode archive

    元数据明确CC-BY4;选取的HD128279观测、history/index、八个GYRE结构和发表模态表完整核验;只有一条初始物理轨迹,不含840轨迹优化集。

  5. Li, Deheuvels & Ballot, Zenodo13207485 v2

    CC-BY4旋转目录及KIC3860179选定模态文件;偶极bin_points仅是粗略种子,l0/l2拟合表另含误差,含混的辅助列不用于拟合。

  6. MAST public data use and acknowledgment

    按MAST产品URI取得原任务PUBLIC产品,保留NASA/Kepler/TESS/SPOC/STScI致谢与固定数据发布版本。

  7. Ball & Gizon 2014, A new correction of stellar oscillation frequencies for near-surface effects

    按模态惯量加权的逆频率/三次频率表面项;具体应用读Lindsay2025附录A。原论文有勘误DOI10.1051/0004-6361/201424325e;课程不声称独立复现全文。

反馈这个页面有错误、看不明白,或者缺了什么?告诉我们
反馈类型

提交时会附带本页地址、Lab ID、网站语言和设备类型。请不要填写个人信息。反馈最多保存 12 个月。隐私政策