余章蓉,王友昆,陳裕漢,盤成進,葉萬榮
(1.昆明理工大學津橋學院,云南 昆明 650106; 2.昆明市測繪研究院,云南 昆明 650051;3.滇西應用技術大學,云南 大理 671009; 4.昆明子午環測繪咨詢服務有限責任公司,云南 昆明 650051)
盡管2018年已經全面啟動2000國家大地坐標系(CGCS2000),但是CGCS2000同1980西安坐標系、1954年北京坐標系以及地方坐標系之間的轉換仍然不可避免[1]。坐標轉換前應先計算轉換參數,一般利用參數計算軟件,導入不同坐標系的同名控制點成果進行計算。通常一次只能利用兩套坐標成果計算一套轉換參數,當需要計算多套坐標成果之間的轉換參數時,需要多次導入控制點成果進行計算,計算過程較為煩瑣。例如,需要計算某區域CGCS2000、1980西安坐標系、1954北京坐標系、地方坐標系成果之間的轉換參數時,至少需要進行6次成果的導入計算。如果需要計算多個區域,多套成果之間的轉換參數時,傳統的參數計算效率更低。盡管也有學者設計了坐標轉換及參數管理系統[2],但仍然需要逐一計算轉換參數。針對某區域首級控制網或框架網的平差成果具有等級高、精度高、內符合精度好等特點,利用這些坐標成果進行轉換參數計算時,不需要過多的人為選點干預,特別適用于批量的轉換參數計算。針對這類應用場景,本文提出一種針對多區域、多套控制點成果,進行批量坐標轉換參數自動計算和評價的方法,大大提高了計算效率,可應用于市級、省級行政區域范圍的坐標轉換參數的計算和管理。
常用的坐標轉換模型有平面四參數模型和布爾莎七參數模型[3],前者適用于小區域坐標轉換[4~6],后者適用于大區域坐標轉換[6~8]。平面四參數模型如式(1),包括2個坐標平移參數(△x,△y),1個尺度參數m,1個角度旋轉參數α。
(1)
布爾沙七參數模型如式(2),包括3個坐標平移參數(△x,△y,△z),3個坐標軸旋轉參數(ωX,ωY,ωz),1個尺度參數m。
(2)
計算某區域轉換參數時,需要提供覆蓋該區域的同名點不同坐標系的坐標成果,并選用適宜的轉換模型進行參數計算。
假設每個轉換區域均具有1954北京坐標系、1980西安坐標系、CGCS2000坐標系以及地方坐標系等四套成果坐標,首先應對已有坐標成果的數據結構和存放進行定義,按照統一的格式和要求存放,便于后期批量讀取和計算。如圖1所示,以昆明市為例,昆明市域范圍需要計算CGCS2000、1980西安坐標系、1954北京坐標系、1987年昆明坐標系成果之間的相互轉換參數,只需要將4套不同坐標系的坐標成果文件,統一放一個目錄即可。坐標文件的命名應統一和唯一,同時文件內的成果坐標類型應與其元數據的坐標類型一致。

圖1 成果數據存儲結構示意圖
然后,根據坐標轉換模型以及批量坐標轉換參數計算的需求,還應對每個轉換區域的多套同名點坐標成果進行元數據配置,目的是在參數計算時,能夠將同名點坐標成果轉換為正確的坐標類型。配置的內容包括坐標成果的區域、參數名稱、參考橢球、坐標類型、角度格式、中央經線、X平移、Y平移、抵償面等,如表1所示。需要注意的是坐標成果名稱應唯一,便于計算時能快速對其進行索引。

坐標成果元數據示例 表1
以圖1為例,首先根據源坐標和目標坐標的元數據配置表,將四套坐標系成果自動轉換為相應的坐標類型,計算流程和方法如圖2所示。計算四參數時,則需要將源坐標和目標坐標分別轉換為高斯平面坐標。當源坐標為大地坐標時,則應根據其元數據配置情況,轉換為高斯平面坐標后計算四參數。計算七參數時,則需要將源坐標和目標坐標分別轉換為空間直角坐標。當源坐標為高斯平面坐標,則應根據其元數據配置情況,先轉換為大地坐標,再轉換為空間直角坐標后計算七參數。

圖2 參數計算示意圖
轉換參數計算完成后,還需要對轉換參數命名。由于坐標成果名稱是唯一的,因此可采用兩套坐標成果名稱的組合進行命名,以達到轉換參數名稱唯一的目的。例如,“昆明2000→昆明1980”代表昆明區域CGCS2000坐標系成果轉換為昆明區域1980西安坐標系成果的轉換參數名稱。
參數計算時,還應對轉換參數計算的內符合情況進行精度評定,目的是便于計算者查看參數計算的精度情況,對超限的轉換參數進行核查,查找原因并重新計算。精度評定的方法,一般通過點位中誤差是否滿足指標要求進行判定[9]。重合點殘差V計算公式如式(3):
V=重合點轉換坐標值-重合點已知坐標值
(3)
空間直角坐標計算點位中誤差計算如式(4):
(4)
式中,MX、MY、MZ分別為空間直角坐標X、Y、Z殘差中誤差,n為點位個數。
高斯平面坐標平面點位中誤差計算如式(5)
(5)
式中,Mx、My分別為面坐標x、y殘差中誤差,n為點位個數。
本文以云南省16個州(市)、129個縣(市、區)的多套坐標成果的參數計算為例進行說明。每個州(市)的高等級控制點均包括了CGCS2000、1980西安坐標系、1954北京坐標系三套成果,每個州(市)可實現其行政區域范圍內的CGCS2000、1980西安坐標系、1954北京坐標系三套成果的相互轉換。每個縣(市、區)的高等級控制點均包括了CGCS2000和縣(市、區)地方獨立坐標系兩套成果??h(市、區)地方坐標系需要轉換1980西安坐標系、1954北京坐標系成果時,需要先將地方坐標系成果轉換為CGCS2000成果,再通過16個州(市)的CGCS2000同1980西安坐標系、1954北京坐標系的轉換參數轉換為相應的1980西安坐標系和1954北京坐標系成果。
為達到區域坐標成果轉換參數批量計算的目的,首先應對轉換成果進行梳理,對其進行索引標識,然后利用坐標轉換模型進行參數計算和精度評定,計算流程主要包括成果準備、元數據配置、參數計算、精度評定、參數合并等步驟,如圖3所示。

圖3 參數計算流程
(1)數據準備
首先,對16個州(市)和129個縣(市、區)的坐標成果進行整理,并按照目錄和格式的要求進行存放。如整理為統一格式的文件(如.txt文本文件),以坐標成果名稱進行命名,分別按照州(市)、縣(市、區)進行存放,如圖4所示。
(2)元數據配置
然后,根據16個州(市)和129個縣(市、區)的坐標成果的屬性,進行元數據配置。以昆明市的坐標成果元數據為例,配置如表2所示。昆明市域范圍有昆明2000、昆明1980、昆明1954三套坐標成果,14個縣(區)分別具有其城市獨立坐標系,其中五華區、盤龍區、官渡區、西山區為統一的一套獨立坐標系。

圖4 成果數據存儲結構示意圖

昆明市坐標成果元數據 表2
(3)參數計算
以上工作完成后,即可利用程序批量對云南省16個州(市)及129個縣(市、區)的坐標轉換參數進行計算。參數計算時,程序自動讀取每一文件夾內坐標成果文件;程序根據坐標成果文件名稱,通過元數據配置文件查找其元數據,并將其轉換為相應的坐標成果類型。如“昆明2000.txt”坐標成果為大地坐標,當計算四參數時,則應該按照圖2流程轉換為高斯平面坐標;當計算七參數時,則應該轉換為空間直角坐標。如果計算時有子目錄,則程序自動遞歸調用函數計算子目錄下的坐標成果的轉換參數。
(4)精度評定
根據《大地測量控制點坐標轉換技術規程》的要求,依據計算轉換參數的重合點殘差中誤差評估坐標轉換精度,殘差小于3倍點位中誤差的點位精度滿足要求[10]。參數計算完成后,系統可將每個地區的轉換參數內符合精度以表格形式顯示。對于不滿足要求的轉換參數,程序可標記提示,計算者可手動計算并調整參與計算的控制點,直至滿足精度要求。
(5)參數合并
對于內符合精度符合要求的轉換參數,可對各區域計算的轉換參數進行合并,達到統一存儲和管理的目的,便于后期調用和坐標轉換。程序可通過遍歷文件夾,對文件夾內符合精度要求的參數文件統一合并為一個文件,便于加密、存儲和管理。
該系統已經成功應用于云南省16個州(市)的2000國家大地坐標系、1954北京坐標系、1980西安坐標系之間的轉換參數的批量計算,以及129個縣(市、區)2000國家大地坐標系同其地方坐標系之間的轉換參數的批量計算。這種方法對于多區域、多套坐標成果之間的相互轉換關系的計算具有明顯的優勢,不僅能夠大大提高計算效率,還能有效地對多個轉換參數進行管理,具有推廣應用的價值。