Số liệu khoảng cách phù hợp cho phân cụm không gian của tọa độ địa lý


8

Tôi có một tập hợp các vị trí theo tọa độ địa lý và tôi muốn nhóm các điểm bằng cách sử dụng phân cụm theo thứ bậc theo sau là cắt cây ở nhiều "độ cao" khác nhau để tính toán các phương tiện biến đổi theo nhóm tại mỗi vị trí.

Phân nhóm theo cấp bậc của ma trận khoảng cách của tọa độ địa lý, tôi cho rằng, có thể là một cách gây hiểu lầm để hình thành các nhóm vì vĩ độ và kinh độ không cách đều nhau.

Sau đó tôi có thể tưởng tượng hai cách về phía trước:

  1. Sử dụng khoảng cách vòng tròn lớn cho số liệu khoảng cách.
  2. Chuyển đổi tọa độ địa lý thành hình chiếu có tỷ lệ bằng nhau và sau đó tìm khoảng cách Euclide.

Ngoài lựa chọn hai phức tạp hơn để thực hiện, những cách tiếp cận này có tương đương không? Và chính xác ý nghĩa của chiều cao cắt cây trong những trường hợp này là gì?


2
Re 2: Không có thứ gọi là "phép chiếu có tỷ lệ bằng nhau": ma trận khoảng cách thu được với bất kỳ phép chiếu nào sẽ khác với cách sử dụng khoảng cách đo đạc. Tuy nhiên, nếu tất cả các điểm ở gần nhau - giả sử, trong phạm vi vài nghìn km của nhau - sẽ có nhiều phép chiếu có ma trận khoảng cách gần đúng với xấp xỉ với điểm chính xác. Để làm việc trên toàn bộ trái đất, có sẵn tùy chọn thứ ba: xem xét sử dụng ma trận khoảng cách 3D. Nó rất dễ tính toán và nói chung, nên cho kết quả tương tự như khoảng cách đo đạc.
whuber

Câu trả lời:


6

Cảm ơn @whuber đã đặt tôi đi đúng hướng ở đây. Có vẻ như sẽ không có câu trả lời bổ sung nào sắp tới, vì vậy sẽ giải quyết câu hỏi này bằng cách đăng các quan sát của riêng tôi có thể hữu ích cho những người khác tìm hiểu về khoảng cách, phân cụm và dự đoán.

Các mã sau đây R, sử dụng geosphere, rgdalspgói chứng minh rằng lựa chọn cẩn thận chiếu đúng có thể đưa ra một ma trận khoảng cách chính xác (nơi chính xác được định nghĩa là khoảng cách đo đạc) khi điểm là lên đến 2000 km ngoài (trục được tính bằng mét).

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))

Sơ đồ các yếu tố của ba ma trận khoảng cách này được hiển thị dưới đây. Biểu đồ bên trái chỉ ra rằng phép chiếu được chọn có tương quan cao với khoảng cách trắc địa trên phạm vi khoảng cách được sử dụng ở đây. Mặc dù cốt truyện bên phải thể hiện lỗi đáng kể sẽ xảy ra nếu sử dụng tọa độ địa lý không được cung cấp.

nhập mô tả hình ảnh ở đây


Xin chào @digitalmaps Tôi đang cố gắng phân cụm dữ liệu nhiệt độ trong một lưới lat-lon cách đều đặn. Tôi muốn tính đến khoảng cách địa lý, không chỉ các giá trị tạm thời. Tôi có cần tính toán một ma trận khoảng cách như bạn giải thích không? Cảm ơn
pacomet
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.