コード例 #1
0
        /// <summary>
        /// 提取基线
        /// </summary>
        /// <param name="nameBuider"></param>
        /// <param name="siteName"></param>
        /// <returns></returns>
        private RmsedXYZ ExtractBaseline(NetDoubleDifferPositionParamNameBuilder nameBuider, string siteName)
        {
            var      siteXyzNames = nameBuider.GetSiteDxyz(siteName);
            RmsedXYZ rmsedXYZ     = new RmsedXYZ();
            int      i            = 0;

            foreach (var siteXyzName in siteXyzNames)
            {
                var rmsVal = this.ResultMatrix.Estimated.Get(siteXyzName);
                if (i == 0)
                {
                    rmsedXYZ.Value.X = rmsVal.Value;
                    rmsedXYZ.Rms.X   = rmsVal.Rms;
                }
                if (i == 1)
                {
                    rmsedXYZ.Value.Y = rmsVal.Value;
                    rmsedXYZ.Rms.Y   = rmsVal.Rms;
                }
                if (i == 2)
                {
                    rmsedXYZ.Value.Z = rmsVal.Value;
                    rmsedXYZ.Rms.Z   = rmsVal.Rms;
                }
                i++;
            }
            return(rmsedXYZ);
        }
コード例 #2
0
        /// <summary>
        /// 提取基线协方差
        /// </summary>
        /// <param name="nameBuider"></param>
        /// <param name="siteName"></param>
        /// <returns></returns>
        public Matrix ExtractCovaMatrix(NetDoubleDifferPositionParamNameBuilder nameBuider, string siteName)
        {
            var total     = this.ResultMatrix.CovaOfEstimatedParam;
            var siteXName = nameBuider.GetSiteDx(siteName);

            var    indexOfX = this.ResultMatrix.ParamNames.IndexOf(siteXName);
            Matrix cova     = new Matrix(new SymmetricMatrix(3));

            cova[0, 0] = total[indexOfX, indexOfX];
            cova[0, 1] = total[indexOfX, indexOfX + 1];
            cova[0, 2] = total[indexOfX, indexOfX + 2];
            cova[1, 1] = total[indexOfX + 1, indexOfX + 1];
            cova[1, 2] = total[indexOfX + 1, indexOfX + 2];
            cova[2, 2] = total[indexOfX + 2, indexOfX + 2];
            return(cova);
        }