2bf8478639
- 新增日月食中心带、偏食带、阴影足迹、等时线、食分线及升落边界计算,支持极区与混合食拓扑 - 新增日食单时刻阴影求解器、站心状态查询、批量采样和 ΔT 覆盖接口 - 重构恒星与行星月掩路径,补充有限盘面接触、站心修正、掩带宽度、极区投影及升落边界 - 扩展 SVG 与 GeoJSON 输出,支持详细面板、全球/极区/地球投影、边界闭合、时间标记和拓扑签名 - 扩展日月食候选搜索、局地搜索、沙罗序列预计算与范围外推,补充系列锚点和成员一致性校验 - 补齐古历纪年、儒略历独有闰日、多公历候选、历法改革跨日及精确日期运算接口 - 优化 ΔT、章动、恒星时、月球地平线、事件根搜索和本地星历缓存,降低重复计算开销并提升边界稳定
26 lines
1.1 KiB
Go
26 lines
1.1 KiB
Go
package orbit
|
|
|
|
import (
|
|
"time"
|
|
|
|
"b612.me/astro/basic"
|
|
)
|
|
|
|
// ParallacticAngle 轨道目标视差角(天顶方向角) / orbit-target parallactic angle.
|
|
//
|
|
// 返回轨道目标在观测者所在地的视差角,单位度;`observerLon` 东经为正,`observerLat` 北纬为正,`observerHeight` 单位米。
|
|
// Returns the parallactic angle of the orbital target for the observing site, in degrees. `observerLon` is east-positive, `observerLat` is north-positive, and `observerHeight` is in meters.
|
|
func ParallacticAngle(date time.Time, elements Elements, observerLon, observerLat, observerHeight float64) float64 {
|
|
// 时角与赤纬须取自同一次站心求解:分属两条儒略日路径(相差 1 ULP ≈ 40 µs)会引入 ≤2e-9 度漂移,
|
|
// 因此统一到同一时刻后的亚纳度量级输出变化是有意为之,不是纯性能改动。
|
|
_, dec, hourAngle := basic.OrbitHourAngleWithTopocentric(
|
|
basic.Date2JDE(date),
|
|
observerLon,
|
|
observerLat,
|
|
observationTimezone(date),
|
|
observerHeight,
|
|
toBasicElements(elements),
|
|
)
|
|
return basic.ParallacticAngleByHourAngle(hourAngle, dec, observerLat)
|
|
}
|