鄭康


摘要:基于布爾莎坐標轉換模型,利用Python編程方法,建立某地區的1954北京坐標系統、1980西安坐標系統向CGCS2000坐標系統的轉換模型,實現輸入北京54坐標、西安80坐標就可以直接輸出CGCS2000坐標以及轉換參數的功能;以及對公共點選擇、轉換精度進行驗算。
關鍵詞:Python;布爾莎模型;坐標轉換;1954北京坐標系;1980西安坐標系;CGCS2000坐標系
1 引言
隨著CGCS2000坐標系的推廣使用,目前的項目越來越多的從1954北京坐標系和1980西安坐標系過渡到CGCS2000坐標系;因此在實際工作中,不免需要使用到一些以前的資料,在這種情況下,就需要將其轉換為CGCS2000坐標系進行使用。
一般情況下,我們需要相同控制點的兩套坐標成果才能進行轉換,但由于一些舊成果的控制資料缺失,這為坐標轉換建立了難度。
鑒于此,我們同一整理了某地區的坐標轉換數據,基于布爾莎坐標轉換模型,利用Python編程方法,建立了該地區的1954北京坐標系統、1980 西安坐標系統向CGCS2000坐標系統成果轉換的模型,實現了舊坐標系統直接向CGCS2000坐標系統轉換的程序功能。
2 三種坐標系統的比較
1954北京坐標系是采用蘇聯克拉索夫斯基橢圓體,在1954年完成測定工作的坐標系統,其原點不在北京,而是在前蘇聯的普爾科沃。基本參數如下:長半軸a=6378245m,短半軸b=6356 863.0188m,扁率f=1/298.257223563。
1980西安坐標系是為了進行全國天文大地網整體平差而建立的。相比于1954北京坐標系,其采用的橢球參數精度更高,坐標原點在陜西省西安市涇陽縣的永樂鎮。基本參數如下:長半軸a=6378140,短半軸b=6356755.2882m,扁率f=1/298.2570。
CGCS2000坐標系是全球地心坐標系在我國的具體體現,其原點為包括海洋和大氣的整個地球的質量中心。基本參數如下:長半軸a=6378137m,短半軸b=6356752.31414m,扁率f=1/298.257222101[1]。
3 坐標轉換原理與方法
3.1 模型選擇
坐標轉換的實質是不同坐標系的橢球之間的轉換問題。基本思路是將各種不同坐標轉換成對應橢球的空間直角坐標,然后利用相互之間空間直角坐標的轉換方法進行轉換。
常用的空間直角坐標系統轉換模型有:布爾莎模型、莫洛琴斯基模型和范氏模型,從最終的轉換結果和精度來看,它們都是近似的,因此都被稱作七參數轉換模型,包括三個平移參數(X0,Y0,Z0)、三個旋轉參數(εx,εy,εz)和一個尺度參數m。本文采用的坐標轉換方法是布爾莎七參數法實現1954北京坐標系和1980西安坐標系向CGCS2000坐標系的轉換。
布爾莎的七參數公式如下:
上式中,(X0,Y0,Z0)為三個平移參數,(εx,εy,εz)為三個旋轉參數,m為尺度參數[2]。
3.2 算法設計
本次坐標轉換模型是基于布爾莎模型,對區域內已有公共點數據,進行七參數求解,從而建立區域內對1954北京坐標系、1980西安坐標系向CGCS2000轉換的轉換模型。具體步驟為:首先,將公共點的1954北京坐標(1980西安坐標)轉換成1954北京坐標(1980西安坐標)的空間直角坐標。同時,將公共點的CGCS2000坐標轉換成CGCS2000的空間直角坐標。然后,求出該區域1954北京坐標(1980西安坐標)空間直角坐標與CGCS2000空間直角坐標的轉換七參數。
將待轉換的1954北京坐標(1980西安坐標)轉換成1954北京坐標(1980西安坐標)空間直角坐標,利用已求得的區域七參數計算獲得其對應的CGCS2000空間直角坐標。然后,將計算獲得的CGCS2000空間直角坐標轉換成CGCS2000的高斯坐標。即完成了1954北京坐標(1980西安坐標)向CGCS2000坐標系的坐標轉換[3]。
3.3 程序設計
本次程序利用Python編程語言,結合Django框架,打造一個在線坐標轉換功能網站。實現輸入1954北京坐標(1980西安坐標),即可輸出CGCS2000坐標的功能。
基本構造函數如下:
(1)數據預處理函數
數據預處理函數將輸入的坐標統一成計算機可讀取的數據格式;
本次程序設計的統一輸入格式為:點號,北坐標y,東坐標x,高程h。
(2)數據處理函數
數據處理函數將待轉換的坐標定位到區域坐標網中,選取覆蓋待轉換的點的四個坐標角點,獲取角點坐標的1954北京坐標(1980西安坐標)和CGCS2000坐標。
利用定位到的角點坐標進行空間直角坐標轉換、七參數求取,獲取小范圍的數據轉換模型。然后將待處理坐標數據進行空間直角坐標轉換,利用七參數轉換模型,得到CGCS2000的空間直角坐標,然后將CGCS2000空間直角坐標轉換成CGCS2000高斯坐標。
3.3.3 數據輸出函數
數據輸出函數將坐標轉換結果進行數據輸出。
4 坐標轉換精度測試
選取區域范圍內的點進行坐標轉換精度測試,已知這些點的1954北京坐標、1980西安坐標和CGCS2000坐標,分別將1954北京坐標和1980西安坐標通過程序計算獲得CGCS2000坐標,比對其轉換精度。得數據比對表如下表:
由上表可以看到,通過本次設計的程序獲得的CGCS2000坐標成果與實際坐標成果誤差在毫米級,符合坐標轉換的精度預期。
5 結論
本次1954北京坐標、1980西安坐標向CGCS2000坐標系進行坐標轉換程序的實現,是基于區域內已知點的各個坐標系坐標成果,利用其坐標之間的關系建立布爾莎模型。根據程序的方法,實現坐標系統的快速計算和轉換。其精度滿足測圖精度要求。
參考文獻:
[1]黎舒,胡圣武.80西安坐標系到2000國家坐標系轉換的研究[J].測繪科學,2009,34,51-53.
[2]何林,柳林濤,許超鈴,等。常見平面坐標系之間的相互轉換的方法研究[J].測繪通報,2014,9,6-11.
[3]CH/T2014-2016.大地測量控制點坐標轉換技術規范[S].
(作者單位:浙江省水利水電勘測設計院)