Saya mencoba melakukan penyatuan pada bidang yang sama setelah menggabungkan dua bentuk yang berdekatan. Shapefile berakhir dengan setidaknya satu irisan tipis ruang di antara mereka. Ketika saya mencoba serikat pekerja saya mendapatkan kesalahan lubang yatim berikut:
Kesalahan pada createPolygonsComment (p): rgeos_PolyCreateComment: lubang yatim, tidak dapat menemukan mengandung poligon untuk lubang di indeks 17
Saya telah mengunggah contoh yang dapat direproduksi ke Dropbox di tautan ini .
Berikut adalah kode untuk membuat ulang masalah:
#loading required packages
require(sp)
require(rgdal)
require(maptools)
require(rgeos)
#load example data, set "dsn=" to your working directory or specify the path
example <- readOGR(dsn=".",layer="ReproducibleExample")
#Attempting a UnionSpatialPolygons based on the COUNTY field
example.df <- as(example, "data.frame")
countycol <- example.df$COUNTY
example.diss <- unionSpatialPolygons(example, countycol)
Pengembalian:
Kesalahan pada createPolygonsComment (p): rgeos_PolyCreateComment: lubang yatim, tidak dapat menemukan mengandung poligon untuk lubang di indeks 17
Mencoba perbaikan yang diusulkan di sini dan di sini :
slot(example, "polygons") <- lapply(slot(example, "polygons"), checkPolygonsHoles)
Ini mengembalikan kesalahan yang sama yang berasal dari upaya serikat tetapi dengan nomor indeks berbeda:
rgeos_PolyCreateComment: lubang yatim, tidak dapat menemukan mengandung poligon untuk lubang pada indeks 30
Mencoba perbaikan yang diusulkan dalam tutorial bermanfaat Roger Bivand
fix <- slot(example, "polygons")
fixa <- lapply(fix, checkPolygonsHoles)
Mengembalikan kesalahan yang sama pada indeks 30 seperti di atas.
Yang lain telah mengangkat masalah ini di sini dan di sini , dan sementara solusi yang diajukan di atas tampaknya bekerja untuk beberapa kasus, kasus lain tidak terselesaikan. Satu pengguna menggunakan QGIS untuk mengatasi masalah, dan yang lain memiliki 2 dari 3 item yang diperbaiki, tetapi tidak ada resolusi untuk yang terakhir.
Tampaknya orang terus mengalami masalah meskipun kode ini berfungsi dari waktu ke waktu. Adakah yang menemukan solusi dalam R?
Saya telah melakukan "perbaikan geometri" alat di ArcGIS, dan itu memperbaiki masalah, tetapi sepertinya harus ada perbaikan di R.