【发布时间】:2019-04-19 16:02:09
【问题描述】:
我正在寻找有关如何重新编码 netcdf 文件/光栅砖的时间/日期维度的提示。我提取了每月温度数据,日期维度不是标准日期格式。例如,1850.04166666667、1850.125,在数据中分别表示 1850 年 1 月和 2 月,R 无法理解它们。这是数据结构
> eco.sst
class : RasterBrick
dimensions : 180, 360, 64800, 2030 (nrow, ncol, ncell, nlayers)
resolution : 1, 1 (x, y)
extent : -180, 180, -90, 90 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
data source : C:\Users\Admin\AppData\Local\Temp\Rtmp6vFWNG\raster\r_tmp_2019-04-18_183528_11516_79080.grd
names : X1850.04166666667, X1850.125, X1850.20833333333, X1850.29166666667, X1850.375, X1850.45833333333, X1850.54166666667, X1850.625, X1850.70833333333, X1850.79166666667, X1850.875, X1850.95833333333, X1851.04166666667, X1851.125, X1851.20833333333, ...
min values : -0.668686926, -0.273689777, -1.902773499, -3.406341553, -3.626811743, -2.131400585, -1.569969416, -1.630665064, -2.418994188, -1.971702099, -0.822018623, -3.423746109, -1.303600550, -0.786648691, -1.452626705, ...
max values : 3.926926e+00, 1.550823e+00, 1.151636e+00, 6.622851e-01, 9.673859e-01, 7.178870e-01, 9.010030e-01, 4.363060e-01, 5.231520e-01, 3.346115e-01, 2.156055e-01, 6.418970e-01, 2.259051e+00, 3.802529e+00, 2.077996e+00, ...
time : 1850.04166666667, 2019.125 (min, max)
我写了一个替换小数点的函数;
fun.repl = function (x, na.rm = TRUE) str_replace(x, ".04166666667", "-1")
这样 1850.04166666667,这意味着 1850 年 1 月变为 1850-1;
然后我以如下形式应用于栅格:
stackApply(eco.sst, "time", fun.repl)
eco.sst 是光栅砖,而“时间”是指时间维度。但是该功能不起作用。我怀疑我对数据结构的理解不够好,无法成功应用该功能。我是新手,还发现这是 netcdf 的一个罕见问题。
我预计 1850.04166666667、1850.125、1850.20833333333、1850.29166666667...这意味着 1850 年 1 月至 4 月将成为标准日期... 1850-1、1850-2、1850-3、1850-4 等
p>【问题讨论】: