예제 #1
0
        /// <summary>
        /// 获取指定
        /// </summary>
        /// <param name="indexes"></param>
        /// <returns></returns>
        public EphemerisStorage GetSubEphemerises(List <double> indexes)
        {
            EphemerisStorage entities = new EphemerisStorage();

            foreach (var item in indexes)
            {
                entities.Add(item, this[item]);
            }
            return(entities);
        }
예제 #2
0
        /// <summary>
        /// 获取
        /// </summary>
        /// <param name="time"></param>
        /// <param name="order"></param>
        /// <returns></returns>
        public EphemerisStorage GetGetNearst(Time time, int order)
        {
            var storege = new EphemerisStorage();

            double minAbs   = double.MaxValue;
            var    nearTime = this.First.Time;

            foreach (var item in this)
            {
                var differ    = item.Time - time;
                var absdiffer = Math.Abs(differ);
                if (minAbs > absdiffer)
                {
                    nearTime = item.Time;
                    minAbs   = absdiffer;
                }
                storege.Add(differ, item);
            }

            var indexes = Geo.Utils.DoubleUtil.GetNearstValues(storege.Keys, minAbs, order);

            return(storege.GetSubEphemerises(indexes));
        }
예제 #3
0
 public EphemerisInterpolator1(Data.Rinex.EphemerisStorage entities)
 {
     // TODO: Complete member initialization
     this.entities = entities;
     Init();
 }