为什么一个人的阅读时间是错误的一年?
4次浏览(最近30天)
显示旧的注释
当我使用ncread从下面的文件读入数据时,我得到了错误的年份。
url =“http://nomads.ncep.noaa.gov: 9090 /国防部/波/ wna / wna20150804 / wna20150804_00z ';
timeFromNetcdf = ncread(url,“时间”);
datestr ([timeFromNetcdf (1) timeFromNetcdf(结束)))
ans =
8月04 - - 2014就是
11 - 8月- 2014 12:00:00
从文件名可以看出,年份实际上是2015年,而不是2014年。我在ncread中做错了什么,也许是由于netcdf中基于零的索引vs. matlab中基于一的索引,或者是netcdf文件中的时间变量完全错误?
0评论
接受的答案
凯利卡尼
2015年8月6日
编辑:凯利卡尼
2015年8月6日
不,这不是窃听器。Matlab数据数定义为自1月0日起的天数。但如果你看一下时间变量的属性:
> > ncdisp (url,“时间”)
来源:
http://nomads.ncep.noaa.gov:9090/dods/wave/wna/wna20150804/wna20150804_00z
格式:
经典
维度:
时间= 61
变量:
时间
大小:61 x1
维度:时间
数据类型:双
属性:
grads_dim =“t”
grads_mapping =“线性”
grads_size =“61”
grads_min =“00 z04aug2015”
grads_step =3人力资源的
单位='自1-1-1 00:00:0.0 . '
long_name =“时间”
最小值=“00 z04aug2015”
最大=“12 z11aug2015”
分辨率= 0.125
你会看到这个变量的参考时间是1月1日0001。正确的转换是
T = ncread(url,“时间”) + datenum(1,1,1);
结束datestr (t ([1]))
ans =
06 - 8月- 2015就是
13 - 8月- 2015 12:00:00
(虽然那里似乎有2天轮班……如果这是基于365天一年的模型数据或类似的东西,那么数据编号可能不是最好的选择)。