问题描述
我正在尝试使用Netcdf4库编写一个netcdf文件。我的netcdf文件具有时间,纬度,经度和值变量。时间是每月的(即从1/1/2000到12/1/2000的12个时间值)。
我无法在netcdf中写入时间变量,我的代码如下:
// Comment below code. It will not needed.
//if (totalSeconds <= 0) {
// setTimeout(this.submitMyAnswer,3000);
//} else {
// setTimeout(setTime,1000);
//}
// assign return value from setInterval to object
// pass this.submitMyAnswer function as parameter so it can be invoked when totalSeconds become 0,Note : Do not use () as this.submitMyAnswer()
var interval = setInterval(setTime,1000,this.submitMyAnswer);
// get callback function submitMyAnswer in parameter to invoke when time elapsed.
function setTime(submitMyAnswer) {
--totalSeconds;
secondsLabel.innerHTML = pad(totalSeconds % 60);
minutesLabel.innerHTML = pad(parseInt(totalSeconds / 60));
localStorage.setItem("totalSeconds",totalSeconds);
// clear interval once totalSeconds is 0
if (totalSeconds <= 0) {
clearInterval(interval);
// call submitMyAnswer() once totalSeconds become 0.
// do not use this.submitMyAnswer(),simply use submitMyAnswer()
submitMyAnswer();
}
}
这样做,我得到以下错误:
import netCDF4 as nc
dsn = nc.Dataset(filename,'w',format='NETCDF4')
time = dsn.createDimension("time",None)
latd = dsn.createDimension("lat",len(lat))
lond = dsn.createDimension("lon",len(lon))
timev = dsn.createVariable("time",'f4',('time',))
latv = dsn.createVariable("lat",('lat',))
lonv = dsn.createVariable("lon",'f 4',('lon',))
value = dsn.createVariable("irr_req",'lat','lon',))
value.units = 'mm/month'
latv[:] = np.array(lat) ## lat is an array with length 296 and lon witg 690
lonv[:] = np.array(lon)
## I am using relativedelta to write the monthly time data because I do not kNow another method-
from dateutil.relativedelta import *
time =[datetime.datetime(2000,1,1) + relativedelta(months = month)
for month in range(12)]
timev[:] = nc.date2num(time,"months since 2000-01-01 00:00",calendar='360_day')
如何编写时间值?我也可以写几个月的1到12的整数而不是datetime变量。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)