【发布时间】:2025-12-29 22:00:06
【问题描述】:
我正在尝试在 R 中创建光栅矢量,让我解释一下。 我正在处理数据(24 个月、1 月、1 月 2 日等,以及不同的年份),并且每个月(1 月、1 月 2 日、2 月、2 月 2 日等)我想创建一个栅格。
我是手工完成的,但它真的很长,我正在尝试优化一下这段代码。我正在使用一个函数,以及该函数内的一个循环来创建我的栅格。但正如你想象的那样,它不起作用。我想按月自动创建我的栅格。
我现在这样做了(这里我只尝试了 5 个 .tif 文件):
library(sp)
library(raster)
library(stringr)
setwd(dir = "E:/perso/NEON-DS-Field-Site-Spatial-Data/SJER")
files_vec=list.files(path = "E:/perso/NEON-DS-Field-Site-Spatial-Data/SJER",full.names=FALSE, recursive=FALSE)
files_vec
month<-c("jan","jan2","fev","fev2","mar")
vec_of_raster<-c("raster",length(files_vec))
raster_vec<-function(vec_of_raster,files_vec,month,year_str)
{
for (i in seq(1,length(files_vec)))
{
vec_of_raster[i]<-(month[i]<-raster(files_vec[i]))
}
}
raster_vec(vec_of_raster,files_vec,month,"1995")
恐怕我想使用两个对象(光栅和矢量),它们要么以这种方式接近工作,要么无法关联。
这是我得到的错误(和警告):
Error in .local(.Object, ...) :
In addition: Warning messages:
1: In month[i] <- raster(files_vec[i]) :
number of items to replace is not a multiple of replacement length
2: In vec_of_raster[i] <- (month[i] <- raster(files_vec[i])) :
number of items to replace is not a multiple of replacement length
3: In month[i] <- raster(files_vec[i]) :
number of items to replace is not a multiple of replacement length
4: In vec_of_raster[i] <- (month[i] <- raster(files_vec[i])) :
number of items to replace is not a multiple of replacement length
5: In month[i] <- raster(files_vec[i]) :
number of items to replace is not a multiple of replacement length
6: In vec_of_raster[i] <- (month[i] <- raster(files_vec[i])) :
number of items to replace is not a multiple of replacement length
7: In month[i] <- raster(files_vec[i]) :
number of items to replace is not a multiple of replacement length
8: In vec_of_raster[i] <- (month[i] <- raster(files_vec[i])) :
number of items to replace is not a multiple of replacement length
9: In month[i] <- raster(files_vec[i]) :
number of items to replace is not a multiple of replacement length
10: In vec_of_raster[i] <- (month[i] <- raster(files_vec[i])) :
number of items to replace is not a multiple of replacement length
Error in .rasterObjectFromFile(x, band = band, objecttype = "RasterLayer", :
Cannot create a RasterLayer object from this file. (file does not exist)
我没有收到这些错误消息,如果你能帮助我,或者你有相同或类似的问题,我正在接受任何提示!
【问题讨论】: