// Apparent0UT returns apparent sidereal time at Greenwich at 0h UT // on the given JD. // // The result is in seconds of time and is in the range [0,86400). func Apparent0UT(jd float64) float64 { j0, f := math.Modf(jd + .5) cen := (j0 - .5 - base.J2000) / 36525 s := base.Horner(cen, iau82...) + f*1.00273790935*86400 n := nutation.NutationInRA(j0) // angle (radians) of RA ns := n * 3600 * 180 / math.Pi / 15 // convert RA to time in seconds return base.PMod(s+ns, 86400) }
// Apparent0UT returns apparent sidereal time at Greenwich at 0h UT // on the given JD. // // The result is in the range [0,86400). func Apparent0UT(jd float64) unit.Time { j0, f := math.Modf(jd + .5) cen := (j0 - .5 - base.J2000) / 36525 s := unit.Time(base.Horner(cen, iau82...)) + unit.TimeFromDay(f*1.00273790935) n := nutation.NutationInRA(j0) // HourAngle return (s + n.Time()).Mod1() }
// Apparent returns apparent sidereal time at Greenwich for the given JD. // // Apparent is mean plus the nutation in right ascension. // // The result is in seconds of time and is in the range [0,86400). func Apparent(jd float64) float64 { s := mean(jd) // seconds of time n := nutation.NutationInRA(jd) // angle (radians) of RA ns := n * 3600 * 180 / math.Pi / 15 // convert RA to time in seconds return base.PMod(s+ns, 86400) }
// Apparent returns apparent sidereal time at Greenwich for the given JD. // // Apparent is mean plus the nutation in right ascension. // // The result is in the range [0,86400). func Apparent(jd float64) unit.Time { s := mean(jd) // Time n := nutation.NutationInRA(jd) // HourAngle return (s + n.Time()).Mod1() }