在arcgis中開啟shapefile檔案遇到這種問題,返回錯誤:「開啟要素類錯誤.幾何形狀數量與表的紀錄數不匹配。」
arcgis提示已很明確,形狀數與表記錄數不一致,即圖形與屬性表的記錄數不一致,情況也就兩種,一是圖形比屬性記錄數多,另一種就是圖形比屬性記錄數少。
出現第一種情況原因很多,可能是意外斷電或者程式崩潰,屬性未得到及時儲存,也可能有其他的原因;第二種可能是在編輯過程中只增加了屬性記錄,而未進行圖形的增加。還有就是可能通過其他的軟體對shp附帶的dbf檔案進行了編輯,造成記錄的增多或減少,進而造成圖形與屬性記錄不一致。
不管問題出現是什麼原因,解決辦法很簡單。那就是屬性記錄少了就補上,多了就刪掉。那麼如何得知屬性表記錄是多了還是少了呢,就要用到乙個叫shapechk的工具,工具執行順序 shapefile——build shx——check dbf。因為造成問題的原因有很多,程式在簡單問題情況下,會自動處理,而複雜情況下就需要手動處理了。
選擇shp檔案,點選build shp按鈕,會彈窗提示是否刪除現有索引檔案,點選確定會刪除shp附帶的sbn和sbx檔案,在程式中可以看到有614個要素,在這裡就拿到了圖形數。
再點選check dbf,可以看到dbf記錄數為611,比圖形數少了3個。
也無需其他dbf編輯軟體,將shp附帶的dbf檔案改個與shp不同的名字,用arcgis開啟——開始編輯——增加三條記錄——停止編輯——儲存。再將名稱改回去,再用arcgis開啟就會發現問題已解決了。
有些愛動腦的小夥伴們不禁又要問了,你這樣修復之後屬性和圖形還是對應的嗎?還真是不一定,這要分幾種情況:
對於以上問題修復幾何為什麼沒有作用呢,這裡就把修復幾何的幫助搬過來,可以看到並沒有針對以上問題的修復,在向量編輯過程中要注意資料規範,避免出現下面的這些問題。
檢查要素類中每個要素的幾何問題。發現幾何問題後,將應用相關修復,並列印一行描述,以便識別要素並確定遇到的問題。有效的輸入為 shapefile、個人地理資料庫要素類和檔案地理資料庫要素類。
在matlab中將處理結果輸出為shp檔案
在matlab中讀入shp檔案很簡單,乙個函式shaperead就可以了,但輸出為shp檔案就稍微麻煩一些了。shp檔案實際上就是乙個struct,因此得到處理結果後,要先將資料變成struct結構,然後呼叫shapewrite函式就可以了。clc clear close all pic,r geo...
HEXO 02 文章建立
你可以執行下列命令來建立一篇新文章 hexo new layout 您可以在命令中指定文章的布局 layout 預設為post,可以通過修改 config.yml中的default layout引數來指定預設布局。hexo 有三種預設布局 post page和draft,它們分別對應不同的路徑,而您...
02 文件掃瞄OCR識別
一 主要 import cv2 as cv import numpy as np import matplotlib.pyplot as plt defimg show img name,img cv.imshow img name,img cv.waitkey 0 cv.destroyallwin...