樂志豪


摘 要:隨著電力勘測的發展,平斷面圖數據的處理成圖工作越來越重要。為了進一步提高對不同方式獲得的平斷面數據進行高效處理,該文探討利用VB編程工具開發程序,以便為平斷面圖數據的程序化處理提供一種高效、快捷、簡便的方法。
關鍵詞:VB 電力勘測 平斷面圖
中圖分類號:TP391.72 文獻標識碼:A 文章編號:1672-3791(2016)12(a)-0032-02
Abstract: With the development of Electric Power Survey, The processing of mapping the cross-setion diagram become increasingly important. In order to further enhance the efficiency for dealing with cross-setion diagram data obtained from different ways, this article discusses the technology and the method basing on VB programming tool. At last, It supply an efficient,fast and simple method for cross-setion diagram data procedural processing.
Key Words: VB; Electric Power Survey; The cross-setion diagram
隨著測繪技術的發展,傳統的測圖方法正逐步被不斷涌現的新設備、新技術、新方法取代。GPS-RTK與全站儀聯合進行架空線路平斷面圖的測量,是一種行之有效的經典方法。GPS-RTK與全站儀可以優勢互補。RTK可以不受通視條件限制,在遇到建筑物或樹木時,全站儀就可以運用自如。這樣就可以提高測量速度與工作效率。不同儀器設備間采集的數據格式不盡相同,所以就必須要對不同儀器采集的數據進行分類、編輯、制圖。該文將探討對平斷面數據的處理工作,以便高效、精確地處理每天野外測量的數據,減少對數據的人工干預。
1 平斷面數據的格式要求
電力勘測平斷面數據的采集過程中,GPS-RTK的應用已經相當廣泛,采集的數據格式都是以坐標的形式存儲,而平斷面圖的繪制中,關注繪圖的每個數據的累距、偏距、高程,所以就涉及到對數據格式的轉換。該文將采用VB編程的方式,結合該電力線路作業模式,把采集的坐標數據轉換成運用比較廣泛的SLCAD平斷面處理系統中繪圖的數據格式。
把GPS和全站儀測量的斷面數據存儲為表1所示格式,其中點名、北坐標、東坐標、高程、編碼用逗號格式區分,并存儲為文本文件或CSV格式文件。
2 對數據的分類處理
文件格式定義好后,用VB程序對文件進行讀取處理。對數據進行分類,首先就要以不同數據定義不同數組以存放讀取的數據。在讀入數據時采用前測型循環語句,逐行讀入并以逗號分隔符提取數據存入不同數組,以便后期對數據進行處理。核心處理語句如下:ReadLine、InStr、Do... Loop循環。如圖1所示為數據讀入界面。
3 對數組數據的處理
數據讀入數組之后就可以對數據進行處理:包括計算樁位之間的距離、轉角樁位之間的轉角計算、判斷斷面點是否在所定義的耐張段區間等。
(1)樁位間的距離計算。距塔位中心樁平距:
(1)
距塔位中心樁高差:
(2)
如式(1)、式(2):為兩點直接距離和高差的計算公式。
(2)轉角計算。通過計算相轉角間的坐標方位角,然后用相鄰轉角之間的坐標方位角差,便可計算出轉角的度數。坐標方位角反算核心語句:
Public Function azimuth(ByVal x1 As Double, ByVal y1 As Double, ByVal x2 As Double, ByVal y2 As Double) As Double
Dim dx, dy As Double
dx = x2 - x1: dy = y2 - y1
azimuth = Atn(dy / dx)
If dx < 0 Then
azimuth = azimuth + pi
Else
If dy < 0 Then azimuth = azimuth + 2 * pi
End If
End Function
(3)斷面點的區間判斷。通過半線理論判斷一個點是否在某一區域之類。通用過程語句如下:
Public Function pointinpl(ByVal x As Double, ByVal y As Double, ByVal ppx0 As Double, ByVal ppx1 As Double, ByVal ppx2 As Double, _
ByVal ppx3 As Double, ByVal ppy0 As Double, ByVal ppy1 As Double, ByVal ppy2 As Double, ByVal ppy3 As Double) As Double
Dim dad(3) As Double
Dim xiaoa(3) As Double
Dim xiaob(3) As Double
Dim xiaoc(3) As Double
Dim i As Integer
xiaoa(0) = (ppy1 - ppy0) / (((ppx1 - ppx0) ^ 2 + (ppy1 - ppy0) ^ 2) ^ (1 / 2))
xiaob(0) = (ppx0 - ppx1) / (((ppx1 - ppx0) ^ 2 + (ppy1 - ppy0) ^ 2) ^ (1 / 2))
xiaoc(0) = -(xiaoa(0) * ppx0 + xiaob(0) * ppy0)
xiaoa(1) = (ppy2 - ppy1) / (((ppx2 - ppx1) ^ 2 + (ppy2 - ppy1) ^ 2) ^ (1 / 2))
xiaob(1) = (ppx1 - ppx2) / (((ppx2 - ppx1) ^ 2 + (ppy2 - ppy1) ^ 2) ^ (1 / 2))
xiaoc(1) = -(xiaoa(1) * ppx1 + xiaob(1) * ppy1)
xiaoa(2) = (ppy3 - ppy2) / (((ppx3 - ppx2) ^ 2 + (ppy3 - ppy2) ^ 2) ^ (1 / 2))
xiaob(2) = (ppx2 - ppx3) / (((ppx3 - ppx2) ^ 2 + (ppy3 - ppy2) ^ 2) ^ (1 / 2))
xiaoc(2) = -(xiaoa(2) * ppx2 + xiaob(2) * ppy2)
xiaoa(3) = (ppy0 - ppy3) / (((ppx0 - ppx3) ^ 2 + (ppy0 - ppy3) ^ 2) ^ (1 / 2))
xiaob(3) = (ppx3 - ppx0) / (((ppx0 - ppx3) ^ 2 + (ppy0 - ppy3) ^ 2) ^ (1 / 2))
xiaoc(3) = -(xiaoa(3) * ppx3 + xiaob(3) * ppy3)
For i = 0 To 3
dad(i) = xiaoa(i) * x + xiaob(i) * y + xiaoc(i)
Next i
If dad(0) <= 0 And dad(1) <= 0 And dad(2) <= 0 And dad(3) <= 0 Then
pointinpl = True: Exit Function
Else
pointinpl = False
End If
End Function
4 數據的整理輸出
數據處理好后就要按一定的數據格式輸出到一定的格式文件。SLCAD平斷面處理系統要求平斷面點以點名、累距、高程以及一些特殊的編碼形式輸入。輸出數據的界面如圖2所示。
5 結語
該文通過對電力勘測過程中平斷面數據的VB程序化處理,使得測量數據可以不通過人工干預。數據通過計算機快速轉換,把測量數據高效,準確地處理成成圖數據,從而開發出一種實地勘測過程中數據的快速處理成圖方式。
參考文獻
[1] 鄭阿奇,曹戈.Visual Basic實用教程[M].電子工業出版社,2001.
[2] 龔健雅,杜道生,李清泉.當代地理信息技術[M].科學出版社, 2004.
[3] 呂忠鋼.RTK技術在送變電線路測量中的應用[J].測繪與空間地理信息,2004,27(5):69-71.
[4] 郭中社,夏江,趙根莊,等.GPS RTK數據處理技術在線路測量中的應用[J].地理空間信息,2009,7(3):91-93.