arcgis悬挂点修改_ArcGis拓扑的那些事儿(拓扑应用过程三)
因為每種項目的規(guī)程不同,數(shù)據(jù)庫的規(guī)則也不一樣,有的允許存在拓撲錯誤,有的不允許出現(xiàn),所以我在這里就說說每個線拓撲的規(guī)則與修改方法吧,大家在建立拓撲過程中看情況擇優(yōu)選用!
Ps:每次寫這些都感覺腦細胞死一萬個
線拓撲規(guī)則詳解規(guī)則一:不能重疊規(guī)則解釋:此規(guī)則和面要素中的不能重疊規(guī)則是一致的,此規(guī)則不允許同一個圖層中的任何線段發(fā)生重疊,任何重疊的線都會報錯。修改方法:①.建立好拓撲之后,使用拓撲錯誤查看工具,一個一個修改,這個方法最為穩(wěn)妥,可以自主選擇哪條線段與哪條線段合并、或者選擇性的剪除重疊部分(此方法適用于有不可更改屬性的線段【例如行政界線,權(quán)界線、地類界線、三調(diào),二調(diào),基本農(nóng)田補劃等等精細且要求高的線數(shù)據(jù)】)
②.選中全部線段,使用編輯器菜單欄下的合并工具,使其所有線段合并,然后使用高級編輯中的拆分多部件要素工具(俗稱:炸開工具?)?把線段分開(此操作適合無任何屬性的線段【當(dāng)然有屬性的也可以做這一步操作,然后把有正確屬性的線段與拆分開的線段進行一個空間賦值就可以了】)③.選中全部線段,使用編輯器菜單欄下的合并工具,使其所有線段合并,然后調(diào)用工具箱中的多部件到單部件工具,使其不連續(xù)線段都拆分開(此操作適合無任何屬性的線段【當(dāng)然有屬性的也可以做這一步操作,然后把有正確屬性的線段與拆分開的線段進行一個空間賦值就可以了】)④.使用菜單欄地理處理下拉菜單中的融合工具,選中長度、屬性相同的字段進行相同屬性合并(這個方法小編是不怎么推薦的,弊端很大)⑤.在編輯狀態(tài)下使用高級編輯器中的打斷相交線,這個功能可是不能小看噢,它的隱藏屬性就是刪除重復(fù)線!你選中重疊的線段之后點擊這個功能,然后你就會發(fā)現(xiàn)這重復(fù)的線段神奇的合并成一條線段了(這個方法唯一的缺點就是把所有交點處的線段都會打斷!不過我們可以結(jié)合第二種修改方法來進行使用【如果有特定序號的話,一定要先建立一個序號字段噢,然后在進行打斷相交線這一操作,最后配合使用融合工具合并相同順序號的線段】)
以上方法的排序順序沒有先后啊,若還有其他好的修改方法,請告知小編這菜鳥,讓我也學(xué)習(xí)學(xué)習(xí)。
規(guī)則二:不能相交規(guī)則解釋:此規(guī)則說的是同一圖層中的線段互相不能相交與疊置,不管是任何情況下的相交與疊置,此規(guī)則都認為是錯誤的。修改方法:①.建立好拓撲之后,使用拓撲錯誤查看工具,一個一個修改,這個方法最適合新手使用!簡單、實用、不會出錯,就是麻煩。(此方法適用于精細數(shù)據(jù),例如三調(diào),二調(diào),基本農(nóng)田補劃等等精細且要求高的線數(shù)據(jù))②.使用工具箱中的在折點處分割線,可以打斷所有折點處的線段。③.在編輯狀態(tài)下使用高級工具中的打斷相交線,這個功能在上面就詳細的說啦,這里就不解釋啦!
以上方法的排序順序沒有先后啊,若還有其他好的修改方法,請告知小編這菜鳥,讓我也學(xué)習(xí)學(xué)習(xí)。
規(guī)則三:必須被其他要素的要素類覆蓋規(guī)則解釋:此規(guī)則說的是一個圖層的線必須與另一個圖層中的線要素重合,此規(guī)則認為第一個圖層的任何線段未與第二個圖層的線段重合都是錯誤的
修改方法:①.建立好拓撲之后,使用拓撲錯誤查看工具,一個一個修改,這個方法最適合新手使用!簡單、實用、不會出錯,就是麻煩。(此方法適用于精細數(shù)據(jù),例如三調(diào),二調(diào),基本農(nóng)田補劃等等精細且要求高的線數(shù)據(jù))
②.使用拓撲編輯工具中的對齊邊工具(這個工具在ArcGis拓撲的那些事兒(拓撲應(yīng)用過程二)有介紹),簡單實用便捷!?不過這也是單次修改的!③.使用組合工具(以縣界和鄉(xiāng)界來解釋):要素轉(zhuǎn)點——要素折點轉(zhuǎn)點——在點處分割線——復(fù)制——粘貼——合并——多部件到單部件——空間鏈接賦值必要屬性(一定要使用備份后的數(shù)據(jù)并且在編輯狀態(tài)下進行復(fù)制粘貼),具體操作過程如下:縣界轉(zhuǎn)點,鄉(xiāng)界折點轉(zhuǎn)點,拿縣界的點標(biāo)記鄉(xiāng)界線,然后統(tǒng)一刪除被標(biāo)記的鄉(xiāng)界線段,把鄉(xiāng)界折點轉(zhuǎn)成的點使用在點處分割線工具,分割縣界,把分割后的縣界框選選中復(fù)制到鄉(xiāng)界中,把鄉(xiāng)界線段全部選中使用編輯器下拉菜單中的合并,合并之后呢選用工具多部件到單部件把全部不連續(xù)線段炸開,再把一些必要的屬性用原始數(shù)據(jù)掛接進去!(這些步驟應(yīng)該不難,大家可以試著操作一次【倒是小編感覺腦袋有點暈暈的,被繞進去了。。?!?
④.其實呢,上面三種方法完全可以解決這個重合問題了,但是呢我還想給大家多提供一個工具,可以解決很多數(shù)據(jù)未發(fā)現(xiàn)的問題,這個工具就是整合,此工具也是根據(jù)特定容差內(nèi)來把相近坐標(biāo)點數(shù)據(jù)進行一個坐標(biāo)聚類(這個工具我就是提一提,大家根據(jù)情況使用吧,慎用【這個工具點、線、面通用】)以上方法的排序順序沒有先后啊,若還有其他好的修改方法,請告知小編這菜鳥,讓我也學(xué)習(xí)學(xué)習(xí)。規(guī)則四:不能與其他要素重疊規(guī)則解釋:此規(guī)則說的是一個圖層的線要素不能與另一個圖層中的線要素重疊,但是可以相交,此規(guī)則認為第二個圖層的任何線要素與第一個圖層的線要素有任何重合都是錯誤的
這個拓撲規(guī)則一般都不會使用,我感覺只適用于地類圖斑勾畫草圖階段?例如分村畫圖斑,村界一圈的地類界線有可能會重疊?如果是這樣的話,在總工計劃工作流程時候就會解決這個問題的,如果確實有這樣的問題的話,請參考規(guī)則一的修改方法來,同理!
規(guī)則五:必須被其他要素的邊界所覆蓋規(guī)則解釋:此規(guī)則說的是一個圖層中的線要素必須與另一個圖層的面要素的邊界重合,此規(guī)則認為線圖層中的線要素與面層邊界不重合的線要素都是錯誤的。修改方法:①.建立好拓撲之后,使用拓撲錯誤查看工具,一個一個修改,這個方法最適合新手使用!簡單、實用、不會出錯,就是麻煩。(此方法適用于精細數(shù)據(jù),例如三調(diào),二調(diào),基本農(nóng)田補劃等等精細且要求高的線數(shù)據(jù))②.如果要達到規(guī)則中的效果,那么我們就認為這個重合的地方是一個公共線,就借用整合工具來進行處理,使用此工具會把要素位于指定的X,Y容差范圍內(nèi)的公共要素通過使要素重疊來保持公共要素邊界的完整性,位于指定 x,y 容差范圍內(nèi)的要素將使低等級的要素向高等級的靠攏,位于指定 x,y 容差范圍內(nèi)的要素會插入公共坐標(biāo)折點,并在要素線段相交的地方添加折點,使其完全一致。這里要注意兩個重點啊,如果要素間的距離小于容差,則折點或點將被聚類(移動至重合狀態(tài))。等級較低的要素類或圖層將捕捉到等級較高的要素類或圖層中的要素(其中 1 級高于 2 級)。請注意,如果使用的 x,y 容差較大,則等級為 1 的要素類中的要素甚至也可能發(fā)生移動。③.如果是要驗證縣界、村級調(diào)查區(qū)界線、鄉(xiāng)級行政區(qū)界線與地類圖斑是否存在跨界情況的話,這個規(guī)則一定要使用哦,解決方法為嗎,新建三個個字段(KZJX、XZQDM、CJDCQDM),提取坐落單位代碼前六位、九位、十二位分別依次賦值到新建字段中,以此字段融合形成縣界、村級調(diào)查區(qū)、鄉(xiāng)級行政區(qū),然后轉(zhuǎn)線炸開,這樣就不會出現(xiàn)不重合問題了。④.還有一個騷方法,就是用拓撲中的聚類來解決,使用不同級別的容差,使不準(zhǔn)的界線與標(biāo)準(zhǔn)界線逐漸靠攏,這個方法不大推薦,就給大家提供這么個思路!!!主要是小編用白話也寫不出來,O(∩_∩)O哈哈~,大家回去自己試驗吧!經(jīng)過你自己的不斷實驗,或許會有小驚喜???以上方法的排序順序沒有先后啊,若還有其他好的修改方法,請告知小編這菜鳥,讓我也學(xué)習(xí)學(xué)習(xí)。規(guī)則六:不能有懸掛點規(guī)則解釋:此規(guī)則說的是每一條線段的端點都不能孤立,必須和其他要素或和自身相接觸,此規(guī)則認為線圖層中的任何端點未與其他線接觸都是錯誤的。小編一直都認為懸掛點與懸掛線是一致的,但是聽人說有區(qū)別,但是也沒說區(qū)別在哪兒,讓我很苦惱啊!難過(?﹏?)。修改方法:①.這第一種修改方和上面其余規(guī)則的第一種修改方法都一樣,都是用拓撲查看器來查看和修改。②.使用修剪線工具,此工具可以移除線上超過交點指定距離的部分(懸掛線,也是懸掛點)??尚藜魞蓚€端點均未與其他線相接觸的任何線,但只能移除超過交點指定距離的線段噢。這個工具會將修剪長度短于指定“懸掛長度”且兩個端點均未接觸到其他線的線段(懸掛線)。如果未指定“懸掛長度”的話,則會將所有懸掛線(兩個端點均未接觸到其他線的線段)均修剪至交點處,而不考慮懸掛線的長度。③.使用延伸線工具,此工具可將線段延伸至指定距離范圍內(nèi)的第一個相交要素,如果在指定距離范圍內(nèi)不存在相交的要素,則不會延伸該線段。以上方法的排序順序沒有先后啊,若還有其他好的修改方法,請告知小編這菜鳥,讓我也學(xué)習(xí)學(xué)習(xí)。規(guī)則七:不能有偽節(jié)點規(guī)則解釋:此規(guī)則說的是一個圖層中的線必須在其端點處與同一圖層的多條線接觸,此規(guī)則認為一個端點如果僅與一條線接觸,那么就是錯誤的。修改方法:①.這第一種修改方和上面其余規(guī)則的第一種修改方法都一樣,都是用拓撲查看器來查看和修改。②.對于這個錯誤小編一直是以容差聚類作用去解決,只要把容差設(shè)的足夠小就OK啦(聚類參考上一篇文章)。③.使用FME軟件,調(diào)用Line joiner函數(shù)進行處理。以上方法的排序順序沒有先后啊,若還有其他好的修改方法,請告知小編這菜鳥,讓我也學(xué)習(xí)學(xué)習(xí)。規(guī)則八:不能自重疊規(guī)則解釋:此規(guī)則說的是同一個圖層中的線要素不能與同一圖層中的線要素重疊,此規(guī)則認為任何重疊的線都是錯誤的,相比規(guī)則一的不能重疊來說,這個規(guī)則更適合拓撲線要素!(推薦)修改方法:①.方法同上面所有的第一個修改方法。②.規(guī)則一的所有修改方法對于本規(guī)則同樣有效。規(guī)則九:不能自相交規(guī)則解釋:此規(guī)則說的是同一個圖層中的線要素不能自相交,此規(guī)則認為任何存在要素自疊置的線都是錯誤的。這個錯誤容小編多說一點,自相交這個問題在數(shù)據(jù)生產(chǎn)中是個很嚴重的錯誤,也是最常見的一個錯誤自相交若是不處理,則會導(dǎo)致要素?zé)o法轉(zhuǎn)換成指定格式,或者是無法完成寫入庫等操作。發(fā)生自相交的根本原因情況很多,有些是因為作圖人員不小心誤操作,采集要素節(jié)點的時候反復(fù)添加引起的錯誤;還有就是因為一些檢查或處理的軟件再對數(shù)據(jù)進行處理的時候設(shè)置的數(shù)據(jù)精度不同,也可能會導(dǎo)致自相交!小編下面的有幾種方法都是2018底至2019年中旬做三調(diào)矢量化檢查過程中使用過的一些方法!都是根據(jù)百度整理得來的,具體作者小編真是忘記了(作者大佬們勿怪!)。修改方法:①.方法同上面所有的第一個修改方法。②.這個錯誤小編推薦GIS的自帶工具——修復(fù)幾何,不過使用這個功能之前需要備份數(shù)據(jù)噢,因為此方法會改變要素的幾何,各位酌情使用~~~(小編通常都是先檢查幾何看一下問題大不大,處理之后會不會影響面積,然后才做修復(fù)幾何)。③.使用Arcpy,不過這個咱們基層工作人員會使用的不多(我們都是社畜工具人!),我直接把代碼貼出來,大家直接使用吧,就不解釋了!import arcpyimport os#檢查相交或重復(fù)的問題 A = r"D:\data\test.shp"fold = r'D:\data\bb' #打開覆蓋寫入arcpy.env.overwriteOutput=Trueindex=A.rfind("\\")B=fold+A[index:-4]+"B.shp"C=fold+A[index:-4]+"C.shp"D=fold+A[index:-4]+"D.shp"E=fold+A[index:-4]+"E.shp"G=fold+A[index:-4]+"G.shp"if not os.path.exists(fold): os.makedirs(fold)#問題區(qū)域 相交的問題prob=fold+A[index:-4]+"H.shp"prob2=fold+A[index:-4]+"__WT.shp"#關(guān)閉結(jié)果加入圖層arcpy.env.addOutputsToMap=Falsearcpy.FeatureToLine_management(A,B)arcpy.FeatureToPolygon_management(B,C) arcpy.Intersect_analysis([C,A],G)arcpy.FeatureToPoint_management(G, D)arcpy.FeatureToPoint_management(A, E)arcpy.Erase_analysis(E,D,prob)#添加字段 問題類型arcpy.AddField_management(prob, "problem", "TEXT","","", 12)with arcpy.da.UpdateCursor(prob, "problem") as cursor: for row in cursor: row[0] = "相交" cursor.updateRow(row)del cursor#檢查重復(fù)的問題,根據(jù)坐標(biāo)是否一致判斷 #E = r'D:\data\fumz\test\testE.shp'sets = set()sets2 = set()arcpy.AddField_management(E, "problem", "TEXT","","", 12)fields = ['SHAPE@WKT','problem','SHAPE@X','SHAPE@Y'] with arcpy.da.UpdateCursor(E, fields) as cursor: for row in cursor: id = row[0] id2 = '%s,%s'%(row[2],row[3]) if id in sets: row[1] = '重復(fù)' cursor.updateRow(row) elif id2 in sets2: row[1] = '疑似相交' cursor.updateRow(row) else: cursor.deleteRow() #cursor.updateRow(row) sets.add(id) sets2.add(id2)del cursor#打開結(jié)果加入圖層arcpy.env.addOutputsToMap=True #合并圖層arcpy.Merge_management([E, prob], prob2)#arcpy.env.addOutputsToMap=False delete = False#刪if delete: arcpy.Delete_management(B) arcpy.Delete_management(C) arcpy.Delete_management(D) arcpy.Delete_management(E) arcpy.Delete_management(G) arcpy.Delete_management(prob)④.強大如ArcGIS也是有檢查不出來的自相交,因為不管是拓撲、Shp、MDB或者是GDB都是有容差的,小于這個容差的自相交都是無法檢測到的,所以呢小編在這里推薦使用PostGIS將Shp文件導(dǎo)入Postgresql數(shù)據(jù)庫中,從表里提出自相交的多邊形,然后刪除原表中的自相交圖形,修復(fù)自相交圖形,把修復(fù)完的數(shù)據(jù)恢復(fù)到原來的表中,最后通過PostGIS插件導(dǎo)出Shp!⑤.使用FME軟件來處理,用轉(zhuǎn)換器GeometryOGCValidator過濾出自相交的要素,利用SelfIntersector轉(zhuǎn)換器將面自相交的要素進行處理,在通過GeometryFilter轉(zhuǎn)換器把有效圖形,這個過程中要注意的是參數(shù)一定要選擇Valid,因為我們要檢查的是圖形的有效性!規(guī)則十:必須為單一部分規(guī)則解釋:此規(guī)則說的是同一個圖層中的線要素不能具有一個以上的構(gòu)成部分,此規(guī)則認為任何具有超過一個構(gòu)成部分的線要素都是錯誤的修改方法:①.方法同上面所有的第一個修改方法。②.推薦最簡單粗暴的方法,編輯器下拉菜單合并!③.使用延伸線工具!④.使用多部件到單部件工具!規(guī)則十一:不能相交或內(nèi)部接觸規(guī)則解釋:此規(guī)則說的是一個圖層內(nèi)的線要素必須在其端點處與同一圖層中的其他線要素接觸。此規(guī)則認為任何要素存在疊置與相交點都是錯誤的。修改方法:①.方法同上面所有的第一個修改方法。②.使用組合工具解決,編輯器下拉菜單合并——拆分多部件要素——在折點處分割線③.使用融合工具,以指定的屬性融合。規(guī)則十二:端點必須被其他要素覆蓋規(guī)則解釋:此規(guī)則說的是一個圖層內(nèi)線要素的端點必須被另一個端點覆蓋,此規(guī)則認為任何未被任何點要素覆蓋的端點都是錯誤的。修改方法:①.方法同上面所有的第一個修改方法。②.使用整合工具進行修改。③.使用整形與追蹤功能聯(lián)合進行修改,在這里說一下這個追蹤啊,一定右鍵設(shè)置一下追蹤選項(根據(jù)項目的要求來),設(shè)置一下偏移量,追蹤特定所選要素等!規(guī)則十三:不能與其他要素相交規(guī)則解釋:此規(guī)則說的是一個圖層內(nèi)線要素不能與另一個圖層中的線要素發(fā)生相交或者疊置,此規(guī)則認為第一個圖層中的線要素若和第二個圖層中的線要素發(fā)生相交或者疊置都是錯誤的。這個規(guī)則與規(guī)則四很相似,規(guī)則四允許相交但是不允許重疊!修改方法:①.方法同上面所有的第一個修改方法。②.使用打斷相交線功能③.使用FME模塊處理(會Arcpy也可以)規(guī)則十四:不能與其他要素相交或內(nèi)部接觸規(guī)則解釋:此規(guī)則說的是一個圖層內(nèi)線要素必須與另一條線在其端點處接觸,此規(guī)則認為第一個圖層的任何線段與第二個圖層的線段發(fā)生相交或者疊置都是錯誤的。嘿嘿,這個功能小編還沒有使用過,所以就不在這兒瞎撇了,若大家有其他好的修改方法,請告知小編這菜鳥,共同學(xué)習(xí)學(xué)習(xí)。規(guī)則十五:必須位于內(nèi)部
規(guī)則解釋:此規(guī)則說的是一個圖層線要素必須包含在另一個圖層的面要素內(nèi),此規(guī)則認為若第一個線要素圖層中未被第二個面要素圖層所包含的任何線都是錯誤的。修改方法:①.方法同上面所有的第一個修改方法。
②.組合工具修改,融合(面要素)——裁剪(面裁線)——導(dǎo)出新數(shù)據(jù)
這次的文章寫了大概有五個小時??小編感覺死了十萬個腦細胞。我感覺這個文章應(yīng)該能滿足催更的小伙伴們了吧!除了規(guī)則十四小編沒有用過以外,其余的規(guī)則小編都把修改方法寫了出來(都是我們基層社畜工具人可以看懂且可以直接上手操作使用的)!
閑話就說到這里,喜歡這期內(nèi)容的就給小編點點贊,點點關(guān)注,轉(zhuǎn)發(fā)轉(zhuǎn)發(fā),讓小編也漲漲粉絲數(shù)。
歡迎規(guī)范轉(zhuǎn)載!可以直接加我微信,我給你設(shè)置白名單!
這次不給大家分享工作用的東西拉,給大家分享《速度與激情》全系列的電影!,可以閑暇之余解解乏(摸摸魚?)
因為網(wǎng)盤的規(guī)則限制,不能直接分享鏈接,如果喜歡這個系列的朋友可以關(guān)注我公眾號,點擊菜單欄的聯(lián)系作者,加我好友!
總結(jié)
以上是生活随笔為你收集整理的arcgis悬挂点修改_ArcGis拓扑的那些事儿(拓扑应用过程三)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bios怎么进入后 如何进入BIOS设置
- 下一篇: u盘数据复制不了怎么回事啊 U盘数据无法