/// <summary>
 /// Θ = MEarth + ΠEarth + 15° (t+tz) (mod360°)
 /// </summary>
 /// <param name="meanAnomaly"></param>
 /// <param name="minuteConstant">degree ratation per minute</param>
 /// <param name="keplerianOrbitValue"></param>
 /// <param name="utcMinutes"></param>
 /// <returns></returns>
 private static double GetSiderealTime(
     double meanAnomaly,
     double minuteConstant,
     KeplerianOrbitValueModel keplerianOrbitValue,
     int utcMinutes)
 {
     return(DegreeHelper.Modulo360Absolute(meanAnomaly + keplerianOrbitValue.Pi + (minuteConstant * utcMinutes)));
 }
 public static double GetTransitDegrees(
     double celestialObjectRightAscension,
     double earthMeanAnomaly,
     double longitudeDegrees)
 {
     return(DegreeHelper.Modulo360Absolute(celestialObjectRightAscension +
                                           longitudeDegrees -
                                           earthMeanAnomaly -
                                           EarthKeplerianOrbitValue.Pi));
 }
Пример #3
0
        public void Modulo360AbsoluteTest(double value, double expected)
        {
            var actual = DegreeHelper.Modulo360Absolute(value);

            Assert.True(expected.EqualsWithinTolerance(actual, 6), $"expected {expected} and actual {actual} are not equal.");
        }
 public static DegreeModel Modulo360Absolute(this DegreeModel model)
 {
     return(new DegreeModel(DegreeHelper.Modulo360Absolute(model.Degrees)));
 }
Пример #5
0
 /// <summary>
 /// Get the argument of Perihelion 'M' = 'L' - 'ϖ' or 'L' - 'ω'' - 'Ω'
 /// </summary>
 /// <returns></returns>
 public DegreeModel GetMeanAnomaly360()
 {
     return(new DegreeModel(DegreeHelper.Modulo360Absolute(MeanLongitude.Degrees - PerihelionLongitude.Degrees)));
 }
Пример #6
0
 /// <summary>
 /// Get the argument of Perihelion 'ω' = 'ϖ' - 'Ω'
 /// </summary>
 /// <returns></returns>
 public DegreeModel GetArgumentOfPerihelion()
 {
     return(new DegreeModel(DegreeHelper.Modulo360Absolute(PerihelionLongitude.Degrees - AscendingNodeLongitude.Degrees)));
 }