Documentation ¶
Overview ¶
Solar: Chapter 25, Solar Coordinates.
Partial implementation:
1. Higher accuracy positions are not computed with Appendix III but with full VSOP87 as implemented in package planetposition.
2. Higher accuracy correction for aberration (using the formula for variation Δλ on p. 168) is not implemented. Results for example 25.b already match the full VSOP87 values on p. 165 even with the low accuracy correction for aberration, thus there are no more significant digits that would check a more accurate result. Also the size of the formula presents significant chance of typographical error.
Index ¶
- func ApparentEquatorial(jde float64) (α unit.RA, δ unit.Angle)
- func ApparentEquatorialVSOP87(e *pp.V87Planet, jde float64) (α unit.RA, δ unit.Angle, R float64)
- func ApparentLongitude(T float64) unit.Angle
- func ApparentVSOP87(e *pp.V87Planet, jde float64) (λ, β unit.Angle, R float64)
- func Eccentricity(T float64) float64
- func MeanAnomaly(T float64) unit.Angle
- func Radius(T float64) float64
- func True(T float64) (s, ν unit.Angle)
- func True2000(T float64) (s, ν unit.Angle)
- func TrueEquatorial(jde float64) (α unit.RA, δ unit.Angle)
- func TrueVSOP87(e *pp.V87Planet, jde float64) (s, β unit.Angle, R float64)
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ApparentEquatorial ¶
ApparentEquatorial returns the apparent position of the Sun as equatorial coordinates.
α: right ascension in radians δ: declination in radians
Example ¶
// Example 25.a, p. 165. jde := julian.CalendarGregorianToJD(1992, 10, 13) α, δ := solar.ApparentEquatorial(jde) fmt.Printf("α: %.1d\n", sexa.FmtRA(α)) fmt.Printf("δ: %d\n", sexa.FmtAngle(δ))
Output: α: 13ʰ13ᵐ31ˢ.4 δ: -7°47′6″
func ApparentEquatorialVSOP87 ¶
ApparentEquatorialVSOP87 returns the apparent position of the sun as equatorial coordinates.
Result computed by VSOP87, at equator and equinox of date in the FK5 frame, and includes effects of nutation and aberration.
α: right ascension δ: declination R: range in AU
Example ¶
// Example 25.b, p. 169, but as this code uses the full VSOP87 theory, // results match those at bottom of p. 165. e, err := pp.LoadPlanet(pp.Earth) if err != nil { fmt.Println(err) return } jde := julian.CalendarGregorianToJD(1992, 10, 13) α, δ, _ := solar.ApparentEquatorialVSOP87(e, jde) fmt.Printf("α: %.3d\n", sexa.FmtRA(α)) fmt.Printf("δ: %+.2d\n", sexa.FmtAngle(δ))
Output: α: 13ʰ13ᵐ30ˢ.749 δ: -7°47′1″.74
func ApparentLongitude ¶
ApparentLongitude returns apparent longitude of the Sun referenced to the true equinox of date.
Argument T is the number of Julian centuries since J2000. See base.J2000Century.
Result includes correction for nutation and aberration.
Example ¶
// Example 25.a, p. 165. T := base.J2000Century(julian.CalendarGregorianToJD(1992, 10, 13)) fmt.Println("λ:", sexa.FmtAngle(solar.ApparentLongitude(T)))
Output: λ: 199°54′32″
func ApparentVSOP87 ¶
ApparentVSOP87 returns the apparent position of the sun as ecliptic coordinates.
Result computed by VSOP87, at equator and equinox of date in the FK5 frame, and includes effects of nutation and aberration.
λ: ecliptic longitude β: ecliptic latitude R: range in AU
func Eccentricity ¶
Eccentricity returns eccentricity of the Earth's orbit around the sun.
Argument T is the number of Julian centuries since J2000. See base.J2000Century.
Example ¶
package main import ( "fmt" "github.com/soniakeys/meeus/v3/base" "github.com/soniakeys/meeus/v3/julian" "github.com/soniakeys/meeus/v3/solar" ) func main() { // Example 25.a, p. 165. T := base.J2000Century(julian.CalendarGregorianToJD(1992, 10, 13)) fmt.Printf("%.9f\n", solar.Eccentricity(T)) }
Output: 0.016711668
func MeanAnomaly ¶
MeanAnomaly returns the mean anomaly of Earth at the given T.
Argument T is the number of Julian centuries since J2000. See base.J2000Century.
Result is not normalized to the range 0..2π.
Example ¶
package main import ( "fmt" "github.com/soniakeys/meeus/v3/base" "github.com/soniakeys/meeus/v3/julian" "github.com/soniakeys/meeus/v3/solar" ) func main() { // Example 25.a, p. 165. T := base.J2000Century(julian.CalendarGregorianToJD(1992, 10, 13)) fmt.Printf("%.5f\n", solar.MeanAnomaly(T).Deg()) }
Output: -2241.00603
func Radius ¶
Radius returns the Sun-Earth distance in AU.
Argument T is the number of Julian centuries since J2000. See base.J2000Century.
Example ¶
package main import ( "fmt" "github.com/soniakeys/meeus/v3/base" "github.com/soniakeys/meeus/v3/julian" "github.com/soniakeys/meeus/v3/solar" ) func main() { // Example 25.a, p. 165. T := base.J2000Century(julian.CalendarGregorianToJD(1992, 10, 13)) fmt.Printf("%.5f AU\n", solar.Radius(T)) }
Output: 0.99766 AU
func True ¶
True returns true geometric longitude and anomaly of the sun referenced to the mean equinox of date.
Argument T is the number of Julian centuries since J2000. See base.J2000Century.
Results:
s = true geometric longitude, ☉ ν = true anomaly
Example ¶
package main import ( "fmt" "github.com/soniakeys/meeus/v3/base" "github.com/soniakeys/meeus/v3/julian" "github.com/soniakeys/meeus/v3/solar" ) func main() { // Example 25.a, p. 165. jd := julian.CalendarGregorianToJD(1992, 10, 13) fmt.Printf("JDE: %.1f\n", jd) T := base.J2000Century(jd) fmt.Printf("T: %.9f\n", T) s, _ := solar.True(T) fmt.Printf("☉: %.5f\n", s.Deg()) }
Output: JDE: 2448908.5 T: -0.072183436 ☉: 199.90987
func True2000 ¶
True2000 returns true geometric longitude and anomaly of the sun referenced to equinox J2000.
Argument T is the number of Julian centuries since J2000. See base.J2000Century.
Results are accurate to .01 degree for years 1900 to 2100.
Results:
s = true geometric longitude, ☉ ν = true anomaly
func TrueEquatorial ¶
TrueEquatorial returns the true geometric position of the Sun as equatorial coordinates.
func TrueVSOP87 ¶
TrueVSOP87 returns the true geometric position of the sun as ecliptic coordinates.
Result computed by full VSOP87 theory. Result is at equator and equinox of date in the FK5 frame. It does not include nutation or aberration.
s: ecliptic longitude β: ecliptic latitude R: range in AU
Types ¶
This section is empty.