用 Grass 的 v.clean 修正幾何錯誤、重疊區與填補空隙
專業生草空間地理分析工具
雖然說現在 Grass 已經整合入 QGIS 的 Processing Toolbox 中,但畢竟是第三方工具的關係,有時候會出現一些小 Bug 導致無法正常運作。例如流浪貓的前輩想在 QGIS 中用 v.clean 來清除向量地圖的一些拓撲錯誤時,就常發生無法運作或執行後錯誤依然存在、但獨立運作時卻又完全正常的奇怪狀況。習維尼
但無論如何,Grass 依然是個免費、開源又好用的地理資訊系統 (GIS),常被用來處理點陣 (Raster) 和向量 (Vector) 圖型資料。
安裝 Grass
於軟體管理員搜尋並安裝 Grass 即可。
Grass 文字界面操作 (command line)
打開終端機,以輸入以下指令啟動 Grass 新專案
grass78 -c EPSG:3857 /home/user/grass
或打開現有專案
grass78 "/home/user/grass/island/PERMANENT" -gtext
匯入向量圖
輸入以下指令,將 test_1.gpkg 匯入 Grass
v.in.ogr input=test_1.gpkg
將 test_1 進行幾何錯誤清理後,輸出成 test_1_clean
v.clean input=test_1 output=test_1_clean tool=break,snap,bpol
threshold=1
參數說明
break: 斷開交叉的線段。
bpol: 打破重疊多邊形的邊界。
snap: 將線連結到頂點上。
threshold: 臨界值,處理所有小於此距離的點,以地圖單位為準。
因為 Grass 出現無法用 rmdupl 去除重疊區的奇怪問題,因此換回 QGIS 的 Delete duplicate geometries 來替代。習病毒
若過程沒出現錯誤訊息,則可將其輸出成 test_1_clean.gpkg
v.out.ogr -c input=test_1_clean type=area output=test_1_clean.gpkg
成功切割重疊區並自動填補間隙 (黃色區域)
Grass 圖形界面操作 (GUI)
由於不明原因,Linux 系統無法啟動 GRASS GIS 的 GUI,以下操作過程是在 Windows10 系統中示範。
付費以解鎖更多 QGIS 實戰技巧
將重疊區切割成獨立的 Polygon
延伸閱讀
Grass - wiki Vector topology cleaning