4 个版本 (2 个稳定版)
1.0.1 | 2023年5月29日 |
---|---|
0.2.2 | 2022年6月26日 |
0.2.1 | 2021年11月13日 |
0.2.0 |
|
0.1.0 |
|
#145 在 日期和时间 中
每月57次 下载
51KB
1.5K SLoC
Rust 日出日落计算器
计算日出日落时间的 crate。
用法
let result = SunriseSunsetParameters::new(timestamp, latitude, longitude).calculate()?;
示例
$ cargo run --example sunrise-sunset-calculator -- lookup --location london
Using timestamp: 1628381118
Using coordinates: 51.5073219, -0.1276474
Visible: false
Sun set at: 2021-08-07 20:37 (+01:00)
Sun rises at: 2021-08-08 05:35 (+01:00)
实现细节
内部使用 NREL 的太阳位置算法(SPA)的移植版来计算给定时间的太阳高度角。接受 -2000 到 6000 年之间的日期。
我们使用 NOAA 对日出/日落时间的定义,即太阳中心在海拔 0.8333° 以下。然后使用区间二分法找到太阳高度角穿过这个边界的位置。
它可以在地球上的所有纬度上工作,尽管步长选项控制检测到的最短白天/夜晚长度,这是根据输入纬度配置的合理默认值。
许可
我所有的代码都是 LGPL,但这个包捆绑的 NREL 算法有自己的单独许可,因此请考虑这一点。
依赖关系
~300–760KB
~18K SLoC