Metrik jarak yang sesuai untuk pengelompokan spasial koordinat geografis


8

Saya memiliki satu set lokasi dalam koordinat geografis, dan saya ingin mengelompokkan titik-titik menggunakan pengelompokan hierarkis diikuti dengan pemotongan pohon di berbagai "ketinggian" untuk menghitung sarana variabel-variabel yang bijaksana berdasarkan kelompok yang dicatat di setiap lokasi.

Saya kira pengelompokan hierarkis dari matriks jarak koordinat geografis, mungkin merupakan cara yang menyesatkan untuk membentuk kelompok karena garis lintang dan garis bujur tidak sama spasi.

Saya kemudian bisa membayangkan dua cara ke depan:

  1. Menggunakan jarak lingkaran besar untuk metrik jarak.
  2. Konversi koordinat geografis ke proyeksi dengan skala yang sama dan kemudian temukan jarak Euclidean.

Terlepas dari opsi dua yang lebih rumit untuk dilakukan, apakah pendekatan ini setara? Dan apa sebenarnya arti tinggi pemotongan pohon dalam kasus ini?


2
Re 2: Tidak ada yang namanya "proyeksi dengan skala yang sama": matriks jarak yang diperoleh dengan proyeksi apa pun akan berbeda dari yang menggunakan jarak geodesi. Namun, jika semua titik berada di dekatnya - katakanlah, dalam jarak beberapa ribu kilometer satu sama lain - akan ada banyak proyeksi yang matriks jaraknya mendekati perkiraan dengan yang benar. Untuk bekerja di seluruh bumi, opsi ketiga tersedia: pertimbangkan menggunakan matriks jarak 3D. Mudah untuk menghitung dan harus, secara umum, memberikan hasil yang mirip dengan jarak geodesik.
whuber

Jawaban:


6

Terima kasih kepada @whuber karena mengatur saya di jalur yang benar di sini. Sepertinya tidak akan ada jawaban tambahan yang akan datang, jadi akan menyelesaikan pertanyaan ini dengan memposting pengamatan saya sendiri yang mungkin berguna untuk orang lain yang belajar tentang jarak, pengelompokan, dan proyeksi.

Kode berikut R, menggunakan geosphere, rgdaldan sppaket menunjukkan bahwa hati-hati memilih proyeksi yang tepat dapat memberikan matriks jarak yang akurat (di mana akurat didefinisikan sebagai jarak geodesik) ketika poin hingga 2000 km terpisah (sumbu berada di meter).

library(sp)
library(rgdal)
library(geosphere)

## Produce 200 randomly positioned geographic coordinates
## in central Canada
xyLatLon <- data.frame(lon=(runif(200)*-30)-85,
                       lat=(runif(200)*5)+50)

## Convert to a Lambert Conformal Conic projection that should
## reasonably approximate the true distance
newProj <- "+proj=lcc +lat_1=49 +lat_2=77 +lat_0=63.390675
            +lon_0=-91.86666666666666 +x_0=6200000 +y_0=3000000
            +ellps=GRS80 +units=m +no_defs" 
xyLcc <- spTransform(SpatialPoints(xyLatLon, proj4string=CRS("+proj=longlat")), CRS(newProj))


## Find the geodesic distance matrix from geographic coordinates
## assuming the WGS84 ellipsoid
xyDist1 <- distm(xyLatLon, fun=distMeeus)

## Find the Euclidean distance matrix from the projection
xyDist2 <- as.matrix(dist(coordinates(xyLcc)))

## Find the Euclidean distance matrix of the geographic coordinates
xyDist3 <- as.matrix(dist(xyLatLon))

Plot elemen-elemen dari tiga matriks jarak ini ditunjukkan di bawah ini. Plot di sebelah kiri menunjukkan bahwa proyeksi yang dipilih sangat berkorelasi dengan jarak geodesik melintasi rentang jarak yang digunakan di sini. Sementara plot yang tepat menunjukkan kesalahan besar yang akan diharapkan jika koordinat geografis yang tidak diproyeksikan akan digunakan.

masukkan deskripsi gambar di sini


Hai @ digitalital Saya mencoba mengelompokkan data suhu dalam lat-lon grid yang ditempatkan secara teratur. Saya ingin mempertimbangkan jarak geografis, tidak hanya nilai temp. Apakah saya perlu menghitung matriks jarak seperti yang Anda jelaskan? Terima kasih
pacomet
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.