先数清手里的文件
作者项目公开了五份小测光表:Danish、Perth、Canopus、RoboNet 和 MOA,分别有151、65、12、52和28行,共308次测量。发现论文使用了六个观测站的650个点。这里对可获取子集独立拟合,没有复现原始数据归约,也不沿用论文的精度。
每行三个数,依次是已发表的相对儒略日坐标、仪器星等和星等误差。日期与 HJD 减2450000以及事件发生时间相符,但这些文件没有表头,也没有声明精确时标与曝光时长。保留原日期,不能把列名换成 BJD/TDB 就当完成了时间转换。
五个观测站的仪器星等零点不同。我们分别拟合基线星等和背景恒星所占的光,误差仍采用原文件数值。不能为了让偏好的模型看起来合适,悄悄重缩放误差。
这些测光文件尚未找到明确的再分发许可。材料包只列出原站网址、字节数和校验值,由下载器直接取到你的电脑。网页展示模型层面的聚合结果与自有合成图,不镜像观测,也不把观测逐行变换后重新发布。
对应阅读:OGLE published OGLE-2005-BLG-390 project files · Beaulieu et al. (2006), OGLE-2005-BLG-390 discovery, astro-ph/0601563v1
准备一套离开网站也能运行的计算
下载并解压下方的 microlensing-science.zip。包里的 Python 科学程序和小型 C++ 调用程序,与交互 Lab 独立。作为参考的 VBBinaryLensing 从上游固定提交下载,连同 LGPL 许可保存在本地,再用编译器构建。整个过程不导入受保护的浏览器引擎。
python3 -m venv .venv
. .venv/bin/activate
python -m pip install -r requirements.txt
python verify_package.py
python fetch_observations.py --output observations
python fetch_reference.py --output reference
python replay_results.py --materials . --output replay-summary.json
第一条验证命令逐项检查文件字节与校验值。两个下载器只接受具名来源与固定校验值;来源字节一旦改变,就报错停下,不会悄悄换掉实验。命中已验证的本地缓存,与真正发出 HTTP 请求会分别记入下载回执。
replay 用新下载的数据重新计算冻结参数的预测,并重新拟合每个台站的零点和混光,再按给定容差比较聚合统计量。这叫前向复算。下一节的命令才重新搜索参数,耗时更长,也可能停在不同的局部极小值。
对应阅读:Bozza et al. (2018), VBBinaryLensing finite-source methods · OGLE published OGLE-2005-BLG-390 project files
先写同一个似然,再换透镜
对第个台站,用表示基线星等,表示基线光里来自被透镜恒星的比例,允许范围是零到一。先把恒星和前景光相加,再取星等:
给定光源比例后,最佳基线是一个精确的加权平均;再做一维有界优化,并单独检查两个端点,就能剖面化光源比例。每种透镜都走同一套处理,混光不能只替某个模型开方便之门。
I 波段台站采用发现论文的临边系数0.538,RoboNet 的 R 波段采用0.626。MOA 的自定义红波段在基线计算中先按 I 类处理,后面再改成 R 类做敏感性检查。这些系数先固定在选定的恒星大气近似上,再比较不同取值对拟合的影响。
对应阅读:Beaulieu et al. (2006), OGLE-2005-BLG-390 discovery, astro-ph/0601563v1
试平滑透镜、点光源和有大小的恒星
python fit_event.py --materials . --output fresh-fit --maximum-evaluations 100
python fit_point_binary.py --materials . --baseline-results fresh-fit/fit-history.json --output fresh-point-source
第一条命令先拟合单点质量透镜,恒星半径固定为论文给出的穿越时间比例;随后拟合七参数的有限光源宽双透镜和近双透镜。宽、近分别指间距大于、小于总质量的一个爱因斯坦半径,每个分支保留四个不同起点。JSON 沿用的内部名称 point 指单点质量,恒星仍有大小;真正零半径恒星由第二条命令单独拟合。
在固定的308个测量上,有限光源单透镜给出,找到的最佳有限光源宽双透镜约为,近分支约为。另做的零半径双透镜搜索,宽分支约575.1,近分支约335.6。这是在相同测量与误差下的模型比较,没有直接给出探测概率。
一些起点停在远差于最佳值的地方。它们的终止状态、触及的边界和计算次数都保留下来。优化器返回成功,只说明满足了局部停止条件;没有证明搜遍分离的焦散解。计算次数用完,也不能写成已经收敛。
有限光源宽解的伴星与主星质量比约0.000056,归一化光源半径约0.0181。这些无量纲量依赖当前子集与模型。下表把输出取到合适精度,避免把程序能打印的小数位误读成新的精密测量。
| 同一批308个测量上的模型 | |
|---|---|
| 单点质量,固定有限星盘 | 749.9 |
| 宽双透镜,有限星盘 | 219.0 |
| 近双透镜,有限星盘 | 323.3 |
| 宽双透镜,零半径光源 | 575.1 |
| 近双透镜,零半径光源 | 335.6 |
| 宽双透镜,年度视差 | 216.9 |
| 近双透镜,扩展视差搜索盒 | 238.3 |
| 0 | 2.10 |
| 0.2 | 1.13 |
| 0.5 | 0.23 |
| 1 | 0.00 |
| 2 | 0.12 |
| 5 | 0.73 |
| 10 | 2.38 |
对应阅读:Beaulieu et al. (2006), OGLE-2005-BLG-390 discovery, astro-ph/0601563v1 · Bozza et al. (2018), VBBinaryLensing finite-source methods
地球的运动真的测出来了吗
python fit_parallax.py --materials . --baseline-results fresh-fit/fit-history.json --output fresh-parallax
年度视差增加南北、东西两个轨迹参数。材料保留固定的 JPL DE441 地球几何矢量响应:161个间隔六小时的 TDB 节点,含位置与速度。程序用三次 Hermite 插值,扣去固定参考历元的位置和匀速项,再投影到光源方向的切平面。
这份几何输入有自己的 TDB 历元,却没有替无表头的测光补出时标。我们保留这种区别,并检验地球历元的小幅整体偏移。缺少原观测元数据时,不能凭空做一次声称精确的重心时标转换。
正、负冲量参数都重新拟合后,宽解达到,比无视差宽解只改善约2.13。有限搜索得到的视差幅度剖面中,零视差与幅度为十的解也只比最低点高几个拟合单位。这批子集不足以给出稳健的年度视差质量测量。
近分支的年度视差搜索先顶到了初始幅度边界。扩展搜索盒,再继续原先计算次数耗尽的解,可以找到拟合量约239.0、视差极大的近解,仍差于宽解。把这段过程留下,是因为若停在第一道边界,就会把近分支排除得比实际搜索更坚决。
计算到光变拟合为止;银河系群体、光源角半径与事件率的先验推断留在后续。发现论文另加了一层物理推断,行星质量还需要这层信息,单有本练习测出的持续时间不够。
对应阅读:JPL Horizons vector ephemeris documentation · Beaulieu et al. (2006), OGLE-2005-BLG-390 discovery, astro-ph/0601563v1
连剖面的坏起点也一起读
python profile_event.py --materials . --baseline-results fresh-fit/fit-history.json --parallax-results fresh-parallax/parallax-history.json --output fresh-profiles
python refine_profiles.py --materials . --profiles fresh-profiles/profile-history.json --output refined-profiles
质量比剖面固定质量比,重新优化其余透镜参数与全部台站参数;视差幅度剖面还会重新拟合方向。它们只是正冲量宽分支上的有限搜索,不是后验密度,也不是已经校准覆盖率的置信区间。
剖面上一个高点,可能是搜索没做好,未必是该物理取值被排除。第一次计算中,视差幅度为五的起点掉进了差得多的盆地;细化阶段改用相邻剖面解作为起点,原坏解另行保留。低质量比端点也经历了继续计算,才满足局部终止条件。
画区间前先看完整尝试记录。从几个近邻点反复运行同一个优化器,不能证明全局最优;不过,只要找到了足够低的替代解,就能看出一个声称很紧的上限缺乏支持。
对应阅读:Bozza et al. (2018), VBBinaryLensing finite-source methods · Bozza et al., VBMicroLensing, arXiv:2410.13660v1; A&A 694 A219 (2025)
先核对数值的光,再读细小差别
快速轮廓程序也不会自动成为独立真值。开发时,一个直接临边昏暗参考调用,曾在低质量比焦散状态下与像面积法不符。我们保留这个分歧,另用细化的均匀光源轮廓组成正权环带积分;随阶数增加,它与逆像平面积分趋于一致。
对真实事件,有限光源宽解、近解、宽视差解和大视差近解的全部308个预测,都与独立逆像面积计算逐一比较;扰动附近及分散历元还加做正权环带检查。材料包保留聚合数值诊断。浮点几何包络没有采用严格的向外舍入,不能称为形式化区间证书。
空间包络、求积估计、时间平均、显示像元,需要分开验证。交互 Lab 的成像和流量来自同一套面积加权辐亮度;显示取平方根增强暗像,导出的辐亮度仍为线性值。真实事件拟合使用独立的离线参考,而且在更小的质量比和恒星半径上另做了检验。
对应阅读:Bozza et al. (2018), VBBinaryLensing finite-source methods · Bozza et al., VBMicroLensing, arXiv:2410.13660v1; A&A 694 A219 (2025)
把文件没告诉我们的量改一改
固定最佳宽解几何,只重拟合台站参数,把 MOA 临边系数从 I 类换成 R 类,源星等预测最多改变约0.00188,拟合量改变−0.152。若假设所有台站都曝光三十分钟,分别约为0.000689和+0.0276。真实曝光时长未知,这些是条件敏感性探针,不是对缺失元数据的补写。
对最佳宽视差几何,把六小时间隔地球节点换成十二小时,拟合量改变约0.000000013;将地球历元连同参考历元整体平移正负0.007天,改变小于0.000029。这说明这些特定数值选择在当前解附近影响很小,没有证明所有时标系统误差或未建模观测效应都可忽略。
现在可以比“曲线看起来不错”说得更具体:在这个公开子集上,有限光源行星模型明显优于所测试的平滑模型与零半径替代模型。这个结论限于当前子集与有限搜索。恢复完整原始归约、遍历所有双透镜解、校准探测显著性和独立推断行星物理质量,还各有后续工作。
对应阅读:OGLE published OGLE-2005-BLG-390 project files · Beaulieu et al. (2006), OGLE-2005-BLG-390 discovery, astro-ph/0601563v1 · JPL Horizons vector ephemeris documentation