Saya mencoba untuk memotong dua SpatialPolygonsDataFrames dan mendapatkan SpatialPolygonsDataFrame sebagai hasilnya. Sayangnya, dengan menggunakan gIntersection
fungsi dari rgeos
(yang bekerja dengan cepat untuk memotong poligon), saya sepertinya tidak bisa mengambil dataframe yang terkait. Perhatikan contoh berikut:
> fracPoly <- gIntersection( toSingle, fromSingle )
> class(toSingle)
[1] "SpatialPolygonsDataFrame"
> class(fromSingle)
[1] "SpatialPolygonsDataFrame"
> class(fracPoly)
[1] "SpatialPolygons"
Saya dapat menulis fungsi pembungkus yang menangani transfer data.frames
, tetapi akan sangat merepotkan untuk mendapatkan semua pengecekan dengan benar dan sebelum saya melakukannya saya berharap seseorang dapat mengkonfirmasi bahwa tidak ada cara yang lebih baik atau mengarahkan saya ke fungsi lain (atau opsi untuk gIntersection
) yang akan memungkinkan saya untuk mempertahankan yang terkait data.frames
.
Memperbarui
Pada refleksi lebih lanjut, ini mungkin merupakan perilaku yang disengaja oleh gIntersection
. Lagi pula, dari dua SPDF, yang mana data.frame yang Anda sampaikan? Jadi saya mungkin harus menulis pembungkus yang menggabungkan keduanya.
sumber
Jawaban:
Untuk beberapa proyek saya memiliki kebutuhan yang sama. Lebih dari sekadar menjaga
data.frame
, kami harus menempatkan kode lebih lanjut untuk mengelola tipe geometri keluaran, dan melanjutkan ke pembersihan (mis. Koleksi geometri bersih), untuk memiliki beberapa geoproses persimpangan lengkap. Jika Anda masih perlu melakukan tugas seperti itu di R, Anda dapat mencoba paket RFigisGeo :sumber
Perilaku gIntersection adalah untuk tidak melewatkan data berpotongan dengan desain:
Yang mengejutkan saya, paket raster memiliki fungsi persimpangan , yang hanya memotong dan menyerahkan data juga.
Info lengkap yang saya dapat tentang ini: http://r-sig-geo.2731867.n2.nabble.com/Intended-usage-of-gIntersection-td7587120.html
sumber
Bagi mereka (seperti saya) yang jawaban di atas tidak berfungsi, tautan di sini menjelaskan bahwa Anda dapat melakukan hal ini dengan memotong raster.
Bagaimana cara menyimpan semua data atribut saat memotong dua poligon di R?
Saya menggunakan ini untuk memotong SpatialPointsDataFrame dengan shapefile SpatialPolygons; itu membuat versi SpatialPointsDataFrame yang dipotong / terpotong, mempertahankan data asli.
sumber