蔡云鐙
(福州市勘測院,福建 福州 350108)
清華山維EPS與南方CASS數據相互轉換的應用研究
蔡云鐙*
(福州市勘測院,福建 福州 350108)
綜合分析研究清華山維EPS與南方CASS平臺的數據,建立EPS與CASS數據間的信息映射,通過不同方法和轉換流程,分別使用VbScript和VB語言開發轉換工具,實現CASS數據與EPS數據快速互相轉換,并應用于實際數據生產。
EPS;CASS;相互轉換
目前測繪軟件種類繁多,許多測繪單位采用的測繪平臺各不相同。由于不同測繪平臺使用各自獨立的編碼系統,而且數據結構、數據模型等也存在巨大差異,為不同測繪單位之間、測繪與國土、規劃及房管等部門間的成果共享帶來困難,使得測繪數據利用效率低下,甚至有時不得不進行重復的數據生產。為解決不同單位、不同部門間的數據成果共享的問題,迫切需要實現跨平臺測繪數據的相互轉換。
本文研究清華山維EPS與南方CASS不同平臺數據之間的數據轉換問題,分析比較兩個平臺之間的數據結構,建立EPS與CASS數據間的信息映射,并對特殊要素對應進行程序處理,實現EPS與CASS間的數據相互轉換。
清華山維EPS 2008是北京清華山維新技術開發有限公司研發的面向測繪、基礎地理信息生產的軟件系統,軟件以地理信息系統應用的角度構建數據模型,綜合CAD技術與GIS技術,以數據庫為核心,將圖形和屬性關聯為一體,軟件廣泛應用于地形、地籍、管線、房產、林業等多個領域。
CASS軟件是廣州南方測繪儀器有限公司基于AutoCAD平臺開發的一套集地形、地籍、空間數據建庫、工程應用等功能為一體的軟件系統。軟件用戶涵蓋測繪、國土、規劃、房產、市政、環保、地質、交通、水利、電力、礦山及相關行業,是目前最主流的大比例尺地形圖成圖系統之一。
3.1 EPS至CASS數據轉換的基本思路
EPS公開的對外數據交換文件格式為“*.EXF”,CASS數據的交換文件是“*.CAS”,兩者都是文本文件。通過VB編寫轉換工具,以兩個平臺的要素編碼映射數據庫為基礎,實現EXF文件到CAS文件的轉換。這種方式需要先將EPS的EDB文件輸出為EXF交換格式,經過轉換工具轉換為CAS文件,最后在CASS中讀入數據交換文件,生成DWG圖形文件。
通過兩個平臺的交換文件進行數據轉換,優點在于僅需分析掌握EXF和CAS交換文件的數據結構,而無須進行CAD的二次開發,軟件實現簡單快捷。
圖1 EPS轉換為CASS的流程
3.2 CASS至EPS數據轉換的基本思路
通過VBScript語言編寫數據轉換工具,基于兩個平臺的要素編碼映射表,實現CASS的DWG文件到EPS的EDB文件的直接轉換。
圖2 CASS轉換為EPS的流程
4.1 EPS數據分析
(1)EPS文件結構分析
EPS平臺的圖形數據文件格式為*.EDB,這是基于EPS模板建立的工程文件,可以使用微軟的Microsoft Office Access打開。EDB文件中點、線、面、文字注記的空間信息分別存放在GeoPointTB、GeoLineTB、GeoAreaTB和MarkNoteTB四個不同的數據表中,各圖層地物要素的屬性信息分別存放在以“圖層名+屬性表”形式命名的屬性表中,EDB文件的基本參數存放在IniInfoTB表中,包含文件使用的模板名稱、版本、投影信息、圖幅信息等內容。
(2)EXF文件結構分析
EXF(data Exchange Format)是EPS平臺公開的文本型對外數據交換格式,EXF文件中所描述的信息與EDB圖形文件中的信息完全兼容,可以理解為EXF文件是EDB數據存在的另一種形式。EXF有兩個版本:EXF1.0和EXF2.0,EXF1.0是早期數據的交換格式,EXF2.0是新版交換格式,兼容EXF1.0。在本文研究的EPS與CASS數據的相互轉換中,使用的是EXF2.0格式。
EXF文件中數據的組織以段為單位,段的開始和結束由標識符進行說明。一個EXF文件中可以有很多段,每段描述一種形式的數據,一個完整EXF2.0文件的段結構共16段,分別表示文件頭、編碼描述段、注記分類描述段、屬性表結構描述段、點對象信息描述段、線對象信息描述段、面對象信息描述段、注記對象信息描述段、擴展屬性數據段、塊定義描述段、多媒體屬性數據段、對象的附加信息段、影像數據段、格網數據段、三角網數據段和OLE對象數據段。
在EPS與CASS數據的相互轉換中,較常用到的是文件頭、點對象信息描述段、線對象信息描述段、面對象信息描述段、注記對象信息描述段。一般格式表示如下:
HeadBegin 文件頭開始
。。。 文件頭內容
HeadEnd 文件頭結束
。。。
PointBegin 點對象信息描述段開始
。。。 點對象信息描述段內容
PointEnd 點對象信息描述段結束
LineBegin 線對象信息描述段開始
。。。 線對象信息描述段內容
LineEnd 線對象信息描述段結束
PolygonBegin 面對象信息描述段開始
。。。 面對象信息描述段內容
PolygonEnd 面對象信息描述段結束
AnnotationBegin 注記對象信息描述段開始
。。。 注記對象信息描述段內容
AnnotationEnd 注記對象信息描述段結束
文件頭中標識了數據的版本號、長度、坐標單位、數據范圍、比例尺等基本信息,點、線、面及注記的信息描述段分別記錄了對象的ID號、編碼、層名、線的特征類型、名稱、點數、坐標等各類具體信息。
4.2 CASS數據分析
在本文研究的EPS與CASS數據的相互轉換中,從CASS至EPS的數據轉換是通過數據轉換工具讀入CASS的DWG格式文件進行轉換,這種轉換方式無須了解CASS圖形DWG文件的具體數據結構、數據模型;而從EPS至CASS的數據轉換,需要具體分析兩個平臺的交換文件,因此本文僅對CASS交換文件進行數據分析。
CASS7.0的數據交換文件后綴是“.CAS”,CAS文件可以用記事本等文本編輯工具打開,其總體結構如下:
CASS7
西南角坐標
東北角坐標
[層名]
實體類型
……
nil
實體類型
……
nil
[層名]
實體類型
……
nil
END
CASS7.0的CAS文件以“CASS7”開頭,“END”結尾,第二行和第三行表示CASS圖形文件范圍的左下角(西南)和右上角(東北)的坐標。從文件四行開始表示CASS文件各個圖層的地物要素,以實體類型名稱開始,以“nil”作為實體要素的結束,在同一層中可連續表達多個實體類型。CAS文件中地物要素的表達有八種實體類型,分別是點(POINT)、線段(LINE)、弧線(ARC)、圓(CIRCLE)、復合線(PLINE)、樣條線(SPLINE),文字注記(TEXT)以及特殊地物(SPECIAL),具體每一種實體類型的說明,可以在CASS7.0的幫助文件中找到詳細注解,本文就不做具體闡述。
5.1 EPS至CASS數據轉換的實現
EPS至CASS數據轉換的基礎是兩個平臺的編碼映射數據庫,主要包含要素編碼映射表和文本注記編碼映射表,由于兩個平臺的編碼體系不同,因此需要逐一對EPS中的地物要素建立映射至CASS平臺的編碼對照體系。
圖3表示的是EPS至CASS轉換要素編碼映射表,包含EPS要素編碼、對應的CASS圖層、相應的CASS要素編碼、地物要素名稱、相應的CASS實體類型等。由于EPS中要素總量多于CASS,部分EPS的要素無法在CASS中直接找到對應編碼,因此需要對EPS地物要素進行梳理,并在CASS中添加自定義要素,將EPS獨有的要素與自定義的CASS要素進行編碼對應。
圖3 EPS至CASS轉換要素編碼映射表
在EPS中文字注記與點、線、面等對象不同,注記的編碼是注記分類號,CASS中文字注記由TEXT實體類型表示,因此可以將文字注記的映射信息單獨保存,包含EPS注記分類號、文字注記名稱、相應的CASS編碼以及相應的CASS圖層等信息,如圖4所示。
圖4 EPS至CASS轉換文字注記編碼映射表
在建立了兩個平臺的編碼映射數據庫并掌握兩個平臺的文本交換文件的數據結構之后,可以開發編寫轉換工具,讀取EXF文件中的文件頭、點、線、面及文字注記等數據信息,生成CAS文件:CAS的西南、東北角坐標由EXF的文件頭信息確定;CASS的層名和實體類型等信息,可通過查找編碼映射數據庫獲取相應CASS編碼、CASS圖層和實體類型,逐一寫入CAS文件。EPS至CASS轉換程序的流程如圖5所示。
在數據轉換過程中,需要一些注意特殊要素,如:①臺階、地下建筑地表出入口這些要素,在EPS與CASS中繪制方向、點位順序不同,轉換時需要進行處理;②面中帶島的要素,如帶天井的高層房屋、帶島的植被面(帶墳的山林)等,需要識別EXF中的特征點(內部島的起始點),依據每個特征點進行島的相應處理;③圓形地物,EPS中的圓有多種繪制方法,但歸根結底一共分為兩類,一種是三點圓(由圓上任意3點確定一個圓),另一種是由圓心和半徑確定的圓,CASS交換文件中繪制圓,需要提供圓心坐標和半徑,因此對于3點圓,應通過幾何運算,得到圓心和半徑;④文本注記的處理,EPS中普通注記的線型表示為單點,點坐標為文本注記的中心點位置,而CASS中注記坐標點位于第一個文字的左下角位置,轉換時需要計算獲取相應坐標,避免文本注記的位置發生偏移;⑤斜坡等特殊類(E類),由于EPS中斜坡是完整閉合的(由坡頂線、坡底線構成),在轉換時需要注意識別EXF文件中拐點,在輸出CAS交換文件時,斜坡的坡頂線在拐點處終止,坡底線在拐點的下一個點處開始。未加固路堤、已加固路堤這些E類要素,EPS中要素的坐標是完整的(由坡頂線、坡底線組成),CASS中僅由坡頂線進行表達,因此在輸出CAS文件時,應確切識別拐點的位置,將拐點作為路堤要素坐標的終點。
圖5 EPS至CASS數據轉換流程
5.2 CASS至EPS數據轉換的實現
CASS至EPS的數據轉換基于兩個平臺的編碼映射表實現,圖6表示的是“CASS至EPS轉換編碼映射表”,表中描述了CASS數據所在的圖層、要素名稱、CASS要素編碼和對應的EPS編碼。通過VBScript語言,編寫數據轉換工具,實現CASS數據至EPS數據的轉換。
由于CASS平臺與EPS平臺對各類地物的數據表達、數據結構等有相同、也有不同之處,因此轉換程序時讀入CASS數據后,對文件中各類要素應區分處理:
圖6 CASS至EPS轉換編碼映射表
數據表達、數據結構一致的要素,通過編碼映射表查找對應的EPS編碼,進行EPS編碼替換;數據表達、數據結構不一致的要素,轉換程序需要進行特殊處理后轉換為EPS要素,這也是轉換的難點所在,比如:①依比例涵洞、各類橋梁等要素,需要判斷CASS中繪制的方向(順時針/逆時針),由于EPS中要素方向一般為逆時針方向,如果CASS要素方向為順時針,轉換時需要逆序輸出,如果CASS要素方向為逆時針,順序輸出即可;②帶有方向的點要素,如CASS中不依比例的門墩、電線入地口、流向等這些帶有方向的點要素,在EPS中相對應的要素屬于兩點比例線類型(P類)即需要兩個點的坐標才能繪制一個要素,這時需要通過點要素的旋轉角度,通過幾何運算得到另一個點的坐標;③文本注記,轉換程序查找編碼映射表中CASS文本對應的EPS注記分類號,替換文本編碼將CASS文本轉換為EPS注記;④斜坡等特殊類(EPS中E類)處理,由于在EPS中繪制斜坡需要由坡頂線、拐點、坡底線構成,并且要素需要閉合,因此在CASS數據的生產作業過程中需要嚴格保留坡頂線和坡底線,在轉換過程中,可以通過斜坡的坡頂線進行空間幾何運算找到坡頂線所匹配對應的坡底線,獲取了坡頂線和坡底線的各自坐標后,再判斷坡頂線和坡底線的走向(同向反向)以確定拐點的位置,就可以在同一位置自動重新生成斜坡。對于未加固路堤、已加固路堤,這種EPS中屬于特殊類(E類)需要坡頂線、坡底線且必須閉合,但CASS中僅有坡頂線,缺少坡底線的要素,由于EPS和CASS平臺之間數據結構和表達的不同,還需要在轉換后期根據輪廓線進行手工的修改處理。CASS至EPS數據轉換流程如圖7所示。
6.1 EPS轉換為CASS數據的應用
EPS至CASS的數據轉換工具,在福州城區EPS地形圖轉換至CASS數據的過程中得到廣泛應用,轉換面積約 42 km2,圖8是EPS數據至CASS數據轉換前后的圖形對比。通過該轉換工具,實現了EPS數據至CASS數據的快速、高效轉換,轉換后數據的圖面表達、要素編碼等指標均滿足CASS平臺制圖要求,同時數據精度高,符合國家標準。
圖8 EPS數據至CASS數據轉換前后對比
6.2 CASS轉換為EPS數據的應用
CASS至EPS的數據轉換工具,成功應用于福州連江CASS地形圖至EPS數據的轉換、長樂CASS地形圖成果至EPS數據的轉換、 福清CASS地形圖至EPS數據的轉換、馬尾CASS地形圖至EPS數據轉換等多地市的基礎地形圖數據轉換項目,數據轉換面積共約 59 km2,圖9顯示的是CASS數據轉換至EPS數據的前后圖形對比,從圖中可以看出,轉換后EPS數據的符號、顏色、線型等各類指標均符合EPS平臺的制圖標準。經實際驗證,該工具轉換效率高、運行穩定、數據成果精確。
圖9 CASS數據轉換至EPS數據前后對比
本文通過不同方法,分別使用VbScript和VB語言開發轉換工具,實現了CASS數據與EPS數據的互相轉換,并已在數據生產中大量投入使用,經實際生產驗證,該工具轉換速度快、效率高、轉換前后數據準確一致,具有很高的應用價值。
[1] 申娜,張福利,王輝. 南方CASS交換文件的結構分析和應用[J]. 城市勘測,2008(6):129~131.
[2] 宋志輝,王建軍,唐弢等. 測圖數據轉換為CASS數據成圖的研究及實現[J]. 工程地球物理學報,2011,8(4).
[3] 劉聰. 南方CASS與清華山維EPS系統數據轉換[J]. 浙江建筑,2010,27(3):27~29.
[4] 琚鋒,錢強強,錢中杰. 清華山維SunwayGIS與南方CASS數據轉換研究[J]. 地理空間信息,2011,9(3):41~43.
[5] 郭昕,武娟. 基于C#語言的EPSW與CASS數據格式轉換[J]. 北京測繪,2010(1):55~58.
The Application Research of SunWay EPS and South CASS Data Interconversion
Cai Yundeng
(Fuzhou Investigation and Surveying Institute,Fuzhou 350108,China)
Through comprehensive analysis of data in Sunway EPS and South CASS,established the information mapping between EPS and CASS data,by different methods and conversion process,using VBScript and VB language developed conversion tools respectively,it was implemented the fast data interconversion between EPS and CASS and was applied to actual data production.
EPS;CASS;data interconverson
1672-8262(2017)03-136-05
P209
B
2016—10—31
蔡云鐙(1977—),女,工程師,主要從事測繪地理信息數據管理與研究。