R 从空间点数据帧循环光栅提取;每行需要从列中指示的相应光栅中提取
我试图做一个循环,从NDVI光栅中提取多个形状文件的值。形状文件是包含日期和时间的动物GPS位置。形状文件包括根据人口范围生成的随机位置,因此,我将以5:1的比例分配每个没有日期的随机位置,其中一个GPS位置的日期。我有一个函数,可以为每个GPS位置或随机点查找与日期最接近的日期,并将其存储在数据框中作为“x$NDVIfile”代码一直到现在为止,但我认为问题具体在这里:R 从空间点数据帧循环光栅提取;每行需要从列中指示的相应光栅中提取,r,for-loop,iteration,raster,spatial,R,For Loop,Iteration,Raster,Spatial,我试图做一个循环,从NDVI光栅中提取多个形状文件的值。形状文件是包含日期和时间的动物GPS位置。形状文件包括根据人口范围生成的随机位置,因此,我将以5:1的比例分配每个没有日期的随机位置,其中一个GPS位置的日期。我有一个函数,可以为每个GPS位置或随机点查找与日期最接近的日期,并将其存储在数据框中作为“x$NDVIfile”代码一直到现在为止,但我认为问题具体在这里: for(j in length(nrow(x))){ a <- raster(paste0("E:/
for(j in length(nrow(x))){
a <- raster(paste0("E:/RSF_GIS/HabitatVariables/NDVI/",
x$NDVIfile[j], ".tif"))
x$ndvi[j] <- raster::extract(a, x[j,]) # extract each row based on the closest NDVI file
}
长度为(j)(nrow(x))的{
a回答我自己的问题,解决方案只是改变代码,指示循环的迭代:
for(j in length(nrow(x))){
...
}
应该是
for(j in 1:nrow(x)){
...
}
欢迎使用堆栈溢出。请不要使用代码或数据的图像,因为如果不进行大量不必要的工作,这些图像将无法使用。问题应该是可重复的。请查看堆栈溢出指南,并以对象的形式包含最小数据集,例如,如果数据帧为df
for(j in 1:nrow(x)){
...
}