Kurangi resolusi shapefile di R (atau QGIS jika perlu)


12

Saya menggunakan shapefile sejarah Batas-batas negara bagian AS dari NHGIS untuk membuat peta di R. Shapefile ini adalah resolusi yang jauh lebih tinggi daripada yang saya perlukan ketika membuat peta pada skala negara: lebih dari 2 juta pengamatan untuk satu file. Apakah ada cara agar saya dapat mengurangi resolusi shapefile ini di R? Jika perlu, saya bisa melakukannya di QGIS.


Bisakah Anda menjelaskan lebih lanjut? Resolusi terkait dengan citra. Apakah maksud Anda ada terlalu banyak node dalam poligon, memberikan terlalu banyak detail? Atau apakah ada terlalu banyak titik dalam pembentukan titik?
Ryan Garnett

2
@Ryan Meskipun resolusi memang terkait dengan pencitraan, ini adalah konsep yang masuk akal untuk data vektor juga. Untuk fitur polyline dan poligon dapat diperkirakan dalam hal jumlah simpul yang digunakan per satuan panjang busur. Resolusi tidak selalu dapat ditentukan secara akurat dengan memeriksa data vektor (pertimbangkan serangkaian fitur resolusi tinggi tetapi memiliki banyak titik, misalnya), di mana resolusi biasanya ditemukan dengan berkonsultasi dengan metadata yang sesuai.
whuber

Maksud saya, ada lebih banyak poin dalam shapefile daripada yang diperlukan untuk membuat peta suatu negara. Saya ingin tingkat detail untuk membuat, katakanlah, peta kota. Alasan mengapa ini penting bagi saya adalah karena membuat pembuatan plot menjadi lambat dan karenanya memakan waktu untuk beralih.
Lincoln Mullen

Jawaban:


9

Anda dapat menggunakan gSimplifydari rgeospaket, dan jika Anda menambahkan topologyPreserve=TRUEbendera itu akan mempertahankan topologi.

Perhatikan bahwa Anda masih dapat berakhir dengan garis yang tumpang tindih - kita perlu implementasi algoritma DP yang kuat ini di R:

http://www.sciencedirect.com/science/article/pii/S0098300413002380

[tautan itu mungkin di belakang paywall]


+1 Senang tahu. The rgeosdocs berada di cran.r-project.org/web/packages/rgeos/rgeos.pdf .
whuber

1

Metode standar untuk bentuk linear "penipisan" (termasuk batas poligon) adalah algoritma Douglas-Peucker . Setidaknya dua Rpaket mengimplementasikan ini: dpdalam paket shapefile dan thinnedSpatialPolydalam paket Guerry .

Perhatikan bahwa penipisan poligon yang berdekatan biasanya menciptakan sedikit celah dan tumpang tindih dalam batas-batasnya: itu tidak menghormati hubungan topologi di antara mereka. Saya tidak mengetahui adanya Rpaket yang mempertahankan topologi saat menipis. Untuk keperluan pemetaan skala kecil seperti ini yang seharusnya tidak menjadi masalah serius.


Kebetulan, karena tidak ada yang tahu cara mengucapkan bahasa Jerman lagi :-), Tom Poiker mengubah ejaan namanya beberapa waktu yang lalu.


Anda ingin sangat berhati-hati saat geometri "menipis". Jika Anda memiliki banyak lapisan yang berbagi batas, penipisan dapat membuat celah, menyebabkan kesalahan visual dan akurasi. Penipisan yang berlebihan dapat membuat batas menjadi bergerigi dan disederhanakan. Anda akan ingin bermain dan menguji dengan toleransi dalam penyederhanaan.
Ryan Garnett
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.