Пример #1
0
        /// <summary>
        /// 陀螺经纬仪定向精度评定
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void CalDownholeCoorAziToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (isCalma)
            {
                return;
            }

            //计算仪器常数中误差
            mv = 0;  //仪器常数中误差清零
            double vv       = 0;
            double deltaSum = 0;

            for (int i = 0; i < groundData.Count; i++)
            {
                groundData[i].Delta = groundData[i].CoorAzi - groundData[i].GyroAzi;
                DataTableGridView.Rows[i].Cells[3].Value = AngleTransUtil.DMSToStr(AngleTransUtil.DegreeToDMS(groundData[i].Delta));
                deltaSum = deltaSum + groundData[i].Delta;
            }
            double deltaAverage = deltaSum / groundData.Count;  //仪器常数平均值

            for (int i = 0; i < groundData.Count; i++)
            {
                DataTableGridView.Rows[i].Cells[4].Value = Math.Round(-(groundData[i].CoorAzi - groundData[i].GyroAzi - deltaAverage) * 3600, 2) + "″";
                vv = vv + (groundData[i].CoorAzi - groundData[i].GyroAzi - deltaAverage) * (groundData[i].CoorAzi - groundData[i].GyroAzi - deltaAverage) * 3600 * 3600; //单位:秒
            }
            mv = Math.Sqrt(vv / (groundData.Count - 1));                                                                                                                 //仪器常数一次测定中误差

            ma = Math.Sqrt(mv * mv / groundData.Count + mv * mv / 2);                                                                                                    //井下一次测定中误差

            //计算各个陀螺边的误差
            for (int i = 0; i < gyroEdge.Count; i++)
            {
                gyroEdge[i].Ma = Math.Sqrt(mv * mv / groundData.Count + mv * mv / gyroEdge[i].SurveyNum);
            }

            MessageBox.Show("陀螺经纬仪定向精度评定完成!", "提示",
                            MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
            isCalma = true;
            OutMaReport();
        }
Пример #2
0
        /// <summary>
        /// 将观测的数据插入到表格中
        /// </summary>
        private void InsertObDataIntoTable()
        {
            int dataCount = groundData.Count;

            for (int i = 0; i < dataCount; i++)
            {
                DataTableGridView.Rows.Add(1);
                DataTableGridView.Rows[i].Cells[0].Value = i + 1;
                DataTableGridView.Rows[i].Cells[1].Value = AngleTransUtil.DMSToStr(groundData[i].CoorAzi);
                DataTableGridView.Rows[i].Cells[2].Value = AngleTransUtil.DMSToStr(groundData[i].GyroAzi);
            }
            int traverseEdgeCount = traverseEdge.Count;

            for (int i = 0; i < traverseEdgeCount; i++)
            {
                dataGridView1.Rows.Add(1);
                dataGridView1.Rows[i].Cells[0].Value = i + 1;
                dataGridView1.Rows[i].Cells[1].Value = traverseEdge[i].StartPoint.PointName;
                dataGridView1.Rows[i].Cells[2].Value = traverseEdge[i].EndPoint.PointName;
                dataGridView1.Rows[i].Cells[3].Value = traverseEdge[i].IsGyroDirEdge;
                dataGridView1.Rows[i].Cells[4].Value = traverseEdge[i].SurveyNum;
            }
        }