使用 substr 重命名栅格数据中的变量

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

我下载了世界气候数据并将其更改为栅格数据。

有像 wc2.1_5m_bio_1 到 19 这样的名称,我想使用 substr 函数将这些变量重命名为 bio_1 (start = 10, stop = 16)。但是,我不知道如何使其永久保留在栅格数据上。

substr(clim@ptr[[“names”]], start = 10, stop = 16)

它提供了我想要的东西,但不是永久的。所以每次我重新加载栅格数据时,它仍然具有原始的长名称。

r r-raster
1个回答
0
投票

您可以像这样获取和设置名称:

library(terra)
s <- rast(system.file("ex/logo.tif", package="terra"))[[1:2]] 
names(s)
#[1] "red"   "green"

names(s) <- substr(names(s), 1, 1)
names(s)
#[1] "r" "g"

(你应该永远不直接使用

@ptr
插槽)

要使其永久化,您需要将数据写入新文件:

writeRaster(s, "test.tif", overwrite=TRUE)

rast("test.tif")
#class       : SpatRaster 
#dimensions  : 77, 101, 2  (nrow, ncol, nlyr)
#resolution  : 1, 1  (x, y)
#extent      : 0, 101, 0, 77  (xmin, xmax, ymin, ymax)
#coord. ref. : +proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs 
#source      : test.tif 
#names       :   r,   g 
#min values  :   0,   0 
#max values  : 255, 255 
© www.soinside.com 2019 - 2024. All rights reserved.