一種提高海圖水深自動(dòng)選取效率的方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及海洋測(cè)繪領(lǐng)域,尤其涉及一種提高海圖水深自動(dòng)選取效率的方法。
【背景技術(shù)】
[0002] 水深是海圖的基本要素,是艦船、潛艇等海上航行決策分析的重要依據(jù)。海圖水深 的選取,在海圖制圖綜合作業(yè)中占有非常大的比重。
[0003] 為了提高水深選取作業(yè)的效率,國(guó)內(nèi)外不少專家、學(xué)者研究了利用計(jì)算機(jī)實(shí) 現(xiàn)海圖水深的自動(dòng)選取,如地形匹配法(Ioraster.S and Bayer.S,1992)、專家系統(tǒng)法 (Lysandros. T,1997)、神經(jīng)元網(wǎng)絡(luò)法(王家耀,1999)、表達(dá)識(shí)別與綜合法(陸毅,2005)等。 然而,上述方法在某些情況下可能會(huì)出現(xiàn)水深漏淺的情況。張立華等采用模型面控制的思 想,提出了一種不漏水深淺點(diǎn)的海圖水深自動(dòng)選取方法。這種方法在資料圖水深數(shù)據(jù)量較 少的情況下,既能確保水深選取不漏淺點(diǎn),又能通過(guò)計(jì)算機(jī)的自動(dòng)化處理,較好地提高水深 選取的作業(yè)效率;但由于該方法在數(shù)據(jù)處理過(guò)程中,需要反復(fù)遍歷水深三角網(wǎng)中的所有三 角形,分析其是否出現(xiàn)水深漏淺情形(或存在三角形邊長(zhǎng)超出規(guī)范的情形),當(dāng)資料圖水深 數(shù)據(jù)量較大時(shí),特別是對(duì)于實(shí)測(cè)的多波束水深數(shù)據(jù)而言,該算法的效率會(huì)極大地降低。
【發(fā)明內(nèi)容】
[0004] 為了克服水深自動(dòng)選取算法遇到大數(shù)據(jù)量時(shí)效率明顯降低的不足,本發(fā)明提供了 一種提高海圖水深自動(dòng)選取效率的方法。
[0005] 本發(fā)明為實(shí)現(xiàn)上述目的所采用的技術(shù)方案是:
[0006] a、讀入海圖上水深待選取區(qū)域外的已有水深點(diǎn)的平面位置信息和深度信息;
[0007] b、利用已有水深點(diǎn),采用逐點(diǎn)插入法構(gòu)建初始的Delaunay水深三角網(wǎng),并建立初 始的三角形集合;
[0008] c、讀入水深待選取區(qū)域內(nèi)的資料圖上所有水深點(diǎn)的平面位置信息和深度信息,作 為待選水深點(diǎn);
[0009] d、遍歷三角形集合中的各三角形,搜索并找出所有存在水深漏淺的三角形,并計(jì) 算這些三角形的面積,按照面積由大到小排序,建立起一個(gè)漏淺三角形鏈表;
[0010] e、提取漏淺三角形鏈表中的首個(gè)三角形(即面積最大的三角形),搜索位于該三 角形內(nèi)待選水深點(diǎn)中的最淺水深點(diǎn),并將其插入原三角形,動(dòng)態(tài)更新漏淺三角形鏈表和三 角形集合;
[0011] f、分析當(dāng)前的漏淺三角形鏈表是否為空。若是,則進(jìn)入步驟g;反之,重復(fù)步驟e;
[0012] g、遍歷三角形集合中的各三角形,搜索并找出所有邊長(zhǎng)超出規(guī)范要求的三角形, 并按三角形面積由大到小排序,建立起一個(gè)邊長(zhǎng)超出規(guī)范要求的三角形鏈表;
[0013] h、提取邊長(zhǎng)超出規(guī)范要求的三角形鏈表中的首個(gè)三角形(即面積最大的三角 形),遍歷位于此三角形外接圓域內(nèi)的水深點(diǎn),搜索距離三角形外接圓圓心最近且滿足不漏 淺條件的水深點(diǎn),并將該水深點(diǎn)插入原三角形,動(dòng)態(tài)更新邊長(zhǎng)超出要求的三角形鏈表和三 角形集合;
[0014] i、分析當(dāng)前的邊長(zhǎng)超出要求的三角形鏈表是否為空。若是,則進(jìn)入步驟j ;反之, 重復(fù)步驟h;
[0015] j、輸出插入三角網(wǎng)中水深點(diǎn)的平面位置信息和深度信息作為水深選取的結(jié)果。
[0016] 所述步驟d中,判斷某個(gè)三角形是否存在漏淺情形的方法為:遍歷位于該三角形 內(nèi)的所有待選點(diǎn),循環(huán)比較待選點(diǎn)的水深值是否淺于三角形三個(gè)頂點(diǎn)處的最小水深,若其 中存在一個(gè)或多個(gè)待選點(diǎn)的水深值淺于三角形三個(gè)頂點(diǎn)處最小水深,則為該三角形發(fā)生水 深漏淺,反之則該三角形未發(fā)生水深漏淺。
[0017] 所述步驟e中,動(dòng)態(tài)更新漏淺三角形鏈表的方法為:當(dāng)待選點(diǎn)插入原三角形后,其 影響域內(nèi)的三角形結(jié)構(gòu)會(huì)發(fā)生改變,刪除影響域內(nèi)的三角形及其在漏淺三角形鏈表中的數(shù) 據(jù),構(gòu)建新的三角形,分析每個(gè)新建的三角形是否出現(xiàn)水深漏淺的情形,若是,則計(jì)算該三 角形的面積,并根據(jù)面積大小有序地插入到漏淺三角形鏈表中;反之,則不作處理。
[0018] 所述步驟g中,判斷某個(gè)三角形邊長(zhǎng)是否超出規(guī)范要求的方法為:根據(jù)該三角形 三個(gè)頂點(diǎn)平面坐標(biāo),計(jì)算該三角形三條邊的長(zhǎng)度,判斷三條邊長(zhǎng)度是否過(guò)大而超出海圖編 繪規(guī)范要求,若三角形有任何一條邊超出規(guī)范要求,則認(rèn)為三角形邊長(zhǎng)超出規(guī)范要求;反 之,則認(rèn)為該三角形邊長(zhǎng)符合規(guī)范要求。
[0019] 所述步驟h中,動(dòng)態(tài)更新邊長(zhǎng)超出要求的三角形鏈表的方法為:當(dāng)待選點(diǎn)插入原 三角形后,其影響域內(nèi)的三角形結(jié)構(gòu)會(huì)發(fā)生改變,刪除影響域內(nèi)的三角形及其在邊長(zhǎng)超出 要求的三角形鏈表中的數(shù)據(jù),構(gòu)建出新的三角形,分析每個(gè)新建的三角形的邊長(zhǎng)是否超出 海圖編繪規(guī)范要求,若是,則計(jì)算該三角形的面積,并根據(jù)面積大小有序地插入邊長(zhǎng)超出要 求的三角形鏈表中;反之,則不作處理。
[0020] 有益效果:本發(fā)明提供的提高海圖水深自動(dòng)選取效率的方法,克服了以往水深自 動(dòng)選取遇到待選點(diǎn)數(shù)據(jù)量偏大時(shí)效率明顯降低的不足,使用本方法能通過(guò)計(jì)算機(jī)作業(yè)自動(dòng) 選取出海圖水深注記點(diǎn),在保證水深點(diǎn)的選取不會(huì)遺漏淺點(diǎn)水深且水深點(diǎn)間隔滿足海圖編 繪規(guī)范要求的同時(shí),可明顯提高水深自動(dòng)選取的效率。
【附圖說(shuō)明】
[0021] 圖1是本發(fā)明提高海圖水深自動(dòng)選取效率的主流程框圖;
[0022] 圖2是本發(fā)明判斷三角形內(nèi)是否出現(xiàn)水深漏淺情形的流程框圖;
[0023] 圖3是本發(fā)明動(dòng)態(tài)更新漏淺三角形鏈表的示意圖;
[0024] 圖4是本發(fā)明判斷三角形邊長(zhǎng)即水深點(diǎn)間隔是否超出規(guī)范要求的流程框圖;
[0025] 圖5是本發(fā)明動(dòng)態(tài)更新邊長(zhǎng)超出要求的三角形鏈表的示意圖。
【具體實(shí)施方式】
[0026] 下面結(jié)合實(shí)施例對(duì)本發(fā)明做進(jìn)一步的解釋說(shuō)明。
[0027] 本發(fā)明的實(shí)現(xiàn)過(guò)程是采用計(jì)算機(jī)提高海圖水深自動(dòng)選取效率。假設(shè)海圖制圖綜合 中有某區(qū)域A(水深待選取區(qū)域)需進(jìn)行水深選取,利用綜合區(qū)域之外已有的水深點(diǎn)和需要 綜合的區(qū)域之內(nèi)資料圖水深點(diǎn),采用本發(fā)明方法進(jìn)行水深自動(dòng)選取,包括以下步驟,如圖1 所示:
[0028] 步驟a,在計(jì)算機(jī)上打開(kāi)編繪海圖,輸入需要進(jìn)行水深選取區(qū)域A的邊界點(diǎn)平面坐 標(biāo)(XAi, YAi) (i = 1,2,…,nA),確定待進(jìn)行水深選取的區(qū)域范圍;
[0029] 步驟b,讀入位于區(qū)域A范圍以外的已有的水深點(diǎn)的平面坐標(biāo)(XRl,YRl)和深度值 ZRi(i = 1,2, ...,nR);
[0030] 步驟c,用逐點(diǎn)插入法構(gòu)建初始的Delaunay水深三角網(wǎng),并建立三角形集合T (i = 1,2,…,ητ);
[0031] 步驟d,讀入位于區(qū)域A范圍內(nèi)的資料圖上的水深點(diǎn)的平面坐標(biāo)(XSl,Y si)和深度 值Zsi (i = 1,2,…,ns),作為待選點(diǎn);
[0032] 步驟e,判斷三角形集合T中的各三角形tji = 1,2,···,η)是否出現(xiàn)漏淺的情形。 這里,判斷三角形^內(nèi)是否出現(xiàn)漏淺情況的具體步驟如下:如圖2所示,首先輸入此三角 形三個(gè)頂點(diǎn)的平面坐標(biāo)(X1, Y1)、(X2, Y2)、(X3, Y3)和深度信息Z1、Z2、Z3,并得到三個(gè)頂點(diǎn)處 水深的最淺值Z_= min (Ζ i,Z2, Z3),再輸入位于此三角形內(nèi)部所有待選點(diǎn)的平面位置信息 (XSl,Ysi)和深度信息Zsi,然后循環(huán)遍歷這些待選點(diǎn),判斷各點(diǎn)的深度值4與2_大小關(guān)系。 若存在某待選點(diǎn)的深度值ZSl〈Z_,則表明該三角形內(nèi)出現(xiàn)漏淺的情形,反之則表明該三角 形不存在漏淺的情況。<