郭江峰,劉芳霞
(1.陜西省氣象局,西安 710014;2.陜西省氣象信息中心,西安 710014)
探測環境是為避開各種干擾,保證氣象探測設施準確獲取氣象探測信息所需的最小距離構成的環境空間[1]。為了確保觀測數據的代表性,需對觀測場四周的障礙物、干擾源等可能影響氣象探測環境的因素進行測算,判斷該障礙物是否符合要求[2]。新建、遷移觀測場或觀測場四周的障礙物發生明顯變化時,應測定障礙物的方位角和高度角,繪制地平圈障礙物遮蔽圖[3]。需要測量的數據有:觀測場經緯度、海拔高度、四周障礙物方位角、仰角、距離及各方位照片等。通常這些數據需要使用專用測量儀器如全站儀或經緯儀、相機、測距儀、皮尺、指南針、GPS定位儀等,測算流程較為繁瑣和復雜。
目前大部分移動終端如智能手機、平板電腦均內置了GPS、陀螺儀、加速度計等傳感器[4],可利用移動終端對障礙物參數進行測量,開展氣象探測環境的初步評估。本文以智能手機為例,探討移動終端探測環境測量軟件的設計思路和實現。
大部分智能手機自帶位置測量功能,可使用GPS(北斗)、網絡、基站等方式進行定位。其中GPS使用環繞地球的GPS衛星提供的信息來計算當前所處的位置[4],定位的精度高于網絡和基站定位方式。為了保證經緯度測量的精確度,軟件使用GPS進行定位,實時獲取測量點的經緯度、海拔高度。
障礙物是觀測場以外高于觀測場地平面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軸的旋轉量,即可計算出障礙物的仰角、方位角、高度距離比。
智能手機內置有距離傳感器,但其有效工作范圍極短,并不適合障礙物距離的測量。水平距離可通過GPS測量觀測點O和障礙物距觀測點的最近點C的經緯度數據進行估算。設O點的經緯度為(φ1,λ1),C點的經緯度為(φ2,λ2),地球半徑為R,則OC間的距離d為:
受GPS精度限制,使用經緯度計算距離的測量誤差較大,此方法僅適合大致估算,要取得精確數據,還是需要使用皮尺或激光測距儀完成。
以Android系統為例,介紹氣象探測環境測量軟件的開發。程序使用Android Studio開發環境,JAVA語言開發。
程序啟動后,強制手機為橫屏狀態,啟動攝像頭進入攝像預覽狀態,開啟GPS、加速度傳感器、陀螺儀、磁力傳感器,讀取經緯度和手機在三維空間繞x、y、z軸旋轉角,計算障礙物仰角、方位角,手機水平度,數據和攝像頭圖像疊加顯示。圖像、仰角、方位角數據隨著手機姿態變化實時更新。主界面如圖3所示。

圖3 主程序界面
需要注意的是,移動終端對圖像、存儲卡等數據的訪問有嚴格的權限控制,在程序中需申請攝像頭、GPS、存儲卡訪問權限。程序啟動時,首先需要檢查攝像頭、加速度傳感器、磁力傳感器、GPS、存儲卡的狀態,防止硬件不支持或無權限引起的程序崩潰。
攝像頭數據利用了系統Camera類實現。新建一個繼承SurfaceView的類,實現SurfaceHolder.Callback接口,在接口成員surfaceCreated中調用Camera.open方法打開后置攝像頭,顯示拍攝預覽畫面。在拍攝畫面上以屏幕中心為原點繪制坐標軸,以便于測量時對準目標物。
程序初始化時,啟動手機GPS,設置定位精度等參數,監聽GPS狀態并搜索定位衛星。定位成功后讀取經緯度、海拔高度數據傳入疊加顯示模塊,當數據位置數據發生變化時更新顯示。
通過調用getSystemService函數取得傳感器管理對象SensorManager,對加速度傳感器、陀螺儀、磁力傳感器進行初始化并進行監聽。當數據發生改變時,調用getRotationMatrix方法,根據采集到的加速度傳感器、陀螺儀、磁力傳感器數據分量,計算手機在三維空間的姿態,即繞x、y、z軸的旋轉角rx,ry,rz。根據rx計算出障礙物仰角,ry為方位角,rz為設備的水平度。
在測量過程中,對攝像頭圖像、屏幕坐標軸、仰角、方位角、水平度、經緯度、海拔高度進行實時采集疊加顯示,以達到即拍即測的目的。新建一個繼承View的類,在OnDraw方法中利用Canvas類的繪圖函數,在屏幕上標注測量數據,實現圖像數據、測量數據的疊加實時顯示。
為了方便記錄,當用點擊屏幕上拍照按鈕時,程序調用Camera.takePicture方法完成對障礙物的拍照,并在所拍圖像上標注經緯度、仰角、方位角信息,存入系統相冊,點擊相冊按鈕對保存的數據進行查看。
相對專用設備測量,移動終端氣象探測環境測量程序具有攜帶方便、操作簡單、普及率高等優點,程序已在部分臺站遷站初選中使用。需要注意的是,由于不同移動終端傳感器精度標準不一,與專用儀測量存在一定誤差,僅適用于初步測量,正式探測環境評估中仍需按照規范使用經緯儀等專用儀器測量。