打开要素类错误.几何形状数量与表的纪录数不匹配
前言
在Arcgis中打開Shapefile文件遇到這種問題,返回錯誤:“打開要素類錯誤.幾何形狀數(shù)量與表的紀(jì)錄數(shù)不匹配。”
問題分析
Arcgis提示已很明確,形狀數(shù)與表記錄數(shù)不一致,即圖形與屬性表的記錄數(shù)不一致,情況也就兩種,一是圖形比屬性記錄數(shù)多,另一種就是圖形比屬性記錄數(shù)少。
出現(xiàn)第一種情況原因很多,可能是意外斷電或者程序崩潰,屬性未得到及時保存,也可能有其他的原因;第二種可能是在編輯過程中只增加了屬性記錄,而未進(jìn)行圖形的增加。還有就是可能通過其他的軟件對shp附帶的dbf文件進(jìn)行了編輯,造成記錄的增多或減少,進(jìn)而造成圖形與屬性記錄不一致。
解決辦法
不管問題出現(xiàn)是什么原因,解決辦法很簡單。那就是屬性記錄少了就補(bǔ)上,多了就刪掉。那么如何得知屬性表記錄是多了還是少了呢,就要用到一個叫?shapechk?的工具,工具執(zhí)行順序 Shapefile——Build Shx——Check DBF。因?yàn)樵斐蓡栴}的原因有很多,程序在簡單問題情況下,會自動處理,而復(fù)雜情況下就需要手動處理了。
手動處理步驟
選擇shp文件,點(diǎn)擊Build Shp按鈕,會彈窗提示是否刪除現(xiàn)有索引文件,點(diǎn)擊確定會刪除shp附帶的sbn和sbx文件,在程序中可以看到有614個要素,在這里就拿到了圖形數(shù)。
再點(diǎn)擊Check DBF,可以看到dbf記錄數(shù)為611,比圖形數(shù)少了3個。
也無需其他dbf編輯軟件,將shp附帶的dbf文件改個與shp不同的名字,用Arcgis打開——開始編輯——增加三條記錄——停止編輯——保存。再將名稱改回去,再用Arcgis打開就會發(fā)現(xiàn)問題已解決了。
問題擴(kuò)展
有些愛動腦的小伙伴們不禁又要問了,你這樣修復(fù)之后屬性和圖形還是對應(yīng)的嗎?還真是不一定,這要分幾種情況:
- dbf記錄多了,這種情況一般修復(fù)后沒問題,即使在shp文件中存在幾何為空的要素,shapechk也是會將其認(rèn)定為一個圖形的,所以不用擔(dān)心dbf記錄刪多了,而一般情況下是不會在dbf中間去插入記錄的,所以刪除的多數(shù)情況并不會造成圖形與屬性匹配問題。
- dbf記錄少了,如果由于各種意外情況刪除的是最后的幾條記錄,那么影響的只是最后的圖形丟失屬性,問題不大;如果刪除的是中間的記錄,雖然手工修復(fù)將記錄補(bǔ)齊,則會造成從刪除位置開始的屬性錯位問題。如果出現(xiàn)這種問題就要自求多福了,如果你的屬性中存在與圖形有關(guān)的屬性,那就可以相互驗(yàn)證進(jìn)行調(diào)整,如果沒有那就只能提醒你下次小心點(diǎn)了,數(shù)據(jù)無價,謹(jǐn)慎操作。
修復(fù)幾何
對于以上問題修復(fù)幾何為什么沒有作用呢,這里就把修復(fù)幾何的幫助搬過來,可以看到并沒有針對以上問題的修復(fù),在矢量編輯過程中要注意數(shù)據(jù)規(guī)范,避免出現(xiàn)下面的這些問題。
檢查要素類中每個要素的幾何問題。發(fā)現(xiàn)幾何問題后,將應(yīng)用相關(guān)修復(fù),并打印一行描述,以便識別要素并確定遇到的問題。
有效的輸入為 shapefile、個人地理數(shù)據(jù)庫要素類和文件地理數(shù)據(jù)庫要素類。
- 下面是所有幾何問題和此工具將執(zhí)行的相應(yīng)修復(fù)的列表:
- Null geometry - 從要素類中刪除記錄。要保留具有空幾何的記錄,請取消選中刪除幾何為空的要素(使用 Python 中有關(guān) KEEP_NULL 參數(shù)的 delete_null 選項(xiàng))。
- Short segment - 刪除幾何的短線段。
- Incorrect ring ordering - 更新幾何以獲得正確的環(huán)走向。
- Incorrect segment orientation - 更新幾何以獲得正確的線段方向。
- Self intersections - 融合面中的重疊區(qū)域。
- Unclosed rings - 通過連接環(huán)的端點(diǎn)可將非閉合環(huán)閉合。
- Empty parts - 刪除 null 或空的部分。
- Duplicate vertex - 刪除其中一個折點(diǎn)。
- Mismatched attributes - 更新 z 或 m 坐標(biāo)以實(shí)現(xiàn)匹配。
- Discontinuous parts - 根據(jù)現(xiàn)有的不連續(xù)部分創(chuàng)建多部分。
- Empty Z values:將 z 的值設(shè)置為 0。
- Bad envelope - 更新要素的包絡(luò)矩形以實(shí)現(xiàn)更正。
總結(jié)
以上是生活随笔為你收集整理的打开要素类错误.几何形状数量与表的纪录数不匹配的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PCB文件导入HFSS中仿真
- 下一篇: 【机器学习】机器学习数据集大全