2026-05-01 22:38:44 +08:00
|
|
|
package moon
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"time"
|
|
|
|
|
|
|
|
|
|
"b612.me/astro/basic"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// BrightLimbPositionAngle 月亮明亮边缘位置角,单位度 / position angle of the Moon's bright limb in degrees.
|
2026-10-15 23:54:15 +08:00
|
|
|
func (module *Moon) BrightLimbPositionAngle(date time.Time) float64 {
|
|
|
|
|
return module.BrightLimbPositionAngleN(date, -1)
|
2026-05-01 22:38:44 +08:00
|
|
|
}
|
|
|
|
|
|
2026-10-15 23:54:15 +08:00
|
|
|
// BrightLimbPositionAngleN 月亮明亮边缘位置角(n 变体),单位度 / n-parameterised position angle of the Moon's bright limb in degrees.
|
|
|
|
|
func (module *Moon) BrightLimbPositionAngleN(date time.Time, n int) float64 {
|
|
|
|
|
return basic.MoonBrightLimbPositionAngleNWithInstance(observationTT(date), n, module.inst)
|
2026-05-01 22:38:44 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// TopocentricBrightLimbPositionAngle 月亮站心明亮边缘位置角,单位度 / topocentric position angle of the Moon's bright limb in degrees.
|
2026-10-15 23:54:15 +08:00
|
|
|
func (module *Moon) TopocentricBrightLimbPositionAngle(date time.Time, observerLon, observerLat, height float64) float64 {
|
|
|
|
|
return module.TopocentricBrightLimbPositionAngleN(date, observerLon, observerLat, height, -1)
|
2026-05-01 22:38:44 +08:00
|
|
|
}
|
|
|
|
|
|
2026-10-15 23:54:15 +08:00
|
|
|
// TopocentricBrightLimbPositionAngleN 月亮站心明亮边缘位置角(n 变体),单位度 / n-parameterised topocentric position angle of the Moon's bright limb in degrees.
|
|
|
|
|
func (module *Moon) TopocentricBrightLimbPositionAngleN(date time.Time, observerLon, observerLat, height float64, n int) float64 {
|
|
|
|
|
return basic.MoonTopocentricBrightLimbPositionAngleNWithInstance(observationTT(date), observerLon, observerLat, height, n, module.inst)
|
2026-05-01 22:38:44 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func observationTT(date time.Time) float64 {
|
2026-09-23 18:55:12 +08:00
|
|
|
return basic.UTC2TT(basic.Date2JD(date.UTC()))
|
2026-05-01 22:38:44 +08:00
|
|
|
}
|