У меня есть растровый стек со 100 файлами. И я хочу извлечь значения из каждого файла для конкретных локальных местоположений. Это дает мне список значений для одной комбинации Lat-Long.Как извлечь данные из растрового стека на основе длинного списка?
plist <- list.files(pattern = "\\.tif$", include.dirs = TRUE)
pstack <- stack(plist)
#levelplot(pstack)
for (i in 1:length(plist))
t[i]=extract(pstack[[i]], 35,-90)
Как я могу это сделать тысячи мест, когда у меня есть Lat-длинные места в отдельном файле/dataframe. Существует местоположение ID, что я хочу, чтобы сохранить тоже в окончательном списке:
Lat Long LocID
35 -90 001
35 -95 221
30 -95.4 226
31.5 - 90 776
Моя последняя цель состоит в том, чтобы иметь dataframe этого типа:
Lat Long LocID value
35 -90 001 0.5
35 -95 221 1.4
30 -95.4 226 2.5
31.5 - 90 776 4.5
Хотя, если это не представляется возможным, чтобы сохранить LocID, это тоже хорошо.
Один из файлов: https://www.dropbox.com/s/ank4uxjbjk3chaz/new_conus.tif?dl=0
Тестирование решение от комментариев:
latlong<-structure(list(lon = c(-71.506667, -71.506667, -71.506667, -71.215278,
-71.215278, -71.215278, -71.215278, -71.215278, -71.215278, -71.215278
), lat = c(42.8575, 42.8575, 42.8575, 42.568056, 42.568056, 42.568056,
42.568056, 42.568056, 42.568056, 42.568056)), .Names = c("lon",
"lat"), row.names = c(NA, 10L), class = "data.frame")
< доб -экстракта (pstack, LatLong)
дает
Error in UseMethod("extract_") :
no applicable method for 'extract_' applied to an object of class "c('RasterStack', 'Raster', 'RasterStackBrick', 'BasicRaster')"
Обновление # 2:
Ошибка была связана с тем, что она противоречила другой упаковке. Это работает:
raster::extract(pstack,latlong)
Можете ли вы привести пример входных данных? – jdobres
Я добавил. – maximusdooku