计算原理 - Computation

总则

本站所有天文计算都在本地完成(浏览器内 JavaScript),不依赖外部 API。日常显示用低精度解析算法(保证离线可用),日月食预报用 JPL DE441 星历精算(见星历说明)。

节气时刻

二十四节气以太阳视黄经为准:每 15° 一个节气。用 Meeus《天文算法》第 25 章的太阳位置算法求视黄经,再对时间二分逼近到目标黄经,精度约 ±1 分钟,已用 USNO 数据校验。

太阳、月球实时位置

日食、月食预报

以 NASA 食典日期为种子,用 DE441 星历精化朔/望时刻,再用抛物线内插与二分法求各接触时刻。口径对齐 NASA《五千年日月食典》:

已逐项对照 NASA 食表验证(如 2028-01-12 月偏食食分 0.067 vs NASA 0.066)。

恒星、行星

时间系统与 ΔT

页面显示用本地时区;天文计算内部统一用 UTC。星历(如 DE441)则使用力学时(TT/TDB),两者之差即 ΔT = TT − UT1,源于地球自转的不均匀性(潮汐摩擦使自转持续变慢)。2026 年 ΔT 约 69 秒,且每年增加约 0.5–1 秒。

本站 ΔT 取自 Espenak/Meeus 多项式(Meeus《天文算法》第 10 章,NASA 日食网站公布的经验拟合公式,按年份分段)。注意该多项式在 2020 年代比 IERS 实测值高约 6 秒:日常显示(月相光照方向等)不受影响——月球 6 秒仅移动约 3 角秒;但日月食预报 bake 数据时改用 IERS 实测值硬编码,不留这 6 秒系统偏差。日常低精度页面则完全不用 ΔT,直接以 UTC 计算(算法自身 ~20 角秒误差已远大于 ΔT 的影响)。

计算示例

例 1:ΔT 多项式。求 2026-10-05 的 ΔT。年份小数 y ≈ 2026.76,属 2005–2050 段:ΔT = 62.92 + 0.32217×t + 0.005589×t²(t = y − 2000 = 26.76),得 ΔT ≈ 75.5 秒。IERS 实测约 69 秒,多项式偏高约 6 秒。

例 2:日食的 UTC→TT。2027-08-02 日全食食甚 10:06:33 UTC(bake 值)。当年 ΔT ≈ 76.1 秒,故 TT = 10:06:33 + 76.1s = 10:07:49 TT;DE441 星历即以此刻度位置查日月坐标,再反推回 UTC 给出预报时刻。

例 3:儒略日。天文计算多以儒略日(JD)为时间变量。2026-10-05 00:00 UTC:JD = 2461318.5(校验:2000-01-01 12:00 UTC = 2451545.0,即 J2000.0)。DE441 接口返回的 jd_tt 即力学时儒略日。