簡體   English   中英

日期之間的小時數

[英]number of hours between dates

我有一個netCDF文件,正在嘗試確定文件中的第一個日期和“基准日期”。 該文件包含每月數據。 我的筆記相當陳舊,表明第一次約會是1948年1月1日。

以下R代碼將第一個日期定為17067072:

library(ncdf)
library(chron)
my.data <- open.ncdf('my.netCDF.nc')
x = get.var.ncdf(my.data, "lon" )
y = get.var.ncdf(my.data, "lat" )
z = get.var.ncdf(my.data, "time")
z[1:5]

#  [1] 17067072 17067816 17068512 17069256 17069976

我下載了一個名為ncdump.exe的應用程序,並在Windows命令窗口中鍵入以下行:

C:\Users\Mark W Miller\ncdump>ncdump -h my.netCDF.nc

我了解到基准日期是:

time:units = "hours since 1-1-1 00:00:0.0" ;

使用R在R中獲得相同的基礎數據:

att.get.ncdf(my.data,"time","units")$value
[1] "hours since 1-1-1 00:00:0.0"

我嘗試使用以下R代碼進行驗證:

date1 <- as.Date("01/01/0001", "%m/%d/%Y")
date1
# [1] "0001-01-01"

date2 <- as.Date("01/01/1948", "%m/%d/%Y")
date2
# [1] "1948-01-01"

period <- as.Date(date1:date2, origin = "00-01-01")

hours <- 24 * (length(period)-1)
hours
# [1] 17067024

z[1]的數字與緊接上方的R代碼返回的數字之間相差48小時:

17067072 - 17067024
[1] 48

我的錯誤在哪里? 由於netCDF文件包含每月數據,因此我懷疑第一個日期是1948年1月3日。我從中下載數據的網站沒有提供選擇月份內日期的選項。

可以從這里下載應用程序ncdump.exe

http://www.narccap.ucar.edu/data/ascii-howto.html

如果可以弄清楚netCDF文件的子集,可以將較小的文件上傳到某個地方。

感謝您的任何建議。

你看過你的period向量了嗎? 當我查看前幾個值和最后幾個值時,一年的結果是沒有意義的。 可能是其中一項轉換搞砸了。

另請注意,即使沒有,相同的計算機程序也將1900視為a年,因此兩個程序之間的差異可能會導致您有24小時的時間差。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM