/// <summary>
        /// 默认的状态转移模型生成
        /// </summary>
        /// <param name="key">参数名称</param>
        /// <returns></returns>
        public override BaseStateTransferModel Create(string key)
        {
            if (
                key.Contains(ParamNames.Dx) ||
                key.Contains(ParamNames.Dy) ||
                key.Contains(ParamNames.Dz)
                )
            {
                if (Option.PositionType == PositionType.静态定位)
                {
                    return(new StaticTransferModel(Option.StdDevOfStaticTransferModel));
                }
                else//动态定位
                {
                    return(new WhiteNoiseModel(Option.StdDevOfWhiteNoiseOfDynamicPosition));// 50, lly edit in 2018.07.14
                    //return new RandomWalkModel(Option.StdDevOfRandomWalkModel);
                }
            }
            else if (
                key.Contains(ParamNames.Dvx) ||
                key.Contains(ParamNames.Dvy) ||
                key.Contains(ParamNames.Dvz)
                )
            {
                if (Option.PositionType == PositionType.静态定位)
                {
                    return(new StaticTransferModel(Option.StdDevOfStaticTransferModel));
                }
                else//动态定位
                {
                    return(new WhiteNoiseModel(Option.StdDevOfWhiteNoiseOfDynamicPosition));//50, lly edit in 2018.07.14
                    //return new RandomWalkModel(Option.StdDevOfRandomWalkModel);
                }
            }
            else if (
                key.Contains(ParamNames.RcvClkDriftDistance)
                )
            {
                return(new RandomWalkModel(Option.StdDevOfSysTimeRandomWalkModel));
            }
            else if (key.Contains(ParamNames.SatClkErrDistance))
            {
                return(new WhiteNoiseModel(Option.StdDevOfSatClockWhiteNoiseModel));
            }
            else if (
                key.Contains(ParamNames.RcvClkErrDistance) ||
                key.Contains(ParamNames.cDt)
                )
            {
                return(new WhiteNoiseModel(Option.StdDevOfRevClockWhiteNoiseModel));
            }
            else if (
                key.Contains(ParamNames.WetTropZpd) ||
                key.Contains(ParamNames.Trop)
                )
            {
                return(new RandomWalkModel(Option.StdDevOfTropoRandomWalkModel));
            }
            else if (
                key.Contains(ParamNames.Iono)
                )
            {
                return(new RandomWalkModel(Option.StdDevOfIonoRandomWalkModel));
            }
            else if (key.Contains(ParamNames.SysTimeDistDifferOf))
            {
                return(new RandomWalkModel(Option.StdDevOfSysTimeRandomWalkModel));
            }
            else if (
                key.Contains(ParamNames.DifferAmbiguity) ||
                key.Contains(ParamNames.DoubleDifferAmbiguity)    //双星差分模糊度,具有基准星
                )
            {
                var prn = SatelliteNumber.TryParseFirst(key);//约定:第一个是当前卫星,第二个是基准星
                return(new DueSatPhaseAmbiguityMode(prn, Option.StdDevOfPhaseModel, Option.StdDevOfCycledPhaseModel));
            }
            else if (
                key.Contains(ParamNames.PhaseLengthSuffix) ||
                key.Contains(ParamNames.PhaseALengthSuffix) ||
                key.Contains(ParamNames.PhaseBLengthSuffix) ||
                key.Contains(ParamNames.PhaseCLengthSuffix)
                )
            {
                if (key.Count(m => m == '_') >= 2)// 2 个以上分隔符,则认为是有测站
                {
                    var strs     = key.Split(new char[] { '_' }, StringSplitOptions.RemoveEmptyEntries);
                    var siteName = strs[0];
                    var prn      = SatelliteNumber.Parse(strs[1]);
                    if (prn == SatelliteNumber.Default)
                    {
                        log.Error("卫星 名称解析错误!!" + key);
                        throw new Exception("卫星 名称解析错误!!" + key);
                    }
                    return(new SiteSatPhaseAmbiguityModel(siteName, prn, Option.StdDevOfPhaseModel, Option.StdDevOfCycledPhaseModel));
                }
                else
                {
                    var prn = SatelliteNumber.Parse(key);
                    if (prn == SatelliteNumber.Default)
                    {
                        log.Error("卫星 名称解析错误!!" + key);
                        throw new Exception("卫星 名称解析错误!!" + key);
                    }
                    return(new SingleSatPhaseAmbiguityModel(prn, Option.StdDevOfPhaseModel, Option.StdDevOfCycledPhaseModel));
                }
            }
            else if (
                key.Contains(ParamNames.Dcb)
                )
            {
                var prn = SatelliteNumber.Parse(key);

                //      return new StaticTransferModel(Option.StdDevOfStaticTransferModel);
                return(new WhiteNoiseModel(Option.StdDevOfRevClockWhiteNoiseModel));

                return(new RandomWalkModel(0.001));

                return(new SingleSatPhaseAmbiguityModel(prn, 0.001, Option.StdDevOfCycledPhaseModel));
            }

            return(base.Create(key));
        }