要从列表格式的网格构建栅格,我使用栅格 pckg:
grd<- list(x = (1:10), y = (1:10), z = matrix(1:100, 10, 10))
班级(GRD) [1]“列表”
r = 光栅(grd)
r 类:光栅层 尺寸:10、10、100(nrow、ncol、ncell) 分辨率 : 1, 1 (x, y) 范围:0.5、10.5、0.5、10.5(xmin、xmax、ymin、ymax) crs : +proj=longlat +datum=WGS84 +no_defs 来源:记忆 名称:层 值:1、100(最小值、最大值)
非常简单。然而,随着栅格包被 terra 取代,我想调整我的脚本,但对于 terra 我找不到将网格转换为 SpatRaster 的简单方法。有没有人找到解决方案?
我尝试过 rast() 但它不起作用
r2 = 拉斯特(grd) 错误:[rast,list] x 的所有元素都不是 SpatRaster
解决方案不能是改变网格的创建方式,因为这是一个简化的示例。列表更复杂,它们在经过插值函数后以这种格式出现。 谢谢。
使用正确的方法(详情请参阅
?terra::rast()
和matrix-method
)
grd <- list(x = (1:10), y = (1:10), z = matrix(1:100, 10, 10))
raster::raster(grd)
#> class : RasterLayer
#> dimensions : 10, 10, 100 (nrow, ncol, ncell)
#> resolution : 1, 1 (x, y)
#> extent : 0.5, 10.5, 0.5, 10.5 (xmin, xmax, ymin, ymax)
#> crs : +proj=longlat +datum=WGS84 +no_defs
#> source : memory
#> names : layer
#> values : 1, 100 (min, max)
terra::rast(grd[[3]], crs = "EPSG:4326")
#> class : SpatRaster
#> dimensions : 10, 10, 1 (nrow, ncol, nlyr)
#> resolution : 1, 1 (x, y)
#> extent : 0, 10, 0, 10 (xmin, xmax, ymin, ymax)
#> coord. ref. : lon/lat WGS 84 (EPSG:4326)
#> source(s) : memory
#> name : lyr.1
#> min value : 1
#> max value : 100
创建于 2024-02-06,使用 reprex v2.1.0