func ExampleV87Planet_Position() { // Example 32.a, p. 219 jd := julian.CalendarGregorianToJD(1992, 12, 20) p, err := pp.LoadPlanet(pp.Venus, "") if err != nil { fmt.Println(err) return } l, b, r := p.Position(jd) fmt.Printf("L = %s\n", base.DecSymAdd(fmt.Sprintf("%+.5f", l*180/math.Pi), '°')) fmt.Printf("B = %s\n", base.DecSymAdd(fmt.Sprintf("%+.5f", b*180/math.Pi), '°')) fmt.Printf("R = %.6f AU\n", r) // Meeus results: // L = +26°.11428 // B = -2°.62070 // R = 0.724603 AU // Answers below seem close enough. // Output: // L = +26°.11412 // B = -2°.62060 // R = 0.724602 AU }
func ExampleEcliptic_EqToEcl() { // Example 13.a, p. 95. eq := &coord.Equatorial{ base.NewRA(7, 45, 18.946).Rad(), base.NewAngle(false, 28, 1, 34.26).Rad(), } obl := coord.NewObliquity(23.4392911 * math.Pi / 180) ecl := new(coord.Ecliptic).EqToEcl(eq, obl) λStr := base.DecSymAdd(fmt.Sprintf("%.5f", ecl.Lon*180/math.Pi), '°') βStr := base.DecSymAdd(fmt.Sprintf("%+.6f", ecl.Lat*180/math.Pi), '°') fmt.Println("λ =", λStr) fmt.Println("β =", βStr) // Output: // λ = 113°.21563 // β = +6°.684170 }
func ExampleDecSymAdd() { formatted := "1.25" fmt.Println("Standard decimal symbol:", formatted) fmt.Println("Degree units, non combining decimal point: ", base.DecSymAdd(formatted, '°')) // Output: // Standard decimal symbol: 1.25 // Degree units, non combining decimal point: 1°.25 }
func ExampleHorizontal_EqToHz() { // Example 13.b, p. 95. eq := &coord.Equatorial{ RA: base.NewRA(23, 9, 16.641).Rad(), Dec: base.NewAngle(true, 6, 43, 11.61).Rad(), } g := &globe.Coord{ Lat: base.NewAngle(false, 38, 55, 17).Rad(), Lon: base.NewAngle(false, 77, 3, 56).Rad(), } jd := julian.TimeToJD(time.Date(1987, 4, 10, 19, 21, 0, 0, time.UTC)) st := sidereal.Apparent(jd) hz := new(coord.Horizontal).EqToHz(eq, g, st) AStr := base.DecSymAdd(fmt.Sprintf("%+.3f", hz.Az*180/math.Pi), '°') hStr := base.DecSymAdd(fmt.Sprintf("%+.3f", hz.Alt*180/math.Pi), '°') fmt.Println("A =", AStr) fmt.Println("h =", hStr) // Output: // A = +68°.034 // h = +15°.125 }
func ExampleError() { // Example p. 124. rδ := base.NewRA(5, 32, 0.40).Rad() dδ := base.NewAngle(true, 0, 17, 56.9).Rad() rε := base.NewRA(5, 36, 12.81).Rad() dε := base.NewAngle(true, 1, 12, 7.0).Rad() rζ := base.NewRA(5, 40, 45.52).Rad() dζ := base.NewAngle(true, 1, 56, 33.3).Rad() ω := line.Error(rζ, dζ, rδ, dδ, rε, dε) fmt.Println(base.DecSymAdd(fmt.Sprintf("%.6f", ω*180/math.Pi), '°')) fmt.Printf("%.0f″\n", ω*3600*180/math.Pi) fmt.Println(base.NewFmtAngle(ω)) // Output: // 0°.089876 // 324″ // 5′24″ }
func ExampleSmallest_a() { // Example 20.a, p. 128. r1 := base.NewRA(12, 41, 8.64).Rad() r2 := base.NewRA(12, 52, 5.21).Rad() r3 := base.NewRA(12, 39, 28.11).Rad() d1 := base.NewAngle(true, 5, 37, 54.2).Rad() d2 := base.NewAngle(true, 4, 22, 26.2).Rad() d3 := base.NewAngle(true, 1, 50, 3.7).Rad() d, t := circle.Smallest(r1, d1, r2, d2, r3, d3) fmt.Printf("Δ = %s = %.62s\n", base.DecSymAdd(fmt.Sprintf("%.5f", d*180/math.Pi), '°'), base.NewFmtAngle(d)) if t { fmt.Println("type I") } else { fmt.Println("type II") } // Output: // Δ = 4°.26363 = 4°16′ // type II }
func ExampleEllipsoid_Distance() { // Example 11.c p 85. c1 := globe.Coord{ base.NewAngle(false, 48, 50, 11).Rad(), // geographic latitude base.NewAngle(true, 2, 20, 14).Rad(), // geographic longitude } c2 := globe.Coord{ base.NewAngle(false, 38, 55, 17).Rad(), base.NewAngle(false, 77, 3, 56).Rad(), } fmt.Printf("%.2f km\n", globe.Earth76.Distance(c1, c2)) cos := globe.ApproxAngularDistance(c1, c2) fmt.Printf("cos d = %.6f\n", cos) d := math.Acos(cos) fmt.Println(" d =", base.DecSymAdd(fmt.Sprintf("%.5f", d*180/math.Pi), '°')) fmt.Printf(" s = %.0f km\n", globe.ApproxLinearDistance(d)) // Output: // 6181.63 km // cos d = 0.567146 // d = 55°.44855 // s = 6166 km }