Я ищу, чтобы извлечь значения из растра, используя raster :: extract и объект sf. Однако у меня есть некоторые трудности. Я sh создаю фрейм данных, который содержит номера ячеек (для получения значений XY), извлеченное значение ячейки и поле идентификатора (если я извлекаю из нескольких строк). Я делаю это следующим образом:
dtm_values <- raster::extract(raster, transect_sf, cellnumbers = TRUE, df = TRUE)
Однако я не могу извлечь данные во фрейм данных, поскольку получаю следующую ошибку:
Error in do.call(rbind, sapply(1:length(res), function(x) if (!is.null(res[[x]])) cbind(x, :
second argument must be a list
В качестве обходного пути я извлекаю список ( т.е. df = FALSE) и преобразует это в фрейм данных с помощью as.data.frame (), который работает нормально, но неэффективно. Посмотрев на inte rnet, я нашел еще одну ссылку на эту проблему, которая представляет собой отчет об ошибке 2018 года: https://r-forge.r-project.org/tracker/index.php?func=detail&aid=6570&group_id=294&atid=1189
Похоже, с этой проблемой я сталкиваюсь , Эта ссылка также включает в себя следующий воспроизводимый пример, который я могу воспроизвести:
r = raster(nrow=45, ncol=90)
r[] = 1:ncell(r)
transect_sf = st_sfc(st_linestring(rbind(c(-175, -85), c(175, 85)))) %>%
st_sf()
raster::extract(r, transect_sf, along = TRUE, df = TRUE)
#> Error in do.call(rbind, sapply(1:length(res), function(x) if (!is.null(res[[x]])) cbind(x, : second argument must be a list
Я здесь ошибаюсь или это ошибка в растровом пакете?
Спасибо за вашу помощь в advance.
Я использую: R - 3.6.1 на Windows 7, растр 3.0-7, sf 0.9-0.