예제 #1
0
        /// <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);
        }
예제 #2
0
파일: Orbit.cs 프로젝트: yxw027/GNSSer
      /// <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;
      }