update multiple data files reading functions

This commit is contained in:
wyq 2021-09-18 11:31:48 +08:00
parent afb4c31b92
commit c2d12a5e91
3 changed files with 67 additions and 58 deletions

View File

@ -22,13 +22,13 @@
<OpenedFile File="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\surf_sombrero.py"/>
<OpenedFile File="D:\Working\MIScript\Jython\mis\toolbox\miml\deep_learning\classification\classifer_iris.py"/>
<OpenedFile File="D:\Working\MIScript\Jython\mis\io\addfiles_datetime_1.py"/>
<OpenedFile File="D:\Working\MIScript\Jython\mis\io\addfiles_1.py"/>
<OpenedFile File="D:\Working\MIScript\Jython\mis\io\addfiles_datetime_2.py"/>
</OpenedFiles>
<RecentFiles>
<RecentFile File="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\surf_sombrero.py"/>
<RecentFile File="D:\Working\MIScript\Jython\mis\toolbox\miml\deep_learning\classification\classifer_iris.py"/>
<RecentFile File="D:\Working\MIScript\Jython\mis\io\addfiles_datetime_1.py"/>
<RecentFile File="D:\Working\MIScript\Jython\mis\io\addfiles_1.py"/>
<RecentFile File="D:\Working\MIScript\Jython\mis\io\addfiles_datetime_2.py"/>
</RecentFiles>
</File>
<Font>
@ -36,5 +36,5 @@
</Font>
<LookFeel DockWindowDecorated="true" LafDecorated="true" Name="FlatDarkLaf"/>
<Figure DoubleBuffering="true"/>
<Startup MainFormLocation="-7,-7" MainFormSize="1293,693"/>
<Startup MainFormLocation="-7,0" MainFormSize="1443,827"/>
</MeteoInfo>

View File

@ -636,80 +636,89 @@ class TDimVariable(object):
t_list.append(self.dataset.timeindex(t))
else:
t_list.append(t)
sfidx = self.dataset.datafileindex(sidx)
si = sidx
isfirst = True
times = []
fidx = sfidx
aa = None
var = None
if t_list is None:
t_list = range(sidx, eidx + 1, step)
for i in t_list:
times.append(miutil.date2num(self.dataset.gettime(i)))
fidx = self.dataset.datafileindex(i)
if fidx > sfidx:
ei = i - step
times = []
data = None
if t_list is None:
sfidx = self.dataset.datafileindex(sidx)
si = sidx
aa = None
for i in range(sidx, eidx + 1, step):
times.append(miutil.date2num(self.dataset.gettime(i)))
fidx = self.dataset.datafileindex(i)
if fidx > sfidx:
ei = i - step
ddf = self.dataset[sfidx]
var = ddf[self.name]
ii, ssi = self.dataset.dftindex(si)
ii, eei = self.dataset.dftindex(ei)
eei += 1
nindices = list(indices)
nindices[0] = slice(ssi, eei, step)
nindices = tuple(nindices)
aa = var.__getitem__(nindices)
if si == ei:
if isinstance(aa, np.DimArray):
aa.addtdim(self.dataset.gettime(si))
else:
aa = np.array([aa])
aa = np.DimArray(aa)
aa.addtdim(self.dataset.gettime(si))
if data is None:
data = aa
else:
data = np.concatenate([data, aa])
si = i
sfidx = fidx
if si < eidx + 1:
ei = eidx + 1 - step
ddf = self.dataset[sfidx]
var = ddf[self.name]
ii, ssi = self.dataset.dftindex(si)
ii, eei = self.dataset.dftindex(ei)
eei += 1
nindices = list(indices)
nindices = list(indices)
nindices[0] = slice(ssi, eei, step)
nindices = tuple(nindices)
aa = var.__getitem__(nindices)
if si == ei:
if si == ei and eidx != sidx:
if isinstance(aa, np.DimArray):
aa.addtdim(self.dataset.gettime(si))
else:
aa = np.array([aa])
aa = np.DimArray(aa)
aa.addtdim(self.dataset.gettime(si))
if isfirst:
if data is None:
data = aa
isfirst = False
else:
data = np.concatenate([data, aa])
si = i
sfidx = fidx
if si < eidx + 1:
ei = eidx + 1 - step
ddf = self.dataset[sfidx]
var = ddf[self.name]
ii, ssi = self.dataset.dftindex(si)
ii, eei = self.dataset.dftindex(ei)
eei += 1
nindices = list(indices)
nindices[0] = slice(ssi, eei, step)
nindices = tuple(nindices)
aa = var.__getitem__(nindices)
if si == ei and eidx != sidx:
if isinstance(aa, np.DimArray):
aa.addtdim(self.dataset.gettime(si))
if aa is None:
sfidx = self.dataset.datafileindex(sidx)
ddf = self.dataset[sfidx]
var = ddf[self.name]
ii, ssi = self.dataset.dftindex(sidx)
nindices = list(indices)
nindices[0] = slice(ssi, ssi, step)
nindices = tuple(nindices)
aa = var.__getitem__(nindices)
return aa
else:
for i in t_list:
times.append(miutil.date2num(self.dataset.gettime(i)))
fidx, ssi = self.dataset.dftindex(i)
ddf = self.dataset[fidx]
var = ddf[self.name]
nindices = list(indices)
nindices[0] = ssi
nindices = tuple(nindices)
aa = var.__getitem__(nindices)
aa.addtdim(self.dataset.gettime(i))
if data is None:
data = aa
else:
aa = np.array([aa])
aa = np.DimArray(aa)
aa.addtdim(self.dataset.gettime(si))
if isfirst:
data = aa
isfirst = False
else:
data = np.concatenate([data, aa])
if aa is None:
sfidx = self.dataset.datafileindex(sidx)
ddf = self.dataset[sfidx]
var = ddf[self.name]
ii, ssi = self.dataset.dftindex(sidx)
nindices = list(indices)
nindices[0] = slice(ssi, ssi, step)
nindices = tuple(nindices)
aa = var.__getitem__(nindices)
return aa
data = np.concatenate([data, aa])
if isinstance(data, np.DimArray):
return data