为什么terra中的writeRaster会给出警告信息?
Why does writeRaster in terra give a warning message?
我正在尝试使用 terra
包逐层栅格化。我正在使用以下代码
library(terra)
# first create a raster
r1 <- r2 <- r3 <- rast(nrow=10, ncol=10)
# Assign random cell values
values(r1) <- runif(ncell(r1))
values(r2) <- runif(ncell(r2))
values(r3) <- runif(ncell(r3))
s <- c(r1, r2, r3)
names(s) <- c("a", "b", "c")
writeRaster(s, paste0(names(s), ".tif"), overwrite=TRUE)
它适用于以下警告消息
Warning message:
In tools::file_ext(filename) %in% c("nc", "cdf") || isTRUE(list(...)$filetype == :
'length(x) = 3 > 1' in coercion to 'logical(1)'
这条消息是什么意思?
你的线路
paste0(names(s), ".tif")
实际生成一个包含 3 个字符串的向量:
paste0(c("a", "b", "c"), ".tif")
[1] "a.tif" "b.tif" "c.tif"
您可能只需要一个文件,其名称如
paste0(paste(c("a", "b", "c"), collapse = "_"), ".tif")
[1] "a_b_c.tif"
为了避免嵌套的粘贴调用,我建议查看 glue 包
这是一个您可以忽略的错误。它已在您可以使用 install.packages('terra', repos='https://rspatial.r-universe.dev')
安装的开发版本中修复,但尚未进入 CRAN。
我正在尝试使用 terra
包逐层栅格化。我正在使用以下代码
library(terra)
# first create a raster
r1 <- r2 <- r3 <- rast(nrow=10, ncol=10)
# Assign random cell values
values(r1) <- runif(ncell(r1))
values(r2) <- runif(ncell(r2))
values(r3) <- runif(ncell(r3))
s <- c(r1, r2, r3)
names(s) <- c("a", "b", "c")
writeRaster(s, paste0(names(s), ".tif"), overwrite=TRUE)
它适用于以下警告消息
Warning message:
In tools::file_ext(filename) %in% c("nc", "cdf") || isTRUE(list(...)$filetype == :
'length(x) = 3 > 1' in coercion to 'logical(1)'
这条消息是什么意思?
你的线路
paste0(names(s), ".tif")
实际生成一个包含 3 个字符串的向量:
paste0(c("a", "b", "c"), ".tif")
[1] "a.tif" "b.tif" "c.tif"
您可能只需要一个文件,其名称如
paste0(paste(c("a", "b", "c"), collapse = "_"), ".tif")
[1] "a_b_c.tif"
为了避免嵌套的粘贴调用,我建议查看 glue 包
这是一个您可以忽略的错误。它已在您可以使用 install.packages('terra', repos='https://rspatial.r-universe.dev')
安装的开发版本中修复,但尚未进入 CRAN。