李 揚 郭際明 蔡 婧 邸國輝 章 迪
1武漢大學測繪學院,湖北 武漢,430079
2湖北省水利水電規(guī)劃勘測設(shè)計院,湖北武漢,430064
隨著測繪產(chǎn)業(yè)信息化建設(shè)的興起與發(fā)展,各種工程建設(shè)愈來愈多。但由于歷史原因、使用目的和技術(shù)水平的差異,各個地區(qū)甚至同一地區(qū)不同行業(yè)、不同部門間仍采用不同坐標系統(tǒng)[1],導致在工程建設(shè)中要不斷將現(xiàn)有數(shù)據(jù)資料在不同坐標系統(tǒng)間進行轉(zhuǎn)換,嚴重影響了數(shù)據(jù)的交換與共享,造成了數(shù)據(jù)冗余和社會資源浪費,因此完成全系統(tǒng)內(nèi)各類國土資源空間數(shù)據(jù)坐標系統(tǒng)的統(tǒng)一成為了亟待完成的一項工作。
在分幅地形圖坐標轉(zhuǎn)換理論與方法方面已有許多研究成果。張元敏[2]以CAD數(shù)據(jù)為例,提出了基于Feature Manipulate Engine(FME)的坐標轉(zhuǎn)換和批量分幅方法,給出了模板編寫的具體思路及實現(xiàn)過程;彭春暉等[3]針對圖幅接邊問題,提出了一種基于圖幅邊界緩沖區(qū)分析,兼顧要素屬性匹配約束,實現(xiàn)多圖幅數(shù)據(jù)自動接邊的方法;劉雄等[4]基于Arcpy編寫了幾何和屬性接邊的Python腳本工具,實現(xiàn)了線狀數(shù)據(jù)的自動接邊,并能提示屬性不一致。
在分幅地形圖坐標轉(zhuǎn)換處理中,分幅數(shù)據(jù)量大的情況下,若將大范圍分幅數(shù)據(jù)進行整體接邊,合并成大塊數(shù)據(jù)后進行整體處理,會降低效率且易出現(xiàn)接邊錯誤。因此,本文提出了一種根據(jù)能反映新舊圖幅關(guān)系的接圖表依次導入數(shù)據(jù)進行批次處理的方法,避免了對大塊數(shù)據(jù)成果的直接合并處理;同時,針對多圖幅接邊處理時遇到的“一對多”情況,提出了一種利用GUID值去重的解決方法,實現(xiàn)了多圖幅數(shù)據(jù)間的自動接邊。本文利用FME,給出了一整套分幅地形圖坐標轉(zhuǎn)換方法,具備西安80坐標系至斜軸投影獨立坐標系的分幅地形圖逐幅轉(zhuǎn)換功能,并用控制點數(shù)據(jù)成果進行了檢驗。
疊加分析是將源坐標系和目標坐標系的圖廓進行面面重疊分析,獲取目標坐標系下每個圖廓所對應(yīng)的源坐標系圖廓的名稱、路徑、個數(shù)等。
在疊加分析中,利用Filename PartExtractor轉(zhuǎn)換器提取源坐標系下圖廓的圖幅號、文件路徑及目標坐標系下圖廓的圖幅號,利用Area OnArea Over?layer轉(zhuǎn)換器對源坐標系和目標坐標系下的地形圖圖廓進行面面壓蓋分析,獲取目標坐標系圖廓對應(yīng)的源坐標系圖廓的圖幅號等信息,以便進行接邊融合等后續(xù)處理。
如圖1所示,以工程中的10幅圖為例,生成了20幅新圖廓,橙色為目標坐標系下的源坐標系圖廓,黑色為目標坐標系圖廓。例如,目標坐標系圖幅B與源坐標系圖幅A11、A12、A21、A22有關(guān)聯(lián),文件路徑分別為疊加分析:/內(nèi)圖廓要素/A11.dwg、疊加分析:/內(nèi)圖廓要素/A12.dwg、疊加分析:/內(nèi)圖廓要素/A21.dwg和疊加分析:/內(nèi)圖廓要素/A22.dwg。
圖1 疊加分析關(guān)系圖Fig.1 Relationship Diagram of Overlay Analysis
接邊融合的目的是將相鄰圖幅中的線、面要素因圖幅關(guān)系而被分割的部分重新連接在一起,保證要素幾何的完整性和屬性的一致性[5]。利用疊加分析結(jié)果依次將目標坐標系接圖表中圖廓對應(yīng)的源坐標系圖幅數(shù)據(jù)進行接邊融合。
實際處理時,為了降低處理難度和便于檢查要素,將線、面要素分開處理[6]。利用CoordinateEx?tractor轉(zhuǎn)換器提取兩個或多個接邊要素與圖廓公共邊相交的節(jié)點坐標[7],如果坐標相同且屬于相同類型的地物、地貌要素[8],則利用UUIDGenerator轉(zhuǎn)換器對其成對或者成組賦GUID值。GUID值是計算機隨機分配的通用唯一標識符,其長度為36字節(jié),由數(shù)字、字母和“?”組合而成。利用LineCombiner轉(zhuǎn)換器對線要素接邊融合,擁有相同GUID值的要素會從多個要素個體連接變成一個要素整體。
在處理過程中,由于相鄰圖廓公共邊兩側(cè)的要素不是一一對應(yīng),可能會出現(xiàn)一側(cè)的一個要素對應(yīng)另一側(cè)的多個要素,特殊接邊情況如圖2所示。針對這種一對多的接邊狀況,本文提出了利用GUID值去重的方法,其實現(xiàn)過程以線要素為例進行描述為:右側(cè)的線要素LA對應(yīng)左側(cè)的線要素LB和LC。對線要素LB賦GUID1值,對線要素LC賦GUID2值,根據(jù)節(jié)點坐標的一致性,線要素LA會擁有兩個GUID值,不符合處理要求。因此對線要素LA進行“復制?粘貼”操作,得到和線要素LB相同GUID1值的線要素LA1,和線要素LC相同GUID2值的線要素LA2,LA1與LB相連得到線LA1?B,LA2與LC相連得到線LA2?C,再將線LA1?B與線LA2?C進行幾何和屬性的統(tǒng)一,得到一條完整的直線LA?B?C。
圖2 特殊接邊狀況Fig.2 Special Cases of Edge Matching
接邊融合后要對源坐標系數(shù)據(jù)進行坐標轉(zhuǎn)換。根據(jù)不同的坐標轉(zhuǎn)換條件,F(xiàn)ME提供了相應(yīng)的轉(zhuǎn)換方法。一類以Affiner轉(zhuǎn)換器為代表,在坐標系參數(shù)未知的情況下,通過控制點計算轉(zhuǎn)換參數(shù),實現(xiàn)坐標轉(zhuǎn)換[9]。另一類以Reprojector轉(zhuǎn)換器為代表,在坐標系參數(shù)已知的情況下,在FME中自定義其橢球參數(shù)、基準面參數(shù)、投影參數(shù),實現(xiàn)要素的坐標轉(zhuǎn)換[10]。
FME中地形圖坐標轉(zhuǎn)換的方法有以下兩大類:①在FME中設(shè)置相似變換或仿射變換模型進行轉(zhuǎn)換;②利用Python語言編寫斜軸轉(zhuǎn)換[11]代碼,并將其加入FME,利用FME完成投影。方法①是利用轉(zhuǎn)換參數(shù)和Affiner轉(zhuǎn)換器實現(xiàn)坐標轉(zhuǎn)換;方法②是利用PythonCaller轉(zhuǎn)換器框架結(jié)合Python開發(fā)語言,在轉(zhuǎn)換器中插入程序代碼進行斜軸轉(zhuǎn)換,利用FME完成投影。本文利用方法②實現(xiàn)了1980西安坐標系至斜軸投影獨立坐標系的轉(zhuǎn)換。
批量處理是根據(jù)疊加分析的結(jié)果,自動讀取源坐標系分幅數(shù)據(jù)并進行接邊融合、坐標轉(zhuǎn)換和分幅裁剪,自動寫出目標坐標系分幅數(shù)據(jù),自動化地完成一整套地形圖的坐標轉(zhuǎn)換。
批量處理主要利用了Feature Reader轉(zhuǎn)換器、Feature Writer轉(zhuǎn)換器以及自定義轉(zhuǎn)換器。Fea?tureReader轉(zhuǎn)換器和FeatureWriter轉(zhuǎn)換器分別用來讀取文件夾中的分幅數(shù)據(jù)和寫出分幅數(shù)據(jù)到文件夾中[12]。利用自定義轉(zhuǎn)換器中的循環(huán)功能,配合Fea?tureReader、Feature Writer等轉(zhuǎn)換器,可以自動化地實現(xiàn)分幅數(shù)據(jù)的讀取、處理和寫出。
本文以某工程項目為例進行實驗,項目提供航空攝影技術(shù)成圖得到的1∶2 000的50×50地形圖數(shù)據(jù),測區(qū)采用1980西安坐標系。原始地形圖數(shù)據(jù)共涉及分幅數(shù)據(jù)209幅,主要圖層類型有等高線、道路設(shè)施、地貌特征、高程點、管道及附屬設(shè)施、居民點、控制點、水下設(shè)施、植被特征、注記等。
由于該工程為西北?東南走向,距離長,海拔高,范圍大,普通的高斯投影長度變形十分嚴重,因此施工時以工程線路的中軸線為斜軸投影的偽中央子午線建立工程獨立坐標系。在此基礎(chǔ)上,利用已完成的FME模板將已有的1980西安坐標系的高斯投影地形圖轉(zhuǎn)換為施工坐標對應(yīng)的斜軸投影地形圖,并且轉(zhuǎn)換后的圖幅仍以1∶2 000比例尺進行保存。
坐標轉(zhuǎn)換結(jié)果檢驗主要分為接邊檢驗和精度檢驗。接邊檢驗是將具有相同幾何類型和屬性信息的要素連接在一起,如果相鄰圖幅中找不到接邊線要素或面要素,或者能找到相鄰要素但某項屬性中內(nèi)容不匹配[13],需要將其特殊標記,輸出成dwg報錯文件進行人工判斷。在對測區(qū)內(nèi)的209幅分幅數(shù)據(jù)進行接邊時,并未發(fā)現(xiàn)接邊結(jié)果錯誤的情況,接邊結(jié)果正確。
為檢驗FME坐標轉(zhuǎn)換結(jié)果的精度,根據(jù)項目提供的控制點,通過前文提到的兩種方法進行坐標轉(zhuǎn)換,將轉(zhuǎn)換結(jié)果與已有獨立坐標系下的坐標進行作差得到轉(zhuǎn)換誤差,平面坐標x、y的差值如圖3所示。
圖3 兩種方法的轉(zhuǎn)換誤差Fig.3 Transformation Error of Two Methods
方法①平面坐標x的殘差中誤差為1.31 dm,平面坐標y的殘差中誤差為1.45 dm,點位中誤差為1.95 dm。方法②平面坐標x殘差中誤差為0.78 mm,平面坐標y殘差中誤差為0.75 mm,點位中誤差為1.08 mm。
本文研究了基于FME對分幅地形圖數(shù)據(jù)進行坐標轉(zhuǎn)換的技術(shù)方法,建立了相應(yīng)的圖幅轉(zhuǎn)換模板,完成了地形圖的接邊、融合、分幅、裁剪等一整套坐標轉(zhuǎn)換處理。本文建立了1種基于FME的1980西安坐標系到斜軸投影獨立坐標系的轉(zhuǎn)換方法,并通過控制點數(shù)據(jù)驗證了其正確性,點位轉(zhuǎn)換精度達到1.08 mm。作業(yè)人員可以在運行過程中根據(jù)日志了解轉(zhuǎn)換過程中出現(xiàn)的問題,方便及時修改模板。