基于移动终端的气象探测环境测量软件开发

2019-08-01 10:42郭江峰刘芳霞
陕西气象 2019年4期
关键词:经纬度仰角方位角

郭江峰,刘芳霞

(1.陕西省气象局,西安 710014;2.陕西省气象信息中心,西安 710014)

探测环境是为避开各种干扰,保证气象探测设施准确获取气象探测信息所需的最小距离构成的环境空间[1]。为了确保观测数据的代表性,需对观测场四周的障碍物、干扰源等可能影响气象探测环境的因素进行测算,判断该障碍物是否符合要求[2]。新建、迁移观测场或观测场四周的障碍物发生明显变化时,应测定障碍物的方位角和高度角,绘制地平圈障碍物遮蔽图[3]。需要测量的数据有:观测场经纬度、海拔高度、四周障碍物方位角、仰角、距离及各方位照片等。通常这些数据需要使用专用测量仪器如全站仪或经纬仪、相机、测距仪、皮尺、指南针、GPS定位仪等,测算流程较为繁琐和复杂。

目前大部分移动终端如智能手机、平板电脑均内置了GPS、陀螺仪、加速度计等传感器[4],可利用移动终端对障碍物参数进行测量,开展气象探测环境的初步评估。本文以智能手机为例,探讨移动终端探测环境测量软件的设计思路和实现。

1 基本思路

1.1 经纬度、海拔高度的测量

大部分智能手机自带位置测量功能,可使用GPS(北斗)、网络、基站等方式进行定位。其中GPS使用环绕地球的GPS卫星提供的信息来计算当前所处的位置[4],定位的精度高于网络和基站定位方式。为了保证经纬度测量的精确度,软件使用GPS进行定位,实时获取测量点的经纬度、海拔高度。

1.2 障碍物遮挡仰角、高度距离比和方位角的测量

障碍物是观测场以外高于观测场地平面1 m以上的建筑物、构筑物、树木、作物等物体[1]。障碍物遮蔽仰角是从观测场围栏距障碍物最近点的地面向该障碍物可见的最高点看去,视线与视线在观测场所在地面投影所形成的夹角[1]。按照气象探测环境保护规范,障碍物遮挡仰角使用全站仪在观测场围栏距离障碍物最近的地面直接测量障碍物最高的仰角值。

在智能手机中,通过内置的加速度传感器、磁力传感器、陀螺仪,能够取得手机在相对于地球坐标系绕坐标轴的旋转量,其中俯仰角是手机绕x轴旋转角(用rx表示),偏航角是手机绕y轴旋转角(用ry表示),翻滚角是手机在z轴旋转角(用rz表示)。这三个角度用于表示设备在三维空间中的姿态(见图1)。

图1 手机姿态

在测量时,手机置于观测场围栏边O点(图2),当后置摄像头对准障碍物最高点A时,手机在三维空间绕x、y、z坐标轴的旋转角度即表示A点相对于O点的仰角、方位角和手机底边的水平度。手机绕z轴的旋转角rz表示设备的水平度,当rz为0°时表示手机底边与水平面平行,手机绕y轴的旋转角ry为障碍物方位角,根据手机绕x轴的旋转角rx,可以求算出A点的仰角α及高度距离比h/d:

α=rx-90°,

h/d=tanα。

图2 障碍物遮挡仰角测量

通过编写程序读取加速度传感器、磁力传感器等数据,计算手机绕x、y、z轴的旋转量,即可计算出障碍物的仰角、方位角、高度距离比。

1.3 障碍物距离的测量

智能手机内置有距离传感器,但其有效工作范围极短,并不适合障碍物距离的测量。水平距离可通过GPS测量观测点O和障碍物距观测点的最近点C的经纬度数据进行估算。设O点的经纬度为(φ1,λ1),C点的经纬度为(φ2,λ2),地球半径为R,则OC间的距离d为:

受GPS精度限制,使用经纬度计算距离的测量误差较大,此方法仅适合大致估算,要取得精确数据,还是需要使用皮尺或激光测距仪完成。

2 软件开发

以Android系统为例,介绍气象探测环境测量软件的开发。程序使用Android Studio开发环境,JAVA语言开发。

2.1 程序流程

程序启动后,强制手机为横屏状态,启动摄像头进入摄像预览状态,开启GPS、加速度传感器、陀螺仪、磁力传感器,读取经纬度和手机在三维空间绕x、y、z轴旋转角,计算障碍物仰角、方位角,手机水平度,数据和摄像头图像叠加显示。图像、仰角、方位角数据随着手机姿态变化实时更新。主界面如图3所示。

图3 主程序界面

需要注意的是,移动终端对图像、存储卡等数据的访问有严格的权限控制,在程序中需申请摄像头、GPS、存储卡访问权限。程序启动时,首先需要检查摄像头、加速度传感器、磁力传感器、GPS、存储卡的状态,防止硬件不支持或无权限引起的程序崩溃。

2.2 摄像头实时显示

摄像头数据利用了系统Camera类实现。新建一个继承SurfaceView的类,实现SurfaceHolder.Callback接口,在接口成员surfaceCreated中调用Camera.open方法打开后置摄像头,显示拍摄预览画面。在拍摄画面上以屏幕中心为原点绘制坐标轴,以便于测量时对准目标物。

2.3 地理位置数据采集

程序初始化时,启动手机GPS,设置定位精度等参数,监听GPS状态并搜索定位卫星。定位成功后读取经纬度、海拔高度数据传入叠加显示模块,当数据位置数据发生变化时更新显示。

2.4 仰角、方位角、水平度数据采集

通过调用getSystemService函数取得传感器管理对象SensorManager,对加速度传感器、陀螺仪、磁力传感器进行初始化并进行监听。当数据发生改变时,调用getRotationMatrix方法,根据采集到的加速度传感器、陀螺仪、磁力传感器数据分量,计算手机在三维空间的姿态,即绕x、y、z轴的旋转角rx,ry,rz。根据rx计算出障碍物仰角,ry为方位角,rz为设备的水平度。

2.5 数据叠加合成

在测量过程中,对摄像头图像、屏幕坐标轴、仰角、方位角、水平度、经纬度、海拔高度进行实时采集叠加显示,以达到即拍即测的目的。新建一个继承View的类,在OnDraw方法中利用Canvas类的绘图函数,在屏幕上标注测量数据,实现图像数据、测量数据的叠加实时显示。

2.6 数据保存

为了方便记录,当用点击屏幕上拍照按钮时,程序调用Camera.takePicture方法完成对障碍物的拍照,并在所拍图像上标注经纬度、仰角、方位角信息,存入系统相册,点击相册按钮对保存的数据进行查看。

3 结语

相对专用设备测量,移动终端气象探测环境测量程序具有携带方便、操作简单、普及率高等优点,程序已在部分台站迁站初选中使用。需要注意的是,由于不同移动终端传感器精度标准不一,与专用仪测量存在一定误差,仅适用于初步测量,正式探测环境评估中仍需按照规范使用经纬仪等专用仪器测量。

猜你喜欢
经纬度仰角方位角
考虑桥轴线方位角影响的曲线箱梁日照温差效应
近地磁尾方位角流期间的场向电流增强
用锐角三角函数解决仰角、俯角问题
基于经纬度范围的多点任务打包算法
基于停车场ETC天线设备的定位算法实现
自制中学实验操作型经纬测量仪
无处不在的方位角
澳洲位移大,需调经纬度
分段三次Hermite插值计算GNSS系统卫星仰角
脸的基本画法(三)