2016-10-03 15 views
0

Я хочу применить скрытую модель Маркова к некоторым данным отслеживания, которые у меня есть. Я прочитал, что данные необходимо отбирать с регулярным временным интервалом для работы этой модели. Однако мои треки не всегда точно повторяются. Как я могу упорядочить свой набор данных в R?Как создать регулярные интервалы времени для данных GPS для скрытой марковской модели

Вот некоторые фиктивные данные в качестве примера для вас работать с

tracks <- read.table(text = 
        "latitude, longitude time 
       52.111122, -10.544271 12:00 
       52.10944, -10.554933 13:00 
       52.108898, -10.558025 14:00 
       52.108871, -10.560946 15:01 
       52.113991, -10.582005 16:22 
       52.157223, -10.626506 17:00 
       52.194977, -10.652878 18:04 
       52.240215, -10.678817 19:09 
       52.26421, -10.720366 20:00 
       52.264015, -10.720642 21:05" 
       , header = TRUE, sep = ",") 

Благодаря

ответ

1

С approx вы можете интерполировать позиции с регулярными интервалами:

Во-первых, изменить время до POSIXct :

tracks$time <- as.POSIXct(sprintf("%s %s", Sys.Date(), tracks$time)) 
tracks$type = "original" 

Рассчитать Интервалы:

n <- nrow(tracks) 
tracks2 <- data.frame(
    latitude = approx(x = tracks$time, y = tracks$latitude, n = n)$y, 
    longitude = approx(x = tracks$time, y = tracks$longitude, n = n)$y, 
    time = as.POSIXct(approx(tracks$time, 1:nrow(tracks), n = n)$x, origin = "1970-01-01"), 
    type = "corrected" 
) 

Вы можете проверить изменения в позициях с ggplot:

ggplot(rbind(tracks, tracks2), aes(x = time, y = latitude, color = type)) + 
    geom_line() + 
    geom_point() + 
    scale_x_datetime(breaks = tracks2$time, minor_breaks = NULL, labels = format(tracks2$time, format = "%H:%M")) + 
    theme_minimal() 

enter image description here

+0

спасибо за ваш ответ. Есть ли какая-то лучшая практика для этого? Например, следует ли интерполировать при более крупном временном разрешении, чем в исходных данных? –

+1

Извините, но я не знаю. Однако вы можете попробовать с разными разрешениями. Обратите внимание, что я обновил образец, чтобы разрешить 'n> nrow (tracks)'. Попробуйте использовать разные значения 'n'. – bergant

 Смежные вопросы

  • Нет связанных вопросов^_^