#r #move
#r #переместить
Вопрос:
Я пытаюсь запустить анимацию в пакете Move и MoveVis 0.10.1, и я продолжаю получать следующую ошибку:
Error in dimnames(slot(x, "coords")) <-`*vtmp*` : length of 'dimnames' [1] not equal to array extent
, что я не уверен, что это значит. Моя структура данных настроена аналогично набору данных примера, поэтому я не уверен, где я ошибаюсь.
Столбцы установлены в:
`str(pdfhrecenttracks2)
'data.frame': 10312 obs. of 9 variables:
$ location.long: num -90.6 -90.6 -90.6 -91 -91 ...
$ location.lat : num 41.5 41.5 41.5 41.4 41.4 ...
$ time : POSIXct, format: "2018-06-05 00:05:18" ...
$ coords.x1 : num -90.6 -90.6 -90.6 -91 -91 ...
$ coords.x2 : num 41.5 41.5 41.5 41.4 41.4 ...
$ optional : logi TRUE TRUE TRUE TRUE TRUE TRUE ...
$ sensor : Factor w/ 1 level "unknown": 1 1 1 1 1 1 1 1 1 1 ...
$ timestamps : POSIXct, format: "2018-06-05 00:05:18" ...
$ trackId : Factor w/ 121 levels "T12414","T12415",..: 1 1 1 1 1 1 1 1 1 1 ...
`pdfh <- move(x=pdfhrecenttracks2$location.long, y=pdfhrecenttracks2$location.lat,time=as.POSIXct(pdfhrecenttracks2$timestamps, format="%Y-%m-%d %H:%M:%S", tz="UTC"), data=pdfhrecenttracks2, proj=CRS(" proj=longlat ellps=WGS84 towgs84=0,0,0"), animal=pdfhrecenttracks2$trackId, sensor= pdfhrecenttracks2$sensor)
`m <- align_move(pdfh, res = 240, unit = "secs")
`n <- 121
`color = grDevices::colors()[grep('gr(a|e)y', > grDevices::colors(), invert = T)]
`unique.colors <- sample(color, n)
`pie(rep(1,n), col=unique.colors)
`frames <- frames_spatial(m, path_colours = unique.colors, map_service = "osm", map_type = "watercolor", alpha = 0.5) %>% add_labels(x = "Longitude", y = "Latitude") %>% # add some customizations, such as axis labels
add_northarrow() %>%
add_scalebar() %>%
add_timestamps(m, type = "label") %>%
add_progress()
`m <- align_move(pdfh, res = 240, unit = "secs")
Error in dimnames(slot(x, "coords")) <- `*vtmp*` :
length of 'dimnames' [1] not equal to array extent
In addition: Warning messages:
1: In max.default(numeric(0), na.rm = FALSE) :
no non-missing arguments to max; returning -Inf
2: In min.default(numeric(0), na.rm = FALSE) :
no non-missing arguments to min; returning Inf
3: In max.default(numeric(0), na.rm = FALSE) :
no non-missing arguments to max; returning -Inf
4: In min.default(numeric(0), na.rm = FALSE) :
no non-missing arguments to min; returning Inf
5: In max.default(numeric(0), na.rm = FALSE) :
no non-missing arguments to max; returning -Inf
6: In min.default(numeric(0), na.rm = FALSE) :
no non-missing arguments to min; returning Inf
7: In max.default(numeric(0), na.rm = FALSE) :
no non-missing arguments to max; returning -Inf
8: In min.default(numeric(0), na.rm = FALSE) :
no non-missing arguments to min; returning Inf
Комментарии:
1. Здравствуйте, это было решено? У меня только что была такая же проблема. Возможно, это хорошая идея написать владельцам пакета. У меня была эта проблема конкретно с функциями
align_move
2. Извините, это было некоторое время назад, но я считаю, что ошибка была связана с тем, что у некоторых людей было только одно местоположение выборки. Для align_move требуется минимум два местоположения для каждого помеченного пользователя.
3. Привет! Действительно, это была проблема здесь. Когда я исключил людей с менее чем 10 местоположениями (у них было по 8 и 9 местоположений соответственно), код работал нормально. В любом случае, было бы неплохо знать минимальное количество точек данных, необходимых для запуска анимации… Спасибо за подсказку!