Files
astro/orbit/parallactic.go
T
b612 16c62a97d5 feat: 完善时标与天象几何计算并扩展输出接口
- 新增时标、ΔT 模型、质心时间与 UT1 支持
- 改进日月食、月掩、行星事件及路径边界计算
- 完善恒星三维自行与动态距离传播
- 扩展 SVG、GeoJSON、KML 输出与底层距离换算工具
- 整理中英文手册、示例资源及回归测试
2026-09-23 18:55:12 +08:00

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.Date2JD(date),
observerLon,
observerLat,
observationTimezone(date),
observerHeight,
toBasicElements(elements),
)
return basic.ParallacticAngleByHourAngle(hourAngle, dec, observerLat)
}