/// <summary> /// 探测 /// </summary> /// <returns></returns> protected override bool Detect() { bool isBaseCS = base.Detect(); double lam = 0.01; double lambda1 = EpochSat.FrequenceA.Frequence.WaveLength; double lambda2 = EpochSat.FrequenceB.Frequence.WaveLength; double lambdaLimit = Math.Sqrt(2 * (lambda1 * lambda1 + lambda2 * lambda2)) * lam; //if (epochSat.Prn.PRN == 29) //{ int ee = 0; } bool isCS = GetDetection(EpochSat.RecevingTime, EpochSat.Prn, EpochSat.Combinations.TriFreqBasedOnGF2Combination, lambdaLimit); if (IsSaveResultToTable && isCS) { var table = GetOutTable(); if (!isBaseCS) { table.NewRow(); table.AddItem("Epoch", EpochSat.ReceiverTime); } table.AddItem(DetectorType, true); } if (!isBaseCS && isCS) { CycleSlipStorage.Regist(EpochSat.Prn.ToString(), EpochSat.Time.Value); } return(isCS); }
/// <summary> /// 探测 /// </summary> /// <param name="epochSat"></param> /// <returns></returns> public bool Detect(EpochSatellite epochSat) { bool isRecordedCycleSlipe = epochSat.EpochInfo.EpochState == EpochState.CycleSlip || epochSat.FrequenceA.IsPhaseLossedLock || epochSat.FrequenceB.IsPhaseLossedLock; var alreadyHasSlip = IsUsingRecordedCsInfo && isRecordedCycleSlipe; //double f1 = epochSat.FrequenceA.Frequence.Value * 1E6; //double f2 = epochSat.FrequenceB.Frequence.Value * 1E6; //double lam2 = GnssConst.LIGHT_SPEED / (f1 - f2); double lam = epochSat.Combinations.MwRangeCombination.Frequence.WaveLength; MaxNumLambdas = 1; //去掉之,会造成误探 lambdaLimit = MaxNumLambdas * lam; bool isCS = GetDetection(epochSat.RecevingTime, epochSat.Prn, epochSat.Combinations.MwRangeCombination.Value, alreadyHasSlip); if (isCS) { CycleSlipStorage.Regist(epochSat.Prn.ToString(), epochSat.Time.Value); } if (epochSat.Time.Value.Hour == 2 && epochSat.Time.Value.Minute == 27) { int a = 0; } return(isCS); }
/// <summary> /// 探测 /// </summary> /// <returns></returns> protected override bool Detect() { bool isBaseCS = base.Detect(); bool isCS = Detect(EpochSat.Prn, EpochSat[SatObsDataType].Value); if (IsSaveResultToTable && isCS) { var table = GetOutTable(); if (!isBaseCS) { table.NewRow(); table.AddItem("Epoch", EpochSat.ReceiverTime); } table.AddItem(DetectorType, true); } if (!isBaseCS && isCS) { CycleSlipStorage.Regist(EpochSat.Prn.ToString(), EpochSat.Time.Value); } return(isCS); }
/// <summary> /// 是否具有周跳。 /// </summary> /// <param name="epochSat">被检核者</param> public bool Detect(EpochSatellite epochSat) { bool result = false; foreach (var item in CycleSlipDetectors) { if (item.Detect(epochSat))//即使已经得出结果了,也要让所有的周跳探测器都走一遍,才可以起到探测的作用。 { result = true; } else { int a = 0; } } if (result) { CycleSlipStorage.Regist(epochSat.Prn.ToString(), epochSat.Time.Value); } this.CurrentResult = result; return(result); }
public bool Detect(EpochSatellite epochSat) { bool isRecordedCycleSlipe = epochSat.EpochInfo.EpochState == EpochState.CycleSlip || epochSat.FrequenceA.IsPhaseLossedLock || epochSat.FrequenceB.IsPhaseLossedLock; var alreadyHasSlip = UseRecordedSlipInfo && isRecordedCycleSlipe; double lam = epochSat.Combinations.MwRangeCombination.Frequence.WaveLength; lambdaLimit = MaxNumLambdas * lam; if (epochSat.Prn.PRN == 29) { int ee = 0; } bool isCS = GetDetection(epochSat.RecevingTime, epochSat.Prn, epochSat.Combinations.MwPhaseCombinationValue, alreadyHasSlip); if (isCS) { CycleSlipStorage.Regist(epochSat.Prn.ToString(), epochSat.Time.Value); } return(isCS); }
/// <summary> /// 探测 /// </summary> /// <returns></returns> protected override bool Detect() { bool isBaseCS = base.Detect(); this.SetParam(EpochSat.EpochInfo.ObsInfo.Interval); bool isCS = GetDetection(EpochSat.RecevingTime, EpochSat.Prn, EpochSat[SatObsDataType].Value, isBaseCS); if (IsSaveResultToTable && isCS) { var table = GetOutTable(); if (!isBaseCS) { table.NewRow(); table.AddItem("Epoch", EpochSat.ReceiverTime); } table.AddItem(this.DetectorType, true); } if (!isBaseCS && isCS) { CycleSlipStorage.Regist(EpochSat.Prn.ToString(), EpochSat.Time.Value); } return(isCS); }