ephemeris_lite 1.1.0
ephemeris_lite: ^1.1.0 copied to clipboard
Pure Dart astronomy and calendar library with planetary and lunar positions, solar terms, moon phases, eclipses, Chinese calendars and solar time.
ephemeris_lite #
用于 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。
可运行示例 #
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}');
}
按任务查示例 #
| 任务 | 指南 |
|---|---|
| 时间尺度、位置与参考系 | 查看指南 |
| 气朔、年表与太阳时 | 查看指南 |
| 农历与历史月名 | 查看指南 |
| 算术回历 | 查看指南 |
| 干支、四柱与纪年 | 查看指南 |
| 升落、地平坐标与极区 | 查看指南 |
| 照明、合冲、留与轨道事件 | 查看指南 |
| 全球与地方月食 | 查看指南 |
| 全球与地方日食 | 查看指南 |
| 恒星与外部星表 | 查看指南 |
| 日月独立入口与体积 | 查看指南 |
关键约定 #
- 时间尺度:位置和通用天象搜索使用 TT;日界与地平观测使用 UT1。先构造
JulianTime,再取正确字段。UTC 近似 UT1,不是完整闰秒模型。 - 单位:几何行星/日心状态为 AU、AU/day;地心月球为 km、km/day;视位置角度为度。气朔
solve*的目标角为弧度,年表的月相角选项为度。 - 精度:位置默认 accurate,气朔默认 mid。位置档位控制系数前缀;气朔档位还改变模型与求解流程。没有全局可变默认值。
- 历史历法:实际天文时刻与历法归日分开保存。改历窗口有已知反查歧义,不能承诺所有历史日期都唯一往返。
- 范围与限制:天体和年代不同,误差也不同。冥王星推荐 1600~2200;未来 ΔT 含实验性拟合。数值容差不等于天文精度保证。