---
title: "用五份已发表观测重算 OGLE-2005-BLG-390"
description: "从原站下载五份测光，比较有限光源行星模型、近宽解与弱视差，逐项核对这批观测究竟能说明什么。"
canonical_url: "https://sandboxphysics.com/zh/stories/microlensing-planets/refit-the-published-ogle390-files/"
language: "zh-CN"
page_type: "story"
alternate_languages:
  en: "https://sandboxphysics.com/stories/microlensing-planets/refit-the-published-ogle390-files/"
last_modified: "2026-11-03"
---

[暗行星怎样弯曲星光](https://sandboxphysics.com/zh/stories/microlensing-planets/)

AC23 · L4

# 用五份已发表观测重算 OGLE-2005-BLG-390

Sandbox Physics · 2026-11-03

已发表的测光里，有一段短促的行星扰动。把它拟合出来，是很好的微透镜练习；重现发现论文给出的行星质量，则还需要另一层推断。我们用同一批原始测量比较几种模型，留下没走通的起点，并在文件不再回答问题的地方停下来。

## 开始前需要什么

先读有限星盘与似然两章。需要 Python、C++ 编译器和基本命令行操作。下载来源文件时要联网，之后的计算都在本地运行，不依赖网站或 Lab 引擎。

## 先数清手里的文件

作者项目公开了五份小测光表：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

## 先写同一个似然，再换透镜

对第$k$个台站，用$m_{0,k}$表示基线星等，$f_k$表示基线光里来自被透镜恒星的比例，允许范围是零到一。先把恒星和前景光相加，再取星等：

$$
m_{{\rm pred},i}=m_{0,k(i)}-2.5\log_{10}\!\left[1+f_{k(i)}(A_i-1)\right]
$$

放大率先作用于光通量。这里把其他前景光视为常量。

$$
\chi^2=\sum_i\left[\frac{m_{{\rm pred},i}-m_i}{\sigma_i}\right]^2
$$

报告对数似然时保留高斯归一化项。残差方向是预测星等减观测星等。

给定光源比例后，最佳基线是一个精确的加权平均；再做一维有界优化，并单独检查两个端点，就能剖面化光源比例。每种透镜都走同一套处理，混光不能只替某个模型开方便之门。

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个测量上，有限光源单透镜给出$\chi^2\simeq749.9$，找到的最佳有限光源宽双透镜约为$\chi^2\simeq219.0$，近分支约为$\chi^2\simeq323.3$。另做的零半径双透镜搜索，宽分支约575.1，近分支约335.6。这是在相同测量与误差下的模型比较，没有直接给出探测概率。

一些起点停在远差于最佳值的地方。它们的终止状态、触及的边界和计算次数都保留下来。优化器返回成功，只说明满足了局部停止条件；没有证明搜遍分离的焦散解。计算次数用完，也不能写成已经收敛。

有限光源宽解的伴星与主星质量比约0.000056，归一化光源半径约0.0181。这些无量纲量依赖当前子集与模型。下表把输出取到合适精度，避免把程序能打印的小数位误读成新的精密测量。

| 同一批308个测量上的模型 | $\chi^2$ |
| --- | --- |
| 单点质量，固定有限星盘 | 749.9 |
| 宽双透镜，有限星盘 | 219.0 |
| 近双透镜，有限星盘 | 323.3 |
| 宽双透镜，零半径光源 | 575.1 |
| 近双透镜，零半径光源 | 335.6 |
| 宽双透镜，年度视差 | 216.9 |
| 近双透镜，扩展视差搜索盒 | 238.3 |

自有有限搜索找到的最佳值：原误差不变，五个台站的零点与光源比例分别剖面化。单透镜的星盘半径固定，双透镜的半径参与拟合。局部拟合比较没有给出质量后验或全局探测概率。

| $\|\boldsymbol\pi_E\|$ | $\chi^2-\min\chi^2$ |
| --- | --- |
| 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 历元，却没有替无表头的测光补出时标。我们保留这种区别，并检验地球历元的小幅整体偏移。缺少原观测元数据时，不能凭空做一次声称精确的重心时标转换。

正、负冲量参数都重新拟合后，宽解达到$\chi^2\simeq216.87$，比无视差宽解只改善约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

## 练习与解释性答案

1. 比较近宽分支时，为什么必须使用相同的星等似然与台站处理？

   展开解释

   比较应反映透镜预测的差别。如果误差、零点规则或允许的混光范围不同，统计问题已经变了，可能凭空制造与双透镜几何无关的偏好。

2. 视差优化器返回许多小数位，怎样才足以把这个数当成测量？

   展开解释

   要检查幅度与方向的似然、竞争几何、混光和时标假设、边界行为，以及独立数值精度。一个优化器坐标没有提供这些不确定性或唯一性证据。

## 动手检验预测

### [拟合前，先分清恒星大小与前景光](https://sandboxphysics.com/zh/labs/gravitational-lens-telescope/?mode=binary)

1. 选行星带来的增亮，在小扰动附近暂停。固定路径，增大恒星半径。
2. 恢复半径，再降低背景恒星的基线光占比。比较星盘平滑与恒定前景光稀释，再指出拟合中的各个台站参数对应哪种效应。

[上一篇：从地面和太空一起测量暗行星](https://sandboxphysics.com/zh/stories/microlensing-planets/read-ground-space-and-roman-evidence/)

## 公开独立复算材料

ZIP 包含独立科学代码、合成示例、聚合拟合结果和精确的原站下载清单。运行下载器时，五份原始测光与固定版本的 LGPL 参考库分别从具名原站获取，包里没有镜像这些文件。

[下载完整独立复算 ZIP](https://sandboxphysics.com/stories/microlensing-planets/materials/microlensing-science.zip)

SHA-256: `e3957a90ca1f8e9c64a9c9c1bf70a6067ffe7aa395f44ce7715ebd461b52bc88`

逐项科学文件校验值也保存在 package-manifest.json 中。

- [LICENSE-science.txt](https://sandboxphysics.com/stories/microlensing-planets/materials/LICENSE-science.txt) · 1,415 字节
- [README.md](https://sandboxphysics.com/stories/microlensing-planets/materials/README.md) · 8,670 字节
- [README.zh.md](https://sandboxphysics.com/stories/microlensing-planets/materials/README.zh.md) · 4,193 字节
- [aggregate-results.json](https://sandboxphysics.com/stories/microlensing-planets/materials/aggregate-results.json) · 82,645 字节
- [binary\_reference.py](https://sandboxphysics.com/stories/microlensing-planets/materials/binary_reference.py) · 9,966 字节
- [earth-horizons-provenance.json](https://sandboxphysics.com/stories/microlensing-planets/materials/earth-horizons-provenance.json) · 1,043 字节
- [earth-horizons.txt](https://sandboxphysics.com/stories/microlensing-planets/materials/earth-horizons.txt) · 38,204 字节
- [event-forward-reference-results.json](https://sandboxphysics.com/stories/microlensing-planets/materials/event-forward-reference-results.json) · 2,581 字节
- [event-sensitivity-results.json](https://sandboxphysics.com/stories/microlensing-planets/materials/event-sensitivity-results.json) · 22,144 字节
- [event\_model.py](https://sandboxphysics.com/stories/microlensing-planets/materials/event_model.py) · 6,848 字节
- [event\_reference.cpp](https://sandboxphysics.com/stories/microlensing-planets/materials/event_reference.cpp) · 864 字节
- [fetch\_observations.py](https://sandboxphysics.com/stories/microlensing-planets/materials/fetch_observations.py) · 2,559 字节
- [fetch\_reference.py](https://sandboxphysics.com/stories/microlensing-planets/materials/fetch_reference.py) · 2,452 字节
- [fit\_event.py](https://sandboxphysics.com/stories/microlensing-planets/materials/fit_event.py) · 6,089 字节
- [fit\_parallax.py](https://sandboxphysics.com/stories/microlensing-planets/materials/fit_parallax.py) · 4,713 字节
- [fit\_point\_binary.py](https://sandboxphysics.com/stories/microlensing-planets/materials/fit_point_binary.py) · 3,708 字节
- [microlensing-science.zip](https://sandboxphysics.com/stories/microlensing-planets/materials/microlensing-science.zip) · 92,319 字节
- [observation-sources.json](https://sandboxphysics.com/stories/microlensing-planets/materials/observation-sources.json) · 4,257 字节
- [package-manifest.json](https://sandboxphysics.com/stories/microlensing-planets/materials/package-manifest.json) · 4,547 字节
- [profile\_event.py](https://sandboxphysics.com/stories/microlensing-planets/materials/profile_event.py) · 5,135 字节
- [reference-sources.json](https://sandboxphysics.com/stories/microlensing-planets/materials/reference-sources.json) · 1,386 字节
- [reference\_runner.cpp](https://sandboxphysics.com/stories/microlensing-planets/materials/reference_runner.cpp) · 1,064 字节
- [refine\_profiles.py](https://sandboxphysics.com/stories/microlensing-planets/materials/refine_profiles.py) · 5,810 字节
- [replay\_results.py](https://sandboxphysics.com/stories/microlensing-planets/materials/replay_results.py) · 3,077 字节
- [requirements.txt](https://sandboxphysics.com/stories/microlensing-planets/materials/requirements.txt) · 27 字节
- [synthetic-domain-reference.json](https://sandboxphysics.com/stories/microlensing-planets/materials/synthetic-domain-reference.json) · 158,351 字节
- [synthetic-source-size-curves.json](https://sandboxphysics.com/stories/microlensing-planets/materials/synthetic-source-size-curves.json) · 18,475 字节
- [verify\_event\_sensitivity.py](https://sandboxphysics.com/stories/microlensing-planets/materials/verify_event_sensitivity.py) · 4,785 字节
- [verify\_package.py](https://sandboxphysics.com/stories/microlensing-planets/materials/verify_package.py) · 999 字节
- [verify\_science.py](https://sandboxphysics.com/stories/microlensing-planets/materials/verify_science.py) · 3,902 字节

## 来源与计算范围

1. [Beaulieu et al. (2006), OGLE-2005-BLG-390 discovery, astro-ph/0601563v1](https://arxiv.org/abs/astro-ph/0601563v1)

   核读正文、表一与图一：有限星盘下的行星扰动、临边昏暗系数、原文的650个点及依赖银河系模型的物理质量。本教程独立重算的五文件子集有308个点。

2. [Bozza et al. (2018), VBBinaryLensing finite-source methods](https://doi.org/10.1093/mnras/sty1791)

   第二至四节及式14–20、25–26讨论轮廓面积、误差细化和径向亮度分布。固定版本LGPL代码只作为另行下载的离线参考。

3. [Bozza et al., VBMicroLensing, arXiv:2410.13660v1; A&A 694 A219 (2025)](https://arxiv.org/abs/2410.13660v1)

   先读式1–16和第六节，再判断双透镜的根、奇偶性、临界曲线与漏掉的像对。这里核读方法，没有复现其整套性能基准。

4. [OGLE published OGLE-2005-BLG-390 project files](https://ogle.astrouw.edu.pl/cont/4_main/epl/blg390/)

   observation-sources.json列明五个固定测光网址。教程从作者项目原站下载，并验证字节数与SHA256。尚未找到明确的再分发许可，本站不镜像这些数据。

5. [JPL Horizons vector ephemeris documentation](https://ssd.jpl.nasa.gov/horizons/manual.html)

   练习保留固定的161节点DE441地球几何ICRF矢量：位置为天文单位、速度为天文单位每天，历元为TDB。无文件头的测光仍另行保留时标说明。
