К сожалению spatstat
не распознает координаты широты и долготы автоматически.Ваши точки интерпретируются как (x, y, z) координаты в евклидовом пространстве, а три попарных расстояния, измеряемые sqrt((x2-x1)^2 + (y2-y1)^2 + (z2-z1)^2)
, представляют собой (очень подозрительно) хорошие круглые числа 200, 500 и 700. Вот небольшое изменение вИсходный код для расчета всех парных расстояний:
library(spatstat)
ex<- data.frame(long= c(-103.5664,-103.5664,-103.5586),
lat= c(32.09539,32.10129,32.10799),
elevation= c(5000,5500,5700))
bb <- box3(range(ex$long), range(ex$lat), range(ex$elevation))
comp_dist.pp3<- spatstat::pp3(ex$long,ex$lat,ex$elevation,bb)
pairdist(comp_dist.pp3)
#> [,1] [,2] [,3]
#> [1,] 0 500 700
#> [2,] 500 0 200
#> [3,] 700 200 0
Вы можете использовать sp::spTransform
или sf::transform
для преобразования из сферического (lon, lat) в планарное (x, y), а затем вы можете прикрепить свою высотукак z-координата, когда вы определяете объект pp3
, и все должно работать.
Создано в 2019-02-12 пакетом Представить (v0.2.1)