public void ConfigureEphemeris(EphemerisConfig <Moon> e) { e["Constellation"] = (c, m) => Constellations.FindConstellation(c.Get(Equatorial), c.JulianDay); e["RTS.Rise"] = (c, m) => c.GetDateFromTime(c.Get(RiseTransitSet).Rise); e["RTS.RiseAzimuth"] = (c, m) => c.Get(RiseTransitSet).RiseAzimuth; e["RTS.Transit"] = (c, m) => c.GetDateFromTime(c.Get(RiseTransitSet).Transit); e["RTS.TransitAltitude"] = (c, m) => c.Get(RiseTransitSet).TransitAltitude; e["RTS.Set"] = (c, m) => c.GetDateFromTime(c.Get(RiseTransitSet).Set); e["RTS.SetAzimuth"] = (c, m) => c.Get(RiseTransitSet).SetAzimuth; e["RTS.Duration"] = (c, m) => c.Get(RiseTransitSet).Duration; e["Equatorial.Alpha"] = (c, m) => c.Get(Equatorial).Alpha; e["Equatorial.Delta"] = (c, m) => c.Get(Equatorial).Delta; e["Equatorial0.Alpha"] = (c, m) => c.Get(Equatorial0).Alpha; e["Equatorial0.Delta"] = (c, m) => c.Get(Equatorial0).Delta; e["Horizontal.Altitude"] = (c, m) => c.Get(Horizontal).Altitude; e["Horizontal.Azimuth"] = (c, m) => c.Get(Horizontal).Azimuth; e["Ecliptical.Lambda"] = (c, m) => c.Get(Ecliptical0).Lambda; e["Ecliptical.Beta"] = (c, m) => c.Get(Ecliptical0).Beta; e["Phase"] = (c, m) => c.Get(Phase); e["PhaseAngle"] = (c, m) => c.Get(PhaseAngle); e["Age", new Formatters.UnsignedDoubleFormatter(2, " d")] = (c, m) => c.Get(Age); e["Lunation"] = (c, m) => c.Get(Lunation); e["Magnitude"] = (c, m) => c.Get(Magnitude); e["Distance", new LunarDistanceFormatter()] = (c, m) => c.Get(Ecliptical0).Distance; e["HorizontalParallax"] = (c, m) => c.Get(Parallax); e["AngularDiameter"] = (c, m) => c.Get(Semidiameter) * 2 / 3600.0; e["Libration.Latitude", new LibrationLatitudeFormatter()] = (c, m) => c.Get(LibrationElements).b; e["Libration.Longitude", new LibrationLongitudeFormatter()] = (c, m) => c.Get(LibrationElements).l; }
public void ConfigureEphemeris(EphemerisConfig <Comet> e) { e["Constellation"] = (c, p) => Constellations.FindConstellation(c.Get(EquatorialT, p), c.JulianDay); e["Magnitude"] = (c, p) => c.Get(Magnitude, p); e["AngularDiameter"] = (c, p) => c.Get(Appearance, p).Coma / 3600f; e["DistanceFromEarth"] = (c, p) => c.Get(DistanceFromEarth, p); e["DistanceFromSun"] = (c, p) => c.Get(DistanceFromSun, p); e["HorizontalParallax"] = (c, p) => c.Get(Parallax, p); e["Horizontal.Altitude"] = (c, p) => c.Get(Horizontal, p).Altitude; e["Horizontal.Azimuth"] = (c, p) => c.Get(Horizontal, p).Azimuth; e["Equatorial.Alpha"] = (c, p) => c.Get(EquatorialT, p).Alpha; e["Equatorial.Delta"] = (c, p) => c.Get(EquatorialT, p).Delta; e["Equatorial0.Alpha"] = (c, p) => c.Get(EquatorialJ2000, p).Alpha; e["Equatorial0.Delta"] = (c, p) => c.Get(EquatorialJ2000, p).Delta; e["Equatorial0T.Alpha", Formatters.RA] = (c, p) => c.Get(EquatorialJ2000T, p).Alpha; e["Equatorial0T.Delta", Formatters.Dec] = (c, p) => c.Get(EquatorialJ2000T, p).Delta; e["EquatorialG.Alpha", Formatters.RA] = (c, p) => c.Get(EquatorialG, p).Alpha; e["EquatorialG.Delta", Formatters.Dec] = (c, p) => c.Get(EquatorialG, p).Delta; e["Ecliptical.Lambda"] = (c, p) => c.Get(Ecliptical, p).Lambda; e["Ecliptical.Beta"] = (c, p) => c.Get(Ecliptical, p).Beta; e["RTS.Rise"] = (c, p) => c.GetDateFromTime(c.Get(RiseTransitSet, p).Rise); e["RTS.Transit"] = (c, p) => c.GetDateFromTime(c.Get(RiseTransitSet, p).Transit); e["RTS.Set"] = (c, p) => c.GetDateFromTime(c.Get(RiseTransitSet, p).Set); e["RTS.Duration"] = (c, p) => c.Get(RiseTransitSet, p).Duration; }
public void ConfigureEphemeris(EphemerisConfig <Pluto> e) { e["Constellation"] = (c, nm) => Constellations.FindConstellation(c.Get(Pluto_Equatorial), c.JulianDay); e["Equatorial.Alpha"] = (c, nm) => c.Get(Pluto_Equatorial).Alpha; e["Equatorial.Delta"] = (c, nm) => c.Get(Pluto_Equatorial).Delta; e["Equatorial0.Alpha"] = (c, nm) => c.Get(Pluto_Equatorial0).Alpha; e["Equatorial0.Delta"] = (c, nm) => c.Get(Pluto_Equatorial0).Delta; e["Ecliptical.Lambda"] = (c, p) => c.Get(Pluto_Ecliptical).Lambda; e["Ecliptical.Beta"] = (c, p) => c.Get(Pluto_Ecliptical).Beta; e["Horizontal.Altitude"] = (c, nm) => c.Get(Pluto_Horizontal).Altitude; e["Horizontal.Azimuth"] = (c, nm) => c.Get(Pluto_Horizontal).Azimuth; e["Magnitude"] = (c, nm) => c.Get(Pluto_Magnitude); e["DistanceFromEarth"] = (c, p) => c.Get(Pluto_DistanceFromEarth); e["DistanceFromSun"] = (c, p) => c.Get(Pluto_DistanceFromSun); e["HorizontalParallax"] = (c, p) => c.Get(Pluto_Parallax); e["AngularDiameter"] = (c, p) => c.Get(Pluto_Semidiameter) * 2 / 3600.0; e["Appearance.CM"] = (c, p) => c.Get(Pluto_Appearance).CM; e["Appearance.D"] = (c, p) => c.Get(Pluto_Appearance).D; e["Appearance.P"] = (c, p) => c.Get(Pluto_Appearance).P; e["RTS.Rise"] = (c, p) => c.GetDateFromTime(c.Get(Pluto_RiseTransitSet).Rise); e["RTS.Transit"] = (c, p) => c.GetDateFromTime(c.Get(Pluto_RiseTransitSet).Transit); e["RTS.Set"] = (c, p) => c.GetDateFromTime(c.Get(Pluto_RiseTransitSet).Set); e["RTS.Duration"] = (c, p) => c.Get(Pluto_RiseTransitSet).Duration; e["Visibility.Begin"] = (c, p) => c.GetDateFromTime(c.Get(Pluto_Visibility).Begin); e["Visibility.End"] = (c, p) => c.GetDateFromTime(c.Get(Pluto_Visibility).End); e["Visibility.Duration"] = (c, p) => c.Get(Pluto_Visibility).Duration; e["Visibility.Period"] = (c, p) => c.Get(Pluto_Visibility).Period; }
public void GetInfo(CelestialObjectInfo <Tycho2Star> info) { Tycho2Star s = info.Body; SkyContext c = info.Context; string constellation = Constellations.FindConstellation(s.Equatorial, c.JulianDay); info .SetTitle(s.ToString()) .SetSubtitle(Text.Get("Tycho2Star.Subtitle")) .AddRow("Constellation", constellation) .AddHeader(Text.Get("Tycho2Star.Equatorial")) .AddRow("Equatorial.Alpha", c.Get(Equatorial, s).Alpha) .AddRow("Equatorial.Delta", c.Get(Equatorial, s).Delta) .AddHeader(Text.Get("Tycho2Star.Equatorial0")) .AddRow("Equatorial0.Alpha", s.Equatorial0.Alpha) .AddRow("Equatorial0.Delta", s.Equatorial0.Delta) .AddHeader(Text.Get("Tycho2Star.Horizontal")) .AddRow("Horizontal.Azimuth") .AddRow("Horizontal.Altitude") .AddHeader(Text.Get("Tycho2Star.RTS")) .AddRow("RTS.Rise") .AddRow("RTS.Transit") .AddRow("RTS.Set") .AddRow("RTS.Duration") .AddHeader(Text.Get("Tycho2Star.Properties")) .AddRow("Magnitude", s.Magnitude); }
public void GetInfo(CelestialObjectInfo <Tycho2Star> info) { Tycho2Star s = info.Body; SkyContext c = info.Context; string constellation = Constellations.FindConstellation(s.Equatorial, c.JulianDay); info .SetTitle(s.ToString()) .SetSubtitle("Star") .AddRow("Constellation", constellation) .AddHeader("Equatorial coordinates (current epoch)") .AddRow("Equatorial.Alpha", c.Get(Equatorial, s).Alpha) .AddRow("Equatorial.Delta", c.Get(Equatorial, s).Delta) .AddHeader("Equatorial coordinates (J2000.0 epoch)") .AddRow("Equatorial0.Alpha", s.Equatorial0.Alpha) .AddRow("Equatorial0.Delta", s.Equatorial0.Delta) .AddHeader("Horizontal coordinates") .AddRow("Horizontal.Azimuth") .AddRow("Horizontal.Altitude") .AddHeader("Visibility") .AddRow("RTS.Rise") .AddRow("RTS.Transit") .AddRow("RTS.Set") .AddRow("RTS.Duration") .AddHeader("Properties") .AddRow("Magnitude", s.Magnitude); }
public void ConfigureEphemeris(EphemerisConfig <Sun> e) { e["Constellation"] = (c, s) => Constellations.FindConstellation(c.Get(Equatorial), c.JulianDay); e["Equatorial0.Alpha"] = (c, s) => c.Get(Equatorial0).Alpha; e["Equatorial0.Delta"] = (c, s) => c.Get(Equatorial0).Delta; e["Equatorial.Alpha"] = (c, s) => c.Get(Equatorial).Alpha; e["Equatorial.Delta"] = (c, s) => c.Get(Equatorial).Delta; e["Ecliptical.Lambda"] = (c, s) => c.Get(Ecliptical).Lambda; e["Ecliptical.Beta"] = (c, s) => c.Get(Ecliptical).Beta; e["Horizontal.Altitude"] = (c, s) => c.Get(Horizontal).Altitude; e["Horizontal.Azimuth"] = (c, s) => c.Get(Horizontal).Azimuth; e["RTS.Rise"] = (c, s) => c.GetDateFromTime(c.Get(RiseTransitSet).Rise); e["RTS.Transit"] = (c, s) => c.GetDateFromTime(c.Get(RiseTransitSet).Transit); e["RTS.Set"] = (c, s) => c.GetDateFromTime(c.Get(RiseTransitSet).Set); e["RTS.Duration"] = (c, s) => c.Get(RiseTransitSet).Duration; e["Twilight.Astronomical.Dawn", Formatters.Time] = (c, s) => c.GetDateFromTime(c.Get(Twilight, TWILIGHT_ASTRONOMICAL).Rise); e["Twilight.Astronomical.Dust", Formatters.Time] = (c, s) => c.GetDateFromTime(c.Get(Twilight, TWILIGHT_ASTRONOMICAL).Set); e["Twilight.Nautical.Dawn", Formatters.Time] = (c, s) => c.GetDateFromTime(c.Get(Twilight, TWILIGHT_NAUTICAL).Rise); e["Twilight.Nautical.Dust", Formatters.Time] = (c, s) => c.GetDateFromTime(c.Get(Twilight, TWILIGHT_NAUTICAL).Set); e["Twilight.Civil.Dawn", Formatters.Time] = (c, s) => c.GetDateFromTime(c.Get(Twilight, TWILIGHT_CIVIL).Rise); e["Twilight.Civil.Dust", Formatters.Time] = (c, s) => c.GetDateFromTime(c.Get(Twilight, TWILIGHT_CIVIL).Set); e["Distance"] = (c, s) => c.Get(Ecliptical).Distance; e["HorizontalParallax"] = (c, x) => c.Get(Parallax); e["AngularDiameter"] = (c, x) => c.Get(Semidiameter) * 2 / 3600.0; e["CRN"] = (c, s) => c.Get(CarringtonNumber); }
public void ConfigureEphemeris(EphemerisConfig <Planet> e) { e["Constellation"] = (c, p) => Constellations.FindConstellation(c.Get(Equatorial, p.Number), c.JulianDay); e["Equatorial.Alpha"] = (c, p) => c.Get(Equatorial, p.Number).Alpha; e["Equatorial.Delta"] = (c, p) => c.Get(Equatorial, p.Number).Delta; e["Equatorial0.Alpha"] = (c, p) => c.Get(Equatorial0, p.Number).Alpha; e["Equatorial0.Delta"] = (c, p) => c.Get(Equatorial0, p.Number).Delta; e["Ecliptical.Lambda"] = (c, p) => c.Get(Ecliptical, p.Number).Lambda; e["Ecliptical.Beta"] = (c, p) => c.Get(Ecliptical, p.Number).Beta; e["Horizontal.Altitude"] = (c, p) => c.Get(Horizontal, p.Number).Altitude; e["Horizontal.Azimuth"] = (c, p) => c.Get(Horizontal, p.Number).Azimuth; e["Magnitude"] = (c, p) => c.Get(Magnitude, p.Number); e["Phase"] = (c, p) => c.Get(Phase, p.Number); e["PhaseAngle"] = (c, p) => c.Get(PhaseAngle, p.Number); e["DistanceFromEarth"] = (c, p) => c.Get(DistanceFromEarth, p.Number); e["DistanceFromSun"] = (c, p) => c.Get(DistanceFromSun, p.Number); e["HorizontalParallax"] = (c, p) => c.Get(Parallax, p.Number); e["AngularDiameter"] = (c, p) => c.Get(Semidiameter, p.Number) * 2 / 3600.0; e["Appearance.CM"] = (c, p) => c.Get(Appearance, p.Number).CM; e["Appearance.D"] = (c, p) => c.Get(Appearance, p.Number).D; e["Appearance.P"] = (c, p) => c.Get(Appearance, p.Number).P; e["SaturnRings.a", IsSaturn] = (c, p) => c.Get(GetSaturnRings, p.Number).a; e["SaturnRings.b", IsSaturn] = (c, p) => c.Get(GetSaturnRings, p.Number).b; e["GRSLongitude", IsJupiter] = (c, p) => c.Get(JupiterGreatRedSpotLongitude); e["RTS.Rise"] = (c, p) => c.GetDateFromTime(c.Get(RiseTransitSet, p.Number).Rise); e["RTS.Transit"] = (c, p) => c.GetDateFromTime(c.Get(RiseTransitSet, p.Number).Transit); e["RTS.Set"] = (c, p) => c.GetDateFromTime(c.Get(RiseTransitSet, p.Number).Set); e["RTS.Duration"] = (c, p) => c.Get(RiseTransitSet, p.Number).Duration; e["Visibility.Begin"] = (c, p) => c.GetDateFromTime(c.Get(Visibility, p.Number).Begin); e["Visibility.End"] = (c, p) => c.GetDateFromTime(c.Get(Visibility, p.Number).End); e["Visibility.Duration"] = (c, p) => c.Get(Visibility, p.Number).Duration; e["Visibility.Period"] = (c, p) => c.Get(Visibility, p.Number).Period; }
public void ConfigureEphemeris(EphemerisConfig <Asteroid> e) { e["Constellation"] = (c, a) => Constellations.FindConstellation(c.Get(EquatorialT, a), c.JulianDay); e["Horizontal.Altitude"] = (c, a) => c.Get(Horizontal, a).Altitude; e["Horizontal.Azimuth"] = (c, a) => c.Get(Horizontal, a).Azimuth; e["Equatorial.Alpha"] = (c, a) => c.Get(EquatorialT, a).Alpha; e["Equatorial.Delta"] = (c, a) => c.Get(EquatorialT, a).Delta; e["Equatorial0.Alpha"] = (c, a) => c.Get(EquatorialG, a).Alpha; e["Equatorial0.Delta"] = (c, a) => c.Get(EquatorialG, a).Delta; e["Ecliptical.Lambda"] = (c, a) => c.Get(Ecliptical, a).Lambda; e["Ecliptical.Beta"] = (c, a) => c.Get(Ecliptical, a).Beta; e["RTS.Rise"] = (c, a) => c.GetDateFromTime(c.Get(RiseTransitSet, a).Rise); e["RTS.Transit"] = (c, a) => c.GetDateFromTime(c.Get(RiseTransitSet, a).Transit); e["RTS.Set"] = (c, a) => c.GetDateFromTime(c.Get(RiseTransitSet, a).Set); e["RTS.Duration"] = (c, a) => c.Get(RiseTransitSet, a).Duration; e["RTS.RiseAzimuth"] = (c, a) => c.Get(RiseTransitSet, a).RiseAzimuth; e["RTS.TransitAltitude"] = (c, a) => c.Get(RiseTransitSet, a).TransitAltitude; e["RTS.SetAzimuth"] = (c, a) => c.Get(RiseTransitSet, a).SetAzimuth; e["Visibility.Begin"] = (c, a) => c.GetDateFromTime(c.Get(Visibility, a).Begin); e["Visibility.End"] = (c, a) => c.GetDateFromTime(c.Get(Visibility, a).End); e["Visibility.Duration"] = (c, a) => c.Get(Visibility, a).Duration; e["Visibility.Period"] = (c, a) => c.Get(Visibility, a).Period; e["DistanceFromEarth"] = (c, a) => c.Get(DistanceFromEarth, a); e["DistanceFromSun"] = (c, a) => c.Get(DistanceFromSun, a); e["Phase"] = (c, a) => c.Get(Phase, a); e["PhaseAngle"] = (c, a) => c.Get(PhaseAngle, a); e["Magnitude"] = (c, a) => c.Get(Magnitude, a); e["HorizontalParallax"] = (c, a) => c.Get(Parallax, a); e["AngularDiameter", a => a.PhysicalDiameter > 0] = (c, a) => c.Get(Semidiameter, a) * 2 / 3600.0; }
public void ConfigureEphemeris(EphemerisConfig <Nova> e) { e["Constellation"] = (c, m) => Constellations.FindConstellation(c.Get(Equatorial, m), c.JulianDay); e["Equatorial.Alpha"] = (c, m) => c.Get(Equatorial, m).Alpha; e["Equatorial.Delta"] = (c, m) => c.Get(Equatorial, m).Delta; e["Horizontal.Altitude"] = (c, m) => c.Get(Horizontal, m).Altitude; e["Horizontal.Azimuth"] = (c, m) => c.Get(Horizontal, m).Azimuth; e["Magnitude"] = (c, m) => c.Get(Magnitude, m); e["RTS.Rise"] = (c, m) => c.GetDateFromTime(c.Get(RiseTransitSet, m).Rise); e["RTS.Transit"] = (c, m) => c.GetDateFromTime(c.Get(RiseTransitSet, m).Transit); e["RTS.Set"] = (c, m) => c.GetDateFromTime(c.Get(RiseTransitSet, m).Set); e["RTS.Duration"] = (c, m) => c.Get(RiseTransitSet, m).Duration; }
public void GetInfo(CelestialObjectInfo <Star> info) { Star s = info.Body; SkyContext c = info.Context; StarDetails details = c.Get(ReadStarDetails, s.Number); info .SetTitle(string.Join(", ", s.Names)) .SetSubtitle(Text.Get("Star.Type")) .AddRow("Constellation", Constellations.FindConstellation(c.Get(Equatorial, s.Number), c.JulianDay)) .AddHeader(Text.Get("Star.Equatorial")) .AddRow("Equatorial.Alpha", c.Get(Equatorial, s.Number).Alpha) .AddRow("Equatorial.Delta", c.Get(Equatorial, s.Number).Delta) .AddHeader(Text.Get("Star.Equatorial0")) .AddRow("Equatorial0.Alpha", s.Equatorial0.Alpha) .AddRow("Equatorial0.Delta", s.Equatorial0.Delta) .AddHeader(Text.Get("Star.Horizontal")) .AddRow("Horizontal.Azimuth") .AddRow("Horizontal.Altitude") .AddHeader(Text.Get("Star.RTS")) .AddRow("RTS.Rise") .AddRow("RTS.Transit") .AddRow("RTS.Set") .AddRow("RTS.Duration") .AddHeader(Text.Get("Star.Visibility")) .AddRow("Visibility.Begin") .AddRow("Visibility.End") .AddRow("Visibility.Duration") .AddRow("Visibility.Period") .AddHeader(Text.Get("Star.Properties")) .AddRow("Magnitude", s.Mag) .AddRow("IsInfraredSource", details.IsInfraredSource) .AddRow("SpectralClass", details.SpectralClass); if (!string.IsNullOrEmpty(details.Pecularity)) { info.AddRow("Pecularity", details.Pecularity); } if (details.RadialVelocity != null) { info.AddRow("RadialVelocity", details.RadialVelocity + " km/s"); } }
public void ConfigureEphemeris(EphemerisConfig <GenericMoon> e) { e["Constellation"] = (c, nm) => Constellations.FindConstellation(c.Get(GenericMoon_Equatorial, nm.Id), c.JulianDay); e["Equatorial.Alpha"] = (c, nm) => c.Get(GenericMoon_Equatorial, nm.Id).Alpha; e["Equatorial.Delta"] = (c, nm) => c.Get(GenericMoon_Equatorial, nm.Id).Delta; e["Horizontal.Altitude"] = (c, nm) => c.Get(GenericMoon_Horizontal, nm.Id).Altitude; e["Horizontal.Azimuth"] = (c, nm) => c.Get(GenericMoon_Horizontal, nm.Id).Azimuth; e["AngularDiameter"] = (c, nm) => c.Get(GenericMoon_Semidiameter, nm.Id) * 2 / 3600.0; e["Magnitude"] = (c, nm) => c.Get(GenericMoon_Magnitude, nm.Id); e["RTS.Rise"] = (c, nm) => c.GetDateFromTime(c.Get(Pluto_RiseTransitSet).Rise); e["RTS.Transit"] = (c, nm) => c.GetDateFromTime(c.Get(Pluto_RiseTransitSet).Transit); e["RTS.Set"] = (c, nm) => c.GetDateFromTime(c.Get(Pluto_RiseTransitSet).Set); e["RTS.Duration"] = (c, nm) => c.Get(Pluto_RiseTransitSet).Duration; }
public void ConfigureEphemeris(EphemerisConfig <NeptuneMoon> e) { e["Constellation"] = (c, nm) => Constellations.FindConstellation(c.Get(NeptuneMoon_Equatorial, nm.Number), c.JulianDay); e["Equatorial.Alpha"] = (c, nm) => c.Get(NeptuneMoon_Equatorial, nm.Number).Alpha; e["Equatorial.Delta"] = (c, nm) => c.Get(NeptuneMoon_Equatorial, nm.Number).Delta; e["Horizontal.Altitude"] = (c, nm) => c.Get(NeptuneMoon_Horizontal, nm.Number).Altitude; e["Horizontal.Azimuth"] = (c, nm) => c.Get(NeptuneMoon_Horizontal, nm.Number).Azimuth; e["Rectangular.X"] = (c, nm) => c.Get(NeptuneMoon_Rectangular, nm.Number).X; e["Rectangular.Y"] = (c, nm) => c.Get(NeptuneMoon_Rectangular, nm.Number).Y; e["Rectangular.Z"] = (c, nm) => c.Get(NeptuneMoon_Rectangular, nm.Number).Z; e["RTS.Rise"] = (c, p) => c.GetDateFromTime(c.Get(Planet_RiseTransitSet, Planet.NEPTUNE).Rise); e["RTS.Transit"] = (c, p) => c.GetDateFromTime(c.Get(Planet_RiseTransitSet, Planet.NEPTUNE).Transit); e["RTS.Set"] = (c, p) => c.GetDateFromTime(c.Get(Planet_RiseTransitSet, Planet.NEPTUNE).Set); e["RTS.Duration"] = (c, p) => c.Get(Planet_RiseTransitSet, Planet.NEPTUNE).Duration; e["AngularDiameter"] = (c, nm) => c.Get(NeptuneMoon_Semidiameter, nm.Number) * 2 / 3600.0; e["Magnitude"] = (c, nm) => c.Get(NeptuneMoon_Magnitude, nm.Number); }
public void FindConstellation() { // precessional elements for converting from J1950 to B1875 epoch var p = Precession.ElementsFK5(Date.EPOCH_J1950, Date.EPOCH_B1875); foreach (var test in testData) { // Equatorial coordinates for B1875 epoch CrdsEquatorial eq = Precession.GetEquatorialCoordinates(new CrdsEquatorial(test.RA, test.Dec), p); // Constellation name string con = Constellations.FindConstellation(eq); // Check result Assert.AreEqual(test.ConstName, con); } }
public void GetInfo(CelestialObjectInfo <Meteor> info) { Meteor m = info.Body; SkyContext c = info.Context; string constellation = Constellations.FindConstellation(c.Get(Equatorial, m), c.JulianDay); int year = c.GetDate(c.JulianDay).Year; var offset = c.GeoLocation.UtcOffset; var jd0 = Date.DeltaT(c.JulianDay) / 86400.0 + Date.JulianDay0(year) - offset / 24; var begin = new Date(jd0 + m.Begin, offset); var max = new Date(jd0 + m.Max, offset); var end = new Date(jd0 + m.End, offset); SkyContext cMax = new SkyContext(jd0 + m.Max, c.GeoLocation, c.PreferFastCalculation); var phase = LunarPhaseAtMax(cMax, m); info .SetTitle(string.Join(", ", info.Body.Names)) .SetSubtitle(Text.Get("Meteor.Type")) .AddRow("Constellation", constellation) .AddHeader(Text.Get("Meteor.Equatorial")) .AddRow("Equatorial.Alpha") .AddRow("Equatorial.Delta") .AddHeader(Text.Get("Meteor.Horizontal")) .AddRow("Horizontal.Azimuth") .AddRow("Horizontal.Altitude") .AddHeader(Text.Get("Meteor.RTS")) .AddRow("RTS.Rise") .AddRow("RTS.Transit") .AddRow("RTS.Set") .AddRow("RTS.Duration") .AddHeader(Text.Get("Meteor.Activity")) .AddRow("Activity.Begin", begin, Formatters.Date) .AddRow("Activity.Max", max, Formatters.Date) .AddRow("Activity.End", end, Formatters.Date) .AddRow("Activity.LunarPhaseAtMax", phase, Formatters.Phase) .AddHeader(Text.Get("Meteor.Data")) .AddRow("Data.ZHR", m.ZHR) .AddRow("Data.ActivityClass", m.ActivityClass) .AddRow("Data.DriftRA", m.Drift.Alpha, Formatters.Angle) .AddRow("Data.DriftDec", m.Drift.Delta, Formatters.Angle); }
public void ConfigureEphemeris(EphemerisConfig <Planet> e) { e["Constellation"] = (c, p) => Constellations.FindConstellation(c.Get(Planet_Equatorial, p.Number), c.JulianDay); e["Equatorial.Alpha"] = (c, p) => c.Get(Planet_Equatorial, p.Number).Alpha; e["Equatorial.Delta"] = (c, p) => c.Get(Planet_Equatorial, p.Number).Delta; e["Equatorial0.Alpha"] = (c, p) => c.Get(Planet_Equatorial0, p.Number).Alpha; e["Equatorial0.Delta"] = (c, p) => c.Get(Planet_Equatorial0, p.Number).Delta; e["Ecliptical.Lambda"] = (c, p) => c.Get(Planet_Ecliptical, p.Number).Lambda; e["Ecliptical.Beta"] = (c, p) => c.Get(Planet_Ecliptical, p.Number).Beta; e["Horizontal.Altitude"] = (c, p) => c.Get(Planet_Horizontal, p.Number).Altitude; e["Horizontal.Azimuth"] = (c, p) => c.Get(Planet_Horizontal, p.Number).Azimuth; e["Magnitude"] = (c, p) => c.Get(Planet_Magnitude, p.Number); e["Phase"] = (c, p) => c.Get(Planet_Phase, p.Number); e["PhaseAngle"] = (c, p) => c.Get(Planet_PhaseAngle, p.Number); e["DistanceFromEarth"] = (c, p) => c.Get(Planet_DistanceFromEarth, p.Number); e["DistanceFromSun"] = (c, p) => c.Get(Planet_DistanceFromSun, p.Number); e["HorizontalParallax"] = (c, p) => c.Get(Planet_Parallax, p.Number); e["AngularDiameter"] = (c, p) => c.Get(Planet_Semidiameter, p.Number) * 2 / 3600.0; e["Appearance.CM"] = (c, p) => c.Get(Planet_Appearance, p.Number).CM; e["Appearance.D"] = (c, p) => c.Get(Planet_Appearance, p.Number).D; e["Appearance.P"] = (c, p) => c.Get(Planet_Appearance, p.Number).P; e["MartianCalendar.Year", IsMars] = (c, p) => c.Get(Mars_Calendar).Year; e["MartianCalendar.Month", IsMars] = (c, p) => c.Get(Mars_Calendar).Month; e["MartianCalendar.Sol", IsMars] = (c, p) => Math.Ceiling(c.Get(Mars_Calendar).Sol); e["MartianCalendar.Ls", IsMars, new Formatters.UnsignedDoubleFormatter(2, "\u00B0")] = (c, p) => c.Get(Mars_Calendar).Ls; e["MartianPolarCaps.North", IsMars, new Formatters.UnsignedDoubleFormatter(1, "\u00B0")] = (c, p) => c.Get(Mars_PolarCap, PolarCap.Northern); e["MartianPolarCaps.South", IsMars, new Formatters.UnsignedDoubleFormatter(1, "\u00B0")] = (c, p) => c.Get(Mars_PolarCap, PolarCap.Southern); e["GRSLongitude", IsJupiter, new Formatters.UnsignedDoubleFormatter(2, "\u00B0")] = (c, p) => c.Get(Jupiter_GreatRedSpotLongitude); e["SaturnRings.a", IsSaturn, new SaturnRingsFormatter()] = (c, p) => c.Get(Saturn_RingsAppearance, p.Number).a; e["SaturnRings.b", IsSaturn, new SaturnRingsFormatter()] = (c, p) => c.Get(Saturn_RingsAppearance, p.Number).b; e["RTS.Rise"] = (c, p) => c.GetDateFromTime(c.Get(Planet_RiseTransitSet, p.Number).Rise); e["RTS.Transit"] = (c, p) => c.GetDateFromTime(c.Get(Planet_RiseTransitSet, p.Number).Transit); e["RTS.Set"] = (c, p) => c.GetDateFromTime(c.Get(Planet_RiseTransitSet, p.Number).Set); e["RTS.Duration"] = (c, p) => c.Get(Planet_RiseTransitSet, p.Number).Duration; e["RTS.RiseAzimuth"] = (c, p) => c.Get(Planet_RiseTransitSet, p.Number).RiseAzimuth; e["RTS.TransitAltitude"] = (c, p) => c.Get(Planet_RiseTransitSet, p.Number).TransitAltitude; e["RTS.SetAzimuth"] = (c, p) => c.Get(Planet_RiseTransitSet, p.Number).SetAzimuth; e["Visibility.Begin"] = (c, p) => c.GetDateFromTime(c.Get(Planet_Visibility, p.Number).Begin); e["Visibility.End"] = (c, p) => c.GetDateFromTime(c.Get(Planet_Visibility, p.Number).End); e["Visibility.Duration"] = (c, p) => c.Get(Planet_Visibility, p.Number).Duration; e["Visibility.Period"] = (c, p) => c.Get(Planet_Visibility, p.Number).Period; }
public void ConfigureEphemeris(EphemerisConfig <Star> e) { e["Constellation"] = (c, s) => Constellations.FindConstellation(c.Get(Equatorial, s.Number), c.JulianDay); e["Equatorial.Alpha"] = (c, s) => c.Get(Equatorial, s.Number).Alpha; e["Equatorial.Delta"] = (c, s) => c.Get(Equatorial, s.Number).Delta; e["Horizontal.Azimuth"] = (c, s) => c.Get(Horizontal, s.Number).Azimuth; e["Horizontal.Altitude"] = (c, s) => c.Get(Horizontal, s.Number).Altitude; e["Magnitude"] = (c, s) => s.Mag; e["RTS.Rise"] = (c, s) => c.GetDateFromTime(c.Get(RiseTransitSet, s.Number).Rise); e["RTS.Transit"] = (c, s) => c.GetDateFromTime(c.Get(RiseTransitSet, s.Number).Transit); e["RTS.Set"] = (c, s) => c.GetDateFromTime(c.Get(RiseTransitSet, s.Number).Set); e["RTS.Duration"] = (c, s) => c.Get(RiseTransitSet, s.Number).Duration; e["RTS.RiseAzimuth"] = (c, s) => c.Get(RiseTransitSet, s.Number).RiseAzimuth; e["RTS.TransitAltitude"] = (c, s) => c.Get(RiseTransitSet, s.Number).TransitAltitude; e["RTS.SetAzimuth"] = (c, s) => c.Get(RiseTransitSet, s.Number).SetAzimuth; e["Visibility.Begin"] = (c, s) => c.GetDateFromTime(c.Get(VisibilityDetails, s.Number).Begin); e["Visibility.End"] = (c, s) => c.GetDateFromTime(c.Get(VisibilityDetails, s.Number).End); e["Visibility.Duration"] = (c, s) => c.Get(VisibilityDetails, s.Number).Duration; e["Visibility.Period"] = (c, s) => c.Get(VisibilityDetails, s.Number).Period; }
public void GetInfo(CelestialObjectInfo <Nova> info) { Nova n = info.Body; SkyContext c = info.Context; string constellation = Constellations.FindConstellation(c.Get(Equatorial, n), c.JulianDay); int year = c.GetDate(c.JulianDay).Year; var offset = c.GeoLocation.UtcOffset; var jd0 = Date.DeltaT(c.JulianDay) / 86400.0 + Date.JulianDay0(year) - offset / 24; info .SetTitle(string.Join(", ", info.Body.Names)) .SetSubtitle(Text.Get("Nova.Type")) .AddRow("Constellation", constellation) .AddHeader(Text.Get("Nova.Equatorial")) .AddRow("Equatorial.Alpha") .AddRow("Equatorial.Delta") .AddHeader(Text.Get("Nova.Equatorial0")) .AddRow("Equatorial0.Alpha", n.Equatorial0.Alpha, Formatters.RA) .AddRow("Equatorial0.Delta", n.Equatorial0.Delta, Formatters.Dec) .AddHeader(Text.Get("Nova.Horizontal")) .AddRow("Horizontal.Azimuth") .AddRow("Horizontal.Altitude") .AddHeader(Text.Get("Nova.Properties")) .AddRow("Magnitude") .AddRow("PeakDate", new Date(n.JulianDayPeak), Formatters.Date) .AddRow("MaxMagnitude", n.MaxMagnitude, Formatters.Magnitude) .AddRow("MinMagnitude", n.MinMagnitude, Formatters.Magnitude) .AddRow("Type", n.NovaType + NovaTypeDescription(n)) .AddHeader(Text.Get("Nova.RTS")) .AddRow("RTS.Rise") .AddRow("RTS.Transit") .AddRow("RTS.Set") .AddRow("RTS.Duration"); }
public void ConfigureEphemeris(EphemerisConfig <JupiterMoon> e) { e["Constellation"] = (c, jm) => Constellations.FindConstellation(c.Get(JupiterMoon_Equatorial, jm.Number), c.JulianDay); e["Equatorial.Alpha"] = (c, jm) => c.Get(JupiterMoon_Equatorial, jm.Number).Alpha; e["Equatorial.Delta"] = (c, jm) => c.Get(JupiterMoon_Equatorial, jm.Number).Delta; e["Horizontal.Altitude"] = (c, jm) => c.Get(JupiterMoon_Horizontal, jm.Number).Altitude; e["Horizontal.Azimuth"] = (c, jm) => c.Get(JupiterMoon_Horizontal, jm.Number).Azimuth; e["Rectangular.X"] = (c, jm) => c.Get(JupiterMoon_Rectangular, jm.Number).X; e["Rectangular.Y"] = (c, jm) => c.Get(JupiterMoon_Rectangular, jm.Number).Y; e["Rectangular.Z"] = (c, jm) => c.Get(JupiterMoon_Rectangular, jm.Number).Z; e["Magnitude"] = (c, jm) => c.Get(JupiterMoon_Magnitude, jm.Number); e["Phase"] = (c, jm) => c.Get(Planet_Phase, Planet.JUPITER); e["PhaseAngle"] = (c, jm) => c.Get(Planet_PhaseAngle, Planet.JUPITER); e["AngularDiameter"] = (c, jm) => c.Get(JupiterMoon_Semidiameter, jm.Number) * 2 / 3600.0; e["Appearance.CM"] = (c, jm) => c.Get(JupiterMoon_CentralMeridian, jm.Number); e["RTS.Rise"] = (c, p) => c.GetDateFromTime(c.Get(Planet_RiseTransitSet, Planet.JUPITER).Rise); e["RTS.Transit"] = (c, p) => c.GetDateFromTime(c.Get(Planet_RiseTransitSet, Planet.JUPITER).Transit); e["RTS.Set"] = (c, p) => c.GetDateFromTime(c.Get(Planet_RiseTransitSet, Planet.JUPITER).Set); e["RTS.Duration"] = (c, p) => c.Get(Planet_RiseTransitSet, Planet.JUPITER).Duration; }
public void ConfigureEphemeris(EphemerisConfig <Moon> e) { e["Constellation"] = (c, m) => Constellations.FindConstellation(c.Get(Equatorial), c.JulianDay); e["RTS.Rise"] = (c, m) => c.GetDateFromTime(c.Get(RiseTransitSet).Rise); e["RTS.RiseAzimuth"] = (c, m) => c.Get(RiseTransitSet).RiseAzimuth; e["RTS.Transit"] = (c, m) => c.GetDateFromTime(c.Get(RiseTransitSet).Transit); e["RTS.TransitAltitude"] = (c, m) => c.Get(RiseTransitSet).TransitAltitude; e["RTS.Set"] = (c, m) => c.GetDateFromTime(c.Get(RiseTransitSet).Set); e["RTS.SetAzimuth"] = (c, m) => c.Get(RiseTransitSet).SetAzimuth; e["RTS.Duration"] = (c, m) => c.Get(RiseTransitSet).Duration; e["Equatorial.Alpha"] = (c, m) => c.Get(Equatorial).Alpha; e["Equatorial.Delta"] = (c, m) => c.Get(Equatorial).Delta; e["Equatorial0.Alpha"] = (c, m) => c.Get(Equatorial0).Alpha; e["Equatorial0.Delta"] = (c, m) => c.Get(Equatorial0).Delta; e["Horizontal.Altitude"] = (c, m) => c.Get(Horizontal).Altitude; e["Horizontal.Azimuth"] = (c, m) => c.Get(Horizontal).Azimuth; e["Ecliptical.Lambda"] = (c, m) => c.Get(Ecliptical0).Lambda; e["Ecliptical.Beta"] = (c, m) => c.Get(Ecliptical0).Beta; e["Phase"] = (c, m) => c.Get(Phase); e["PhaseAngle"] = (c, m) => c.Get(PhaseAngle); e["Age"] = (c, m) => c.Get(Age); e["Magnitude"] = (c, m) => c.Get(Magnitude); e["Distance", new LunarDistanceFormatter()] = (c, m) => (int)c.Get(Ecliptical0).Distance; e["HorizontalParallax"] = (c, m) => c.Get(Parallax); e["AngularDiameter"] = (c, m) => c.Get(Semidiameter) * 2 / 3600.0; e["Libration.Latitude", new LibrationLatitudeFormatter()] = (c, m) => c.Get(LibrationElements).b; e["Libration.Longitude", new LibrationLongitudeFormatter()] = (c, m) => c.Get(LibrationElements).l; e["Phases.NewMoon", Formatters.DateTime] = (c, m) => c.Get(NearestPhase, MoonPhase.NewMoon); e["Phases.FirstQuarter", Formatters.DateTime] = (c, m) => c.Get(NearestPhase, MoonPhase.FirstQuarter); e["Phases.FullMoon", Formatters.DateTime] = (c, m) => c.Get(NearestPhase, MoonPhase.FullMoon); e["Phases.LastQuarter", Formatters.DateTime] = (c, m) => c.Get(NearestPhase, MoonPhase.LastQuarter); e["Apsis.Apogee", Formatters.DateTime] = (c, m) => c.Get(NearestApsis, MoonApsis.Apogee); e["Apsis.Perigee", Formatters.DateTime] = (c, m) => c.Get(NearestApsis, MoonApsis.Perigee); e["MaxDeclinations.North", Formatters.DateTime] = (c, m) => c.Get(NearestMaxDeclination, MoonDeclination.North); e["MaxDeclinations.South", Formatters.DateTime] = (c, m) => c.Get(NearestMaxDeclination, MoonDeclination.South); }
public static void GenerateConstellation(CharacterData character) { character.PatronConstellation = Constellations.FindConstellation(character.Birthday.GetMonth()); Constellations.GainBoon(character, character.PatronConstellation); }
public void GetInfo(CelestialObjectInfo <DeepSky> info) { DeepSky ds = info.Body; SkyContext c = info.Context; DeepSkyInfo details = c.Get(ReadDeepSkyDetails, ds); string constellation = Constellations.FindConstellation(c.Get(Equatorial, ds), c.JulianDay); info.SetSubtitle(ds.Status.ToString()) .SetTitle(string.Join(" / ", ds.Names)) .AddRow("Constellation", constellation) .AddHeader("Equatorial coordinates (current epoch)") .AddRow("Equatorial.Alpha", ds.Equatorial.Alpha) .AddRow("Equatorial.Delta", ds.Equatorial.Delta) .AddHeader("Equatorial coordinates (J2000.0 epoch)") .AddRow("Equatorial0.Alpha", ds.Equatorial0.Alpha) .AddRow("Equatorial0.Delta", ds.Equatorial0.Delta) .AddHeader("Horizontal coordinates") .AddRow("Horizontal.Azimuth", ds.Horizontal.Azimuth) .AddRow("Horizontal.Altitude", ds.Horizontal.Altitude) .AddHeader("Visibility") .AddRow("RTS.Rise") .AddRow("RTS.Transit") .AddRow("RTS.Set") .AddRow("RTS.Duration") .AddHeader("Properties"); info.AddRow("DeepSky.Type", details.ObjectType); if (ds.Mag != null) { info.AddRow("VisualMagnitude", ds.Mag, Formatters.Magnitude); } if (details.PhotoMagnitude != null) { info.AddRow("PhotoMagnitude", details.PhotoMagnitude, Formatters.Magnitude); } if (details.SurfaceBrightness != null) { info.AddRow("Brightness", details.SurfaceBrightness, Formatters.SurfaceBrightness); } if (ds.SizeA > 0) { string size = $"{Formatters.AngularDiameter.Format(ds.SizeA / 60)}"; if (ds.SizeB > 0) { size += $" x {Formatters.AngularDiameter.Format(ds.SizeB / 60)}"; } info.AddRow("AngularDiameter", size, Formatters.Simple); } if (ds.PA > 0) { info.AddRow("Position angle", ds.PA, Formatters.RotationAxis); } if (details.Identifiers.Any() || details.PGC != null) { info.AddHeader("Designations"); if (details.Identifiers.Any()) { info.AddRow("Other catalogs identifiers", string.Join(", ", details.Identifiers)); } if (details.PGC != null) { info.AddRow("PGC catalog number", string.Join(", ", details.PGC)); } } if (!string.IsNullOrEmpty(details.Remarks)) { info.AddRow("Remarks", details.Remarks); } }
public void GetInfo(CelestialObjectInfo <DeepSky> info) { DeepSky ds = info.Body; SkyContext c = info.Context; DeepSkyInfo details = c.Get(ReadDeepSkyDetails, ds); string constellation = Constellations.FindConstellation(c.Get(Equatorial, ds), c.JulianDay); info .SetSubtitle(Text.Get("DeepSky.Status." + ds.Status.ToString())) .SetTitle(string.Join(" / ", ds.Names)) .AddRow("Constellation", constellation) .AddHeader(Text.Get("DeepSky.Equatorial")) .AddRow("Equatorial.Alpha", ds.Equatorial.Alpha) .AddRow("Equatorial.Delta", ds.Equatorial.Delta) .AddHeader(Text.Get("DeepSky.Equatorial0")) .AddRow("Equatorial0.Alpha", ds.Equatorial0.Alpha) .AddRow("Equatorial0.Delta", ds.Equatorial0.Delta) .AddHeader(Text.Get("DeepSky.Horizontal")) .AddRow("Horizontal.Azimuth", ds.Horizontal.Azimuth) .AddRow("Horizontal.Altitude", ds.Horizontal.Altitude) .AddHeader(Text.Get("DeepSky.RTS")) .AddRow("RTS.Rise") .AddRow("RTS.Transit") .AddRow("RTS.Set") .AddRow("RTS.Duration") .AddHeader(Text.Get("DeepSky.Properties")); info.AddRow("Type", details.ObjectType); if (ds.Mag != null) { info.AddRow("VisualMagnitude", ds.Mag, Formatters.Magnitude); } if (details.PhotoMagnitude != null) { info.AddRow("PhotoMagnitude", details.PhotoMagnitude, Formatters.Magnitude); } if (details.SurfaceBrightness != null) { info.AddRow("SurfaceBrightness", details.SurfaceBrightness, new Formatters.SignedDoubleFormatter(2, " mag/sq.arcsec")); } if (ds.SizeA > 0) { string size = $"{Formatters.Angle.Format(ds.SizeA / 60)}"; if (ds.SizeB > 0) { size += $" x {Formatters.Angle.Format(ds.SizeB / 60)}"; } info.AddRow("AngularDiameter", size, Formatters.Simple); } if (ds.PA > 0) { info.AddRow("PositionAngle", ds.PA, new Formatters.UnsignedDoubleFormatter(2, "\u00B0")); } if (details.Identifiers.Any() || details.PGC != null) { info.AddHeader(Text.Get("DeepSky.Designations")); if (details.Identifiers.Any()) { info.AddRow("OtherCatalogsIdentifiers", string.Join(", ", details.Identifiers)); } if (details.PGC != null) { info.AddRow("PGCCatalogNumber", string.Join(", ", details.PGC)); } } if (!string.IsNullOrEmpty(details.Remarks)) { info.AddRow("Remarks", details.Remarks); } }