Exemplo n.º 1
0
        /// <summary>
        /// 移除对于双频无电离层组合多余的观测值
        /// </summary>
        public void IsRemoveRedundantObsForIonoFree()
        {
            Dictionary <SatelliteType, List <string> > tobeRemoeved = new Dictionary <SatelliteType, List <string> >();

            foreach (var item in ObsCodes)
            {
                var        SatelliteType = item.Key;
                List <int> freqA         = ObsCodeConvert.GetRinexFrequenceNumber(SatelliteType, FrequenceType.A);
                List <int> freqB         = ObsCodeConvert.GetRinexFrequenceNumber(SatelliteType, FrequenceType.B);


                List <int> total = new List <int>(freqA);
                total.AddRange(freqB);

                var tobeRemoeved2 = new List <string>();
                foreach (var kv2 in item.Value)
                {
                    ObservationCode code = ObservationCode.Parse(kv2);
                    if (!total.Contains(code.BandOrFrequency) ||
                        code.ObservationType == ObservationType.D ||
                        code.ObservationType == ObservationType.S)
                    {
                        tobeRemoeved2.Add(kv2);
                    }
                }
                tobeRemoeved[SatelliteType] = tobeRemoeved2;
            }

            foreach (var toremove in tobeRemoeved)
            {
                var SatelliteType = toremove.Key;
                var old           = ObsCodes[SatelliteType];
                old.RemoveAll(item => toremove.Value.Contains(item));// = Geo.Utils.ListUtil.GetExcept(old, item.Value);
            }
        }
Exemplo n.º 2
0
 /// <summary>
 /// 获取系统第3频率
 /// </summary>
 /// <param name="type"></param>
 /// <param name="satNumber"></param>
 /// <param name="time">时间,历元,GLONASS需要</param>
 /// <returns></returns>
 public static Frequence GetFrequenceC(SatelliteType type, int satNumber = -1, Time time = default(Time))
 {
     return(ObsCodeConvert.GetFrequenceBand(GnssSystem.GetGnssType(type), FrequenceType.C, satNumber, time));
 }
Exemplo n.º 3
0
 /// <summary>
 /// 获取频率
 /// </summary>
 /// <param name="type"></param>
 /// <param name="rinexNum"></param>
 /// <param name="satNumber"></param>
 /// <param name="time">时间,历元,GLONASS或频分多址需要</param>
 /// <returns></returns>
 public static Frequence GetFrequence(GnssType type, int rinexNum, int satNumber = -1, Time time = default(Time))
 {
     return(ObsCodeConvert.GetFrequenceBand(type, rinexNum, satNumber, time));
 }
Exemplo n.º 4
0
 /// <summary>
 /// 获取第3频率,推荐方法
 /// </summary>
 /// <param name="prn">卫星编号</param>
 /// <param name="time">时间,GLONASS需要</param>
 /// <returns></returns>
 public static Frequence GetFrequenceC(SatelliteNumber prn, Time time = default(Time))
 {
     return(ObsCodeConvert.GetFrequenceBand(GnssSystem.GetGnssType(prn.SatelliteType), FrequenceType.C, prn.PRN, time));
 }