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 <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 <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 <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 <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 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 Initialize(SkyContext context, ICollection <BaseCalc> calculators, ICollection <BaseAstroEventsProvider> eventProviders) { Context = context; Calculators.AddRange(calculators); EventProviders.AddRange(eventProviders); foreach (var calc in Calculators) { calc.Initialize(); Type calcType = calc.GetType(); IEnumerable <Type> genericCalcTypes = calcType.GetInterfaces().Where(i => i.IsGenericType && i.GetGenericTypeDefinition() == typeof(ICelestialObjectCalc <>)); foreach (Type genericCalcType in genericCalcTypes) { Type bodyType = genericCalcType.GetGenericArguments().First(); Type concreteCalc = typeof(ICelestialObjectCalc <>).MakeGenericType(bodyType); // Ephemeris configs EphemerisConfig config = Activator.CreateInstance(typeof(EphemerisConfig <>).MakeGenericType(bodyType)) as EphemerisConfig; concreteCalc.GetMethod(nameof(ICelestialObjectCalc <CelestialObject> .ConfigureEphemeris)).Invoke(calc, new object[] { config }); if (!config.IsEmpty) { EphemConfigs[bodyType] = config; } // Celestial objects providers Type genericGetCelestialObjectsFuncType = typeof(GetCelestialObjectsDelegate <>).MakeGenericType(bodyType); CelestialObjectsProviders[bodyType] = concreteCalc.GetMethod(nameof(ICelestialObjectCalc <CelestialObject> .GetCelestialObjects)).CreateDelegate(genericGetCelestialObjectsFuncType, calc); // Info provider Type genericGetInfoFuncType = typeof(GetInfoDelegate <>).MakeGenericType(bodyType); InfoProviders[bodyType] = concreteCalc.GetMethod(nameof(ICelestialObjectCalc <CelestialObject> .GetInfo)).CreateDelegate(genericGetInfoFuncType, calc); // Search provider Type[] searchParameters = typeof(SearchDelegate).GetMethod("Invoke").GetParameters().Select(p => p.ParameterType).ToArray(); var searchFunc = concreteCalc.GetMethod(nameof(ICelestialObjectCalc <CelestialObject> .Search), searchParameters).CreateDelegate(typeof(SearchDelegate), calc) as SearchDelegate; if (!SearchProviders.Contains(searchFunc)) { SearchProviders.Add(searchFunc); } } } foreach (var eventProvider in EventProviders) { // Astro events provider AstroEventsConfig eventsConfig = new AstroEventsConfig(); eventProvider.ConfigureAstroEvents(eventsConfig); if (eventsConfig.Any()) { EventConfigs.Add(eventsConfig); } } LoadConstNames(); }
public void ConfigureEphemeris(EphemerisConfig <Tycho2Star> e) { e["Horizontal.Azimuth"] = (c, s) => c.Get(Horizontal, s).Azimuth; e["Horizontal.Altitude"] = (c, s) => c.Get(Horizontal, s).Altitude; e["RTS.Rise"] = (c, s) => c.GetDateFromTime(c.Get(RiseTransitSet, s).Rise); e["RTS.Transit"] = (c, s) => c.GetDateFromTime(c.Get(RiseTransitSet, s).Transit); e["RTS.Set"] = (c, s) => c.GetDateFromTime(c.Get(RiseTransitSet, s).Set); e["RTS.Duration"] = (c, s) => c.Get(RiseTransitSet, s).Duration; }
public void ConfigureEphemeris(EphemerisConfig <Meteor> e) { 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["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 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 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 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 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); }