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