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