国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種地形圖建筑物屬性的提取方法及實(shí)現(xiàn)

2022-01-08 08:14:36謝年
城市勘測(cè) 2021年6期
關(guān)鍵詞:樓層高程建筑物

謝年

(重慶市勘測(cè)院,重慶 400000)

1 引 言

在地形圖中,圖形是地物的幾何抽象表達(dá),同時(shí)為了便于讀圖判圖,文字注記同樣是不可缺少的,是地物語(yǔ)義級(jí)別的表達(dá)[1]。以建筑物為例,建筑物輪廓幾何形狀表達(dá)了建筑物的幾何位置、空間形態(tài)等屬性,建筑物的結(jié)構(gòu)注記、樓層注記、高程注記等則表達(dá)了建筑物的結(jié)構(gòu)、樓層和各種高程等屬性。隨著地理信息技術(shù)的快速發(fā)展和應(yīng)用場(chǎng)景的不同需求,通常需要對(duì)地形圖進(jìn)行GIS建庫(kù)處理,注記內(nèi)容成為GIS屬性數(shù)據(jù)的重要來(lái)源和依據(jù)。如何準(zhǔn)確快速地將建筑物注記轉(zhuǎn)換到屬性值是建庫(kù)工作中一項(xiàng)重要的任務(wù),如果全部由人工來(lái)判讀并附加屬性,會(huì)產(chǎn)生巨大的工作量。因此本文提出了一種利用正則表達(dá)式規(guī)則提取建筑物屬性的方法,通過(guò)基于ArcGIS Addin開(kāi)發(fā)插件工具嵌入到ArcMap中,能高效快速地進(jìn)行地形圖建筑物的屬性提取工作。

2 正則表達(dá)式

正則表達(dá)式是一種功能強(qiáng)大的文本處理語(yǔ)言,具有強(qiáng)大的模式表達(dá)功能,通過(guò)使用一系列特殊字符構(gòu)建匹配模式(pattern),具有匹配、過(guò)濾、提取等基本功能,其靈活性和邏輯性極強(qiáng),能用極其簡(jiǎn)單的方式實(shí)現(xiàn)對(duì)字符串的復(fù)雜操作,在目前主流的開(kāi)發(fā)語(yǔ)言(C++、C#、VB、Java、Python等)均支持正則表達(dá)[2],本文正是基于這些特點(diǎn),采用正則表達(dá)式識(shí)別、提取建筑物屬性。

一個(gè)正則表達(dá)式是由普通字符和元字符組成的文字模式。元字符表示特殊的含義(均為半角字符),包括“”“^”“$”“*”“+”“?”“.”“(”“)”“{”“}”“[”“]”“|”。元字符前加“”轉(zhuǎn)義為符號(hào)自身,普通字符是除元字符外的所有字符[3]。

構(gòu)造正則表達(dá)式就是將元字符與普通字符通過(guò)各種方式組合在一起,得到需要的匹配或捕獲。字符的組合存在先后法則,元字符的優(yōu)先級(jí)從高到低如表1所示。

元字符的優(yōu)先級(jí)順序 表1

3 原理分析

根據(jù)地形圖相關(guān)制圖規(guī)范,建筑物注記一般以建筑物輪廓中心點(diǎn)為定位基準(zhǔn),以單點(diǎn)注記的方式依次將不同的注記對(duì)象從上而下依次放置,以 1∶500地形圖為例,建筑物圖形與注記的制圖表達(dá)如圖1所示。

圖1 1∶500地形圖建筑物制圖表達(dá)樣例

通過(guò)對(duì)數(shù)據(jù)進(jìn)行分析不難發(fā)現(xiàn),一是注記中心點(diǎn)的位置一般位于建筑物空間形狀的內(nèi)部;二是不同類型的注記表達(dá)方式會(huì)遵循一定標(biāo)準(zhǔn),比如建筑物的結(jié)構(gòu)與樓層是組合表達(dá),地上樓層與地下樓層之間用“/”進(jìn)行分隔,標(biāo)高的注記前部有標(biāo)高類型說(shuō)明等。因此可以通過(guò)注記與建筑物的空間關(guān)系來(lái)確定注記轉(zhuǎn)屬性的歸屬問(wèn)題,然后再建立一套可以對(duì)注記內(nèi)容進(jìn)行識(shí)別和提取的規(guī)則,就能自動(dòng)將建筑物注記轉(zhuǎn)換到相應(yīng)屬性值中。

4 提取流程和方法

4.1 注記的預(yù)處理

注記的預(yù)處理主要處理兩種問(wèn)題。第一種,利用關(guān)鍵字查詢的方法,剔除與需要提取的建筑物屬性無(wú)關(guān)的注記,如“壩”“空”“平臺(tái)”等。第二種,合并分散的注記。根據(jù)地形圖成圖規(guī)范,一個(gè)完整的建筑物屬性表達(dá)應(yīng)作為一個(gè)注記對(duì)象存在。通過(guò)實(shí)際數(shù)據(jù)分析,發(fā)現(xiàn)存在部分建筑物注記不規(guī)范,沒(méi)有將完整的屬性內(nèi)容作為一個(gè)獨(dú)立的注記對(duì)象,而是分為多個(gè)組成,如建筑物結(jié)構(gòu)與樓層、標(biāo)高類型與高程值等分別作為一個(gè)獨(dú)立的對(duì)象表示等,需要對(duì)此部分注記進(jìn)行合并處理。

4.2 空間運(yùn)算

通過(guò)建筑物與處理后的注記均進(jìn)行空間運(yùn)算,建立每個(gè)建筑物對(duì)象與落在建筑物內(nèi)的注記對(duì)象之間的關(guān)聯(lián)關(guān)系。原則上位于建筑物內(nèi)的注記均可認(rèn)為是此建筑物的屬性內(nèi)容。

4.3 注記內(nèi)容識(shí)別

對(duì)屬于建筑物的注記內(nèi)容分別進(jìn)行識(shí)別。先要建立識(shí)別規(guī)則,通過(guò)正則表達(dá)式的匹配方法來(lái)識(shí)別注記內(nèi)容,如果識(shí)別返回結(jié)果為真,則可以標(biāo)記為該規(guī)則對(duì)應(yīng)的類別。以 1∶500地形圖為例,定義的部分識(shí)別規(guī)則如表2所示。

部分識(shí)別規(guī)則 表2

部分不同注記內(nèi)容的匹配結(jié)果如表3所示。

部分注記匹配結(jié)果 表3

4.4 屬性提取

建立提取規(guī)則,根據(jù)識(shí)別結(jié)果匹配對(duì)應(yīng)的提取規(guī)則,通過(guò)正則表達(dá)式提取方法將屬性信息提取出來(lái),然后寫入建筑物對(duì)應(yīng)的屬性字段中。同樣以 1∶500地形圖為例,部分屬性信息的提取規(guī)則和結(jié)果如表4所示。

部分屬性提取規(guī)則和結(jié)果 表4

5 實(shí)例分析

為驗(yàn)證本文提出的方法的效率和可用性,本文結(jié)合重慶市某區(qū)域地理框架要素?cái)?shù)據(jù)建庫(kù)項(xiàng)目進(jìn)行了生產(chǎn)性試驗(yàn)。在C#平臺(tái)下,通過(guò)基于ArcGIS Addin開(kāi)發(fā)插件工具嵌入到ArcMap中,實(shí)現(xiàn)建筑物屬性的自動(dòng)識(shí)別和提取。

5.1 ArcGIS Addin簡(jiǎn)介

ArcGIS Addin是ArcGIS 10開(kāi)始引入的新桌面定制開(kāi)發(fā)技術(shù),可以在ArcMap中更加方便地進(jìn)行功能的自定義和擴(kuò)展[4]。其支持的功能類型廣泛、文件結(jié)構(gòu)簡(jiǎn)單、安裝部署方便,能快速地進(jìn)行開(kāi)發(fā)投入應(yīng)用。Addin支持的對(duì)象類型主要有交互類和容器類兩種[5],具體如圖2所示,通過(guò)這些對(duì)象,可以定制開(kāi)發(fā)需要的插件。

圖2 Addin支持的功能類型

在開(kāi)發(fā)過(guò)程中,根據(jù)開(kāi)發(fā)的語(yǔ)言不同,可將Addin開(kāi)發(fā)方式分為兩種[6]:基于Python腳本語(yǔ)言的Addin技術(shù)和面向.Net(包含C#、VB、C++等)及Java高級(jí)編程語(yǔ)言的Addin技術(shù)。

同Python Addin技術(shù)相比,面向.Net及Java高級(jí)編程語(yǔ)言的開(kāi)發(fā)方式可支持更多的擴(kuò)展元素,它是基于AO組件的擴(kuò)展開(kāi)發(fā),可實(shí)現(xiàn)細(xì)粒度地控制ArcGIS的各種操作[7],因此本文選取的是基于C#的Addin開(kāi)發(fā)模式。

5.2 主要代碼

(1)通過(guò)IfeatureCursor接口來(lái)實(shí)現(xiàn)對(duì)象的遍歷,主要代碼如下:

IfeatureCursor JzwFeaturecursor;

IFeature pfeature;

IQueryFilter pfilter;

pfilter=null;

JzwFeaturecursor=建筑物圖層.Search(pfilter,false);

pfeature=JzwFeaturecursor.NextFeature();

while(pfeature !=null)

{

pfeature=JzwFeaturecursor.NextFeature();

}

(2)空間運(yùn)算可以通過(guò)IspatialFilter接口來(lái)實(shí)現(xiàn),主要代碼如下:

ISpatialFilter pSpatialFilter=new SpatialFilterClass();

pSpatialFilter.SpatialRel=esriSpatialRelEnum. esriSpatialRelContains;

pSpatialFilter.Geometry=(IGeometry)建筑物對(duì)象.Shape;

IFeatureCursor ZjFeatureCursor;

ZjFeatureCursor=注記圖層.Search(pSpatialFilter,false);

(3)注記內(nèi)容匹配的主要方法如下:

Bool Ragex. IsMatch(注記內(nèi)容,識(shí)別規(guī)則);

(4)注記內(nèi)容提取的主要方法如下:

Regex. Match(注記內(nèi)容,提取規(guī)則);

(5)屬性字段寫入的主要代碼如下:

建筑物對(duì)象.set_Value(建筑物對(duì)象.Fields.FindField(字段),屬性值);

5.3 結(jié)果分析

通過(guò)該方法對(duì)1 400 km2范圍內(nèi)的110萬(wàn)個(gè)建筑物對(duì)象進(jìn)行了自動(dòng)化的屬性提取,耗時(shí)約3個(gè)小時(shí),數(shù)據(jù)成果經(jīng)抽檢,準(zhǔn)確率高達(dá)98%,只有少量的特殊情況需要人工干預(yù)處理,該項(xiàng)目自動(dòng)提取的屬性字段如表5所示。

自動(dòng)提取的屬性字段表結(jié)構(gòu) 表5

地下樓層Int頂層Int架空層Int夾層IntH頂高程DoubleH地高程DoubleH0高程DoubleH制高程DoubleH女兒墻高程DoubleH吊高程Double

提取完成后建筑物數(shù)據(jù)的屬性結(jié)果如圖3所示。

圖3 建筑物屬性提取結(jié)果

由于注記內(nèi)容具有多樣化和不可預(yù)見(jiàn)性,定義的規(guī)則只是根據(jù)大多數(shù)情況來(lái)制定的,因此要對(duì)提取的過(guò)程進(jìn)行異常捕捉監(jiān)控,對(duì)出現(xiàn)異常的情況進(jìn)行分析,進(jìn)一步完善相應(yīng)的規(guī)則,從而提高屬性提取的準(zhǔn)確度。

6 結(jié) 語(yǔ)

本文利用正則表達(dá)式規(guī)則的優(yōu)勢(shì),將其用于建筑物屬性的識(shí)別與提取,并在C#環(huán)境下基于ArcGIS Addin開(kāi)發(fā)了地形圖建筑物屬性提取插件工具,通過(guò)實(shí)際案例測(cè)試與分析,能快速地將地形圖建筑物的注記內(nèi)容提取到建筑物的屬性字段中,準(zhǔn)確率和自動(dòng)化程度高,能有效地節(jié)約生產(chǎn)成本,提高生產(chǎn)效率,在實(shí)際的項(xiàng)目應(yīng)用中取得了比較好的效果。

同時(shí)也發(fā)現(xiàn),該方法對(duì)地形圖的質(zhì)量要求較高,受注記內(nèi)容的規(guī)范性,不可能完全正確,針對(duì)特殊情況,還需要一定程度上的人工干預(yù),接下來(lái)將進(jìn)一步研究算法和正則表達(dá)式規(guī)則,提高成功率。

猜你喜歡
樓層高程建筑物
利用樓層廢水勢(shì)能的發(fā)電裝置
鄰近既有建筑物全套管回轉(zhuǎn)鉆機(jī)拔樁技術(shù)
8848.86m珠峰新高程
描寫建筑物的詞語(yǔ)
電梯的升與降
讀者(2019年2期)2019-01-05 09:09:44
自動(dòng)扶梯樓層板周邊環(huán)境的安全防護(hù)
GPS控制網(wǎng)的高程異常擬合與應(yīng)用
火柴游戲
SDCORS高程代替等級(jí)水準(zhǔn)測(cè)量的研究
回歸支持向量機(jī)在區(qū)域高程異常擬合中的應(yīng)用
长沙市| 汶上县| 新和县| 广河县| 岑巩县| 星子县| 皋兰县| 阿拉善左旗| 徐州市| 泸定县| 车险| 泰来县| 新野县| 南江县| 云龙县| 孙吴县| 普格县| 中江县| 通江县| 儋州市| 会昌县| 全南县| 宝应县| 镇沅| 扎囊县| 平湖市| 子洲县| 崇州市| 泗阳县| 华坪县| 鹰潭市| 金阳县| 乌兰浩特市| 合川市| 阿合奇县| 封开县| 闻喜县| 菏泽市| 微山县| 南澳县| 辉县市|