如何访问属性[例如R 中 terra 栅格的时间]?

How to access attributes [e.g. time] of terra raster in R?

我有一个从 netcdf4 文件中读取和裁剪的栅格。光栅看起来像这样:

> library(terra)

> ncr1
class       : SpatRaster 
dimensions  : 341, 745, 3  (nrow, ncol, nlyr)
resolution  : 1000, 1000  (x, y)
extent      : 1369250, 2114250, -674500, -333500  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=lcc +lat_0=42.5 +lon_0=-100 +lat_1=25 +lat_2=60 +x_0=0 +y_0=0 +ellps=WGS84 +units=m +no_defs 
source      : memory 
names       :    vp_1,    vp_2,    vp_3 
min values  :  174.03,  195.29,  393.66 
max values  :  516.43,  606.79, 1047.61 
time        : 2009-01-01 12:00:00 to 2009-01-03 12:00:00 

> dput(ncr1@ptr$time)
c(1230811200, 1230897600, 1230984000)

作为我想做的处理的一部分,我想使用 time 属性(我不确定这是否是该组件的正确形容词)作为我的过程的矢量输入,例如就像 doy is used in meteor::hourlyFromDailyRelH() : hourlyFromDailyRelh(relh, tmin, tmax, doy, latitude). I don't know how to call the attribute programatically. It looks like I can use ncr@ptr$time, but it seems like that's the wrong way to do it, based on this question at least 一样。例如:

> library(lubridate)
> pdays <- yday(as_datetime(ncr1@ptr$time))
> pdays
[1] 1 2 3

错了吗?我的意思是它似乎有效,但如果 R(或 terra)中有更合适的函数来获取 @ptr$time 部分,我不知道它是什么。我试过 terra::cats() 并使用 getSlots(),但这些都是错误的。

我猜您正在寻找以下内容:

terra::time(ncr1)