我有一個100 +文件的光柵堆棧。我想從每個文件中提取特定經緯度位置的值。這給了我一個Lat-Long組合值的列表。如何根據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)
當我在單獨的文件/數據框中具有緯度經度位置時,如何爲數千個位置執行此操作。還有,我想在最後的列表保存過的地點ID:
Lat Long LocID
35 -90 001
35 -95 221
30 -95.4 226
31.5 - 90 776
我的最終目標是讓這種類型的數據幀:
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")
轉< -extract(pstack的,經緯度)
給
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