/// <summary>
        /// 运行
        /// </summary>
        /// <returns></returns>
        public override void Run()
        {
            //各个测站做星间单差 //获取星间单差值
            MultiSiteEpochValueStorage rawDiffer = FloatAmbiSolution.GetRawDiffer(BasePrn);

            //与宽巷模糊度整数产品一起,计算窄巷模糊度的浮点解
            MultiSiteEpochValueStorage floatNlVals = rawDiffer.GetNarrowLaneFcbs(IntValueOfDifferWL, GetNarrowLaneValue);

            //浮点数小数部分
            MultiSiteEpochValueStorage fractionOfNL = floatNlVals.GetRoundFraction();

            //合并相同卫星的浮点数小数部分
            EpochSatSiteValueList epochSatValues = fractionOfNL.GetSameSatValues();

            //求加权平均,每一个历元,每颗卫星只有一个产品,忽略数量太少的历元
            this.FcbProducts = epochSatValues.GetAverage(this.MinSiteCount, MaxRmsTimes);

            //生成窄巷FCB 产品,并写入文件
            this.FcbOfUpds = FcbProducts.GetFcbProduct(BasePrn);

            //写入文件
            FcbOfUpdWriter.WriteEpochProducts(FcbOfUpds, BasePrn + "_EpochNLFcbOfDcb");


            //显示逐历元结果,表名为卫星,各表列为测站名称
            this.FloatValueTables = epochSatValues.GetTable(this.OutputDirectory, BasePrn);

            //生成逐历元表格文件
            base.BuildProducts();
        }
Beispiel #2
0
        /// <summary>
        /// 运行
        /// </summary>
        /// <returns></returns>
        public override void Run()
        {
            //各个测站做星间单差 //获取星间单差值
            this.SiteAmbiDiffers = FloatAmbiSolution.GetNewByMinusCol(BasePrn.ToString(), "", true);
            //以相同卫星差分值为基准组织表。列为测站名,表名称为卫星
            this.SatAmbiDiffers = SiteAmbiDiffers.GetSameColAssembledTableManager();
            SatAmbiDiffers.RemoveEmptyRows();

            //下面采用 宽巷的整数值 和 计算的模糊度 计算窄巷值
            this.FloatValueTables = SatAmbiDiffers.HandleSameCellFloatCellValue(IntValueOfDifferWL, (satAmbiDiffer, wInt) =>
            {
                return(GetNarrowLaneValue(satAmbiDiffer, (int)wInt)); //获取窄巷值
            }, "FloatOf" + ProductTypeMarker);
            this.FloatValueTables.OutputDirectory = this.OutputDirectory;
            base.BuildProducts();
        }
Beispiel #3
0
        /// <summary>
        /// 运行
        /// </summary>
        /// <returns></returns>
        public override void Run()
        {
            //各个测站做星间单差 //获取星间单差值
            this.SiteAmbiDiffers = FloatAmbiSolution.GetNewByMinusCol(BasePrn.ToString(), "", true); //各个表为一个测站,表行为历元,列为卫星
            //以相同卫星差分值为基准组织表。
            this.SatAmbiDiffers = SiteAmbiDiffers.GetSameColAssembledTableManager();                 //一个表为一颗差分后的卫星,行为历元,列为测站
            SatAmbiDiffers.RemoveEmptyRows();

            //下面采用 宽巷的整数值 和 计算的模糊度 计算窄巷值

            //处理后,更新为窄巷模糊度。
            SatAmbiDiffers.ParallelHandleTable(table =>
            {
                UpdateToNarrowBsdValue(table);
            });
            this.FloatValueTables = SatAmbiDiffers;

            //this.FloatValueTables = SatAmbiDiffers.HandleSameCellFloatCellValue(IntValueOfDifferWL, (satAmbiDiffer, wInt) =>
            //   {
            //       return GetNarrowLaneValue(satAmbiDiffer, (int)wInt); //获取窄巷值
            //    }, "FloatOf" + ProductTypeMarker);

            base.BuildProducts();
        }