如何访问属性[例如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)
我有一个从 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)