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

帶屬性信息的偽節點檢查的模型
本文研究模型構造器在基礎地理信息更新中的應用方法,把利用模型構造器設計好的模型應用于基礎測繪建庫更新的實際生產過程中,利用該方法無論在提高地理數據處理效率,還是提供數據檢查質量方面都有著十分重要的意義。但模型構造器也有不足之處,主要包括①在不懂Python編程的情況下,模型構造器只能使用ArcToolBox中提供的工具集,限制了其功能,擴展性不理想,有時想要實現的功能必須借助Python編程;②模型構造器中的邏輯判斷和迭代功能使用起來不是很方便;③在模型構造器中使用的ArcToolBox中的工具集不是在原始數據上操作,部分必須要有輸出數據,產生了大量中間數據,同時對那些要求在原數據修改操作帶來了困難。本文研究了模型構造器兩個方面的用處,但模型構造器在基礎地理信息更新過程中可以發揮更大的作用,希望以后能繼續深入的研究。