问题描述
我有不同的 shapefile 和光栅文件,我想创建一个嵌套循环来提取光栅文件的 RGB 值。 因此,我将 shapefile 和光栅文件保存在一个列表中,然后我想在循环中读取它们。
使用 shapefile,它是正确的,但不知何故光栅文件保存在我的列表中,但我无法在循环中读取它们。 数据路径应该是正确的,因为如果我在循环外使用相同的命令,它运行良好。
我的代码是:
library(rgdal)
library(rgeos)
library(exactextractr)
library(sp)
library(sf)
library(raster)
sites <- list.files("C:/Users/KaI/OneDrive - UT Cloud/Documents/Praktikum Mitacs/Data Files/ManualTreetops_2019_RGB/ManualTreetops_Finished",pattern = "*.shp")
sites <- sub(".shp","",sites)
orths <- list.files("C:/Users/KaI/OneDrive - UT Cloud/Documents/2019_ortho",pattern="*.tif")
orths <- sub(".tif",orths)
output <- list()
for (i.site in sites) {
setwd("C:/Users/KaI/OneDrive - UT Cloud/Documents/Praktikum Mitacs/Data Files/ManualTreetops_2019_RGB/ManualTreetops_Finished")
tt <- st_read(getwd(),i.site)
crowns <- st_buffer(tt,1)
for(i.orth in orths) {
setwd("C:/Users/KaI/OneDrive - UT Cloud/Documents/2019_ortho")
oo <- brick(getwd(),i.orth)
crown.rgb <- exact_extract(orth,crowns,"mean")
output[[i.site]] <- crown.rgb
}
} #end of for loop
我还可以在 R-studio 中看到该程序正在将我的光栅文件正确导入到“orths”列表中,但是当我使用砖命令时,它给了我错误消息:“.local(.Object,...): 无法从此文件创建 RasterLayer 对象。” 有人知道这种问题的任何原因吗?
提前致谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)