楊雙富
(云南一九八煤田地質勘探隊,云南昆明 650208)
測邊網近似坐標電算方法的探討
楊雙富?
(云南一九八煤田地質勘探隊,云南昆明 650208)
在測邊網中,以測站為基礎按順時針方向組織邊長觀測數據,解決了未知點近似坐標計算時存在二義性的問題,提出了一種適合于編程計算近似坐標的算法,只輸入必要的已知數據和觀測值,不需要人工干預就能自動、高效、正確地計算出測邊網中所有未知點的近似坐標。
控制測量平差;測邊交會;測邊網;算法
未知點近似坐標計算是平面控制網進行測量平差計算不可缺少的一個重要環節,也是平面控制網測量平差程序設計中最重要的一步,不給出近似坐標就無法列出誤差方程式,平差計算也就不能往下進行。然而在測邊網中,按測邊交會解算未知點近似坐標時存在二義性(即有二解)問題,致使一些測量平差軟件在計算中遇此情況就需要人工輔助判斷,降低了軟件的方便性和效率。本文對測邊網平差程序所需的數據及其結構、未知點坐標計算二義性問題的解決,以及近似坐標算法作了一些探討,給出了一種只需輸入必要的已知數據和觀測值就能自動、高效、正確地計算出所有未知點近似坐標的算法。
2.1 計算未知點近似坐標的二義性問題
如圖1所示,三角形ABC是測邊網中的一個三角形,A、B是兩已知點,Sa、Sb是兩條邊的觀測值,C為未知點。

圖1 測邊交會示意圖
根據文獻[1]中第241頁,如下的公式,可計算出C點的坐標。

必須指出的是:以上算式是假設A、B、C三點按逆時針方向排列情況下推導出來的,如果A、B、C三點按順時針方向排列,則計算出的是C′的坐標。在不能確保A、B、C三點按逆時針方向排列的情況下,計算出的坐標就不能斷定是C點的,還是C′的,即存在二義性問題。
要確保A、B、C三點按逆時針方向排列,只需規定在每個測站點上按順時針方向來列出各邊的邊長觀測值,例如在A點先列出A、C兩點的邊長Sb,再列出A、B兩點的邊長Sc。當然,先列出A、B兩點的邊長,再列出A、C兩點的邊長,也是A點自Sc邊起算的順時針排列。似乎是進行入了二義性的死循環中。其實,不難發現這兩種順時針排列有著實質性的差別:第一種從AC邊轉到AB邊所轉過的角是測邊網的內角,第二種從AB邊轉到AC邊所轉過的角是測邊網的外角。實際上,測角網中用余切公式(變形戎格公式)計算未知點坐標也存在二義性的問題,但由于測角網中方向值是按順時針觀測和提供,且可以用兩相鄰方向中后一方向值減前一方向值之差是否大于180°來判斷所夾的是內角還是外角,在程序設計中很容易進行判斷,因而也就不存在二義性問題。故此,在測邊網中每測站點要求按順時針列出各邊長觀測值外,再強制規定在列出的邊長觀測值中,相鄰兩邊所夾的角必須是內角,這樣A、B、C三點按逆時針方向排列的要求可得到滿足,按式(1)、(2)解出的坐標是唯一的,未知點近似坐標計算二義性問題的就迎刃而解。
2.2 數據結構
對測邊網觀測數據進行組織時,需按下列規則進行。(1)觀測數據形式為“測站點、照準點、邊長值”;
(2)每個測站點上按順時針方向列出各邊長觀測值,并確保相鄰兩邊的夾角必須是內角;
(3)上一個測站所列過的邊,在本測站中不必再列出其觀測值;
(4)為避免組成三角形時圖形信息的缺失,當一個測站點上只剩一條邊時,無論是已知邊還是未知邊,均要列出邊長觀測數據,其中已知邊的觀測值以0填充。
例:如圖2所示的測邊網,A、B、C、D四點為已知點,其坐標值見表1。共觀測了13條邊的值,觀測數據組織詳見表2。

已知點坐標值 表1

圖2 某測邊網簡圖

邊長觀測值表 表2
3.1 具體算法
在測邊網中,當有2個已知點及以上時,按以上觀測值的數據結構,總體算法為:首先假定第一邊兩個端點的坐標,然后計算出所有點的假定坐標,再根據已知點的真、假坐標換出所有點的真坐標。具體算法為:
(1)在邊長觀測值表中取第一條邊作基準,令其測站點的坐標為(0,0),照準點的坐標為(第一條邊的邊長值,0),用ny作計數器,表示已計算出坐標的個數,則ny=2。
(2)在第1個測站點的觀測數據中取出第一條邊,第二條邊的數據。
(3)第一邊測站點記為A,照準點記為B,邊長值記為bc1;第二條邊,照準點記為C,邊長值記為bc2。
(4)在整個觀測數據表中查詢測站點為B、照準點為C或者測站點為C、照準點為B的邊長,記為bc3,如果查不到則bc3=0。
(5)分別判斷3個邊長是否等于零,如果等于零,且兩端點為已知點時,則反算其邊長并賦值給相應記號。如果bc3還是等于零,則不能組三角形,轉到第(7)步。
(6)如果A、B兩點為已知點,C為未知點,則按B、A、C的順序代入公式求出C點的坐標,計數器ny加1;如果A、C兩點為已知點,B為未知點,則按A、C、B的順序代入公式求出B點的坐標,計數器ny加1;如果B、C兩點為已知點,A為未知點,則按C、B、A的順序代入公式求出A點的坐標,計數器ny加1。
(7)取出第二條邊,第三條邊的數據,重復第(3)~(6)步,直到本測站所有邊均取出為止。
(8)在第2個測站點的觀測值數據中,重復第(2)~(7)步,直到所有測站列完為止。上述過程,如有計數器ny等于總點數時,則轉到第(9)步。
(9)以第1、2個已知點的真坐標及假定坐標作為平移、旋轉依據,換算出每一個點的真坐標。
3.2 偽代碼
在VB語言環境中,實現測邊網未知點近似坐標計算的偽代碼如下:


3.3 算例
為方便數據編輯、查詢、計算結果輸出等,使用Microsoft Excel 2003工作表提供計算數據,使用 Microsoft Excel 2003 VBA編程進行近似坐標計算。打開Excel(此工作簿應命名為 jszbjs),將工作簿中的Sheet1,Sheet2,Sheet3分別重命名為“已知點坐標表”、“邊長觀測值表”、“未知點坐標表”,每個工作表第一行各字段名稱按如下所述填寫。表1分別為“點號、縱坐標X、橫坐標Y”,表2分別為“測站點、照準點、邊長值”,表3分別為“點號、縱坐標X、橫坐標Y”,數據則從第二行開始。將已知點數據填入“已知點坐標表”中,邊長觀測值數據填入“已知點坐標表”中,在“未知點坐標表”的工作表中合適位置插入一個命令按鈕(其界面見圖3)。雙擊該命令按鈕進入Visual Basic編輯器,將其“Caption”屬性改為“近似坐標計算”,在“CommandButton1_Click”添加程序如下代碼:


圖3 添加命令按鈕并的界面

圖4 計算結果的輸出界面
說明:①限于篇幅,程序僅考慮了計算和簡單的界面,因Excel 2003最大行號為 65 535,故此程序所能計算的測邊總點數應小于 65 500個。②如果Excel 2003界面中無圖5所示的工具欄,可通過“視圖(V)”→工具欄“(T)”→“控件工具箱”來添加。③輸入程序后退出Visual Basic編輯器,Excel 2003仍然處于程序設計模式狀態,必須通過點擊圖3中最右側的按鈕來退出設計模式,單擊“近似坐標計算”按鈕才能進行計算。

圖5 控件工具箱界面
文中提出的數據結構,即以測站為基礎,按順時針方向組織邊長觀測數據(并且要求同一測站內相鄰兩邊的夾角為內角),不僅符合測量規矩和習慣,包含了測邊網近似坐標計算所必須的圖形信息和數據,而且有效地解決了近似坐標計算中的二義性問題,是全自動測邊網平差計算的基礎。據此設計出的測邊網近似坐標計算軟件,不需要人工干預就能自動、高效、正確地計算出測邊網中所有未知點的近似坐標。
[1]武漢測繪學院《測量學》編寫組.測量學(上冊)[M].北京:測繪出版社,1985
[2]於宗儔,魯林成.測量平差基礎[M].北京:測繪出版社,1984
[3]邢永昌,張鳳舉.礦區控制測量(下冊)[M].北京:煤炭工業出版社,1987
[4]張樹兵,戴紅,陳哲.Visual Basic 6.0中文版入門與提高[M].北京:清華大學出版社,1999
[5]蔣洪波,余代俊,耿留勇.三邊網坐標概算的電算算法研究與實現[J].四川測繪,2007(4):89~91
Coordinate Measuring Side Net Approximate Method of Computing
Yang ShuangFu
(198 coal geological exploration teams in Yunnan Province,Kunming 650208)
In the test side of net to station-based clockwise direction the organization side length observation data to address the coordinates of the unknown point approximation calculation ambiguity exists when the problem presents a program for calculation of approximate coordinates of algorithm,known only to enter the necessary data and observations,without human intervention will be able to automatic,efficient and correctly calculate the measured edge network approximate coordinates of all unknown points.
Control Survey Adjustment;side crossing measurement method;measuring side net;arithmetic
1672-8262(2010)02-153-04
P209
B
2009—08—27
楊雙富(1967—),男,高級工程師,主要從事工程測量工作。