如何保存具有不同层的 SpatRaster 对象,然后在 R 中再次加载它?

问题描述 投票:0回答:1

我有一个由不同层/变量(bio01、bio07、bio08 ...)组成的栅格对象(“气候”),您可以在下面看到详细信息:

class       : SpatRaster 
dimensions  : 98, 174, 8  (nrow, ncol, nlyr)
resolution  : 0.5, 0.5  (x, y)
extent      : -27, 60, 32.5, 81.5  (xmin, xmax, ymin, ymax)
coord. ref. : lon/lat WGS 84 
source(s)   : memory
varnames    : bio01 
              bio07 
              bio08 
              ...
names       :     bio01,     bio07,     bio08,     bio18,    bio14,      lai, ... 
min values  : -36.07298,  4.962311, -6.948818,  125.3619,    0.000, 0.000000, ... 
max values  :  20.01547, 41.839218, 33.729374, 3260.1653, 1559.828, 6.025625, ... 
time (years): -53050 

如何将“气候”保存在我的目录中并以完全相同的格式和变量名称将其加载到 R 中? 如果我将它保存在 .nc 格式的文件中,当我加载它时变量的名称是不一样的...... 谢谢

r raster layer
1个回答
1
投票

您还没有提供任何数据。所以,我正在使用

terra
R 包提供的默认数据。

library(terra)
#> terra 1.7.18

# Read raster data with multiple layers
r <-  rast(system.file("ex/logo.tif", package = "terra"))
r
#> class       : SpatRaster 
#> dimensions  : 77, 101, 3  (nrow, ncol, nlyr)
#> resolution  : 1, 1  (x, y)
#> extent      : 0, 101, 0, 77  (xmin, xmax, ymin, ymax)
#> coord. ref. : Cartesian (Meter) 
#> source      : logo.tif 
#> colors RGB  : 1, 2, 3 
#> names       : red, green, blue 
#> min values  :   0,     0,    0 
#> max values  : 255,   255,  255

#Write the raster data to disk
writeRaster(r, "test.tif", overwrite = T)

#Read the written raster data
r1 <- rast("test.tif")
r1
#> class       : SpatRaster 
#> dimensions  : 77, 101, 3  (nrow, ncol, nlyr)
#> resolution  : 1, 1  (x, y)
#> extent      : 0, 101, 0, 77  (xmin, xmax, ymin, ymax)
#> coord. ref. : Cartesian (Meter) 
#> source      : test.tif 
#> colors RGB  : 1, 2, 3 
#> names       : red, green, blue 
#> min values  :   0,     0,    0 
#> max values  : 255,   255,  255

创建于 2023-05-16 与 reprex v2.0.2

© www.soinside.com 2019 - 2024. All rights reserved.