func ExampleStellar() { // Exercise, p. 119. day1 := 7. day5 := 27. r2 := []float64{ sexa.NewRA(15, 3, 51.937).Rad(), sexa.NewRA(15, 9, 57.327).Rad(), sexa.NewRA(15, 15, 37.898).Rad(), sexa.NewRA(15, 20, 50.632).Rad(), sexa.NewRA(15, 25, 32.695).Rad(), } d2 := []float64{ sexa.NewAngle(true, 8, 57, 34.51).Rad(), sexa.NewAngle(true, 9, 9, 03.88).Rad(), sexa.NewAngle(true, 9, 17, 37.94).Rad(), sexa.NewAngle(true, 9, 23, 16.25).Rad(), sexa.NewAngle(true, 9, 26, 01.01).Rad(), } jd := julian.CalendarGregorianToJD(1996, 2, 17) dt := jd - base.J2000 dy := dt / base.JulianYear dc := dy / 100 fmt.Printf("%.2f years\n", dy) fmt.Printf("%.4f century\n", dc) pmr := -.649 // sec/cen pmd := -1.91 // sec/cen r1 := sexa.NewRA(15, 17, 0.421+pmr*dc).Rad() // Careful with quick and dirty way of applying correction to seconds // component before converting to radians. The dec here is negative // so correction must be subtracted. Alternative, less error-prone, // way would be to convert both to radians, then add. d1 := sexa.NewAngle(true, 9, 22, 58.54-pmd*dc).Rad() fmt.Printf("α′ = %.3d, δ′ = %.2d\n", sexa.NewFmtRA(r1), sexa.NewFmtAngle(d1)) day, dd, err := conjunction.Stellar(day1, day5, r1, d1, r2, d2) if err != nil { fmt.Println(err) return } fmt.Println(sexa.NewFmtAngle(dd)) dInt, dFrac := math.Modf(day) fmt.Printf("1996 February %d at %s TD\n", int(dInt), sexa.NewFmtTime(dFrac*24*3600)) // Output: // -3.87 years // -0.0387 century // α′ = 15ʰ17ᵐ0ˢ.446, δ′ = -9°22′58″.47 // 3′38″ // 1996 February 18 at 6ʰ36ᵐ55ˢ TD }
func ExampleStellar() { // Exercise, p. 119. day1 := 7. day5 := 27. r2 := []unit.Angle{ unit.NewRA(15, 3, 51.937).Angle(), unit.NewRA(15, 9, 57.327).Angle(), unit.NewRA(15, 15, 37.898).Angle(), unit.NewRA(15, 20, 50.632).Angle(), unit.NewRA(15, 25, 32.695).Angle(), } d2 := []unit.Angle{ unit.NewAngle('-', 8, 57, 34.51), unit.NewAngle('-', 9, 9, 03.88), unit.NewAngle('-', 9, 17, 37.94), unit.NewAngle('-', 9, 23, 16.25), unit.NewAngle('-', 9, 26, 01.01), } jd := julian.CalendarGregorianToJD(1996, 2, 17) dt := jd - base.J2000 dy := dt / base.JulianYear dc := dy / 100 fmt.Printf("%.2f years\n", dy) fmt.Printf("%.4f century\n", dc) pmr := -.649 // sec/cen pmd := -1.91 // sec/cen r1 := unit.NewRA(15, 17, 0.421) + unit.RAFromSec(pmr*dc) d1 := unit.NewAngle('-', 9, 22, 58.54) + unit.AngleFromSec(pmd*dc) fmt.Printf("α′ = %.3d, δ′ = %.2d\n", sexa.FmtRA(r1), sexa.FmtAngle(d1)) day, dd, err := conjunction.Stellar(day1, day5, r1.Angle(), d1, r2, d2) if err != nil { fmt.Println(err) return } fmt.Println(sexa.FmtAngle(dd)) dInt, dFrac := math.Modf(day) fmt.Printf("1996 February %d at %s TD\n", int(dInt), sexa.FmtTime(unit.TimeFromDay(dFrac))) // Output: // -3.87 years // -0.0387 century // α′ = 15ʰ17ᵐ0ˢ.446, δ′ = -9°22′58″.47 // 3′38″ // 1996 February 18 at 6ʰ36ᵐ55ˢ TD }