雷雨婷,李林燕
(1.蘇州市智慧城市規(guī)劃研究應(yīng)用中心,江蘇 蘇州215004;2.蘇州經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院 信息技術(shù)學(xué)院,江蘇 蘇州215009)
DLG 包含了各地理要素的空間信息和相關(guān)屬性信息,是最重要、使用最廣泛的基礎(chǔ)地理數(shù)據(jù)。在蘇州市已建成的數(shù)字蘇州地理空間框架項(xiàng)目中整合更新了蘇州市域1∶25 萬、1∶5 萬、1∶1 萬、1∶1000、1∶500 數(shù)字線劃地圖(DLG)數(shù)據(jù),它是基礎(chǔ)地理信息數(shù)據(jù)庫的重要數(shù)據(jù)來源,并為各行各業(yè)提供堅(jiān)實(shí)的數(shù)據(jù)保障。注記要素是數(shù)字線劃圖(Digital Line Graphs 簡稱DLG)重要的組成部分,表示了地理要素的屬性信息。空間信息主要是表示要素的位置、形態(tài)、大小分布等內(nèi)容,是進(jìn)行空間分析和研究的基礎(chǔ)[1-2],而注記包含的屬性信息起著補(bǔ)充和豐富空間數(shù)據(jù)的作用。
河流名稱注記是河流圖形重要的屬性信息。DLG圖注重的是合理、美觀的表達(dá)圖面要素,并不注重要素與要素之間的相互關(guān)系。在蘇州DLG圖中,水域要素圖形包括河流、湖泊、水庫等,它是面要素,河流名稱是逐字打散后有規(guī)律地標(biāo)注在對(duì)應(yīng)的面要素內(nèi)部,河流與注記、注記與注記之間只是視覺上是有關(guān)聯(lián)的。這樣導(dǎo)致直接提取的河流名稱很多都是無效的,不能作為基礎(chǔ)數(shù)據(jù)提供給地理信息應(yīng)用和服務(wù)進(jìn)行使用。
現(xiàn)有文獻(xiàn)對(duì)注記的研究主要集中在兩個(gè)方面:一是從柵格地圖中識(shí)別并提取英文或數(shù)字注記方法的研究[3-5];二是對(duì)注記自動(dòng)配置方法的研究,例如通過數(shù)學(xué)形態(tài)學(xué)來確定點(diǎn)線面狀注記位置[6],通過長對(duì)角線法實(shí)現(xiàn)面狀注記的自動(dòng)配置[7],以及根據(jù)點(diǎn)線面要素的特點(diǎn)來制定注記自動(dòng)配置策略[8]等。這些研究表明注記的排列配置都有規(guī)律可循。
DLG圖中的河流注記屬于面狀注記,面狀注記排列的規(guī)律主要是沿骨架線進(jìn)行排列[9-10],河流骨架線方向也就是河流走向。筆者通過對(duì)DLG圖中河流名稱逐字沿河流走向配置的規(guī)律進(jìn)行分析,提出先對(duì)河流注記之間的距離進(jìn)行聚類分析,然后根據(jù)聚類結(jié)果生成可能的注記組合,最后實(shí)現(xiàn)河流名稱的提取并通過核查確保河流名稱的準(zhǔn)確性。
DLG圖中河流面與河流注記的空間關(guān)系如圖1 所示,根據(jù)河流注記的排列及其與河流面的空間關(guān)系,可將河流注記配置的規(guī)律歸納如下:
圖1 河流面與注記
(1)河流名稱分解成單個(gè)文字進(jìn)行標(biāo)注;
(2)單個(gè)文字的注記沿河流面的走向進(jìn)行排列;
(3)完整的河流名稱注記內(nèi)部等距離分布,不同的河流名稱注記之間的距離變化很大。
除上述三類一般性規(guī)律外,DLG圖中的河流注記及其與河流面之間的關(guān)系還存在以下幾類特殊情況:
(1)存在大量的“河”、“塘”等無效文字注記,即無實(shí)際意義的河流注記;
(2)一個(gè)完整的河流名稱可能是多個(gè)注記要素,也可能是一個(gè)注記要素;
(3)一個(gè)完整的河流名稱注記可能分布在兩個(gè)或多個(gè)河流面內(nèi)。
對(duì)河流注記進(jìn)行聚類的主要思路如下:以一個(gè)河流面要素為基本面,按基本面進(jìn)行分組,基本面內(nèi)的所有注記作為聚類分析的一個(gè)單元,不同基本面內(nèi)的注記分別進(jìn)行聚類分析。
將注記視作點(diǎn)要素,通過設(shè)定點(diǎn)要素的距離、鄰域、類別、方向四個(gè)特征值來對(duì)其進(jìn)行分析,點(diǎn)要素i的特征值定義如下:
(1)距離特征值d:點(diǎn)要素i的距離特征值是指該點(diǎn)與其他所有點(diǎn)要素之間距離的最小值dimin。
計(jì)算點(diǎn)要素i的距離特征值的問題可以描述如下:對(duì)于目標(biāo)點(diǎn)集P={p1,p2,…,pn},定義dij為點(diǎn)要素pi到集合P中點(diǎn)要素pj的距離,那么距離特征值可寫成如下公式
文中根據(jù)目標(biāo)點(diǎn)集P中的點(diǎn)構(gòu)建的Delaunay 三角網(wǎng),計(jì)算點(diǎn)要素i的距離特征值。Delaunay 三角網(wǎng)在滿足四點(diǎn)不共圓的前提下具有唯一性,且由Delaunay 三角網(wǎng)的最接近性可知任意一點(diǎn)將與其相距最近的點(diǎn)連接形成三角網(wǎng)中的一條邊作為基線[11-12](如圖2所示)。故可通過計(jì)算三角網(wǎng)中點(diǎn)要素i關(guān)聯(lián)的所有邊的長度,找到最短的長度值作為點(diǎn)要素i的距離特征值d。
圖2 根據(jù)點(diǎn)集生成的約束delaunay 三角網(wǎng)
(2)鄰域特征值n:點(diǎn)要素i的鄰域定義為以點(diǎn)要素位置為中心,以一定距離S為半徑,生成的圓形緩沖區(qū)Ni所覆蓋的區(qū)域。若沒有其他點(diǎn)要素在點(diǎn)要素i的鄰域內(nèi),則n=0;反之,n=1。
(3)類別特征值t:若點(diǎn)要素j的位置在點(diǎn)要素i的鄰域內(nèi),且點(diǎn)要素j的距離特征值djmin在點(diǎn)要素i的距離閾值內(nèi),則點(diǎn)要素i與j為同一類別t(如圖3所示)。
(4)方向特征值a:定義點(diǎn)要素i的方向特征值a的值域?yàn)閧-1,1}(其中-1 表示方向應(yīng)為從北到南,1 表示方向應(yīng)為從西向東),若點(diǎn)要素j是點(diǎn)要素i相距最近的點(diǎn),當(dāng)直線段Lij的斜率K大于1 或小于-1 時(shí),a為-1,當(dāng)直線段Lij的斜率K大于-1 且小于1 時(shí),a為1(如圖4所示)。
圖3 判定為同一類別的情況
圖4 判定方向特征值
根據(jù)河流注記配置規(guī)律及上述點(diǎn)要素聚類方法,并考慮注記的幾種特殊情況后,文中提出的注記聚類方法按如下步驟實(shí)現(xiàn)(如圖5所示)。
步驟1判斷一個(gè)注記點(diǎn)要素i的字符數(shù)是否等于1。若是點(diǎn)要素i單個(gè)字符即字符數(shù)為1 (如圖6所示),則開始計(jì)算其距離特征值,轉(zhuǎn)步驟2;若是點(diǎn)要素i的字符數(shù)大于1(如圖7所示),則判斷為完整的河流名稱注記,不做處理。
圖5 聚類流程
圖6 字符數(shù)為1 的四個(gè)注記點(diǎn)要素
圖7 字符數(shù)大于1 的一個(gè)注記點(diǎn)要素
步驟2計(jì)算點(diǎn)要素i與其所在基本面內(nèi)其他點(diǎn)要素之間距離的最小值,得到距離特征值dimin(如圖8所示),設(shè)置距離閾值的范圍在(0.67*dimin,1.5*dimin)之間,跳轉(zhuǎn)步驟3。
步驟3根據(jù)距離特征值dimin設(shè)置點(diǎn)要素i 的鄰域,其緩沖區(qū)距離S=1.5*dimin(如圖9所示設(shè)置鄰域范圍),跳轉(zhuǎn)步驟4。
圖8 計(jì)算點(diǎn)要素的距離特征值
圖9 設(shè)置鄰域范圍
步驟4判斷點(diǎn)要素j是否位于點(diǎn)要素i的鄰域Ni。若不滿足條件,則點(diǎn)要素i與j不屬于同一類別;若滿足條件,則點(diǎn)要素i的鄰域特征值ni=1,跳轉(zhuǎn)步驟5。
步驟5在滿足鄰域條件下,判斷點(diǎn)要素j的距離特征值是否在點(diǎn)要素i的距離閾值內(nèi)。若不滿足條件(如圖10所示,左邊距離較遠(yuǎn)的“河”的鄰域特征值n=1,但其他注記的距離特征值都不在其距離閾值內(nèi)),則點(diǎn)要素i與j不屬于同一類別;若滿足條件,則跳轉(zhuǎn)步驟6。
步驟6按如下方式判斷要素i與j最終是否屬于同一類別:若點(diǎn)要素i與h屬于同一類別tih,且點(diǎn)要素j與h屬于同一類別tjh,則點(diǎn)要素i,j,h均屬于同一類別。若點(diǎn)要素i存在至少1 個(gè)同一類別要素,則跳轉(zhuǎn)步驟7;若不存在,則刪除此點(diǎn)要素(如圖10所示)。
步驟7計(jì)算點(diǎn)要素i的方向特征值ai。根據(jù)點(diǎn)要素i的同一類別ti中任意兩點(diǎn)連線的斜率K值,計(jì)算ai(如圖11所示,“京杭運(yùn)河”方向a值為-1,“仙人大港”方向a值為1),轉(zhuǎn)步驟8。
步驟8按照ai確定的方向,將與點(diǎn)要素i同類別的注記合并成完整的河流名稱(如圖11所示)。
圖10 豎直走向的“京、杭、運(yùn)、河”屬同一類別,左邊距離較遠(yuǎn)的“河”應(yīng)刪除
圖11 注記合并成河流名稱示例
由于FME 軟件可以實(shí)現(xiàn)多種格式數(shù)據(jù)的讀取、處理和存儲(chǔ)等操作,其支持格式包括Autodesk AutoCAD DWG/DXF(dwg 格式)和Esri Geodatabase (File GeodbArcObjects)(gdb 格式)等,數(shù)據(jù)的處理包括數(shù)據(jù)量的增加刪減、幾何圖形及屬性結(jié)構(gòu)的修改、疊置分析及Delaunay 三角網(wǎng)的生成等。文中采用FME 軟件來實(shí)現(xiàn)上述各步驟(如圖12所示),并將最終數(shù)據(jù)存儲(chǔ)為gdb 格式,以便在地理信息應(yīng)用和服務(wù)中使用。
圖12 FME 實(shí)現(xiàn)上述各步驟
文中選擇蘇州市部分區(qū)域河流DLG 數(shù)據(jù)進(jìn)行試驗(yàn),該區(qū)域河流水系集中且豐富。該實(shí)驗(yàn)選取了大約4 900 多個(gè)注記要素,河流基本面約2 900多個(gè)(如圖13所示)。
圖13 部分選取的注記和河流
依照本聚類方法,最終提取了約1 000多個(gè)完整的河流名稱,對(duì)河流名稱提取的正確率約為96%,具體數(shù)據(jù)見表1。其中出現(xiàn)部分提取錯(cuò)誤的原因主要是:DLG圖中河流名稱標(biāo)注錯(cuò)誤,當(dāng)計(jì)算的方向特征值在45°左右時(shí)不能準(zhǔn)確判斷注記排列方向,河流名稱標(biāo)注的距離不符合文中描述的規(guī)律,同一河流面(基本面)內(nèi)河流名稱標(biāo)注不全。按照文中所述方法提取河流名稱完成后,可將判斷錯(cuò)誤的注記按照正確的河流名稱表進(jìn)行修正。
筆者提出了一種基于要素間距離的聚類方法,該方法的主要特點(diǎn)是通過研究DLG圖中河流注記的配置規(guī)律,利用注記之間的距離關(guān)系,準(zhǔn)確地提取河流名稱。此外,河流名稱提取完成后,將提取后的名稱與河流面按空間關(guān)系關(guān)聯(lián),仍不能保證完全正確。這是因?yàn)樵贒LG 制圖過程中,有同一河流面中配置了多個(gè)不同名稱注記,特別是在河流分岔處。因此,在整合河流的圖形和屬性信息時(shí),仍需按實(shí)際情況對(duì)河流名稱、河流的對(duì)應(yīng)關(guān)系進(jìn)行進(jìn)一步的處理。
表1 河流名稱聚類結(jié)果