999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2014-07-31 20:20:48陳彥勇王志強
艦船科學技術 2014年7期

劉 鋒,張 嚴,陳彥勇,王志強

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

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

劉 鋒,張 嚴,陳彥勇,王志強

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

越來越流行的電子海圖將逐漸取代紙質海圖,被應用于水下航行器等更為特殊的領域。國際標準S-57格式的電子海圖是由IHO(國際水道測量組織)官方定義,按照IS08211數據結構緊密封裝的矢量電子海圖格式。由于采用特有的封裝結構,在將電子海圖應用于專用領域之前,必須采用相關算法進行數據解包。本文在VC編程環境下利用C++語言實現對電子海圖原始數據文件的快速解包,同時進行快速存儲,使得S-57原始數據可視化。這也是電子海圖在水下航行器上應用的前提和基礎。

S-57;電子海圖;矢量數據;讀?。豢梢暬?;存儲

0 引 言

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

1 電子海圖分類

電子海圖主要分為兩大類:柵格式電子海圖和矢量電子海圖。由于矢量格式電子海圖具有存儲占用內存空間小、加載速度快等特點,更容易實現各種智能化功能,本文選用國際標準S-57電子海圖數據文件作為數據提取識別對象,分類及特點如圖1所示。

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

2 電子海圖封裝結構及數據模型

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

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

圖2 海圖封裝結構Fig.2 The encapsulation structure of electronic chart

S-57采用鏈-節點的數據拓撲結構,現實世界被抽象為特征物標和空間物標兩大類。特征物標用來描述事物的特征屬性,空間物標則描述其空間屬性。特征物標僅包含事物的特征屬性,并不包括任何幾何形狀和坐標位置信息。特征物標又分為元物標、集合物標、地理物標和制圖物標[4]四大類。

空間物標可以包含位置信息,必包含幾何形狀,分為點、邊、面3種。S-57標準數學抽象模型如圖3所示[5]。

圖3 標準電子海圖模型Fig.3 The standard model of electronic chart

S-57制定了電子海圖數據的數據結構,也就是在計算機內存儲的物理結構。海圖數據記錄的形成意味著從邏輯結構向物理結構的成功轉換。數據包含特征記錄、數據集描述記錄、目錄記錄、數據字典記錄、和空間記錄等5類記錄。其中數據字典記錄較少使用。

S-57海圖將沿海、港口及大洋等現實世界逐步抽象,構成物理交換格式,其抽象過程如圖4所示。各抽象層之間的關系如圖5所示。

根據其表示真實世界的模型及其交換數據的封裝標準,對原始數據一層層地進行解包,實質上就是數據模型抽象的逆過程。

圖4 模型抽象過程Fig.4 Process of model abstract

圖5 各抽象層之間的關系Fig.5 The relationship among the abstraction layers

3 電子海圖解包

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

本文利用處理ISO8211lib開源庫中包含五個類,實現快速解讀格式為.000的S-57原始電子海圖數據。

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

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

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

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

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

提取子字段數據類(DDFSubFieldDefn類):是提取海圖數據最里層的1個類,用于提取具體的1個子字段的信息。 成員函數GetType()用來獲取子字段的數據類型,從而對應調用讀取整形數據、浮點型數據或者字符串型數據的成員函數。

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

圖6 類的先后調用順序Fig.6 The calling order of the classes

讀取過程如下:

1)打開S-57格式電子海圖.000文件,創建1個數據描述模型類對象Module,然后調用Open()函數,如果調用成功,進行下一步;

2)創建1個數據描述記錄類指針*pointRecord,調用Module.ReadRecord(),將返回值傳給類指針*pointRecord;

3)調用pointRecord->GetField()函數,將返回值傳給數據描述字段類指針*pointField,進行實例化;

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

5)通過調用pointFieldDefn->GetName()和pointFieldDefn->GetDescritpion()兩個函數,讀取字段的名稱和數據;

6)調用pointField->GetSubfield(),將返回值傳給提取子字段數據類實例化*poSFDefn指針,進行實例化;

7)調用poSFDefn->ExtraetData(),讀取poSFDefn的數據。

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

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

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

4 數據可視化存儲及試驗

在Visual Stdio2008環境下,建立1個MFC單文檔工程,并添加1個刪除數據按鈕。利用MFC的工具欄打開按鍵,編程實現打開.000標準電子海圖文件。并在view界面中添加刪除數據按鈕,用于刪除解包后的電子海圖文件。

所有的函數調用及類的調用實現程序都編寫在doc.cpp文件中。按照解包算法讀取文件。海圖數據快速解包后,為方便后續的電子海圖數據的研究運用及其開發,需要將數據可視化的存儲。就是基本按照其封裝架構不動,將讀取出來的數據以記錄為單位,讀1條存1條。讀出的文件全部存儲于CString類型的變量中,并且進行格式化后,依次存儲于txt文件中。

在實現電子海圖數據可視化之后,可以方便地查看各字段數據,為電子海圖更為專用的設計應用提供可查可驗證的數據。

經驗證,S-57電子海圖文件USSMD12M.000已經被讀取并存儲。讀取后存儲的DSID字段及DSSI字段如圖9所示。矢量記錄SG2D字段如圖10所示。并且每個字段后面都讀出了字段描述信息,從而實現每個子字段信息都成功讀出并存儲。

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

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

5 結 語

電子海圖包含了豐富的海洋信息,使用這些信息的前提是能夠正確快速地讀取海圖數據。過去電子海圖主要用于水面船只人工航行規劃,所用信息不多。而本文將S-57標準電子海圖進行快速讀取并以記錄為單位存儲下來,為今后進行將電子海圖應用于水下航行器提供了基礎。根據電子海圖的一些特殊應用背景,利用讀取的海圖數據可以進行海圖要素裁剪及存儲結構的優化,可構建面向水下航行器專用的數據模型。根據海圖原始數據模型存儲海圖矢量數據,層層讀取并存儲各字段數據,既不影響海圖數據的原有結構,又不丟失海圖的原有信息,是海圖矢量數據應用的關鍵和前提。在實現完全讀取電子海圖數據后,能夠為水下航行器的航路規劃提供輸入。

[1] 襲樂宣.電子海圖顯示與信息系統的發展與應用研究[J].導航,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] 董才華,秦臻.電子海圖數據讀取與顯示技術[J].中國航海,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] 李宏利.電子海圖技術國際標準研究[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電子海圖數據讀取和自動多模式分層顯示[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格式電子海圖數據讀取以及分層顯示[D].廣州:廣東工業大學,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] 劉廠,郝燕玲,高峰,等.國際標準電子海圖系統關鍵技術研究[J].中國航海,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

國防科技預先研究基金資助項目(4010605010102)

劉鋒(1985-),男,碩士研究生,助理工程師,研究方向為水下決策技術及電子海圖應用技術。

TP317.4;U666.11

A

1672-7649(2014)07-00108-05

10.3404/j.issn.1672-7649.2014.07.023

主站蜘蛛池模板: 国产在线视频二区| 亚洲IV视频免费在线光看| 亚洲综合婷婷激情| 色综合激情网| 欧美日韩中文国产| 国产H片无码不卡在线视频| 欧美日韩国产在线人| 奇米精品一区二区三区在线观看| 国产网友愉拍精品视频| 超碰aⅴ人人做人人爽欧美| 一级不卡毛片| 国产超薄肉色丝袜网站| 伊人查蕉在线观看国产精品| 亚洲人成影院午夜网站| 免费国产一级 片内射老| 亚洲成aⅴ人片在线影院八| 亚洲av片在线免费观看| 亚洲国产一成久久精品国产成人综合| 国产成人免费手机在线观看视频 | 人人91人人澡人人妻人人爽| 亚洲天堂自拍| 97狠狠操| 玖玖精品视频在线观看| 久久久91人妻无码精品蜜桃HD| 亚洲自偷自拍另类小说| 又粗又硬又大又爽免费视频播放| 亚洲av色吊丝无码| 一级看片免费视频| 天天综合天天综合| 蜜芽一区二区国产精品| 国产9191精品免费观看| 免费观看国产小粉嫩喷水| 亚洲高清免费在线观看| 视频二区欧美| 免费观看亚洲人成网站| 国产三级a| 久久国产精品影院| 国产一区二区丝袜高跟鞋| a毛片免费观看| 色视频久久| av一区二区三区在线观看| 久久国产热| 中国国语毛片免费观看视频| 伊人色天堂| 欧美怡红院视频一区二区三区| 久久久噜噜噜久久中文字幕色伊伊| 热久久综合这里只有精品电影| 91在线国内在线播放老师 | 国产成人精品在线| 日本午夜视频在线观看| 国产免费久久精品99re不卡| 91网址在线播放| 手机在线看片不卡中文字幕| 亚洲欧美成人影院| 99伊人精品| 国产精品第一区| 3D动漫精品啪啪一区二区下载| 亚洲一级毛片在线播放| 天天色天天操综合网| 亚洲自拍另类| 91福利国产成人精品导航| 欧美日韩中文国产| 91小视频在线观看免费版高清| 成人日韩欧美| 国产乱论视频| 青青操国产| 久操中文在线| 亚洲精品成人福利在线电影| 超碰精品无码一区二区| 毛片手机在线看| 天天躁日日躁狠狠躁中文字幕| 国产高清在线观看91精品| 自慰网址在线观看| 色综合天天娱乐综合网| 狠狠色香婷婷久久亚洲精品| 2021国产精品自产拍在线| 国产激情第一页| 丁香婷婷激情综合激情| 国产在线98福利播放视频免费| 亚洲AV电影不卡在线观看| 亚洲三级视频在线观看| 操国产美女|