樂(lè)志豪
摘 要:隨著電力勘測(cè)的發(fā)展,平斷面圖數(shù)據(jù)的處理成圖工作越來(lái)越重要。為了進(jìn)一步提高對(duì)不同方式獲得的平斷面數(shù)據(jù)進(jìn)行高效處理,該文探討利用VB編程工具開(kāi)發(fā)程序,以便為平斷面圖數(shù)據(jù)的程序化處理提供一種高效、快捷、簡(jiǎn)便的方法。
關(guān)鍵詞:VB 電力勘測(cè) 平斷面圖
中圖分類(lèi)號(hào):TP391.72 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):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
隨著測(cè)繪技術(shù)的發(fā)展,傳統(tǒng)的測(cè)圖方法正逐步被不斷涌現(xiàn)的新設(shè)備、新技術(shù)、新方法取代。GPS-RTK與全站儀聯(lián)合進(jìn)行架空線(xiàn)路平斷面圖的測(cè)量,是一種行之有效的經(jīng)典方法。GPS-RTK與全站儀可以?xún)?yōu)勢(shì)互補(bǔ)。RTK可以不受通視條件限制,在遇到建筑物或樹(shù)木時(shí),全站儀就可以運(yùn)用自如。這樣就可以提高測(cè)量速度與工作效率。不同儀器設(shè)備間采集的數(shù)據(jù)格式不盡相同,所以就必須要對(duì)不同儀器采集的數(shù)據(jù)進(jìn)行分類(lèi)、編輯、制圖。該文將探討對(duì)平斷面數(shù)據(jù)的處理工作,以便高效、精確地處理每天野外測(cè)量的數(shù)據(jù),減少對(duì)數(shù)據(jù)的人工干預(yù)。
1 平斷面數(shù)據(jù)的格式要求
電力勘測(cè)平斷面數(shù)據(jù)的采集過(guò)程中,GPS-RTK的應(yīng)用已經(jīng)相當(dāng)廣泛,采集的數(shù)據(jù)格式都是以坐標(biāo)的形式存儲(chǔ),而平斷面圖的繪制中,關(guān)注繪圖的每個(gè)數(shù)據(jù)的累距、偏距、高程,所以就涉及到對(duì)數(shù)據(jù)格式的轉(zhuǎn)換。該文將采用VB編程的方式,結(jié)合該電力線(xiàn)路作業(yè)模式,把采集的坐標(biāo)數(shù)據(jù)轉(zhuǎn)換成運(yùn)用比較廣泛的SLCAD平斷面處理系統(tǒng)中繪圖的數(shù)據(jù)格式。
把GPS和全站儀測(cè)量的斷面數(shù)據(jù)存儲(chǔ)為表1所示格式,其中點(diǎn)名、北坐標(biāo)、東坐標(biāo)、高程、編碼用逗號(hào)格式區(qū)分,并存儲(chǔ)為文本文件或CSV格式文件。
2 對(duì)數(shù)據(jù)的分類(lèi)處理
文件格式定義好后,用VB程序?qū)ξ募M(jìn)行讀取處理。對(duì)數(shù)據(jù)進(jìn)行分類(lèi),首先就要以不同數(shù)據(jù)定義不同數(shù)組以存放讀取的數(shù)據(jù)。在讀入數(shù)據(jù)時(shí)采用前測(cè)型循環(huán)語(yǔ)句,逐行讀入并以逗號(hào)分隔符提取數(shù)據(jù)存入不同數(shù)組,以便后期對(duì)數(shù)據(jù)進(jìn)行處理。核心處理語(yǔ)句如下:ReadLine、InStr、Do... Loop循環(huán)。如圖1所示為數(shù)據(jù)讀入界面。
3 對(duì)數(shù)組數(shù)據(jù)的處理
數(shù)據(jù)讀入數(shù)組之后就可以對(duì)數(shù)據(jù)進(jìn)行處理:包括計(jì)算樁位之間的距離、轉(zhuǎn)角樁位之間的轉(zhuǎn)角計(jì)算、判斷斷面點(diǎn)是否在所定義的耐張段區(qū)間等。
(1)樁位間的距離計(jì)算。距塔位中心樁平距:
(1)
距塔位中心樁高差:
(2)
如式(1)、式(2):為兩點(diǎn)直接距離和高差的計(jì)算公式。
(2)轉(zhuǎn)角計(jì)算。通過(guò)計(jì)算相轉(zhuǎn)角間的坐標(biāo)方位角,然后用相鄰轉(zhuǎn)角之間的坐標(biāo)方位角差,便可計(jì)算出轉(zhuǎn)角的度數(shù)。坐標(biāo)方位角反算核心語(yǔ)句:
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)斷面點(diǎn)的區(qū)間判斷。通過(guò)半線(xiàn)理論判斷一個(gè)點(diǎn)是否在某一區(qū)域之類(lèi)。通用過(guò)程語(yǔ)句如下:
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 數(shù)據(jù)的整理輸出
數(shù)據(jù)處理好后就要按一定的數(shù)據(jù)格式輸出到一定的格式文件。SLCAD平斷面處理系統(tǒng)要求平斷面點(diǎn)以點(diǎn)名、累距、高程以及一些特殊的編碼形式輸入。輸出數(shù)據(jù)的界面如圖2所示。
5 結(jié)語(yǔ)
該文通過(guò)對(duì)電力勘測(cè)過(guò)程中平斷面數(shù)據(jù)的VB程序化處理,使得測(cè)量數(shù)據(jù)可以不通過(guò)人工干預(yù)。數(shù)據(jù)通過(guò)計(jì)算機(jī)快速轉(zhuǎn)換,把測(cè)量數(shù)據(jù)高效,準(zhǔn)確地處理成成圖數(shù)據(jù),從而開(kāi)發(fā)出一種實(shí)地勘測(cè)過(guò)程中數(shù)據(jù)的快速處理成圖方式。
參考文獻(xiàn)
[1] 鄭阿奇,曹戈.Visual Basic實(shí)用教程[M].電子工業(yè)出版社,2001.
[2] 龔健雅,杜道生,李清泉.當(dāng)代地理信息技術(shù)[M].科學(xué)出版社, 2004.
[3] 呂忠鋼.RTK技術(shù)在送變電線(xiàn)路測(cè)量中的應(yīng)用[J].測(cè)繪與空間地理信息,2004,27(5):69-71.
[4] 郭中社,夏江,趙根莊,等.GPS RTK數(shù)據(jù)處理技術(shù)在線(xiàn)路測(cè)量中的應(yīng)用[J].地理空間信息,2009,7(3):91-93.