亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        S-57電子海圖的快速讀取及可視化存儲(chǔ)

        2014-07-31 20:20:48陳彥勇王志強(qiáng)
        艦船科學(xué)技術(shù) 2014年7期
        關(guān)鍵詞:海圖字段指針

        劉 鋒,張 嚴(yán),陳彥勇,王志強(qiáng)

        (中國(guó)船舶重工集團(tuán)公司 第七○五研究所昆明分部,云南 昆明 650118)

        S-57電子海圖的快速讀取及可視化存儲(chǔ)

        劉 鋒,張 嚴(yán),陳彥勇,王志強(qiáng)

        (中國(guó)船舶重工集團(tuán)公司 第七○五研究所昆明分部,云南 昆明 650118)

        越來(lái)越流行的電子海圖將逐漸取代紙質(zhì)海圖,被應(yīng)用于水下航行器等更為特殊的領(lǐng)域。國(guó)際標(biāo)準(zhǔn)S-57格式的電子海圖是由IHO(國(guó)際水道測(cè)量組織)官方定義,按照IS08211數(shù)據(jù)結(jié)構(gòu)緊密封裝的矢量電子海圖格式。由于采用特有的封裝結(jié)構(gòu),在將電子海圖應(yīng)用于專用領(lǐng)域之前,必須采用相關(guān)算法進(jìn)行數(shù)據(jù)解包。本文在VC編程環(huán)境下利用C++語(yǔ)言實(shí)現(xiàn)對(duì)電子海圖原始數(shù)據(jù)文件的快速解包,同時(shí)進(jìn)行快速存儲(chǔ),使得S-57原始數(shù)據(jù)可視化。這也是電子海圖在水下航行器上應(yīng)用的前提和基礎(chǔ)。

        S-57;電子海圖;矢量數(shù)據(jù);讀??;可視化;存儲(chǔ)

        0 引 言

        電子海圖以海域要素為主,其內(nèi)容相當(dāng)豐富,可詳細(xì)表示海底地形(水深)、航行障礙物、助航標(biāo)志、港口設(shè)施、潮流、海流等要素,甚至連磁力異常區(qū)域、燈塔、浮標(biāo)都被包含在內(nèi)。隨著導(dǎo)航計(jì)算機(jī)的使用,電子海圖已經(jīng)逐漸取代紙質(zhì)海圖,作為艦船航行的導(dǎo)航工具[1]。尤其是水下航行器的遠(yuǎn)程精確導(dǎo)航,將完全依賴于信息豐富的電子海圖,應(yīng)用系統(tǒng)將向著航線自主規(guī)劃、跟蹤動(dòng)態(tài)目標(biāo)制定航行計(jì)劃等智能化方向發(fā)展。雖然S-57矢量電子海圖具有信息豐富、可無(wú)限放大及存儲(chǔ)占用空間小等優(yōu)點(diǎn)[1],可被使用于水面艦船或者水下航行器中,但其封裝結(jié)構(gòu)是一種高壓縮的數(shù)據(jù)交換格式,是用戶不可見(jiàn)的.000數(shù)據(jù)格式,且數(shù)據(jù)結(jié)構(gòu)較為復(fù)雜。要將電子海圖應(yīng)用到水下航行器等特殊領(lǐng)域,前提是要能實(shí)時(shí)對(duì)其快速解包。

        1 電子海圖分類

        電子海圖主要分為兩大類:柵格式電子海圖和矢量電子海圖。由于矢量格式電子海圖具有存儲(chǔ)占用內(nèi)存空間小、加載速度快等特點(diǎn),更容易實(shí)現(xiàn)各種智能化功能,本文選用國(guó)際標(biāo)準(zhǔn)S-57電子海圖數(shù)據(jù)文件作為數(shù)據(jù)提取識(shí)別對(duì)象,分類及特點(diǎn)如圖1所示。

        圖1 電子海圖分類Fig.1 Classification of electronic chart

        2 電子海圖封裝結(jié)構(gòu)及數(shù)據(jù)模型

        為方便、快捷地進(jìn)行數(shù)據(jù)文件交換,S-57標(biāo)準(zhǔn)對(duì)現(xiàn)實(shí)世界的各類水文實(shí)體進(jìn)行模型歸納抽象,定義適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)(抽象模型的數(shù)學(xué)實(shí)例化)及文件的物理封裝。S-57格式的電子海圖原始數(shù)據(jù)按照ISO/ICE 8211進(jìn)行數(shù)據(jù)封裝,它是一種能夠在不同類型計(jì)算機(jī)之間進(jìn)行數(shù)據(jù)交換的交換格式。該結(jié)構(gòu)可基于文件機(jī)制從一種計(jì)算機(jī)體系向另一種計(jì)算機(jī)體系傳遞信息,提供獨(dú)立于機(jī)器構(gòu)造的格式[2]。

        ISO8211文件是以邏輯記錄 (Logical Record,LR)為基本單元組成。其第1個(gè)記錄叫做數(shù)據(jù)描述記錄(Data Descriptive Record,DDR)[3],其中主要包含海圖的邏輯結(jié)構(gòu)和具體數(shù)據(jù)描述,用于解析文件。其他邏輯記錄叫做數(shù)據(jù)記錄(Data Record,DR),存儲(chǔ)的是實(shí)際的海圖數(shù)據(jù)值。ISO8211封裝結(jié)構(gòu)如圖2所示。每個(gè)邏輯記錄由頭標(biāo)區(qū)、目錄區(qū)、字段組成。海圖數(shù)據(jù)解包就是要將海圖中各個(gè)邏輯記錄的三大類基本信息都讀取出來(lái)。

        圖2 海圖封裝結(jié)構(gòu)Fig.2 The encapsulation structure of electronic chart

        S-57采用鏈-節(jié)點(diǎn)的數(shù)據(jù)拓?fù)浣Y(jié)構(gòu),現(xiàn)實(shí)世界被抽象為特征物標(biāo)和空間物標(biāo)兩大類。特征物標(biāo)用來(lái)描述事物的特征屬性,空間物標(biāo)則描述其空間屬性。特征物標(biāo)僅包含事物的特征屬性,并不包括任何幾何形狀和坐標(biāo)位置信息。特征物標(biāo)又分為元物標(biāo)、集合物標(biāo)、地理物標(biāo)和制圖物標(biāo)[4]四大類。

        空間物標(biāo)可以包含位置信息,必包含幾何形狀,分為點(diǎn)、邊、面3種。S-57標(biāo)準(zhǔn)數(shù)學(xué)抽象模型如圖3所示[5]。

        圖3 標(biāo)準(zhǔn)電子海圖模型Fig.3 The standard model of electronic chart

        S-57制定了電子海圖數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),也就是在計(jì)算機(jī)內(nèi)存儲(chǔ)的物理結(jié)構(gòu)。海圖數(shù)據(jù)記錄的形成意味著從邏輯結(jié)構(gòu)向物理結(jié)構(gòu)的成功轉(zhuǎn)換。數(shù)據(jù)包含特征記錄、數(shù)據(jù)集描述記錄、目錄記錄、數(shù)據(jù)字典記錄、和空間記錄等5類記錄。其中數(shù)據(jù)字典記錄較少使用。

        S-57海圖將沿海、港口及大洋等現(xiàn)實(shí)世界逐步抽象,構(gòu)成物理交換格式,其抽象過(guò)程如圖4所示。各抽象層之間的關(guān)系如圖5所示。

        根據(jù)其表示真實(shí)世界的模型及其交換數(shù)據(jù)的封裝標(biāo)準(zhǔn),對(duì)原始數(shù)據(jù)一層層地進(jìn)行解包,實(shí)質(zhì)上就是數(shù)據(jù)模型抽象的逆過(guò)程。

        圖4 模型抽象過(guò)程Fig.4 Process of model abstract

        圖5 各抽象層之間的關(guān)系Fig.5 The relationship among the abstraction layers

        3 電子海圖解包

        S-57電子海圖解包就是按照其封裝標(biāo)準(zhǔn)將矢量海圖數(shù)據(jù)各字段和子字段逐一讀取出來(lái)。針對(duì)適用于水下航行器的數(shù)據(jù),主要讀取的字段包括:特征物標(biāo)標(biāo)識(shí)字段(FOID)、特征記錄標(biāo)識(shí)字段(FRID)、特征記錄到物標(biāo)指針字段(FFPT)、特征記錄到空間記錄指針字段FSPT(包含NAME指針)、矢量記錄參數(shù)字段(VRID)、矢量一記錄指針字段(VRPT)、二維坐標(biāo)字段SG2D(包含所有點(diǎn)的經(jīng)緯度坐標(biāo))及三維坐標(biāo)字段SG3D(包含水深點(diǎn)經(jīng)緯坐標(biāo)及水深值)。

        本文利用處理ISO8211lib開源庫(kù)中包含五個(gè)類,實(shí)現(xiàn)快速解讀格式為.000的S-57原始電子海圖數(shù)據(jù)。

        數(shù)據(jù)描述模型類(Data description field,DDFModule )是ISO8211lib其中最主要的一類,用于從.000文件中以記錄為單位讀取記錄信息,包含全部從DDR讀取的信息。在開始讀取S-57文件之前,首先必須建立一個(gè)數(shù)據(jù)描述模型類對(duì)象,然后調(diào)用Open()函數(shù),若調(diào)用成功,所有的字段和子字段就可以被使用[6]。

        數(shù)據(jù)描述模型類的成員函數(shù)ReadRecord():只是1次讀1個(gè)記錄,下次讀取的時(shí)候需要重寫。整個(gè)讀取過(guò)程都以記錄為單位,每次讀取1個(gè)記錄,再讀取記錄里包含的字段及子字段,依次層層往下讀取。當(dāng)1個(gè)記錄讀取完成后,又需要獲得新的記錄指針值,用于讀取下1個(gè)記錄。

        數(shù)據(jù)描述記錄類(DDFRecord類):包含從DR讀取的實(shí)例化數(shù)據(jù),其中包含1個(gè)記錄里所有的DDFField字段數(shù)據(jù)。通過(guò)該類成員函數(shù)Getfield(i)函數(shù),得到1個(gè)按照索引地址把值傳遞給指向數(shù)據(jù)描述字段類的指針,傳遞1次,i值減加1,當(dāng)i的值等位于0和GetFieldCount()-1之間,循環(huán)結(jié)束時(shí),即完成本記錄的全部掃描[7]。

        數(shù)據(jù)描述字段類(DDFField類):從數(shù)據(jù)描述記錄類的GetFieldDefn()函數(shù)得到的1個(gè)實(shí)例化的指向數(shù)據(jù)描述子字段類的Field指針。利用該類的成員函數(shù)GetRepeatCount()可得到所需要讀取字段的重復(fù)個(gè)數(shù),利用該重復(fù)個(gè)數(shù),可以控制讀取重復(fù)字段時(shí)循環(huán)次數(shù)。

        數(shù)據(jù)描述子字段類(DDFFieldDefn類):通常作為提取子字段數(shù)據(jù)類的容器。該類成員函數(shù)GetName()用于讀取所讀當(dāng)前字段的名稱。GetSu-bfieldCount()成員函數(shù)可返回讀取字段的子字段個(gè)數(shù),以控制讀取子字段的循環(huán)次數(shù)。

        提取子字段數(shù)據(jù)類(DDFSubFieldDefn類):是提取海圖數(shù)據(jù)最里層的1個(gè)類,用于提取具體的1個(gè)子字段的信息。 成員函數(shù)GetType()用來(lái)獲取子字段的數(shù)據(jù)類型,從而對(duì)應(yīng)調(diào)用讀取整形數(shù)據(jù)、浮點(diǎn)型數(shù)據(jù)或者字符串型數(shù)據(jù)的成員函數(shù)。

        根據(jù)海圖的封裝結(jié)構(gòu),利用上述5個(gè)開源類,逐個(gè)實(shí)現(xiàn)類的實(shí)例化,從而層層讀取S-57電子海圖文件的全部數(shù)據(jù)。類調(diào)用的先后順序如圖6所示,讀取數(shù)據(jù)流程圖如圖7和圖8所示。讀取的原則遵循層層剝開,最終到達(dá)子字段內(nèi)容,讀1條存1條,讀完1條迅速釋放內(nèi)存,再建立類對(duì)象,讀取下1條記錄,該方式不占用內(nèi)存資源且CPU開銷較小[8]。

        圖6 類的先后調(diào)用順序Fig.6 The calling order of the classes

        讀取過(guò)程如下:

        1)打開S-57格式電子海圖.000文件,創(chuàng)建1個(gè)數(shù)據(jù)描述模型類對(duì)象Module,然后調(diào)用Open()函數(shù),如果調(diào)用成功,進(jìn)行下一步;

        2)創(chuàng)建1個(gè)數(shù)據(jù)描述記錄類指針*pointRecord,調(diào)用Module.ReadRecord(),將返回值傳給類指針*pointRecord;

        3)調(diào)用pointRecord->GetField()函數(shù),將返回值傳給數(shù)據(jù)描述字段類指針*pointField,進(jìn)行實(shí)例化;

        4)調(diào)用pointField->GetFieldDefn(),返回值傳給數(shù)據(jù)描述子字段類實(shí)例化*pointFieldDefn指針;

        5)通過(guò)調(diào)用pointFieldDefn->GetName()和pointFieldDefn->GetDescritpion()兩個(gè)函數(shù),讀取字段的名稱和數(shù)據(jù);

        6)調(diào)用pointField->GetSubfield(),將返回值傳給提取子字段數(shù)據(jù)類實(shí)例化*poSFDefn指針,進(jìn)行實(shí)例化;

        7)調(diào)用poSFDefn->ExtraetData(),讀取poSFDefn的數(shù)據(jù)。

        讀取流程如圖7和圖8所示。

        圖7 電子海圖數(shù)據(jù)讀取流程1Fig.7 Reading data flow chart of electronic chart 1

        圖8 電子海圖數(shù)據(jù)讀取流程2Fig.8 Reading data flow chart of electronic chart 2

        4 數(shù)據(jù)可視化存儲(chǔ)及試驗(yàn)

        在Visual Stdio2008環(huán)境下,建立1個(gè)MFC單文檔工程,并添加1個(gè)刪除數(shù)據(jù)按鈕。利用MFC的工具欄打開按鍵,編程實(shí)現(xiàn)打開.000標(biāo)準(zhǔn)電子海圖文件。并在view界面中添加刪除數(shù)據(jù)按鈕,用于刪除解包后的電子海圖文件。

        所有的函數(shù)調(diào)用及類的調(diào)用實(shí)現(xiàn)程序都編寫在doc.cpp文件中。按照解包算法讀取文件。海圖數(shù)據(jù)快速解包后,為方便后續(xù)的電子海圖數(shù)據(jù)的研究運(yùn)用及其開發(fā),需要將數(shù)據(jù)可視化的存儲(chǔ)。就是基本按照其封裝架構(gòu)不動(dòng),將讀取出來(lái)的數(shù)據(jù)以記錄為單位,讀1條存1條。讀出的文件全部存儲(chǔ)于CString類型的變量中,并且進(jìn)行格式化后,依次存儲(chǔ)于txt文件中。

        在實(shí)現(xiàn)電子海圖數(shù)據(jù)可視化之后,可以方便地查看各字段數(shù)據(jù),為電子海圖更為專用的設(shè)計(jì)應(yīng)用提供可查可驗(yàn)證的數(shù)據(jù)。

        經(jīng)驗(yàn)證,S-57電子海圖文件USSMD12M.000已經(jīng)被讀取并存儲(chǔ)。讀取后存儲(chǔ)的DSID字段及DSSI字段如圖9所示。矢量記錄SG2D字段如圖10所示。并且每個(gè)字段后面都讀出了字段描述信息,從而實(shí)現(xiàn)每個(gè)子字段信息都成功讀出并存儲(chǔ)。

        圖9 DSID及 DSSI字段可視化結(jié)果Fig.9 Visualization of DSID and DSSI fields

        圖10 矢量記錄字段Fig.10 Vector record fields

        5 結(jié) 語(yǔ)

        電子海圖包含了豐富的海洋信息,使用這些信息的前提是能夠正確快速地讀取海圖數(shù)據(jù)。過(guò)去電子海圖主要用于水面船只人工航行規(guī)劃,所用信息不多。而本文將S-57標(biāo)準(zhǔn)電子海圖進(jìn)行快速讀取并以記錄為單位存儲(chǔ)下來(lái),為今后進(jìn)行將電子海圖應(yīng)用于水下航行器提供了基礎(chǔ)。根據(jù)電子海圖的一些特殊應(yīng)用背景,利用讀取的海圖數(shù)據(jù)可以進(jìn)行海圖要素裁剪及存儲(chǔ)結(jié)構(gòu)的優(yōu)化,可構(gòu)建面向水下航行器專用的數(shù)據(jù)模型。根據(jù)海圖原始數(shù)據(jù)模型存儲(chǔ)海圖矢量數(shù)據(jù),層層讀取并存儲(chǔ)各字段數(shù)據(jù),既不影響海圖數(shù)據(jù)的原有結(jié)構(gòu),又不丟失海圖的原有信息,是海圖矢量數(shù)據(jù)應(yīng)用的關(guān)鍵和前提。在實(shí)現(xiàn)完全讀取電子海圖數(shù)據(jù)后,能夠?yàn)樗潞叫衅鞯暮铰芬?guī)劃提供輸入。

        [1] 襲樂(lè)宣.電子海圖顯示與信息系統(tǒng)的發(fā)展與應(yīng)用研究[J].導(dǎo)航,2006(4):112-115.

        XI Le-xuan.Development summarization and application research of electronic chart display and information system[J].Daohang,2006(4):112-115.

        [2] 董才華,秦臻.電子海圖數(shù)據(jù)讀取與顯示技術(shù)[J].中國(guó)航海,2012,35(4):22-23.

        DONG Cai-hua,QIN Zhen.Retrieval and display technologies of electronic chart data[J].Navigation of China,2012,35(4):22-23.

        [3] 李宏利.電子海圖技術(shù)國(guó)際標(biāo)準(zhǔn)研究[M],北京:海潮出版社,2005:1-175.

        [4] ALEXANDER L.Marine information objects (MIOs) and ECDIS:concept and practice[C].U.S.Hydrographic Conference,2003:24-27.

        [5] S-57 Edition 3.1,IHO Transfer standard for digital hydrographic data[S].International Hydrographic Organ-ization[S].

        [6] 唐葆祥,劉東峰.S-57電子海圖數(shù)據(jù)讀取和自動(dòng)多模式分層顯示[J].微計(jì)算機(jī)信息,2012,28(2):105-106.

        TANG Bao-xiang,LIU Dong-feng.Reading of S-57 format and automation muti-mode hierae-chical display of electronic chart[J].Control and Automation Publication Group,2012,28(2):105-106.

        [7] 唐葆祥.S-57格式電子海圖數(shù)據(jù)讀取以及分層顯示[D].廣州:廣東工業(yè)大學(xué),2011.

        TANG Bao-xiang.Reading of S-57 format and multi-mode hierarchical display of electronic chart[D].Guangzhou:Guangdong University of Technology,2011.

        [8] 劉廠,郝燕玲,高峰,等.國(guó)際標(biāo)準(zhǔn)電子海圖系統(tǒng)關(guān)鍵技術(shù)研究[J].中國(guó)航海,2011,34(2):24-27.

        LIU Chang,HAO Yan-ling,GAO Feng,et al.Research of key technologies for ECDIS of international standard[J].Navigation of China,2011,34(2):24-27.

        Rapid reading and visual storage of the S-57 electronic chart

        LIU Feng, ZHANG Yan, CHEN Yan-yong, WANG Zhi-qiang

        (Kunming Branch of the 705 Research Institute of CSIC,Kunming 650118,China)

        The electronic chart is gradually replacing paper chart, which has an important role in navigation. Electronic chart will be used in more special fields such as UUV (unmanned underwater vehicle). International standard format of electronic chart S-57 is the IHO (International Hydrographic Organization) defined with a tightly wrapped vector electronic format, witch is according to the ISO8211.Due to the special encapsulation structure, before using of electronic chart data on special areas, and proper algorithms must be used to unpack the data. Under the environment of VC, we unpack the original electronic chart data and storage it quickly,using the C++ language. Then the S-57 electronic chart primitive data can be visual. This is also the application premise and foundation when we use of the electronic chart on underwater vehicle.

        S-57;electronic chart;vector data;read;visualization;storage

        2013-09-29;

        2013-11-08

        國(guó)防科技預(yù)先研究基金資助項(xiàng)目(4010605010102)

        劉鋒(1985-),男,碩士研究生,助理工程師,研究方向?yàn)樗聸Q策技術(shù)及電子海圖應(yīng)用技術(shù)。

        TP317.4;U666.11

        A

        1672-7649(2014)07-00108-05

        10.3404/j.issn.1672-7649.2014.07.023

        猜你喜歡
        海圖字段指針
        圖書館中文圖書編目外包數(shù)據(jù)質(zhì)量控制分析
        紙海圖AI小改正制作模式探討
        航海(2020年4期)2020-08-17 16:13:40
        偷指針的人
        少林功夫拳(三)
        少林與太極(2018年9期)2018-09-28 08:37:34
        為什么表的指針都按照順時(shí)針?lè)较蜣D(zhuǎn)動(dòng)
        點(diǎn)亮兵書——《籌海圖編》《海防圖論》
        孫子研究(2016年4期)2016-10-20 02:38:06
        電子海圖在內(nèi)河船舶綜合導(dǎo)航系統(tǒng)中的應(yīng)用探討
        基于改進(jìn)Hough變換和BP網(wǎng)絡(luò)的指針儀表識(shí)別
        CNMARC304字段和314字段責(zé)任附注方式解析
        無(wú)正題名文獻(xiàn)著錄方法評(píng)述
        中文字幕av久久激情亚洲精品| 亚洲日韩欧洲无码av夜夜摸| 国产免费破外女真实出血视频| 免费一级国产大片| 日本午夜a级理论片在线播放| 国产高清乱码又大又圆| 亚洲一区二区三区无码国产| 国产一区二区精品尤物| av在线男人的免费天堂| 91精品国产在热久久| 午夜福利一区二区三区在线观看| 品色堂永远的免费论坛| 激情五月婷婷久久综合| 人妻一区二区三区在线看| 国产精品中文久久久久久久| 国内揄拍国内精品| 啪啪视频免费看一区二区| 日韩女同精品av在线观看| 人人爽久久涩噜噜噜av| 传媒在线无码| 亚洲av手机在线一区| 夜夜躁日日躁狠狠久久av| 国产精品jizz在线观看老狼| 国产欧美日本亚洲精品一4区| 国产久色在线拍揄自揄拍| av永久天堂一区二区三区| 亚洲av无码成人yellow| 亚洲av有码精品天堂| 午夜视频在线观看视频在线播放 | 国产激情久久99久久| 亚洲av综合色区久久精品| 日韩欧美在线综合网另类 | 亚洲图文一区二区三区四区| 国产精品无码制服丝袜| 扒开双腿疯狂进出爽爽爽视频| 久久91精品国产91久| 精品国产黄一区二区三区| 50岁退休熟女露脸高潮| 国内久久婷婷精品人双人| 一本色道加勒比精品一区二区| 五月天国产成人av免费观看|