摘 要:本文基于筆者多年從事地理信息系統的相關工作經驗,以GIS數據處理為研究對象,探討了常見的GIS空間數據格式及特點,同時給出了基于EPS2008地理信息工作站進行GIS空間數據轉換的具體實施過程,在此基礎上,筆者總結了在這個過程中常見的一些問題及解決方法。
關鍵詞:EPS2008地理信息工作站 GIS空間數據 轉換 腳本
中圖分類號:P2文獻標識碼:A文章編號:1672-3791(2012)06(c)-0012-02
GIS技術的創立和發展,與地理空間信息的表示、處理、分析和應用手段的不斷發展緊密相連。隨著地理信息產業的建立和數字化信息產品在全世界的普及,社會對GIS的認識普遍提高,需求大幅度增加,導致GIS應用的擴大與深化,由于目前生產GIS測繪產品的軟件種類繁多,要求提交成果的數據格式也不盡相同,所以在應用EPS2008地理信息工作站(以下簡稱EPS2008)進行數據轉換的技術環節對成果數據的質量起著至關重要的作用,在下面的篇幅中,應用具體實例針對這個環節進行了簡單論述。
1 常見的GIS空間數據格式及其特點
1.1 GIS空間數據格式的特點
空間數據是指用來表示空間實體的位置、形狀、大小及其分布特征諸多方面信息的數據,它主要應用是點、線、面以及實體等基本空間數據結構,空間數據除了具有數據的基本特征之外,還具有空間特征、屬性特征、時間特征三個顯著的特征,根據空間數據的特征可以將空間數據分為屬性數據、幾何數據以及關系數據三大類。作為GIS的操作對象,雖然這些不同格式的空間數據都具有自身的特點,但這些GIS空間數據中所有的要素都是以點、線、拓撲面、注記以及實體等形式進行表示,在不同的軟件中依據要素所包含的屬性信息進行符號化表現。
1.2 常見的GIS空間數據格式
目前,測繪市場上比較常見的GIS空間數據包含有由ArcInfo軟件生產的E00、Coverage、Shape格式,由MapInfo軟件生產的Tab、Mif格式,由MapGIS軟件生產的Wt、Wat等格式,以及由ArcGIS軟件生產的Mdb格式等等。EPS2008自身的數據格式為Edb格式,本文主要論述的是怎樣將Edb格式的空間數據與以上幾種常見的其他格式空間數據進行轉換。
2 EPS2008中GIS空間數據的輸入
由于EPS2008是GIS軟件中的一種,所以針對其他格式的GIS空間數據的導入過程相對簡單,數據中的屬性信息在轉換為Edb文件時將被替換為模板中定義的同名屬性字段,在屬性表中沒有名稱對應的屬性字段,會被存放在外部信息中,在編輯操作過程中,都可以被引用。
3 EPS2008中GIS空間數據的輸出
EPS2008中GIS空間數據的輸出需要編制腳本來完成,在腳本中包含以下三部分(如圖1)。
3.1 輸出參數的設定
輸出參數包含輸出數據格式、輸出范圍、注記輸出方式、輸出的路徑名、輸出使用的編碼對照表以及注記分類對照表等等。下面的語句是輸出E00數據的樣例:
SSProcess.SetDataXParameter \"DataType\",\"3\"
SSProcess.SetDataXParameter \"FeatureCodeTBName\",\"FeatureCodeTB_10000\"
SSProcess.SetDataXParameter \"SymbolScriptTBName\",\"SymbolScriptTB_10000\"
SSProcess.SetDataXParameter \"NoteTemplateTBName\",\"NoteTemplateTB_10000\"
SSProcess.SetDataXParameter \"ExportPathName\",\"\"
SSProcess.SetDataXParameter \"DataBoundMode\",\"0\"
SSProcess.SetDataXParameter \"SymbolExplodeMode\",\"2\"
SSProcess.SetDataXParameter \"LayerUseStatus\",\"1\"
SSProcess.SetDataXParameter \"ExportLayerMode\",\"1\"
SSProcess.SetDataXParameter \"ExplodeNoteStatus\",\"1\"
SSProcess.SetDataXParameter \"ExportArcInfoNoteToPoint\",\"0\"
SSProcess.SetDataXParameter \"ExportEmptyLayer\",\"0\"
………
3.2 圖層輸出關系的對照
在輸出的腳本中定義需要輸出的圖層的個數、名稱以及輸出圖層名對照關系,
startIndex = 0
SSProcess.SetDataXParameter \"ExportLayerCount\",\"77\"
SSProcess.SetDataXParameter \"ExportLayer\" CStr(AddOne(startIndex)),\"測量控制點\"
SSProcess.SetDataXParameter \"ExportLayer\" CStr(AddOne(startIndex)),\"數學基礎\"
SSProcess.SetDataXParameter \"LayerRelationCount\",\"77\"
startIndex = 0
SSProcess.SetDataXParameter \"LayerRelation\" CStr(AddOne(startIndex)),\"測量控制點:ControlPt\"
SSProcess.SetDataXParameter \"LayerRelation\" CStr(AddOne(startIndex)),\"數學基礎:GridLe\"
………
3.3 屬性字段輸出的對照
在輸出GIS空間數據的腳本中,定義輸出的屬性字段的對照關系是必不可少的部分,下面以面狀房屋層來舉例說明屬性字段輸出的對照過程:
………
Function BuildingPy(LayerName,dataType,ByRef startIndex)
SSProcess.SetDataXParameter \"TableFieldDef\" CStr( AddOne(startIndex)), layerName \",\" dataType \",gb,gb,,,dbLong,10,0\"
SSProcess.SetDataXParameter \"TableFieldDef\" CStr( AddOne(startIndex)), layerName \",\" dataType \",name,name,,,dbText,60,0\"
SSProcess.SetDataXParameter \"TableFieldDef\" CStr( AddOne(startIndex)), layerName \",\" dataType \",month,month,,,dbText,10,0\"
End Function
………
4 數據轉換過程中可能出現的問題及解決方法
(1)如果輸出的數據為E00格式數據時,在數據輸出之前首先需要依據edb數據中符合拓撲關系的面狀要素提取相對應的弧段及面心點,之后將弧段、面心點與對應的面狀要素建立起關聯,這些處理過程可以編寫在腳本中應用程序在數據輸出前對edb數據進行自動處理。這樣才能保證輸出后的E00數據中的拓撲關系完整、正確。當然這些都是建立在edb數據本身拓撲關系正確的前提下,所以在數據輸出之前拓撲關系的嚴格檢查就成了必不可少的步驟。(2)在輸出不同格式的空間數據時,要注意注記的輸出方式的設定,EPS2008中注記可以按照需要將注記按照點或注記的形式輸出,注記又分為點狀注記及線狀注記,必須仔細檢查輸出結果中的注記是否存在丟失、不能正常顯示或由于不同軟件中定位方式不同造成的移位等錯誤情況,針對這些情況不斷調整注記輸出參數的定制,才能保證成果數據中的注記準確、美觀。(3)不同的軟件之間數據處理的方式存在差異,數據在轉換過程中難免會造成個別數據丟失、錯誤以及精度損失、拓撲結構的變化等情況,為了盡量避免這種情況對成果質量的影響,在數據轉換后還需要在ArcGis、MapGis等軟件中對成果數據進行認真細致的檢查。
5 結語
隨著GIS空間數據越來越廣泛的被應用于社會的各個領域,GIS空間數據的格式轉換工作已成為測繪產品生產過程中極其重要的步驟,這個過程中需要技術人員不僅對EPS2008熟練掌握,還要對所輸出的數據格式有相當程度的了解,并能較熟練的應用生產成果數據的軟件,這樣才能使輸出的數據的更加完美。文中結合實例論述了不同格式的GIS空間數據在EPS2008中輸入輸出的流程及技術要點,希望在同行們實際項目的生產作業過程中有一定的參考價值,也希望在今后的工作中不斷的積累經驗,總結數據轉換過程中各類問題的解決方式。由于作者在經驗和知識儲備等方面的局限,文中難免存在粗淺錯漏之處,誠懇的希望得到前輩及同行們的批評指證。
參考文獻
[1]北京清華山維新技術開發有限公司[R].模板控制技術.北京.
[2]北京清華山維新技術開發有限公司[R].EPS2008平臺說明書終稿.北京.