陳春平 (安徽省第一測繪院,安徽 合肥 230000)
利用ArcGIS平臺進行基礎地理信息數(shù)據(jù)建庫過程中,會遇到大量的批量處理工作及相關屬性的檢查工作,如,基于空間位置將屬性數(shù)據(jù)掛接,在水和路相交地方橋和涵洞重復表示等工作,雖然ArcGIS平臺的ArcToolbox提供了許多類型的工具,然而在實際數(shù)據(jù)整合建庫應用過程中有時需要把多種工具組合在一起才能有效地完成某項具體數(shù)據(jù)批量處理和數(shù)據(jù)檢查,或者需要針對特定類型的地物要素進行屬性的批量處理,否則如果執(zhí)行每一個工具都需要人工干預,降低生產(chǎn)效率同時由于人工參與會增加數(shù)據(jù)的出錯率。
模型構建器是ArcGIS用來創(chuàng)建、編輯和管理模型的應用程序。模型是將一系列地理處理工具串聯(lián)在一起的工作流,它將其中一個工具的輸出作為另一個工具的輸入。也可以將模型構建器看成是用于構建工作流的可視化編程語言。使用模型構建器創(chuàng)建的工具可在Python腳本和其他模型中使用。結合使用模型構建器和腳本可將ArcGIS與其他應用程序進行集成。
模型構建器是一個簡單易用的應用程序,用于創(chuàng)建和運行包含一系列工具的工作流,可以使用模型構建器定制適合實際作業(yè)的工具。利用模型構造器的優(yōu)點是不需要編程經(jīng)驗,可以利用ArcToolBox提供的工具集實現(xiàn)許多批量數(shù)據(jù)修改和檢查工作,熟悉Python編程,可利用Python調用其對應的函數(shù)實現(xiàn)相關功能。模型構造器提供了導出Python代碼的功能和調用利用Python編寫的腳本的功能,方便模型構造器和Python腳本的融合,擴展模型構造器的功能。
模型構造器在基礎地理信息更新過程中的應用主要包括兩方面:
①在更新過程中需要對屬性進行批量處理過程中,可以利用模型構造器將ArcToolbox中的相關工具集合將其關聯(lián)起來,減少作業(yè)過程中重復調用ArcToolbox工具,批量對其屬性進行修改;
②在基礎地理信息數(shù)據(jù)更新過程之后,對更新后的數(shù)據(jù)庫進行數(shù)據(jù)檢查,利用ArcGIS中的拓撲檢查可以完成簡單的面懸掛、偽節(jié)點,相交等檢查,但按屬性進行數(shù)據(jù)檢查時,由于拓撲規(guī)則不支持選擇要素后再進行檢查,所以利用拓撲規(guī)則進行數(shù)據(jù)檢查時很難進行該類型檢查,借助于ArcGIS模型構造器利用ArcToolbox中提供的工具可以很方便的實現(xiàn)。
本文以批量修改大車路上的人行橋、檢查水系流向和帶屬性信息的偽節(jié)點檢查為例研究模型構造器在基礎地理信息系統(tǒng)更新中的應用。
由于規(guī)范規(guī)定單線河流、溝渠及水系結構線都是有向線表示,在利用ArcGIS作業(yè)過程中,作業(yè)人員在作業(yè)過程中有時不注意方向,就是出現(xiàn)單線溝渠和水系結構線之間方向矛盾,由于在建庫過程中水系要素很多,靠人工判別不可能把每一個錯誤一一修改,需要依靠相關工具批量查找,可以利用模型構造器解決此類問題,首先,將HYDL中的單線河流、溝渠及水系結構線選擇出來,利用要素折點生成點工具,分別將要素的起點和終點生成點數(shù)據(jù)集,分別求得其重疊要素,然后利用擦除工具擦除起點和終點的重疊要素,最后得到的分別是起點和起點相互重疊的以及終點和終點相互重疊的不合理的數(shù)據(jù),將其合并輸出,就找出方向矛盾的數(shù)據(jù)。
利用ArcGIS拓撲檢查可以進行線層的偽節(jié)點、懸掛點檢查,但是檢查結果好多錯誤不需要修改處理,在地理信息數(shù)據(jù)建庫時,需要處理的偽節(jié)點主要是同一地物間的偽節(jié)點,由于ArcGIS進行偽節(jié)點的拓撲檢查時,根據(jù)屬性選擇后再進行檢查,所以導致檢查結果數(shù)據(jù)個數(shù)很大,但實際需要處理的很少,但是每個檢查結果都有作業(yè)員一一核查,增加了建庫工作量,同時也降低了效率。筆者利用ArcGIS模型構造器進行了偽節(jié)點檢查的模型制作,主要方法是利用要素折點轉點工具生成線層的起始點,然后利用刪除相同的工具將同一起始點相同的刪除,利用工具將起始點的XY坐標添加在屬性字段里,利用頻數(shù)工具將XY坐標值相同的進行頻數(shù)統(tǒng)計,按屬性選擇出來XY坐標頻數(shù)等于2即只有兩個點重疊的起始點,在利用查找相同的工具將所有起始點地物名稱相同的點生成統(tǒng)計表,利用空間連接將只有兩個重疊點的匯總表和地物名稱相同的點統(tǒng)計表與起始點數(shù)據(jù)進行空間連接,利用按屬性選擇工具將“匯總.頻數(shù)”=2 AND“查找相同的.IN_FID”>0選擇出來導出輸出,即為需要修改的偽節(jié)點,利用各類工具制作的帶屬性信息的偽節(jié)點檢查的模型如下圖所示。
帶屬性信息的偽節(jié)點檢查的模型
本文研究模型構造器在基礎地理信息更新中的應用方法,把利用模型構造器設計好的模型應用于基礎測繪建庫更新的實際生產(chǎn)過程中,利用該方法無論在提高地理數(shù)據(jù)處理效率,還是提供數(shù)據(jù)檢查質量方面都有著十分重要的意義。但模型構造器也有不足之處,主要包括①在不懂Python編程的情況下,模型構造器只能使用ArcToolBox中提供的工具集,限制了其功能,擴展性不理想,有時想要實現(xiàn)的功能必須借助Python編程;②模型構造器中的邏輯判斷和迭代功能使用起來不是很方便;③在模型構造器中使用的ArcToolBox中的工具集不是在原始數(shù)據(jù)上操作,部分必須要有輸出數(shù)據(jù),產(chǎn)生了大量中間數(shù)據(jù),同時對那些要求在原數(shù)據(jù)修改操作帶來了困難。本文研究了模型構造器兩個方面的用處,但模型構造器在基礎地理信息更新過程中可以發(fā)揮更大的作用,希望以后能繼續(xù)深入的研究。