Saya memiliki daftar buffer spasial (30000 buffer) yang saya bangun dengan fungsi lapply
:
buff.pts <- lapply(1:nrow(pts.prj), FUN=function(l){
buff <- gBuffer(pts.prj[l,], width=1000) ## 1km
return(buff)
}))
> head(buff.pts)
[[1]]
class : SpatialPolygons
features : 1
extent : 307941.8, 311941.8, 4994518, 4998518 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs +towgs84=0,0,0
[[2]]
class : SpatialPolygons
features : 1
extent : 307226, 311226, 4991153, 4995153 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs +towgs84=0,0,0
Dari daftar ini, bagaimana saya bisa menggabungkan semua buffer spasial untuk mendapatkan shapefile dengan 30000 buffer (atau fitur)? (Shapefile ini kemudian akan digunakan dalam fungsi aggregate
untuk mengagregasi poligon spasial dengan atribut.)
Saya menguji kode ini tetapi saya mendapatkan pesan kesalahan ini:
test <- as.data.frame(do.call("rbind", buff.pts))
Error in as.data.frame(do.call("rbind", buff.pts)) :
error in evaluating the argument 'x' in selecting a method for function 'as.data.frame': Error in validObject(res) :
invalid class “SpatialPolygons” object: non-unique Polygons ID slot values
lapply
bukan menggunakangBuffer
denganbyid = TRUE
?Jawaban:
Diberikan daftar
SpatialPolygons
objek, berikut cara membuat bingkai data poligon spasial dengan satu fitur perSpatialPolygons
fitur asli .Data sampel:
spl
adalah daftar 12SpatialPolygons
objek - pastikan objek Anda memberikan hasil yang sama seperti ini, dan uji pada sampel kecil sebelum dijalankan pada 30.000:Anda ingin membuat
Spatial Polygons
objek tunggal dengan semua fitur di dalamnya untuk kemudian membuat Bingkai Data Poligon Spasial:Ini mengambil
polygons
slot pertama dari objek (dan seharusnya hanya ada satu, karena setiap elemen daftar saat ini merupakan fitur tunggal) dan kemudian membangun daftar objek Polygons yang merupakan umpan yang Anda makanSpatialPolygons
untuk membuat fitur-multiSpatialPolygons
. Plot ini, dan Anda akan melihat semua fitur Anda. Selanjutnya, jika Anda ingin menyimpan sebagaishapefile
, Anda perlu menambahkan beberapa data. Dengan tidak adanya hal lain, saya membuat kolom ID 1 hingga 12 sederhana:The
FALSE
bendera hanya berhenti R mencoba untuk mengatur ulang data spasial dan non-spasial untuk menyesuaikan. Anda mungkin ingin meletakkan ukuran buffer dalam bingkai data atau sesuatu.Pekerjaan selesai.
sumber
Untuk menggabungkan daftar objek spasial, Anda dapat melakukan:
sumber
Anda dapat menggunakan argumen makeUniqueIDs di rbind jika poligon Anda tidak memiliki ID unik.
sumber