天宝数字水准仪数据格式转换

利用C#语言和测量平差相关知识相结合,生成的格式转换软件可应用于测量相关的生产生活中。本文的主要内容是将天宝数字水准仪的数据格式转换为南方平差易相对应的数据格式。从仪器中导出的数据可直接用于平差软件进行平差计算,从而减少了手动平差或转换数据格式中产生的偶然误差。既提高了生产效率,又保证了数据的准确性。

编程基础

C#(C sharp)是微软公司发布的一种面向对象的于.NETFramework之上的高级程序设计语言。是起点高、发展快的新一代语言,兼顾系统开发和应用开发的最佳实用语言,并且很有可能成为编程语言历史上的第一个“全能”型语言。

主要功能

生成观测手簿

打开数据

在编程环境中找到【工具箱】面板,找到OpenFileDialog控件,拖动到舞台中央,在对应的代码窗口输入如下代码:

dlg.Filter = "(天宝电子水准仪数据格式).dat|.dat|(文本文件)**.txt*|*.txt";

上述代码是对打开文件类型的限制。由于天宝水准仪的格式是dat文件,并考虑到有可能操作者对文件后缀有所修改,添加了一个文本文档的格式。
当程序遇到"End-Line"时即停止读取,相应的代码如下:

if (line.Equals("End-Line"))
break;

在打开设置之前需对数据长度进行控制,即定义数组的长度。若长度过短会导致程序无法正确运行或报错。相应代码如下:

string[,] ShuJu = new string[1000, 15];

剔除错误及无关数据

通过以下代码语句可以剔除包括在正式进行水准测量前的预热,仪器i角的校正以及测量过程中的错误数据等在内的非必要数据。

if (line.Trim().Length == 0 || line.Substring(17, 2) == "TO" || line.Substring(95, 1) == "Z" || line.Substring(29, 5) == "#####" || line.Substring(49, 2) == "Sh"|| line.Substring(49, 2) == "R "){ line = srd.ReadLine(); }Else
{flag++;
}

输出

自制手簿模板将对应结果输出在相应表格单元格内。如上图所示为该软件的主界面。打开该软件,单击菜单栏的【文件】菜单,先选择打开文件,然后再选择转化为EXCEL,即转化为观测手簿。

数据格式转换

原始数据分析

天宝数字水准仪导出的数据首行中包含了相关项目名称,依次往下,Start-Line表示水准仪开始对该项目路线进行水准测量。紧接着的BFFB就表示观测顺序为后尺-前尺-前尺-后尺。数据中出现的Rb和Rf分别表示后尺读数和前尺读数,HD则为视距。前后视距对应前后尺读数。

平差易数据格式

平差易的数据格式大致可以分成以下四个部分:

  1. 控制网属性
  2. 限差
  3. 测站数据
  4. 观测数据

其中原始数据主要是观测数据,故而本研究亦着重观测数据的处理。通过对平差易数据对比发现[OBSER]下的数据即为观测数据,每一行的格式如下:
后视点名,前视点名,,前后视距之和,测段高差,,,,,
上述格式中逗号为英文状态。

数据间的关联

通过上述两者数据进行对比,会发现它们之间存在一定的关联。单站的高差为前后两尺两次读数的差值,某一测段的高差即为各站高差的累积[1]。同理可知某一测段的视距即为各单站视距之和,视距为前后视距之和。相应代码如下:

ShuJu[i, 10] = ((float.Parse(ShuJu[i, 3]) + float.Parse(ShuJu[i, 7]) + float.Parse(ShuJu[i, 5]) + float.Parse(ShuJu[i, 9])) / 2).ToString("f3");
m=float.Parse(ShuJu[i,2]) - float.Parse(ShuJu[i, 4]);   //高差读数1计算
n= float.Parse(ShuJu[i, 6]) - float.Parse(ShuJu[i, 8]);   //高差读数2计算
ShuJu[i, 12] = ((m + n) / 2).ToString("f5");

转换并输出文件

通过上述代码深入加工,使其可运行即可对原始数据进行格式上的转换。转换结果可以直接显示在主界面的文本框里面,只需要单击菜单栏中的【处理】菜单中的【显示结果】,结果就会显示。同样也可以导出为文本文档,一般是要导出来的,还要进行后续的平差计算。导出的数据可直接用南方平差易打开。
在【输出】过程中,需要在插入saveFileDialog控件。由于平差易为文本格式,在编程时仅允许输出为后缀为“.txt”的文件。利用如下语句完成输出任务:

m_show=m_show+textBox.Text

其中m_show为定义的变量,textBox.Text为文本框内容。

总结

通过上述操作可实现将天宝数字水准仪原始数据格式转化成平差易可识读的格式,便于进行水准数据处理。软件界面优化、软件打包及EXCLE处理等将在后期跟进。

天宝数字水准仪数据格式转换相关推荐

  1. DL-2007数字水准仪外业观测与内业解算

    文章目录 1 仪器清单 2 水准仪部件名称与功能 3 三等水准限差要求 4 外业测量 4.1 整平仪器 4.2 线路测量 4.3 重复测量键 REP 4.4 过渡点上终止线路测量 4.5 水准点上终止 ...

  2. EasyExcel(二) 导入导出excel的数据格式转换

    EasyExcel(二) 导入导出excel的数据格式转换 关于easyExcel的基本用法我就不在多说了,有需要的可以自己点击该链接去学习基本的使用,主要对这里面经常用到的一些监听器和拦截器讲一下, ...

  3. R语言数据格式转换函数、数据类型判断函数(numeric、character、vector、matrix、data.frame、factor、logical)、R语言数据格式类型转换

    R语言数据格式转换函数.数据类型判断函数(numeric数值.character字符串.vector向量.matrix矩阵.data.frame数据表.factor因子.logical逻辑).R语言数 ...

  4. Python读取多个excel文件(删除字段、数据格式转换、dataframe多表合并)并写入ElasticSearch实战(自动创建索引、写入ElasticSearch、探索性数据分析)

    Python读取多个excel文件(删除字段.数据格式转换.dataframe多表合并)并写入ElasticSearch实战(自动创建索引.写入ElasticSearch.探索性数据分析) 目录

  5. 目标检测中的数据格式转换工具Roboflow

    目标检测中的数据格式转换工具.Roboflow Roboflow提供了您需要的所有工具,将原始图像转换为定制的训练有素的计算机视觉模型,并部署它在您的应用程序中使用. Roboflow支持检测目标和分 ...

  6. C/C++中字符串与数字之间的转换

    主要有两种方式:C 中能够使用 sprintf 将数字转为字符数组,sscanf 将字符数组转为数字:而在 C++ 中不仅能够使用 C 中的方法,还能够使用 stringstream 实现字符串与数字 ...

  7. c语言英文字符转数字,C语言常用数字和字符串转换函数(国外英文资料).doc

    C语言常用数字和字符串转换函数(国外英文资料) C语言常用数字和字符串转换函数(国外英文资料) C language commonly used Numbers and string conversi ...

  8. 5.单行函数,多行函数,字符函数,数字函数,日期函数,数据类型转换,数字和字符串转换,通用函数(case和decode)

     1  多行函数(理解:有多个输入,但只输出1个结果) SQL>select count(*) from emp; COUNT(*) ------------- 14 B 字符函数Lower ...

  9. java中的字符,字符串,数字之间的转换(亲测)

    string 和int之间的转换 string转换成int  :Integer.valueOf("12") int转换成string : String.valueOf(12) ch ...

最新文章

  1. mysql 删除 修改密码_Mysql数据库root密码忘记了,如何在不删除Mysql的情况下修改密码...
  2. fftw_plan_dft_2d重复优化
  3. 【Pushgateway】正则匹配,分隔逗号成数组
  4. Android空间WebView和ViedeoView的使用
  5. CCNA Discovery第二学期 (版本 4.1)
  6. 技术脱钩后软硬件磨合优化不失为一条出路
  7. php算法台阶,php如何解决青蛙跳台阶的问题(代码)
  8. 防止重复提交js jquery ajax
  9. web 服务器和 web 技术发展历史简介
  10. tensorflow object detection api graph rewriter
  11. 1.1介绍线程和运行(Introducing Thread and Runnable)
  12. 算法:判断对称树 101. Symmetric Tree
  13. 卸载干净ARCGIS不用手动删注册表,一键用GEEK
  14. PPT小图标库及配色网站推荐
  15. linux怎么安装网卡驱动固件,linux下安装网卡驱动的方法步骤
  16. “泰迪杯”挑战赛 - 通过Java实现中央空调系统的数据分析与控制策略
  17. bios没有u盘启动选项怎么办?
  18. Linux克隆虚拟机
  19. fonts/fontawesome-webfont.woff2 404
  20. 云计算与大数据 第14章 云仿真平台CloudSim习题

热门文章

  1. Android 微信支付总结
  2. WordPress模板教程
  3. github登录+注册方法
  4. Java - Eclipse: quot;Error notifying a preference change listenerquot;
  5. SAP-ABAP-如何查找系统中已经存在的增强(包括1代2代3代BTE表字段增强等)和标准的增强点
  6. 小米电视看普通电视台,只需几步就能轻松解锁
  7. Github Page 个人主页——自定义域名
  8. 记一次Godaddy域名解析托管到AWS的Route53操作
  9. R-squared 和 Adjusted R-squared 的区别
  10. python容易挂科吗_如何应付大学的python考试而不至于挂科?