余粉香, 郭麗萍, 姚誠勤, 張 挺
(中國人民解放軍61175部隊,江蘇 南京 210049)
S-57是IHO國際海道測量組織規(guī)定的官方電子海圖數(shù)據(jù)傳輸標準。由于數(shù)據(jù)存儲規(guī)范、標準完備、便于海圖更新和修正等優(yōu)點,使其在國內(nèi)外民用、軍用領(lǐng)域得到了大量的應(yīng)用[1],常作為更新海部地理信息數(shù)據(jù)的重要數(shù)據(jù)源。目前,數(shù)字地圖生產(chǎn)中,通?;赟-57海圖對應(yīng)的紙質(zhì)海圖進行海部要素的采集更新,這種方式人工采集工作量比較大,更新效率不高,而且掃描紙質(zhì)海圖存在掃描誤差,人工采集存在采集誤差,導致更新后的數(shù)據(jù)精度有所降低。為了提高S-57海圖數(shù)據(jù)利用的效率和準確率,本文在分析S-57海圖數(shù)據(jù)格式和表達內(nèi)容的基礎(chǔ)上,研究如何將S-57海圖數(shù)據(jù)快速轉(zhuǎn)換為基礎(chǔ)地理信息數(shù)據(jù),達到快速更新數(shù)字地圖中海部要素的目的。
S-57海圖是以描寫海域地理信息和航海信息為主的空間數(shù)據(jù)的有序集合,通常S-57海圖文件是以擴展名為.000文件格式存儲的[2],命名為:CCXXXXXX.000,CC為生產(chǎn)機構(gòu)代碼,XXXXXX為文件唯一標識(采用大寫字母和數(shù)字)[3]。S-57海圖可以包含一個或多個數(shù)據(jù)圖層。通過數(shù)字海圖的分層模型,區(qū)分地理空間特征類別,便于數(shù)據(jù)顯示、查詢和要素選取等操作。S-57海圖數(shù)據(jù)主要有以下幾方面特點。
1.1.1 封裝性
S-57海圖數(shù)據(jù)采用的封裝結(jié)構(gòu)是一種高壓縮的數(shù)據(jù)交換格式,是用戶不可見的.000數(shù)據(jù)格式,數(shù)據(jù)結(jié)構(gòu)較為復(fù)雜[4],數(shù)據(jù)按ISO/IEC8211封裝,8211提供了獨立于機器構(gòu)造的文件格式,這種數(shù)據(jù)交換結(jié)構(gòu)便于數(shù)據(jù)規(guī)范化傳輸,但不便于數(shù)據(jù)操縱[5],直接讀取難度較大,轉(zhuǎn)換比較復(fù)雜。
1.1.2 標準化
S-57海圖是基于S-57標準生產(chǎn),這個標準由引言、理論數(shù)據(jù)模型、數(shù)據(jù)結(jié)構(gòu)、IHO物標類目及ENC產(chǎn)品規(guī)范等部分組成,定義了S-57海圖數(shù)據(jù)的內(nèi)容、規(guī)則和方法。S-57標準將真實世界實體定義為描述特征和空間特征兩種[6],即特征物標和空間物標。物標突出的是客觀實體的屬性,物標類目分為物標和物標屬性,物標包含了地理物標、元物標、組合物標和制圖物標,每類物標都有固定的代碼。物標屬性分為特征物標屬性、本國語言描述的屬性、空間和元物標屬性,每一種物標屬性都有其特定的代碼,在進行數(shù)字海圖轉(zhuǎn)換時,主要是進行地理物標的轉(zhuǎn)換[7]。研讀S-57海圖數(shù)據(jù)的這些標準,是S-57海圖數(shù)據(jù)轉(zhuǎn)換的前提。
S-57海圖采用的坐標系為WGS84[8],我國發(fā)布的電子海圖坐標系為2000國家大地坐標系(簡稱CGCS2000),由于CGCS2000與WGS84坐標系基本重合且因扁率的微小差異所引起的最大坐標差值在0.15 mm以內(nèi),因而兩者在海圖生產(chǎn)中等同使用,無須進行改算[9]。坐標以地理位置(經(jīng)緯度)記錄,這和基礎(chǔ)地理信息數(shù)據(jù)一致,幾何位置轉(zhuǎn)換前后不做改變。而S-57海圖數(shù)據(jù)的分層、屬性存儲方式不同于基礎(chǔ)地理信息數(shù)據(jù),經(jīng)分析主要有以下幾方面特征需要在轉(zhuǎn)換過程中加以解譯和重新賦值。
1.2.1 數(shù)據(jù)分層
數(shù)字海圖表達的主要內(nèi)容是海洋地理信息,分層必須滿足航海需要,還應(yīng)考慮數(shù)據(jù)的采集、要素間拓撲關(guān)系處理、數(shù)據(jù)顯示和傳輸?shù)纫蛩?。海圖數(shù)據(jù)的主要內(nèi)容包括陸地、岸線結(jié)構(gòu)物、島嶼、礁石、水深、航標、燈塔、航道、光纜等要素,而基礎(chǔ)地理信息數(shù)據(jù)主要包括居民地、交通、管線、水系、境界與政區(qū)等要素,轉(zhuǎn)換過程中要將海圖數(shù)據(jù)的內(nèi)容轉(zhuǎn)換到基礎(chǔ)地理信息數(shù)據(jù)對應(yīng)的圖層內(nèi),并賦上對應(yīng)的要素編碼。
1.2.2 屬性字段
S-57海圖數(shù)據(jù)中有很多屬性描述字段被定義為枚舉型(E)或者列表型(L)。這兩個屬性類型的輸入值已做預(yù)先定義,規(guī)定了屬性的相互關(guān)聯(lián)、特殊規(guī)定和確切含義[3]。其中,枚舉型必須選擇一個且只能選擇一個預(yù)先定義好的正確值,在相應(yīng)的屬性字段中存儲的是0、1、2……;列表型可以從預(yù)先定義的屬性值列表中選出一個或多個值,在相應(yīng)的屬性字段中存儲的是0、1、2……或者它們的組合,代表不同的屬性值。在將S-57海圖數(shù)據(jù)轉(zhuǎn)換為其他數(shù)據(jù)格式時,需要將此類型的屬性字段解析為對應(yīng)的屬性值。這些類型屬性字段對照關(guān)系整理為Excel表,目前已有1 000余條對照關(guān)系,其數(shù)據(jù)結(jié)構(gòu)如表1所示,記錄了字段代碼、標識號、字段值等屬性。
表1 S-57海圖屬性字段對照關(guān)系數(shù)據(jù)結(jié)構(gòu)
轉(zhuǎn)換過程中,需要根據(jù)海圖屬性字段對照關(guān)系表(Excel表),將S-57海圖數(shù)據(jù)中的此類型屬性值進行解譯,賦上對應(yīng)的字段值。即把0、1、2……標識號解譯為相應(yīng)的字段值,以BCNSHP字段為例,如表2所示,2對應(yīng)屬性值“whity”,3對應(yīng)屬性值“beacon tower”,依此類推。
表2 S-57海圖屬性字段對照關(guān)系樣例
S-57是一個數(shù)據(jù)交換標準,數(shù)據(jù)結(jié)構(gòu)部分按數(shù)據(jù)結(jié)構(gòu)、編碼一般協(xié)議、元記錄編碼協(xié)議、特征記錄編碼協(xié)議、空間記錄編碼協(xié)議、關(guān)系編碼、結(jié)構(gòu)應(yīng)用、數(shù)據(jù)改正等八個方面按IS0/IEC 8211標準進行數(shù)據(jù)封裝,因而轉(zhuǎn)換時先要將S-57數(shù)據(jù)進行解包。解包過程是按照S-57格式定義,讀取二進制格式文件,將S-57格式數(shù)據(jù)逐條翻譯成空間矢量記錄和屬性字段,過程比較復(fù)雜,工作量較大。本文從數(shù)據(jù)應(yīng)用的角度研究S-57海圖數(shù)據(jù)的快速轉(zhuǎn)換。FME是一套完整的訪問空間數(shù)據(jù)的解決方案,可讀寫和轉(zhuǎn)換100余種格式的空間數(shù)據(jù)。本文基于FME軟件讀取S-57數(shù)據(jù)基礎(chǔ)上,重點研究S-57海圖數(shù)據(jù)內(nèi)容解譯、與數(shù)字地圖數(shù)據(jù)的對應(yīng)關(guān)系,通過轉(zhuǎn)換方案設(shè)計和轉(zhuǎn)換流程定制,完成S-57海圖數(shù)據(jù)的快速轉(zhuǎn)換。
轉(zhuǎn)換流程如圖1所示,在FME讀取S-57海圖數(shù)據(jù)過程中,進行水深值賦值和屬性字段解譯,將S-57海圖轉(zhuǎn)換為shp格式數(shù)據(jù),再通過shp轉(zhuǎn)換模塊將shp格式數(shù)據(jù)轉(zhuǎn)換為基礎(chǔ)地理信息數(shù)據(jù)。
圖1 S-57海圖數(shù)據(jù)轉(zhuǎn)換流程
2.1.1 編碼和分層對照
S-57海圖數(shù)據(jù)中沒有具體的要素編碼,它是按照圖層和屬性值來確定某一類要素的。而基礎(chǔ)地理信息數(shù)據(jù)是有一套完整的編碼體系,數(shù)字地圖是根據(jù)編碼體系進行符號化。在將S-57海圖數(shù)據(jù)轉(zhuǎn)為基礎(chǔ)地理信息數(shù)據(jù)時,先給轉(zhuǎn)換后的要素賦上要素編碼,明確要素所在要素層。為此,需要編制編碼對應(yīng)表,并做好圖層對應(yīng)。以SOUNDG圖層為例,在S-57海圖數(shù)據(jù)中是水深點層,在轉(zhuǎn)換時編碼直接賦為相應(yīng)的水深點編碼。
2.1.2 屬性信息對照
由于基礎(chǔ)地理信息數(shù)據(jù)每一要素層的屬性信息都有其固定的數(shù)據(jù)結(jié)構(gòu),為此,在編制屬性信息對應(yīng)表時,是以基礎(chǔ)地理信息數(shù)據(jù)屬性信息為基礎(chǔ),將S-57海圖數(shù)據(jù)的屬性信息與其對應(yīng)。對于兩者屬性項有對應(yīng)關(guān)系的進行一一對應(yīng),而兩者不能對應(yīng)的分三種情況處理:一是S-57海圖數(shù)據(jù)的屬性信息對數(shù)字地圖用處不大的直接舍去,二是對基礎(chǔ)地理信息需要的屬性但S-57海圖數(shù)據(jù)沒有的屬性賦統(tǒng)一的屬性值,三是S-57海圖數(shù)據(jù)有的屬性項雖然不能與基礎(chǔ)地理信息一一對應(yīng),但對數(shù)字地圖有用的,在轉(zhuǎn)換后的其他屬性項里進行說明。以SOUNDG圖層為例,QUASOU、POSACC、QUAPOS字段分別描述水深測量特性、位置精度和位置性質(zhì),能夠反應(yīng)出該水深點是精測水深或者不精確水深,這對數(shù)據(jù)分析和地圖制圖影響較大,建議此類屬性信息進行保留。
2.1.3 水深值賦值
S-57海圖數(shù)據(jù)中水深點(SOUNDG)圖層屬性中不存儲水深值屬性字段,水深點坐標是用三維坐標(x,y,z)存儲的,其中,z值對應(yīng)該水深點的水深值。在將S-57海圖數(shù)據(jù)轉(zhuǎn)換過程中,需要讀取z值坐標,再將z值賦值到水深值(Depth)屬性項中。具體流程如圖2所示。
圖2 水深值賦值流程
2.1.4 拼接處理與裁剪分幅
S-57海圖數(shù)據(jù)以地理單元為分幅方式,海圖文件都是矩形[10],類似基礎(chǔ)地理信息數(shù)據(jù)的圖幅,但兩者分幅規(guī)則不同,因而將S-57海圖數(shù)據(jù)轉(zhuǎn)換為基礎(chǔ)地理信息數(shù)據(jù)時,需要進行數(shù)據(jù)的拼接和裁減處理,如圖3所示。
圖3 拼接處理與裁剪分幅
為了減少S-57海圖數(shù)據(jù)分析和編程的工作量,本文設(shè)計了基于FME的數(shù)據(jù)轉(zhuǎn)換流程。整個轉(zhuǎn)換過程中,主要分為兩部分:一是基于FME將S-57海圖數(shù)據(jù)轉(zhuǎn)為shp格式的數(shù)據(jù),這一過程中,除了做格式轉(zhuǎn)換外,還要進行屬性字段解譯,確保轉(zhuǎn)換后的shp數(shù)據(jù)內(nèi)容是完整的;二是通過shp轉(zhuǎn)換模塊將shp格式的數(shù)據(jù)轉(zhuǎn)換為基礎(chǔ)地理信息數(shù)據(jù),這一過程主要工作是制作編碼和分層對照表、屬性信息對照表,基于這些對照表實現(xiàn)數(shù)據(jù)轉(zhuǎn)換。
以SOUNDG圖層為例,基于FME軟件將S-57海圖數(shù)據(jù)轉(zhuǎn)換為shp數(shù)據(jù)流程,如圖4所示。
圖4 SOUNDG圖層轉(zhuǎn)換為shp數(shù)據(jù)定制流程圖
將shp數(shù)據(jù)轉(zhuǎn)換為基礎(chǔ)地理信息數(shù)據(jù)時,首先,要定義屬性轉(zhuǎn)換控制,以SOUNDG圖層為例,Depth字段對應(yīng)為高程值,QUASOU字段對應(yīng)測深質(zhì)量等。其次,做好編碼和分層對照,如SOUNDG圖層轉(zhuǎn)換后統(tǒng)一賦相應(yīng)的水深點編碼,圖層對應(yīng)到地貌層。
根據(jù)本文的方法,定制了S-57海圖數(shù)據(jù)轉(zhuǎn)換流程,基于FME實現(xiàn)了S-57海圖數(shù)據(jù)到基礎(chǔ)地理信息數(shù)據(jù)的轉(zhuǎn)換。為測試該方法的可行性,本文選取了多個地區(qū)大小不等的S-57海圖數(shù)據(jù)(*.000格式)做實驗,先把*.000轉(zhuǎn)為shp文件,再將shp文件轉(zhuǎn)換為基礎(chǔ)地理信息數(shù)據(jù),轉(zhuǎn)換結(jié)果均符合基礎(chǔ)地理信息數(shù)據(jù)要求。以某地區(qū)S-57海圖數(shù)據(jù)為例,轉(zhuǎn)換前后符號化后對比如圖5所示,轉(zhuǎn)換前后數(shù)據(jù)量對比如表3所示。
表3 某地區(qū)S-57海圖數(shù)據(jù)轉(zhuǎn)換前后數(shù)據(jù)量對比
圖5 某地區(qū)S-57海圖數(shù)據(jù)轉(zhuǎn)換前后對比圖
S-57海圖數(shù)據(jù)轉(zhuǎn)換為基礎(chǔ)地理信息數(shù)據(jù)是一項復(fù)雜而繁瑣的工作,本文所涉及到的關(guān)鍵技術(shù)和部分特殊問題處理會因S-57海圖數(shù)據(jù)版本的不同而發(fā)生部分參數(shù)調(diào)整,但技術(shù)方案和處理思路同樣適用。
實踐證明:本文提出的S-57海圖數(shù)據(jù)轉(zhuǎn)換為基礎(chǔ)地理信息數(shù)據(jù)方案,有效降低了S-57海圖數(shù)據(jù)直接轉(zhuǎn)換為基礎(chǔ)地理信息數(shù)據(jù)的難度,流程可控,簡單易操作,對作業(yè)人員專業(yè)要求不高,轉(zhuǎn)換正確率高,可以有效提高數(shù)字地圖中海部要素更新效率。