徐廣玲
摘 要:在土地承包經(jīng)營權(quán)項(xiàng)目中,我們通常采用在南方cass軟件中畫線,然后在cass中構(gòu)面或者在ArcGIS中構(gòu)面的辦法來生成承包地塊,但是如果精度不滿足數(shù)據(jù)庫的要求,則會(huì)造成相鄰承包地塊之間大量的微小縫隙,也就是國源軟件中過密節(jié)點(diǎn)的錯(cuò)誤。數(shù)據(jù)庫中的承包地塊越多,造成的縫隙也就越多,例如,以一個(gè)3000多地塊的行政村來說,就造成了5000多個(gè)縫隙錯(cuò)誤,如果人工手動(dòng)修改,將會(huì)花費(fèi)很多時(shí)間,并且一次性未必能夠處理干凈,很有可能需要反復(fù)檢查并修改多次才可以完成,所以我們要尋找一個(gè)更好的辦法來解決這個(gè)問題。
關(guān)鍵詞:面轉(zhuǎn)換線;線轉(zhuǎn)換面;空間賦值;拓?fù)潢P(guān)系;拓?fù)溴e(cuò)誤;空間位置
1 前言
為解決上述問題,本文提出在ArcGIS下利用面轉(zhuǎn)換線、線轉(zhuǎn)換面、空間賦值的功能,來一次性處理過密節(jié)點(diǎn)問題。
2 面轉(zhuǎn)換線
首先,我們將已有的包含圖形錯(cuò)誤的原始數(shù)據(jù)面狀要素圖層做面轉(zhuǎn)換線的處理。打開ArcMap,在DataManagementTools→Features→Featuretoline下,將承包地塊面狀要素圖層先轉(zhuǎn)換成線狀要素圖層。
我們在InputFeatures選擇承包地塊面狀要素圖層,在OutputFeatureClass選擇線狀要素圖層輸出的路徑,在XYTolerance(optional)可以輸入X,Y容差值。
創(chuàng)建新要素類時(shí),系統(tǒng)將要求用戶設(shè)置X、Y容差值。在拓?fù)潋?yàn)證、緩沖區(qū)生成、面疊加等聚類操作以及一些編輯操作中,使用X、Y容差值來設(shè)置兩個(gè)坐標(biāo)之間的最小距離,用于在這些操作過程中確定所有要素坐標(biāo)(結(jié)點(diǎn)和折點(diǎn))間最小距離的X、Y容差,這就會(huì)影響要素處理操作的結(jié)果。按照定義,X、Y還定義了坐標(biāo)在聚類過程中可于X或Y(或兩者)方向上移動(dòng)的距離。X、Y容差是一個(gè)極小的距離值(默認(rèn)值為0.001米,以地面的單位為單位)。它用于在聚類操作過程中解決坐標(biāo)交叉點(diǎn)位置不精確的問題。使用幾何操作處理要素類時(shí),如果兩個(gè)坐標(biāo)的X距離和Y距離位于彼此的X、Y容差范圍內(nèi),這兩個(gè)坐標(biāo)會(huì)被認(rèn)為重合(也就是說,共享同一個(gè)X、Y位置)。因此,聚類坐標(biāo)就會(huì)被移動(dòng)到某個(gè)公共位置。
這里有一個(gè)關(guān)鍵點(diǎn)在于精度的選擇。在本次錯(cuò)誤數(shù)據(jù)中,要素節(jié)點(diǎn)距離均在0.000011-0.000172之間,而軟件對精度的要求是大于0.05,所以我們在轉(zhuǎn)換時(shí)選擇一個(gè)合理的精度尤為重要,既要滿足軟件檢查的需要,又不能生出多余的線段,否則會(huì)造成下一步線轉(zhuǎn)換面時(shí),生出多余的碎面。我們在0.05-0.000172之間使用默認(rèn)值0.001就可以滿足我們的要求。此次我們轉(zhuǎn)換出4593條線段。
3 線轉(zhuǎn)換面
在上一步操作中,我們已經(jīng)得到轉(zhuǎn)換出的線狀要素圖層,現(xiàn)在我們需要將線狀要素圖層轉(zhuǎn)換成面狀要素圖層。
打開ArcMap,找到DataManagementTools→Features→FeatureTopolygon,同理,我們在InputFeatures選擇線狀要素圖層,在OutputFeatureClass選擇面狀要素圖層輸出的路徑,在XYTolerance(optional)內(nèi)使用默認(rèn)的0.001容差值即可。
在ArcGIS中,線轉(zhuǎn)換面的功能是把所有的線狀要素在容差精度范圍內(nèi)相接封閉成閉合的面狀要素。此次共轉(zhuǎn)出1398個(gè)面狀要素(原有數(shù)據(jù)1380個(gè)地塊,共轉(zhuǎn)換出18個(gè)多余面,原因是承包地塊圖層中實(shí)際存在地格,也就是說圖形中存在空隙,但是線狀要素轉(zhuǎn)換后,會(huì)轉(zhuǎn)出全部的面狀要素,所以,造成了18個(gè)多余面)。這個(gè)問題我們交給下一步去處理。
4 檢查面狀要素的拓?fù)溴e(cuò)誤
拓?fù)潢P(guān)系是指滿足拓?fù)鋷缀螌W(xué)原理的各種空間數(shù)據(jù)間的相互關(guān)系。ArcGIS為我們提供了良好的處理空間拓?fù)潢P(guān)系的平臺(tái)。建立多邊形唯一的空間位置,就是要保證多邊形不能夠相交、重疊。這樣才能為空間賦值提供唯一的對應(yīng)關(guān)系。
因此,我們先做一下拓?fù)錂z查,看看圖形里是否有拓?fù)溴e(cuò)誤。
打開ArcCatalog,在mdb數(shù)據(jù)庫中新建Topology圖層,選擇需要檢查的圖層,設(shè)置容差,添加拓?fù)錂z查規(guī)則MustNotOverlap。完成之后將拓?fù)鋱D層添加到ArcMap里查看檢查結(jié)果。原始數(shù)據(jù)中有面狀要素重疊錯(cuò)誤。
5 處理面狀要素的拓?fù)溴e(cuò)誤
我們的最終目的是將包含圖形錯(cuò)誤的原始面狀要素圖層處理成正確的面狀要素圖層,再將原始數(shù)據(jù)中的屬性值賦值到正確的面狀要素圖層里。為保證面狀要素空間位置唯一并準(zhǔn)確的進(jìn)行空間賦值,那么我們必須要根據(jù)實(shí)際情況處理掉這些錯(cuò)誤。
處理面狀要素重疊的方法有以下幾種:(1)在編輯狀態(tài)下,雙擊圖形后,可以通過直接修改要素節(jié)點(diǎn)來去除重疊部分;(2)在編輯狀態(tài)下,在錯(cuò)誤上右鍵選擇merge,將重疊部分合并到其中一個(gè)面里;(3)在編輯狀態(tài)下,在錯(cuò)誤上右鍵選擇createfeature,將重疊部分生成一個(gè)新的要素,然后利用editor下的merge把生成的面合并到相鄰的一個(gè)面里;(4)在編輯狀態(tài)下,用editor下clip直接裁剪掉重疊部分。
在此數(shù)據(jù)里,只要面狀要素不重疊,即可保證空間位置的一一對應(yīng),那么為了節(jié)省時(shí)間,操作方便選擇第四種方法,將面狀要素重疊的部分切掉。處理完成后,我們就可以給新生成的面狀要素圖層賦屬性了。
6 空間賦值
有了處理后的原始面狀要素和新生成的面狀要素,我們就可以利用ArcGIS空間連接功能進(jìn)行最后一步空間屬性賦值了。
空間連接是指根據(jù)要素的相對空間位置將連接要素中的行匹配到目標(biāo)要素中的行。
默認(rèn)情況下,連接要素的所有屬性會(huì)被追加到目標(biāo)要素的屬性中并復(fù)制到輸出要素類。通過在連接要素的字段映射參數(shù)中控制寫入到輸出中的屬性,可以對其進(jìn)行定義。
打開ArcMap工具箱,點(diǎn)開ArcToolbox→AnalysisTools→overlay→SpatialJoin功能,如圖所示,在TargetFeatures輸入目標(biāo)面狀要素圖層,在JoinFeatures輸入連接的面狀要素圖層,在OutputFeatureClass選擇輸出的路徑及面狀要素名稱,在JoinOperation(optional)中選擇JOIN_ONE_TO_ONE,目的是將所有輸入目標(biāo)面狀要素寫入到輸出面狀要素類。在MatchOption(optional)選擇CONTAINS關(guān)系,目的是把與連接的面狀要素完全重疊或包含關(guān)系的屬性賦值到目標(biāo)面狀要素。這樣,執(zhí)行命令就可以了。
最后,我們打開目標(biāo)面狀要素,查看一下屬性,會(huì)發(fā)現(xiàn)有一部分面狀要素是沒有屬性的(我們將其選中會(huì)發(fā)現(xiàn)正好是18條記錄,也驗(yàn)證了第二步驟,面狀要素存在空圖形,即空隙),所以在目標(biāo)要素內(nèi)刪除無屬性的記錄即可。那么,到此我們的全部工作就做完了。
7 結(jié)束語
隨著信息技術(shù)的發(fā)展及應(yīng)用領(lǐng)域的不斷擴(kuò)大,尤其是計(jì)算機(jī)技術(shù)以前所未有的速度快速發(fā)展,地理信息系統(tǒng)技術(shù)也得到了飛速的發(fā)展。目前,地理信息系統(tǒng)軟件ArcGIS已成為全世界用戶群體最大、應(yīng)用領(lǐng)域最廣泛的GIS軟件平臺(tái)。在人們使用的各類信息中,絕大部分的信息與位置屬性和空間定位有關(guān)。因此,熟練應(yīng)用ArcGIS,學(xué)會(huì)用ArcGIS解決專業(yè)數(shù)據(jù)處理、空間分析及開發(fā)是尤為重要。