trip
패키지에는 "시간이 많이 걸렸습니다"기능이 있습니다 (저자명). 시간이 지남에 따라 기본 트랙 프로세스를 이해하는 트랙 데이터에서 객체를 생성하고 수정 사이에 직선 세그먼트를 가정하여 포인트를 처리하기 만하면됩니다. '집'에 최대 값 픽셀이있는 경우, 즉 기간을 기준으로 모든 세그먼트를 분할하여 셀로 합산하면 쉽게 찾을 수 있습니다. tripGrid
함수에서 "시간을 소비 한"그리드는 표준 sp
패키지 클래스 인 SpatialGridDataFrame
이며, 트립 객체는 하나 이상의 트랙으로 구성 될 수 있습니다.
rgdal
을 사용하면 lon/lat가 범위에 적합하지 않은 경우 쉽게 좌표를 적절한지도 투영으로 변환 할 수 있지만 그리드/시간 소비 선분 계산에는 아무런 차이가 없습니다.
움직임이 너무 빠름을 암시하지만 매우 단순하고 새로운 문제를 야기 할 수있는 픽스를 제거하는 간단한 방법이 있습니다. 일반적으로 가능성이없는 이동을 위해 트랙을 업데이트하거나 필터링하는 것은 매우 복잡 할 수 있습니다. (내 경험상 기본 시간을 그리딩하는 것은 새로운 합병증을 열어주는 정교한 모델만큼 견적을 얻는다.) 이 필터는 거리를 계산하기 위해 sp
의 도구를 사용하여 데카르트 또는 long/lat 좌표와 함께 작동합니다 (long/lat는 신뢰할 만하지만 잘못된지도 투영 선택은 인간과 같은 짧은 거리에서 문제가 될 수 있음).
(함수 tripGrid
은 pixellate.psp
을 사용하여 직선 세그먼트의 정확한 구성 요소를 계산하지만 그 세부 정보는 구현에 숨겨져 있습니다.)
데이터 준비의 측면에서 볼 때 trip
은 합리적인 순서로 엄격하게 처리되며 데이터가 중복되거나 순서가 잘못된 경우 개체를 만들지 못하게합니다. 텍스트에서 데이터를 읽는 예제가 있습니다 더미 트랙이 겹치는 지역이 없습니다
library(trip)
d <- data.frame(x = 1:10, y = rnorm(10), tms = Sys.time() + 1:10, id = gl(1, 5))
coordinates(d) <- ~x+y
tr <- trip(d, c("tms", "id"))
g <- tripGrid(tr)
pt <- coordinates(g)[which.max(g$z), ]
image(g, col = c("transparent", heat.colors(16)))
lines(tr, col = "black")
points(pt[1], pt[2], pch = "+", cex = 2)
,하지만 그것은 "보낸 시간"의 최대 지점을 찾는 간단하다 있음을 보여줍니다 ?trip
에서 파일 및 (정말) 더미 데이터와 매우 간단한 예입니다.
좌표의 중심을 찾고 있다면 좌표의 클러스터링 알고리즘이 합리적인 접근 방식 일 수 있습니다. 하나의 중심을 가진 kmeans입니다. 'flexclust' 패키지는'kmedians' 옵션을 가지고 있습니다. 어떤 문제를 아웃 라이어와 함께 완화시킬 수 있습니다. – mnel
저는 kmeans가 너무 많은 포인트를 함께 묶을 것이라고 걱정합니다. (예 : 집과 함께 하나의 클러스터를 찾을 수도 있습니다. 근처의 슈퍼마켓과 커피 숍). 그러면이 클러스터의 중심이 실제로 꺼질 것입니다. 포인트를 그룹으로 분류하지 않고 직접 고밀도 위치를 찾는 것이 좋습니다. – Jeroen
예. 아마도 너무 단순한 해결책 일 것입니다. 방문한 위치의 범위를보고 경계를 정의한 다음 kde2d에서 눈에 띄는 공간 해상도를 반영하여 격자 점의 수를 정의 할 수 있습니다. – mnel