ephemeris_lite

简体中文 | English

用于 Dart 与 Flutter 的天文与历法计算库。提供天体位置、节气与月相、农历与算术回历、太阳时、升落、日月食和外部恒星表计算。纯 Dart 实现,无运行时依赖,支持 Dart VM 和 Dart Web。

移植自 js-ephemeris-lite。行星模型基于 VSOP2013/TOP2013,月球基于 ELP/MPP02,部分系数经 DE441 校准;历史历法及相关数据来源见第三方声明。API 使用 Dart 命名参数、枚举和结果类型,不依赖 JavaScript 引擎或 FFI。

当前稳定版本:1.1.0。本包是天文与历法内核;十神及完整八字、紫微排盘属于独立上层包,不包含在本包中。恒星表由应用加载,不内置目录数据。

安装

dependencies:
  ephemeris_lite: ^1.1.0

运行 dart pub get,Flutter 项目使用 flutter pub get。

可运行示例

main.dart

dart run example/main.dart
import 'package:ephemeris_lite/ephemeris_lite.dart';

void main() {
  final time = ZonedTime(
    year: 2000,
    month: 1,
    day: 1,
    hour: 12,
    offsetMinutes: 480,
  ).toJulianTime();
  final earth = earthState(time.jdTT, accuracy: Accuracy.accurate);
  final moon = moonState(time.jdTT, accuracy: Accuracy.mid);
  print('TT: ${time.jdTT}; Delta-T: ${time.deltaTSeconds} s');
  print('Earth heliocentric J2000 [AU]: ${earth.position}');
  print('Moon geocentric J2000 [km]: ${moon.position}');
}

按任务查示例

任务 指南
时间尺度、位置与参考系 查看指南
气朔、年表与太阳时 查看指南
农历与历史月名 查看指南
算术回历 查看指南
干支、四柱与纪年 查看指南
升落、地平坐标与极区 查看指南
照明、合冲、留与轨道事件 查看指南
全球与地方月食 查看指南
全球与地方日食 查看指南
恒星与外部星表 查看指南
日月独立入口与体积 查看指南

完整使用文档 · API 参考

关键约定

  • 时间尺度:位置和通用天象搜索使用 TT;日界与地平观测使用 UT1。先构造 JulianTime,再取正确字段。UTC 近似 UT1,不是完整闰秒模型。
  • 单位:几何行星/日心状态为 AU、AU/day;地心月球为 km、km/day;视位置角度为度。气朔 solve* 的目标角为弧度,年表的月相角选项为度。
  • 精度:位置默认 accurate,气朔默认 mid。位置档位控制系数前缀;气朔档位还改变模型与求解流程。没有全局可变默认值。
  • 历史历法:实际天文时刻与历法归日分开保存。改历窗口有已知反查歧义,不能承诺所有历史日期都唯一往返。
  • 范围与限制:天体和年代不同,误差也不同。冥王星推荐 1600~2200;未来 ΔT 含实验性拟合。数值容差不等于天文精度保证。

许可证与来源

MPL-2.0 · 中文第三方声明 · Third-party notices

Libraries

ephemeris_lite
Dart 与 Flutter 天文及历法计算库。
sun_moon
日月几何星历独立入口,不引入其他行星的系数表。