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
, rgdal
và sp
gó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.