/// <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)); }
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))); }
/// <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))); }
/// <summary> /// Get the argument of Perihelion 'ω' = 'ϖ' - 'Ω' /// </summary> /// <returns></returns> public DegreeModel GetArgumentOfPerihelion() { return(new DegreeModel(DegreeHelper.Modulo360Absolute(PerihelionLongitude.Degrees - AscendingNodeLongitude.Degrees))); }