def _iter (self):
from fstd2nc.mixins import _var_type
from datetime import datetime
import numpy as np
from netCDF4 import date2num
if self._reference_date is None:
reference_date = None
else:
reference_date = datetime.strptime(self._reference_date,'%Y-%m-%d')
varlist = super(netCDF_IO,self)._iter()
if self._unique_names:
varlist = list(varlist)
self._fix_names(varlist)
for var in varlist:
# Modify time axes to be relative units instead of datetime objects.
if var.name in var.axes and isinstance(var,_var_type) and isinstance(var.array[0],np.datetime64):
# Convert from np.datetime64 to datetime.datetime
var.array = var.array.tolist()
units = '%s since %s'%(self._time_units, reference_date or var.array[0])
var.atts.update(units=units)
var.array = np.asarray(date2num(var.array,units=units))
yield var
评论列表
文章目录