我正在编写一个netCDF文件并尝试创建一个从年初开始的秒的时间变量。我正在为温度变量写这个,每年有6小时的记录值(1459个元素)。如何创建一个netCDF文件,将这两个变量写入时间范围从一年开始到每隔6小时一次?
if year_desired % 4 == 0:
ntime = 1462
else : ntime = 1458
n_air_temperature = np.reshape(air_temperature_opendap,(ntime,1,1))
# Assign the dimension data to the new NetCDF file.
ntime = int(ntime)
ncfile.createDimension('time',ntime)
ncfile.createDimension('latitude',1)
ncfile.createDimension('longitude',1)
air_temperature = ncfile.createVariable('air_temperature',dtype('float32').char, ('time','latitude','longitude'))
air_temperature[21600::] = n_air_temperature
ncfile.close()
答案 0 :(得分:0)
你问如何计算:
从年初开始的秒数变量。
您可以使用以下方式执行此操作:
import datetime
now = datetime.datetime.now()
yearStart = datetime.datetime(now.year, 1, 1)
diffTime = now - yearStart
yearSeconds = int(diffTime.total_seconds())
你继续询问创造:
温度变量,一年中每6小时记录一次值(1459个元素)。
您可以使用以下方法将年份秒转换为样本索引:
index = yearSeconds / (60*60*6) # / 60 sec/min * 60 min/hour * 6 hours
但是你想要:
时间从年初开始到每6小时踩一次
所以也许你需要走另一条路。您有索引(样本编号)并想要相应的日期。您可以使用以下方法计算:
sampleDateTime = yearStart + datetime.timedelta(0, index * 60 * 60 * 6)
确保为数据设置了正确的yearStart。