从年初开始编写 NetCDF 时间变量
Writing NetCDF time variable from start of year
我正在编写一个 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()
你问如何计算:
variable of seconds from the start of the year.
您可以使用:
import datetime
now = datetime.datetime.now()
yearStart = datetime.datetime(now.year, 1, 1)
diffTime = now - yearStart
yearSeconds = int(diffTime.total_seconds())
您继续询问创建:
temperature variable that has values recorded every 6 hours for a year (1459 elements).
您可以使用以下方法将年秒数转换为示例索引:
index = yearSeconds / (60*60*6) # / 60 sec/min * 60 min/hour * 6 hours
但是你想要:
time ranging from the start of the year and stepping every 6 hours
所以也许你需要走另一条路。您有索引(样品编号)并想要相应的日期。您可以使用以下方法计算:
sampleDateTime = yearStart + datetime.timedelta(0, index * 60 * 60 * 6)
确保您为数据设置了正确的开始年份。
我正在编写一个 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()
你问如何计算:
variable of seconds from the start of the year.
您可以使用:
import datetime
now = datetime.datetime.now()
yearStart = datetime.datetime(now.year, 1, 1)
diffTime = now - yearStart
yearSeconds = int(diffTime.total_seconds())
您继续询问创建:
temperature variable that has values recorded every 6 hours for a year (1459 elements).
您可以使用以下方法将年秒数转换为示例索引:
index = yearSeconds / (60*60*6) # / 60 sec/min * 60 min/hour * 6 hours
但是你想要:
time ranging from the start of the year and stepping every 6 hours
所以也许你需要走另一条路。您有索引(样品编号)并想要相应的日期。您可以使用以下方法计算:
sampleDateTime = yearStart + datetime.timedelta(0, index * 60 * 60 * 6)
确保您为数据设置了正确的开始年份。