簡體   English   中英

Terra 等同於 raster::stack()?

[英]Terra equivalent for raster::stack()?

基本上是標題。 我知道您可以使用 rast() 讀取光柵文件夾,但我只想堆疊兩個單獨讀取的光柵。 謝謝

請注意,對於raster::stack ,您可以在多個 arguments ( stack(x1,x2,x3) ) 或列表 ( stack(list(x1,x2, x3)) ) 上使用它。

這不再適用於 terra 的c 你需要區分:

  • 在提供單獨的 arguments 時使用c(x1, x2, x3)
  • 在提供 arguments 作為列表時使用rast(list(x1,x2,x3))
library(terra)
#> terra 1.5.21

x <- rast(xmin=-110, xmax=-80, ymin=40, ymax=70, ncols=30, nrows=30)
values(x) <- 1:ncell(x)

many_rasters <- list(x,x)

## this works
rast( many_rasters)
#> class       : SpatRaster 
#> dimensions  : 30, 30, 2  (nrow, ncol, nlyr)
#> resolution  : 1, 1  (x, y)
#> extent      : -110, -80, 40, 70  (xmin, xmax, ymin, ymax)
#> coord. ref. : lon/lat WGS 84 
#> sources     : memory  
#>               memory  
#> names       : lyr.1, lyr.1 
#> min values  :     1,     1 
#> max values  :   900,   900

## just using c creates a list
c(many_rasters)
#> [[1]]
#> class       : SpatRaster 
#> dimensions  : 30, 30, 1  (nrow, ncol, nlyr)
#> resolution  : 1, 1  (x, y)
#> extent      : -110, -80, 40, 70  (xmin, xmax, ymin, ymax)
#> coord. ref. : lon/lat WGS 84 
#> source      : memory 
#> name        : lyr.1 
#> min value   :     1 
#> max value   :   900 
#> 
#> [[2]]
#> class       : SpatRaster 
#> dimensions  : 30, 30, 1  (nrow, ncol, nlyr)
#> resolution  : 1, 1  (x, y)
#> extent      : -110, -80, 40, 70  (xmin, xmax, ymin, ymax)
#> coord. ref. : lon/lat WGS 84 
#> source      : memory 
#> name        : lyr.1 
#> min value   :     1 
#> max value   :   900

對於有此問題的未來用戶,請注意terra::c()返回

錯誤:'c' 不是從 'namespace:terra' 導出的 object

要在terra中堆疊柵格,您可以簡單地使用 base c()

我想你想要terra::c() 它組合SpatRaster對象,只要它們具有相同的范圍和分辨率。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM