LeicaDNA03水准测量数据处理程序_第1页
LeicaDNA03水准测量数据处理程序_第2页
LeicaDNA03水准测量数据处理程序_第3页
LeicaDNA03水准测量数据处理程序_第4页
LeicaDNA03水准测量数据处理程序_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、编程作业Leica DNA03水准测量数据处理程序1 数据格式 -32 程序设计 -33 源代码 - 44 编程总结 - 81数据格式Leica数据格式为GSI(Geo Serial Interface),根据其数据位是8或16位分为GSI8和GSI16,其他格式完全相同。数据以行为单位,每行包含若干个16位或24位的字段,每个字段以开头两位数字表示数据意义,称为WI(Word Index),如41表示测量模式,11表示点号,32表示视距读数,331表示后视第一次中丝读数,332表示前视第一次中丝读数,336表示前视第二次中丝读数,335表示后视第二次中丝读数。本次作业采用Leica DNA0

2、3数字水准仪原始数据。如下图:第一行:观测模式为BFFB; 第二行:测段起点为BM3,起始高程为480.1230m; 第三行:测站后视点号BM3,视距读数28.58072m,第一次后视中丝读数0.69018m,中丝读数为2次读数的平均值,标准偏差为0.04mm;第四行:测站前视点号Z1,视距读数28.61654m,第一次前视中丝读数1.69615m,中丝读数为2次读数的平均值,标准偏差为0.02mm;第五行:测站前视点号Z1,视距读数28.62065m,第二次前视中丝读数1.69610m,中丝读数为2次读数的平均值,标准偏差为0.11mm;第六行:测站后视点号BM3,视距读数28.58569m

3、,第二次后视中丝读数0.69017m,中丝读数为2次读数的平均值,标准偏差为0.04mm。2程序设计本次数据处理程序的窗口设计非常简单,仅一个窗口,一个按钮。“读取数据”按钮读入原始水准仪数据,程序自动转换,以表格形式输出。表头设计为“测站数”、“后视点号”、“前视点号”、“第一次后视中丝读数”、“第二次后视中丝读数”、“第一次前视中丝读数”、“第二次前视中丝读数”“测站两次前后高差较差”、“高差之差累计值”、“累计视距差”、“累计视距”、“前视点高程”共12项,表头之前输出“起始点点号”和“起始点高程”。 3源代码using System;using System.Collections.G

4、eneric;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.IO;namespace Leica_DNA03水准数据处理 public partial class Form1 : Form public Form1() InitializeComponent(); double, Rb = null; double, Rf = null; string sb = null; /后视点号 str

5、ing sf = null; /前视点号 double, Rbs = null;/后视视距 double, Rfs = null;/前视视距 string st2,bmn1,bmn2; double bm; double n; double, z1 = null; string s=null; public void Open_LeicaDNA03() /打开egm96文件的子函数 Rb = new double100,2; /后视中丝读数 Rf = new double100,2; sb = new string100; sf = new string100; Rbs = new doubl

6、e100,2; Rfs = new double100,2; z1 = new double100,5; string s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11; double bm; s=new string100; openFileDialog1.Title = "选择文件" openFileDialog1.InitialDirectory = "" openFileDialog1.Filter = "文本文件(*txt)|*txt|数据文件(*dat)|*dat|数据文件(*gsi)|*gsi" if

7、 (openFileDialog1.ShowDialog() = DialogResult.OK) System.IO.StreamReader sr = new System.IO.StreamReader(openFileDialog1.FileName); string st = sr.ReadLine(); string st2 = sr.ReadLine(); bmn1 = st2.Substring(12, 3); /起始点点号 bm = (double.Parse(st2.Substring(25, 6) / 10000; /起始点高程 s1=bm.ToString("

8、F4"); s0 = "起始点点号:" + bmn1 + " " + "起始点高程:" + s1+" m" int i=0; textBox1.AppendText(s0 + "n"); s1="测站"+" "+"后视点" +" "+ "前视点"+" "+"第一次后视"+" "+"第二次后视"+"

9、"+"第一次前视"+" "+"第二次前视"+" "+" "+"测站两次前后"+" "+"高差之差"+" "+" 累计 "+" "+" 累计 "+" "+"前视点" s2=" 数 "+" "+" 点号 " +" " +"

10、点号 "+" "+"中丝读数/m"+" "+"中丝读数/m"+" "+"中丝读数/m"+" "+"中丝读数/m"+" "+" "+" 高差较差/m "+" "+"累计值/m"+" "+"视距差/m"+" "+" 视距/m "+" "

11、;+"高程/m" textBox1.AppendText("测站"+" "+"后视点" +" "+ "前视点"+" "+"第一次后视"+" "+"第二次后视"+" "+"第一次前视"+" "+"第二次前视"+" "+" "+"测站两次前后"+" &q

12、uot;+"高差之差"+" "+" 累计 "+" "+" 累计 "+" "+"前视点"+"n"); textBox1.AppendText(" 数 "+" "+" 点号 " +" " +" 点号 "+" "+"中丝读数/m"+" "+"中丝读数/m"+&quo

13、t; "+"中丝读数/m"+" "+"中丝读数/m"+" "+" "+" 高差较差/m "+" "+"累计值/m"+" "+"视距差/m"+" "+" 视距/m "+" "+"高程/m"+"n"); st2 = sr.ReadLine(); do for (int j = 0; j <

14、; 5; j+) if (j = 0) sbi = st2.Substring(12, 3); /后视点号 Rbsi, 0 = (double.Parse(st2.Substring(25, 6) / 10000.0; /后视视距 Rbi, 0 = (double.Parse(st2.Substring(38, 9) / 10000.0; /后视中丝读数 if (j = 1) st2 = sr.ReadLine(); sfi = st2.Substring(12, 3); bmn2 = st2.Substring(12, 3); Rfsi, 0 = (double.Parse(st2.Subs

15、tring(25, 6) / 10000; Rfi, 0 = (double.Parse(st2.Substring(38, 9) / 10000; if (j = 2) st2 = sr.ReadLine(); Rfsi, 1 = (double.Parse(st2.Substring(25, 6) / 10000; /前视二次视距 Rfi, 1 = (double.Parse(st2.Substring(38, 9) / 10000; /前视二次中丝读数 if (j = 3) st2 = sr.ReadLine(); Rbsi, 1 = (double.Parse(st2.Substrin

16、g(25, 6) / 10000; Rbi, 1 = (double.Parse(st2.Substring(38, 9) / 10000; if (j = 4) /测站总结 st2 = sr.ReadLine(); z1i, 0 = (double.Parse(st2.Substring(25, 6) / 10000; /测站两次高差之差 z1i, 1 = (double.Parse(st2.Substring(38, 9) / 10000;/高差之差累计值 z1i, 2 = (double.Parse(st2.Substring(54, 9) / 10000;/测站累计视距差 z1i, 3

17、 = (double.Parse(st2.Substring(70, 9) / 10000;/测站累计视距 z1i, 4 = (double.Parse(st2.Substring(86, 9) / 10000;/前视点高程 n = i + 1; s2 = Rbi, 0.ToString("F4"); s3 = Rbi, 1.ToString("F4"); s4 = Rfi, 0.ToString("F4"); s5 = Rfi, 1.ToString("F4"); s6 = z1i, 0.ToString(&qu

18、ot;F4"); s7 = z1i, 1.ToString("F4");/高差之差累计值 s8 = z1i, 2.ToString("F4"); s9 = z1i, 3.ToString("F4"); s10 = z1i, 4.ToString("F4"); s11 = n.ToString("F0"); si+3 = s11.PadLeft(3, ' ') + sbi.PadLeft(8, ' ') + sfi.PadLeft(8, ' ') + s2.PadLeft(12, ' ') + s3.PadLeft(12, ' ') + s4.PadLeft(12, ' ') + s5.PadLeft(10, ' ') + s6.PadLeft(16, ' ') + s7.PadLeft(12, ' ') + s8.PadLeft(12, ' ') + s9.PadLeft(14, ' ') + s10.PadLeft(11, ' '); textBox1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论