Saya punya pertanyaan berkaitan dengan agregasi spasial dalam R. Apa yang saya coba lakukan adalah menggabungkan dataset titik ke kisi. Namun saya tidak yakin bagaimana melakukan ini karena saya memiliki sedikit pengalaman dengan hal-hal semacam ini. Saya berharap ada di antara Anda yang mungkin memiliki panduan yang bermanfaat / solusi yang mungkin.
Poin menguntungkan saya adalah set data yang berisi data georeferensi pada peristiwa konflik di Afrika (lihat www.acleddata.com). Titik-titik tersebut di-georeferensi dengan koordinat garis lintang / garis bujur dan berisi data tentang jenis dan waktu acara. Yang ingin saya lakukan adalah menggabungkan titik-titik ini ke grid 1x1 derajat.
Dengan demikian sel-grid harus berisi informasi dari titik-titik data jika suatu peristiwa terjadi dalam sel-grid itu. Produk akhirnya harus berupa kerangka data atau sesuatu yang dapat saya ekspor ke file csv karena data tersebut dimaksudkan untuk digunakan dalam set data panel untuk analisis statistik.
Sejauh ini saya memuat dan memplot data dan shapefile menggunakan kode di bawah ini. Saya percaya bahwa saya harus menggunakan fungsi over dari paket sp untuk menggabungkan tetapi saya tidak tahu caranya. Semoga salah satu dari Anda dapat membantu.
Kode yang saya gunakan sejauh ini dapat ditemukan di sini dengan hasil visual yang sesuai di sana .
Saran untuk melakukan ini di QGIS juga diterima.
sumber
Jawaban:
Data yang diunduh berisi beberapa kesalahan lokasi yang jujur, jadi hal pertama yang harus dilakukan adalah membatasi koordinat ke nilai wajar:
Komputasi dan pengidentifikasi sel grid hanya masalah memotong desimal dari nilai garis lintang dan garis bujur. (Lebih umum, untuk raster sewenang-wenang, pusat pertama dan skala mereka untuk unit cellsize, memotong desimal, dan kemudian skala ulang dan masukkan kembali ke posisi semula, seperti yang ditunjukkan dalam kode di
ji
bawah ini.) Kita dapat menggabungkan koordinat ini menjadi pengidentifikasi unik, melampirkannya ke kerangka data input, dan menulis kerangka data yang ditambah sebagai file CSV. Akan ada satu catatan per poin:Anda mungkin ingin keluaran yang merangkum peristiwa dalam setiap sel kisi. Untuk mengilustrasikan ini, mari kita hitung jumlah per sel dan mengeluarkannya, satu catatan per sel:
Untuk ringkasan lainnya, ubah
function
argumen dalam perhitungancounts
. (Atau, gunakan spreadsheet atau perangkat lunak database untuk meringkas file output pertama dengan pengidentifikasi sel.)Sebagai tanda centang, mari memetakan penghitungan menggunakan pusat kotak untuk menemukan simbol peta. (Titik-titik yang terletak di Laut Mediterania, Eropa, dan Samudra Atlantik memiliki lokasi yang dicurigai: Saya menduga banyak di antaranya merupakan hasil dari pencampuran lintang dan bujur dalam proses entri data.)
Alur kerja ini sekarang
Didokumentasikan dengan seksama (melalui
R
kode itu sendiri),Reproducible (dengan menjalankan kembali kode ini),
Extensible (dengan memodifikasi kode dengan cara yang jelas), dan
Cukup cepat (seluruh operasi membutuhkan waktu kurang dari 10 detik untuk memproses 53052 pengamatan ini).
sumber
Nah, yang Anda inginkan adalah dasar yang disebut "Gabung Spasial", yang mencocokkan dua shapefile satu sama lain dan mengalokasikan jumlah (jumlah hitungan) ke tabel atribut yang dihasilkan. Jika Anda mencari "Gabung Spasial di R" Anda akan menemukan banyak contoh bahkan di sini di GIS.Stackexchange. Saya dengan cepat googled dan menemukan misalnya kode ini diposting di milis.
Jika Anda ingin mencapai atribut spasial bergabung di QGIS, maka lakukan hal berikut:
Jika Bergabung entah bagaimana gagal (tidak berfungsi untuk saya setiap saat), maka tetaplah ke SEXTANTE dan cari kotak alat SAGA, yang juga memiliki fungsi bergabung yang sangat baik.
sumber
R
unggul di. Menggunakan shapefile,,rgdal
QGIS, dan Sextante agak seperti merekomendasikan agar seseorang menyewa pabrik industri otomatis modern untuk menggabungkan dua papan :-).