/// <summary> /// Calculate satellite ECI position/velocity for a given time. /// </summary> /// <param name="mpe">Target time, in minutes past the TLE epoch.</param> /// <returns>Kilometer-based position/velocity ECI coordinates.</returns> public EciTime PositionEci(double mpe) { EciTime eci = NoradModel.GetPosition(mpe); // Convert ECI vector units from AU to kilometers double radiusAe = Globals.Xkmper / Globals.Ae; eci.ScalePosVector(radiusAe); // km eci.ScaleVelVector(radiusAe * (Globals.MinPerDay / 86400)); // km/sec return(eci); }
/// <summary> /// Calculate satellite ECI position/velocity for a given time. /// </summary> /// <param name="mpe">Target time, in minutes past the TLE epoch.</param> /// <returns>Kilometer-based position/velocity ECI coordinates.</returns> public TimedMotionState PositionEci(double mpe) { TimedMotionState eci = NoradModel.GetPosition(mpe); // Convert ECI vector units from AU to kilometers double radiusAe = OrbitConsts.RadiusOfEquator / OrbitConsts.Ae; eci.ScalePosVector(radiusAe); // km eci.ScaleVelVector(radiusAe * (OrbitConsts.MinPerDay / 86400.0)); // km/sec return eci; }