temukan centroid dari sekelompok titik


27

Saat mencari di web, solusi untuk menemukan centroid poligon cukup sering muncul. Yang saya tertarik adalah menemukan centroid dari sekelompok titik. Jenis rata-rata tertimbang. Saya akan sangat menghargai jika seseorang dapat memberikan beberapa petunjuk, kode semu (atau bahkan lebih baik, paket R yang telah memecahkan masalah ini) atau tautan tentang bagaimana masalah ini dapat diatasi.

EDIT

Konvergensi telah terjadi (lagi). iant telah menyarankan metode untuk rata-rata koordinat dan menggunakannya untuk pusat massa. Inilah yang terlintas di benak saya ketika saya melihat gambar yang tepat di halaman web ini .

Berikut adalah beberapa kode R sederhana untuk menggambar gambar berikut yang menunjukkan ini (× adalah centroid):

xcor <- rchisq(10, 3, 2)
ycor <- runif(10, min = 1, max = 100)
mx <- mean(xcor)
my <- mean(ycor)

plot(xcor, ycor, pch = 1)
points(mx, my, pch = 3)

masukkan deskripsi gambar di sini

EDIT 2

cluster::pam()$medoidsmengembalikan medoid dari set cluster. Ini adalah contoh yang dicuri tanpa malu-malu dari @Joris Meys:

library(cluster)
df <- data.frame(X = rnorm(100, 0), Y = rpois(100, 2))
plot(df$X, df$Y)
points(pam(df, 1)$medoids, pch = 16, col = "red")

1
Apakah ada alasan pusat rata-rata atau pusat jarak minimum poin tidak cukup?
Andy W

1
@ Roman: Grafik tidak benar: Anda perlu menggunakan mean , bukan median. Untuk awan titik spasial 2D ada analog dari pusat median, tetapi ini bukan salah satu dari mereka (karena bergantung pada koordinat): lihat stats.stackexchange.com/q/1927/919 untuk diskusi.
whuber

1
Saya juga menyarankan untuk memeriksa bab 4 dari buku kerja crimestat , icpsr.umich.edu/CrimeStat/files/CrimeStatChapter.4.pdf . Ini adalah pengantar yang cukup lembut, menggambarkan dan menampilkan secara grafis mengapa median untuk dimensi yang lebih tinggi tidak memiliki solusi yang unik, dan menjelaskan ukuran lain dari kecenderungan sentral dan varian dari pola titik spasial.
Andy W

Ini semakin menarik. Terima kasih atas jawaban anda Saya mencari masalah ini.
Roman Luštrik

2
"menyarankan metode untuk rata-rata koordinat dan menggunakannya untuk pusat massa." Faktanya, ini adalah definisi dari centroid, bukan hanya sesuatu yang membuat perkiraan yang baik.
Colin K

Jawaban:


43

rata-rata koordinat X dan Y (kalikan dengan berat jika Anda mau) dan ada centroid Anda.


4
+1 Solusi hebat. Itu meluas ke centroid pada spheroid, juga (yang penting untuk menghindari distorsi terkait proyeksi ketika titik-titik tersebar di sebagian besar bola bumi): konversi pertama (lat, lon) ke 3D (x, y, z) ( geocentric) mengoordinasikan, rata-rata mereka, kemudian mengonversi hasilnya kembali ke (lat, lon) (mengabaikan fakta yang hampir tak terelakkan bahwa rata-rata 3D akan jauh di bawah permukaan).
whuber

Saya telah memperbarui pertanyaan saya untuk mencerminkan jawaban Anda.
Roman Luštrik

1

Anda dapat menggunakan fungsi centroid dari paket geosphere.

https://www.rdocumentation.org/packages/geosphere/versions/1.5-5/topics/centroid


Selamat datang di GIS StackExchange dan terima kasih telah mengirimkan jawaban. Silakan luangkan waktu sejenak untuk meninjau Tur untuk mempelajari tentang format Tanya Jawab kami yang terfokus. Harap edit jawaban Anda untuk memasukkan lebih banyak detail karena kami biasanya mencari jawaban yang lebih panjang (bukan 1-2 kalimat) untuk membantu poster asli atau pencari yang akan datang. Salah satu modifikasi yang dapat Anda lakukan adalah memasukkan alasan Anda berpikir alat ini akan membantu atau cuplikan kode / tangkapan layar.
smiller
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.