[英]How to write raster bylayer using terra package in R?
I want to write rasters by layer using terra
package.我想使用
terra
包逐层编写栅格。 I am using the following code我正在使用以下代码
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)
s
plot(s)
writeRaster(s, names(s), overwrite=TRUE)
It gives me following error它给了我以下错误
Error: [writeRaster] cannot open file: C:/Users/nn/Desktop/lyr.1 In addition: Warning message: C:/Users/nn/Desktop/lyr.1: No such file or directory (GDAL error 4)
错误:[writeRaster] 无法打开文件:C:/Users/nn/Desktop/lyr.1 另外:警告消息:C:/Users/nn/Desktop/lyr.1:没有这样的文件或目录(GDAL 错误 4)
I want to have the same output available in raster
package using the following function我想使用以下函数在
raster
包中获得相同的输出
raster::writeRaster(s, names(s), bylayer=TRUE, format='GTiff', overwrite=TRUE)
You have to do a little more work你必须做更多的工作
dir.create("test")
setwd("test")
f <- paste0("test", 1:nlyr(s), ".tif")
r <- writeRaster(s, f, overwrite=TRUE)
list.files()
# [1] "test1.tif" "test2.tif" "test3.tif"
r
#class : SpatRaster
#dimensions : 10, 10, 3 (nrow, ncol, nlyr)
#resolution : 36, 18 (x, y)
#extent : -180, 180, -90, 90 (xmin, xmax, ymin, ymax)
#coord. ref. : +proj=longlat +datum=WGS84 +no_defs
#sources : test1.tif
# test2.tif
# test3.tif
#names : lyr.1, lyr.1, lyr.1
#min values : 0.02075680, 0.01058152, 0.02179740
#max values : 0.9874134, 0.9990475, 0.9883418
This also works:这也有效:
names(s) <- c("a", "b", "c")
x <- writeRaster(s, names(s), overwrite=TRUE, filetype="GTiff")
But note the filenames do not get the tif extension但请注意文件名没有获得 tif 扩展名
sources(x)
# source nlyr
#1 ./test/a 1
#2 ./test/b 1
#3 ./test/c 1
So I would do所以我会做
z <- writeRaster(s, paste0(names(s), ".tif"), overwrite=TRUE)
#class : SpatRaster
#dimensions : 10, 10, 3 (nrow, ncol, nlyr)
#resolution : 36, 18 (x, y)
#extent : -180, 180, -90, 90 (xmin, xmax, ymin, ymax)
#coord. ref. : +proj=longlat +datum=WGS84 +no_defs
#sources : a.tif
# b.tif
# c.tif
#names : a, b, c
#min values : 0.02075680, 0.01058152, 0.02179740
#max values : 0.9874134, 0.9990475, 0.9883418
The error messages have now been improved (see this issue )错误消息现已得到改进(请参阅此问题)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.