solar

package
v3.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 10, 2018 License: MIT Imports: 6 Imported by: 1

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

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func ApparentEquatorial

func ApparentEquatorial(jde float64) (α unit.RA, δ unit.Angle)

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

func ApparentEquatorialVSOP87(e *pp.V87Planet, jde float64) (α unit.RA, δ unit.Angle, R float64)

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

func ApparentLongitude(T float64) unit.Angle

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

func ApparentVSOP87(e *pp.V87Planet, jde float64) (λ, β unit.Angle, R float64)

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

func Eccentricity(T float64) float64

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

func MeanAnomaly(T float64) unit.Angle

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

func Radius(T float64) float64

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

func True(T float64) (s, ν unit.Angle)

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

func True2000(T float64) (s, ν unit.Angle)

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

func TrueEquatorial(jde float64) (α unit.RA, δ unit.Angle)

TrueEquatorial returns the true geometric position of the Sun as equatorial coordinates.

func TrueVSOP87

func TrueVSOP87(e *pp.V87Planet, jde float64) (s, β unit.Angle, R float64)

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL