一种快速测高、测距的手机微信小程序

2023-01-30 04:07雷顺文雷顺明
北京测绘 2022年12期
关键词:高差测站全站仪

雷顺文 雷顺明

(广东兴粤工程勘测有限公司, 广东 韶关 512023)

0 引言

目前,高程测量方式主要有水准测量[1]、三角高程测量[2]、合成干涉雷达测高[3]、气压高程测量[4],全球导航卫星系统(global navigation satellite system,GNSS)高程测量[5]、卫星测高[6]等。尽管地面高程、高差测量方法较多,但用户一般都需借助专业设备,且自身具备一定的专业理论及仪器操作和数据处理能力。此外,基于GNSS技术的手机应用程序(application program,App)单点定位精度差,其高程测量精度为米级,无法满足数字国土、数字城市对楼高、塔高、山高等物体的测量精度需求。公元前1世纪出版的我国古代算经之一《周髀》,阐述了“陈子测日”的测高原理与测量方法,由于髀高、影长和两点测距等测量值受环境和测量手段等因素限制,加之未考虑地球曲率对测高的影响[7-9],并未在实践中被推广应用。

因此,本文首先基于“陈子测日”几何原理,分别推导出利用高度角代替髀高及其影长的平面测高数学模型和顾及地球曲率影响的曲面测高数学模型;然后,介绍了微信小程序开发平台,和“陈子测日”测高微信小程序的功能、程序设计流程等;最后,通过实验证明了该手机微信小程序,能快速获得测点至手机的高差和水平距离。

1 算法原理

古代数学家刘徽将“陈子测日”的方法称为“重差术”[9],并在其《重差》一卷,把“陈子测日”的方法运用在了大地测量之上。该方法采用测量髀的影长,需日光照射,且测站间需同步进行观测,测量方式制约因素较多、测量精度差。考虑到当前主流智能手机一般内嵌微机电系统(micro electro-mechanical system,MEMS)倾角传感器[10],因此,本节将推导高度角代替髀高及其影长的测高模型。

1.1 平面测高模型

如图1所示,假设以点C为坐标原点,沿线GC为X轴,垂直于GC水平向右为Y轴,建立平面坐标系。

图1 “陈子测日”几何原理

D点为目标点,其垂直高度为x+h;h为杆高或测站仪高;G点为目标点D在测站平面上的投影;E点和F点为同一水平面上的两测站点;d为站间距离;y和q分别为测站F和测站E至目标D的水平距离;α和β分别表示相应测站至目标D点的仰角。由图1得到

整理得

(3)

又y=xctgβ,故

(4)

在测站E和测站F分别测得目标D的高度角α、β,和站间平距d,根据式(3)和式(4)即可分别算出目标点D至测站F的高差x和水平距离y。

1.2 顾及地球曲率的曲面测高模型

如图2所示,以点O为地心,R为地球曲率半径,则

(5)

式中,hCE为地球曲率对高差的影响[11-12],表示为

(6)

图2 顾及地球曲率的测高几何模型

当A、C两点间的水平距离S小于10 km时,S对应的圆心角约5′,故可认为AC近似垂直于DE,因此,△ACD、△BCD可视为直角三角形,则式(5)中的xDC为

(7)

将式(6)和式(7)代入式(5),即

(8)

将式(4)代入式(8)得

(9)

2 微信小程序设计

2.1 开发环境

本文使用微信小程序[13]开发平台进行开发,小程序是基于模型-视图-控制器(model-view-controller,MVC)设计模式和网络设计规范的一种全新的连接用户与服务的方式,使用前端超文本标记语言(hyper text markup language, HTML)、层叠样式表(cascading style sheets,CSS)语言以及爪哇描述语言(JavaScript,JS)搭建的编程环境。

小程序开发部分采用微信小程序开发框架(MINA)构建。MINA框架支持整合微信客户端提供的文件系统、网络通信、任务管理、数据安全等基础功能,同时,对上层提供一整套JS应用程序编程接口(application programming interface,API),方便开发者迅速构建应用小程序[14]。

2.2 功能设计

本微信小程序的主要功能是进行目标高差和平距测算。

通过修改项目中默认创建的app.js、app.json、app.wxss三个文件进行定义,搭建图形用户界面(graphical user interface,GUI)和功能控件,调用手机自带MEMS倾角传感器、陀螺仪测量的各向角度等信息,计算测点高差。其具体GUI如图3所示。

图3 小程序操作界面

2.3 “陈子测日”测高技术流程图

如图3所示,通过使用手机自带摄像头进行目标高度角测量,以镜头中心十字光圈为基准点进行瞄准工作。屏幕下方显示方向、方向值、倾角及点位经纬度等信息。【启动】按钮的响应事件为调用内部函数,对方向值等信息进行实时采集、更新和显示;【获取数据】则为开始进行测高的控制指令,获取瞬时目标高度角;【记录为α1】和【记录为α2】分别记录操作者在两测站上测得目标的高度角。如数据采集成功,系统将提示“采集数据成功”;通过点击【停止】按钮,停止测量。

通过钢尺量距等方法获取站间距离,并通过【输入距离】文本框写入数据;最后通过【计算高差】按钮调用高差计算模块,获取相应地物高差和平距。其App具体技术流程如图4所示。

图4 “陈子测日”测高技术流程图

3 实验与数据处理

3.1 外业数据采集

本次实验选址于图书馆广场,采用徕卡TS06高精度全站仪的免棱镜测高方式,对各测站至目标点的高差和平距进行测量,并作为真值;“陈子测日”微信小程序运行平台为华为P10plus,内置Android 7.0操作系统。

如图5所示,在1,2,3,…,9共9个测站上,分别使用徕卡TS06全站仪和手机微信测高小程序对A点进行测量。各测站位置事先由钢尺测定布设,相邻两测站站间相距约为5 m。全站仪观测各测站至A点的平距、高差及垂直角;每一测站上在保持与全站仪相同仪高条件下,“陈子测日”微信测高小程序依次采集各测站至A点的高度角,且每站自动观测记录100次高度角值,观测时长约3 s。各测站全站仪仪高互差控制在2 cm以内。

图5 实验示意图

徕卡TS06全站仪竖盘指标差检定值为+1″;华为P10Plus手机内置MEMS倾角传感器倾角系统误差检定值为-48′58″。对所有手机高度角观测数据进行系统误差改正。

3.2 单历元测角数据处理与精度分析

取全站仪相邻站间观测高差的平均值作为此测段(如1,2测站)目标高真值。“陈子测日”手机微信测高小程序每站自动采集了目标A的100次高度角值,相邻站间按观测值记录顺序,依次组合为100组观测数据对,利用式(4)分别计算目标高差,然后采用内符合和外符合方式[15]进行精度分析与评定。

3.2.1内符合

(a)直方图

在每测站上用本微信小程序进行100次高度角测量,用时较短,人眼瞄准目标上下晃动次数少,因此,残差图大多呈现为一次下降或上升的曲线;同时,由直方图可知残差呈偶然误差特性。此外,单历元测量获取的测段3~4高差内符合中误差为0.636 m。

3.2.2外符合

相较于内符合,外符合残差直方图依然表现为以偶然误差为主,两者统计特性一致,但残差图对比可知,算术平均值与全站仪观测高差均值存在约0.75 m的系统误差。此外,单历元测量获取的测段3~4高差外符合中误差为1.525 m。

(a)直方图

3.3 多历元测角数据处理与精度分析

通过测段单次高度角观测值计算目标高差的精度分析,可知其内符合和外符合精度均较差。考虑到手机内置MEMS倾角传感器和陀螺仪的数据输出频率高,每秒钟可快速输出几十甚至上百赫兹的角度倾斜感应值,以及在同精度观测条件下,通过增加观测值次数,可提高观测精度。因此,采用各测点100次高度角观测值的平均值来计算各测段高差,并分别与全站仪观测测段高差的平均值对比。由表1可知,“陈子测日”微信小程序各测段测量高差、平距与全站仪观测值之差绝对值均小于0.2 m,且残差都呈现偶然误差特性,其中误差分别为0.152 m和0.149 m。因此,“陈子测日”微信小程序能够在短时间内通过获取大量观测数据,提高手机倾角观测精度,进而提高高差和平距的测量精度。

表1 “陈子测日”小程序测量结果对比 单位:m

4 结束语

本文使用微信小程序开发平台,基于“陈子测日”测高原理,实现了JS自主开发手机测高测量小程序。实践操作中,要注意选择测段平整的区域,且站间相距不宜过短。相比“陈子测日”测髀高和影长方式,本算法无须两测站同步观测,也无须阳光直射。实验测试结果表明,普通手机用户在无须具备测绘专业理论知识和测量仪器设备操作技能的情况下,通过简单的手机操作,即可获得较高精度的高差和平距观测值,作业效率高,操作便捷,具有一定的实践应用价值。

猜你喜欢
高差测站全站仪
WiFi室内定位测站布设优化的DOP数值分析
高差影响下的城镇燃气管道水力计算简化公式
福海水文站气象要素对比分析
全站仪中间法在矿山高程测量中的应用——以河南镇平县地形测量为例
全站仪极坐标法监测点稳定性分析方法研究
框架结构梁板面钢筋叠合产生的高差问题探讨
美伊冲突中的GPS信号增强分析
车载全站仪位姿估计方法研究
同时对向间接高差精密测量技术应用研究
地形高差较大的别墅区排水设计要点分析