r中netcdf文件中的转换日期有问题

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

我必须将NetCDF文件中的数字日期转换为date中的r对象。请参阅下面的属性。

        time  Size:341880
            grads_dim: t
            grads_mapping: linear
            grads_size: 341880
            grads_min: 01z01jan1980
            grads_step: 60mn
            units: days since 1-1-1 00:00:0.0
            long_name: time
            minimum: 01z01jan1980
            maximum: 00z01jan2019
            resolution: 0.0416666679084301

我用于转换的代码如下。如属性表中所示,所得的date对象并非从1980年1月1日开始。dput可再现性也在下面提供。这里有什么想法吗?

time_rt <- convertDateNcdf2R(time, units = "days", origin = as.POSIXct("1-1-1 00:00:0.0",tz = "UTC"),
                             time.format = c("%Y-%m-%d", "%Y-%m-%d %H:%M:%S", 
                                             "%Y-%m-%d %H:%M", "%Y-%m-%d %Z %H:%M", "%Y-%m-%d %Z %H:%M:%S"))

> head(time_rt)
[1] "1980-01-13 01:00:00 UTC" "1980-01-13 02:00:00 UTC" "1980-01-13 03:00:00 UTC" "1980-01-13 04:00:00 UTC" "1980-01-13 05:00:00 UTC" "1980-01-13 06:00:00 UTC"

> dput(time[1:20])
structure(c(722816.041666667, 722816.083333333, 722816.125, 722816.166666667, 
722816.208333333, 722816.25, 722816.291666667, 722816.333333333, 
722816.375, 722816.416666667, 722816.458333333, 722816.5, 722816.541666667, 
722816.583333333, 722816.625, 722816.666666667, 722816.708333333, 
722816.75, 722816.791666667, 722816.833333333), .Dim = 20L)
r netcdf
1个回答
0
投票

我终于通过使用软件包RNetCDF解决了这个问题。尝试下面的代码。

utcal.nc('days since 1-1-1 00:00:0.0', time_raw, type = 's')
© www.soinside.com 2019 - 2024. All rights reserved.