Exemplo n.º 1
0
 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;
 }
Exemplo n.º 2
0
 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;
 }
Exemplo n.º 3
0
 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;
 }
Exemplo n.º 4
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);
 }
Exemplo n.º 5
0
 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;
 }
Exemplo n.º 6
0
 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;
 }
Exemplo n.º 7
0
        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();
        }
Exemplo n.º 8
0
 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;
 }
Exemplo n.º 9
0
 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;
 }
Exemplo n.º 10
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;
 }
Exemplo n.º 11
0
 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;
 }
Exemplo n.º 12
0
 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);
 }
Exemplo n.º 13
0
 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;
 }
Exemplo n.º 14
0
 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;
 }
Exemplo n.º 15
0
        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;
        }
Exemplo n.º 16
0
 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);
 }