Dnc與enc數據模型的轉換方法
2023-05-10 14:59:41 3
專利名稱:Dnc與enc數據模型的轉換方法
技術領域:
本發明屬於數字圖形處理領域,尤其是一種DNC與ENC數據模型的轉換方法。
背景技術:
DNC (Digital Nautical Chart)和ENC(Electronic Nautical Chart)是描述矢量數字海圖的兩大數據模型,數據中都包含了為海上安全航行所必需的各類要素。這兩種數據模型主要存在以下差異(I)數據用途DNC是美軍制定的內部標準,主要面向北約;ENC則是國際海道測量組織(IHO)制定的國際標準,面向各國船隻的海上導航,傾向但不局限於商業用途;(2)數據標準DNC數據存儲遵照VPF標準,而ENC則遵照S-57標準;(3)編碼體系DNC和ENC各自具有一套要素和屬性的分類編碼體系;(4)要素類型DNC包含了點、線、面、文本、複雜要素五種要素,而ENC中只有點、線、面三種;(5)拓撲結構DNC採用全拓撲結構,而ENC採用「點-鏈」拓撲;(6)數據組織DNC將單個海圖數據及其索引分別存儲在38類文件中,每個海圖數據共分為12層,而ENC數據則對應於一個單獨的文件,並且沒有分層。在海上船隻導航過程中,經常會同時使用兩種數據模型,給應用帶來不便,因此有必要進行數據模型的轉換。目前,通常使用Caris HH)方法進行DNC到ENC的轉換,其存在的問題是轉換率低、轉換效果差。
發明內容
本發明的目的在於克服現有技術的不足,提供一種設計合理、轉換率高且轉換效果佳的DNC與ENC數據模型的轉換方法。本發明解決其技術問題是採取以下技術方案實現的一種DNC與ENC數據模型的轉換方法,包括以下步驟(I)建立DNC與ENC數據模型之間的要素映射關係和屬性映射關係,進行DNC和ENC數據模型之間要素和屬性的映射轉換;(2)建立DNC和ENC之間拓撲和空間數據的映射關係,進行DNC和ENC之間拓撲和空間數據的映射轉換。而且,所述步驟(I)要素和屬性的映射轉換包括以下步驟(I)加載 DNC 數據;(2)讀取一個要素;(3)根據要素類型獲得相應的映射候選集;(4)取一個映射方法;(5)要素實例是否滿足條件,是則執行轉換操作,否則執行下一步;(6)判斷是否所有映射方法均已測試,是則執行步驟(7),否則跳至步驟⑷;(7)判斷是否所有要素實例均已處理,是則處理結束,否則跳至步驟(2)。而且,所述的DNC與ENC數據模型之間的要素映射關係包括一對一的映射、一對多的映射、多對一的映射和多對多的映射映射關係。
而且,所述的DNC與ENC數據模型之間的屬性映射關係包括要素無關的映射和要素相關的映射關係。而且,所述的步驟(2)DNC和ENC之間拓撲映射轉換步驟包括(I)讀取一個面要素,獲取要素關係的瓦片以及面號FaceID以及面表中面號為FaceID的所有環指針;(2)讀取一個環指針,從環表中獲得起始邊StartEdge,令CurEdge = StartEdge ;(3)如果 CurEdge. RightFace = Face 且 CurEdge. LeftFace Φ· Face,則CurEdge e Ring,且 CurEdge 為順時針方向,令 NextEdge = CurEdge. RightEdge,跳轉至步驟(J);
(4)如果 CurEdge. RightFace = Face 且 CurEdge.LeftFace 幸 Face,則CurEdge e Ring,且 CurEdge 為順時針方向,令 NextEdge = CurEdge. RightEdge,跳轉至步驟(J);(5)如果 CurEdge. LeftFace = Face 且 CurEdge. RightFace = Face,則CurEdge為懸掛邊,且CurEdge ^ Ring,其方向通過與上條邊的連接位置判斷,NextEdge e {CurEdge. RightEdge, CurEdge. LeftEdge},且 NextEdge Φ· CurEdge,跳轉至步驟(J);(6)如果 CurEdge. RightEdge = CurEdge. LeftEdge = CurEdge,則 CurEdge 為孤立邊,CurEdge ^Ring,執行步驟⑶;(7)如果 NextEdge = StartEdge,執行步驟(8);否則,令 CurEdge = NextEdge,跳轉至步驟⑶;(8)判斷環指針是否均已遍歷,是則處理結束,否則跳轉至步驟(2)。而且,所述的步驟(2)DNC和ENC之間空間數據的映射轉換步驟包括(I)加載DNC的一個數據子庫;(2)從數據子庫中讀取一個圖層,判斷是否為數據質量層,是則將其寫入ENC元數據中,否則執行步驟(3);(3)從圖層中讀取下一個地理要素;(4)讀取下一個要素實例,按照要素類型分別進行轉換;(5)判斷所有要素實例是否均已遍歷,是則執行步驟(6),否則跳至步驟⑷;(6)判斷要素類型均是否已遍歷,是則執行步驟(7),否則跳至步驟(3);(7)判斷所有圖層是否均已遍歷,處理結束,否則跳至步驟(2)。本發明的優點和積極效果是本發明設計合理,通過建立DNC和ENC兩者要素和屬性的映射關係、拓撲和空間的映射關係,提出了一套DNC與ENC的完整映射模型,實現了 DNC到ENC的高效、自動化、正確轉換,進而為海圖數據的生產和應用提供了重要的數據來源,也為不同類型海圖數據的融合提供了基礎,在轉換率和轉換效果方面有明顯改善。
圖I是DNC要素和屬性的基本映射流程;圖2是基於翼邊拓撲的面幾何構造算法;
圖3DNC空間數據的轉換流程圖4是DNC原始數據圖;圖5是利用HPD方法進行DNC到ENC轉換後的效果圖;圖6是利用本方法進行DNC到ENC轉換後的效果圖。
具體實施例方式以下結合附圖對本發明實施例做進一步詳述—種DNC與ENC數據模型的轉換方法,包括如下步驟步驟I、進行DNC和ENC數據模型之間要素和屬性的映射轉換在本步驟中,由於DNC和ENC中要素和屬性的分類編碼體系是不同的,因此,在DNC向ENC的映射過程中,必須事先建立要素和屬性的映射關係,然後進行要素和屬性的映射轉換,具體包括以下處理過程I、建立DNC與ENC數據模型之間的要素映射關係,要素映射關係包括(I) 一對一的映射一個DNC要素,在ENC中存在一個同等意義的要素。例如,DNC的Fortification (防禦工事)對應於ENC的FORSTC (防禦工事)。(2) 一對多的映射一個DNC要素,在不同情況下對應於ENC中不同的要素。例如,DNC中的FC021 (海上限制區),當其屬性MAC (海上面區域分類)為55時,對應於ENC中的FAIRWY (航道),當MAC為29時,對應於ENC中的RESARE (受限區域)。(3)多對一的映射由於DNC使用瓦片對數據進行物理上的分塊索引,可能會出現同一要素被不同瓦片拆分成多個要素的不合理情況,因而在要素轉換完畢之後應當進行幾何節點匹配,將不該斷開的要素重新連接成完整的要素。(4)多對多的映射一個DNC要素,同時對應於ENC中多個要素。例如,DNC中的一個Beacon (固定的助航標誌),對應於ENC中的一個BCNSPP (專通用立標)或BCNLAT (側面立標)或BCNISD (獨立危險立標)或BCNSAW (安全水域立標)或BCNCAR (方位立標),同時可能需要增加一個TOPMAR (頂標)、FOGSIG (霧標)、RDOSTA (無線電站)和 LIGHTS (燈標)。2、建立DNC與ENC數據模型之間的屬性映射關係,屬性映射關係包括(I)要素無關的映射一個DNC屬性,在ENC中存在一個同等意義的屬性。例如,DNC中的0BJNAM(要素名稱)對應於ENC中的NAM(名稱),以及DNC中的CCC(顏色代碼分類)、USE(用途)和MVC (高度),等等。(2)要素相關的映射由於編碼體系的不同,DNC要素本身所隱含的信息可能無法通過對應的ENC要素完全表示,需要通過ENC要素的若干屬性進一步區分。例如,DNC中的Tank(罐)對應於ENC的SILTNK (筒倉罐),但是ENC中缺少SILTNK中必備屬性CATSIL (筒倉罐類)的對應屬性;DNC中的要素BC080 (樹樁)對應於ENC中的要素OBSTRN (障礙物),顯然後者無法完全表達DNC要素的信息,應當進一步將OBSTRN中的屬性CATOBS (障礙物類型)設置為I (木樁),將屬性NATCON (構造性質)設置為6 (木質)。3、在建立DNC與ENC數據模型之間的要素映射關係和屬性映射關係後,進行DNC與ENC數據模型之間要素和屬性的映射轉換,在進行要素和屬性的映射轉換過程中,主要考慮以下幾點(I)在確定DNC與ENC要素之間的映射關係之後,按照要素、要素無關屬性、要素相關屬性的順序,實現要素和屬性的映射。(2)對於一個DNC要素,如助航標誌,可能同時存在對應於ENC中多個不同要素類型的映射方法,而且對應於同一個要素類型的映射方法也可能因為條件不同而存在多個映射方法,那麼應當按照要素類型進行分組處理。(3)對於一個要素實例,映射到ENC中同一要素類型的不同映射方法中只可能有一個滿足條件。如果這些映射方法中存在默認(映射條件為空)的映射方法,那麼該默認方法只有在其它映射方法都不滿足條件的情況下才能使用。(4)對於DNC的助航標誌(要素編碼為Beacon或Buoy或Light Vessel/Lightship), DNC中一個要素可能對應ENC中多個要素,如果目標要素中存在立標或浮標,那麼必須建立立標或浮標與其它要素之間的主從關係。如圖I所示,要素和屬性的映射步驟包括(I)加載 DNC 數據;(2)讀取一個要素;(3)根據要素類型獲得相應的映射候選集;(4)取一個映射方法;(5)要素實例是否滿足條件,是則執行轉換操作,否則執行下一步;(6)判斷是否所有映射方法均已測試,是則執行步驟(7),否則跳至步驟⑷;(7)判斷是否所有要素實例均已處理,是則處理結束,否則循環執行步驟(2)至⑵。步驟2、進行DNC和ENC之間拓撲和空間數據的映射轉換在本步驟中,首先需要需要對DNC和ENC的拓撲結構和數據存儲模型進行分析,然後建立DNC和ENC之間拓撲和空間數據的映射轉換,具體包括以下步驟I、建立DNC和ENC之間拓撲和空間數據的映射關係由於DNC和ENC數據的拓撲結構和存儲模型是不同的,因而形成了不同的映射關係(I)DNC中的幾何數據是分開存儲的,不僅進行了分層,而且每一圖層中所有的幾何數據按照地理範圍放在相應的瓦片目錄下,並按照點、邊、面、環、文本五種類型分開存儲;而在ENC中,所有的幾何數據按照點、邊統一進行存儲,因此,應當對DNC數據以庫為單位進行統一組織、加載。(2)ENC中不存在文本要素和 複雜要素,文本要素無法轉換,而複雜要素則需要遞歸分解子要素,直到所有子要素都是簡單要素;(3)面由若干個環構成,而DNC中的環只存儲了起始邊,環所包含的所有組成邊都隱含在邊表中;而ENC中需要顯式存儲每個環所包含的邊,為此,需要重構DNC的面幾何數據。(4)由於一個DNC庫文件是由若干幅比例尺可能不相等的海圖數據組成,比例尺差異較大的甚至相差5倍,而ENC數據要求只能使用一個比例尺。由於DNC中DQY(數據質量)層中存儲了每個圖幅的範圍和圖名,因而應當按照圖幅範圍對ENC數據進行裁切,並以相應圖名命名。(5)燈標的輻射範圍在DNC中是作為一個獨立的面要素,而在ENC是通過SECTRl (光弧角度I)、SECTR2 (光弧角度2)和VALNMR(理論射程)三個屬性來表示的,因而在空間數據轉換完畢之後,需要利用幾何匹配找到燈標輻射範圍所屬的燈標要素,並將輻射範圍的幾何信息等價轉換為燈標屬性值。2、DNC拓撲面幾何的重構過程 由於DNC使用的是翼邊拓撲,與ENC的拓撲組織存在一些差異,主要體現在環的構造方法上(I)每個面(Face)由若干個環構成,而每個環(Ring)由若干個邊(Edge)組成,但是這些邊不僅包含正常的環組成邊,還可能包含懸掛邊(懸掛邊被當作內環的一部分)和孤立邊(被當作獨立內環);(2)環表(RNG)沒有給出環的所有組成邊,而只給出環上的任一條邊(稱為起始邊,記為StartEdge),其它邊通過邊表(FAC)中每條邊的左邊(以起點為中心,逆時針找到的第一條邊,記為LeftEdge)和右邊(以終點為中心,逆時針找到的第一條邊,記為RightEdge)、左面(記為LeftFace)和右面(記為RightFace)隱式給出。為了能夠構造ENC面幾何數據(不帶有懸掛邊和孤立邊),關鍵和難點是利用已有信息得到環的組成。由於翼邊拓撲按照順時針構環,因而只要給定起始邊,即可按順時針方向找到環的所有組成邊。假定①對任意給定的一條起始邊StartEdge,它所在的環為Ring,環所在的面為Face ;②邊表中任意一條邊CurEdge的下一條邊為NextEdge。如圖2所示,DNC和ENC之間拓撲映射轉換步驟如下(I)讀取一個面要素,獲取要素關係的瓦片以及面號FaceID以及面表中面號為FaceID的所有環指針;(2)讀取一個環指針,從環表中獲得起始邊StartEdge,令CurEdge = StartEdge ;(3)如果 CurEdge. RightFace = Face 且 CurEdge. LeftFace 幸 Face,則CurEdge G Ring,且 CurEdge 為順時針方向。令 NextEdge = CurEdge. RightEdge,跳轉至步驟(J);(4)如果 CurEdge. RightFace = Face 且 CurEdge.LeftFace 幸 Face,則CurEdge G Ring,且 CurEdge 為順時針方向。令 NextEdge = CurEdge. RightEdge,跳轉至步驟(J);(5)如果 CurEdge. LeftFace = Face 且 CurEdge. RightFace = Face,則CurEdge為懸掛邊,且CurEdge ^ Ring,其方向通過與上條邊的連接位置判斷,NextEdge G {CurEdge. RightEdge, CurEdge. LeftEdge},且 NextEdge 古 CurEdge。跳轉至步驟(7)。(6)如果 CurEdge. RightEdge = CurEdge. LeftEdge = CurEdge,則 CurEdge 為孤立邊,CurEdge ^Ring,執行步驟(8)。
(7)如果 NextEdge = StartEdge,執行步驟(8);否則,令 CurEdge = NextEdge。跳轉至步驟(3)。(8)判斷環指針是否均已遍歷,是則處理結束,否則跳轉至步驟⑵。3、DNC和ENC空間數據的轉換過程如圖3所示,給出了空間數據轉換的流程。由於DNC中存在著一些非地理要素,例如瓦片邊界、庫邊界、文本要素,因而不能把所有的空間數據轉換至ENC。水深要素在DNC是普通的二維點,深度值只作為其屬性之一,並且每一個水深點都是一個要素,而在ENC中,它是一個三維點,需要單獨存放,並且相同屬性值的水深點群與同一個要素關聯。如圖3所示,DNC和ENC空間數據的轉換步驟如下(I)加載DNC的一個數據子庫; (2)從數據子庫中讀取一個圖層,判斷是否為數據質量層,是則將其寫入ENC元數據中,否則執行步驟(3);(3)從圖層中讀取下一個地理要素;(4)讀取下一個要素實例,按照要素類型(水深要素、複雜要素、文本要素、點要素、面要素、線要素)分別進行轉換;(5)判斷所有要素實例是否均已遍歷,是則執行步驟(6),否則跳至步驟⑷;(6)判斷要素類型均是否已遍歷,是則執行步驟(7),否則跳至步驟(3);(7)判斷所有圖層是否均已遍歷,處理結束,否則跳至步驟⑵。下面對本發明的轉換結果進行檢驗分析使用DNC數據進行轉換測試,除了 5個非地理要素外,Caris HPD的要素類型轉換率為80/176 ^ 45% (實際轉換類型/DNC要素類型總數),而本方法能夠達到100%的轉換率,由於DNC和ENC的顯示標準略有不同,因而經過轉換後的要素顯示可能有差異;同時,HPD只能支持DNC到ENC要素的一對一的映射,也不支持複雜要素,並且在轉換之後丟失了大部分屬性。以助航標誌為例,圖4表示原始的DNC數據,圖5表示通過HPD轉換得到的ENC數據,圖6表示按照本方法進行轉換後的顯示效果。圖5與圖4相比,存在霧號、頂標、燈標等要素丟失的情況,同時由於浮標和立標的屬性中缺失了表示形狀的必備屬性,導致浮標和立標為未知類型,在圖形上分別顯示為^和I。由於VPF的顯示標準是GeoSym,而DNC的顯示標準是S-52,因而儘管屬性值一樣,也存在個別符號不一致的情況,例如,在圖4中的燈標都顯示為,而在圖6中有的燈標顯示為綠色或黃色,圖4中的浮標都不帶燈標,
而圖6中的浮標都帶有燈標,例如
o需要強調的是,本發明所述的實施例是說明性的,而不是限定性的,因此本發明並不限於具體實施方式
中所述的實施例,凡是由本領域技術人員根據本發明的技術方案得出的其他實施方式,同樣屬於本發明保護的範圍。
權利要求
1.ー種DNC與ENC數據模型的轉換方法,其特徵在於包括以下步驟 (1)建立DNC與ENC數據模型之間的要素映射關係和屬性映射關係,進行DNC和ENC數據模型之間要素和屬性的映射轉換; (2)建立DNC和ENC之間拓撲和空間數據的映射關係,進行DNC和ENC之間拓撲和空間數據的映射轉換。
2.根據權利要求I所述的DNC與ENC數據模型的轉換方法,其特徵在於所述步驟(I)要素和屬性的映射轉換包括以下步驟 (1)加載DNC數據; (2)讀取ー個要素; (3)根據要素類型獲得相應的映射候選集; (4)取ー個映射方法; (5)要素實例是否滿足條件,是則執行轉換操作,否則執行下一歩; (6)判斷是否所有映射方法均已測試,是則執行步驟(7),否則跳至步驟(4); (7)判斷是否所有要素實例均已處理,是則處理結束,否則跳至步驟(2)。
3.根據權利要求2所述的DNC與ENC數據模型的轉換方法,其特徵在於所述的DNC與ENC數據模型之間的要素映射關係包括一対一的映射、一對多的映射、多對ー的映射和多對多的映射映射關係。
4.根據權利要求2所述的DNC與ENC數據模型的轉換方法,其特徵在於所述的DNC與ENC數據ホ吳型之間的屬性映射關係包括要素無關的映射和要素相關的映射關係。
5.根據權利要求I所述的DNC與ENC數據模型的轉換方法,其特徵在於所述的步驟(2) DNC和ENC之間拓撲映射轉換步驟包括 (1)讀取ー個面要素,獲取要素關係的瓦片以及面號FaceID以及面表中面號為FaceID的所有環指針; (2)讀取ー個環指針,從環表中獲得起始邊StartEdge,令CurEdge= StartEdge ; (3)如果CurEdge. RightFace = Face 且 CurEdge. LeftFace Φ· Face,則CurEdge e Ring,且 CurEdge 為順時針方向,令 NextEdge = CurEdge. RightEdge,跳轉至步驟(J); (4)如果CurEdge. RightFace = Face 且 CurEdge. LeftFace Φ· Face,則CurEdge e Ring,且 CurEdge 為順時針方向,令 NextEdge = CurEdge. RightEdge,跳轉至步驟(J);(5)如果CurEdge. LeftFace = Face 且 CurEdge. RightFace = Face,則 CurEdge 為懸掛邊,且CurEdge ^ Ring,其方向通過與上條邊的連接位置判斷,NextEdge e {CurEdge.RightEdge, CurEdge. LeftEdge},且 NextEdge CurEdge,跳轉至步驟(7);(6)如果CurEdge. RightEdge = CurEdge. LeftEdge = CurEdge,則 CurEdge 為孤立邊,CurEdge ^Ring,執行步驟⑶; (7)如果NextEdge = StartEdge,執行步驟(8);否則,令 CurEdge = NextEdge,跳轉至步驟⑶; (8)判斷環指針是否均已遍歷,是則處理結束,否則跳轉至步驟(2)。
6.根據權利要求I所述的DNC與ENC數據模型的轉換方法,其特徵在於所述的步驟(2)DNC和ENC之間空間數據的映射轉換步驟包括 (1)加載DNC的ー個數據子庫; (2)從數據子庫中讀取一個圖層,判斷是否為數據質量層,是則將其寫入ENC元數據中,否則執行步驟(3); (3)從圖層中讀取下ー個地理要素; (4)讀取下ー個要素實例,按照要素類型分別進行轉換; (5)判斷所有要素實例是否均已遍歷,是則執行步驟(6),否則跳至步驟(4); (6)判斷要素類型均是否已遍歷,是則執行步驟(7),否則跳至步驟(3); (7)判斷所有圖層是否均已遍歷,處理結束,否則跳至步驟(2)。
全文摘要
本發明涉及一種DNC與ENC數據模型的轉換方法,包括以下步驟(1)建立DNC與ENC數據模型之間的要素映射關係和屬性映射關係,進行DNC和ENC數據模型之間要素和屬性的映射轉換;(2)建立DNC和ENC之間拓撲和空間數據的映射關係,進行DNC和ENC之間拓撲和空間數據的映射轉換。本發明設計合理,通過建立DNC和ENC兩者要素和屬性的映射關係、拓撲和空間的映射關係,提出了一套DNC與ENC的完整映射模型,實現了DNC到ENC的高效、自動化、正確轉換,進而為海圖數據的生產和應用提供了重要的數據來源,也為不同類型海圖數據的融合提供了基礎,在轉換率和轉換效果方面有明顯改善。
文檔編號G06F17/30GK102622419SQ20121004021
公開日2012年8月1日 申請日期2012年2月22日 優先權日2012年2月22日
發明者孫芳, 朱穎, 翟京生, 陸毅, 陳長林 申請人:中國人民解放軍92859部隊