Saya memiliki shapefile ESRI yang sangat besar (> 8000 poligon, file .shp> 32MB), yang ingin saya baca di R pada Windows 7.
Saya kenal dengan rgdal dan readOGR (). Namun, dengan ukuran shapefile ini, membaca seluruh shapefile ke dalam memori adalah proses yang sangat lambat. Selain itu, saya hanya tertarik pada beberapa poligon berkerumun (<100) dari 8.000 yang terkandung dalam shapefile. Proses yang perlu saya lakukan ini sangat berulang, yaitu shapefile perlu dimuat berkali-kali, sehingga saat ini sangat lambat.
Oleh karena itu, saya bertanya-tanya apakah mungkin hanya membaca di bagian shapefile untuk mempercepat proses. Tampaknya tidak praktis untuk memuat data sebanyak itu dan kemudian membuang sebagian besar data itu.
Jawaban:
Satu-satunya hal yang terlintas dalam pikiran adalah untuk memanfaatkan perpustakaan "sfr" baru dan kelas fitur sederhana yang terkait untuk berlangganan. The Perpustakaan sfr saat ini tersedia di GitHub dan di sini adalah tutorial untuk Anda mulai.
Saya tidak percaya bahwa Anda dapat melakukan streaming data berdasarkan query bagian Namun, ini akan di kecepatan sewa up kali membaca jauh dan diduga masa depan R kelas spasial .
Pilihan lain adalah menyimpan data spasial Anda dalam database (mis., PostGIS) dan permintaan dari database. Ini bisa menjadi cara yang sangat efisien untuk menangani data besar.
sumber
sf
paket tersedia di CRAN sejak versi 0.2 (2016/10/26): cran.r-project.org/web/packages/sf/index.htmlSaya pikir menggunakan GIS seperti QGIS dan memilih fitur yang Anda butuhkan akan menjadi pendekatan yang baik.
Jika Anda perlu menggabungkan kembali hasil, Anda bisa membuat satu file dengan 7900 poligon yang tidak ingin Anda proses, kemudian memproses 100 poligon, dan bergabung kembali setelah pemrosesan.
sumber
Anda dapat membuat subset dari shapefile menggunakan
org2ogr
perintah, seperti yang dicontohkan di sini:ogr2ogr memilih fitur berdasarkan atribut
Anda harus mengetahui kondisi untuk memilih fitur yang Anda inginkan.
sumber