def __read_var(self, file, var):
ds = Dataset(file, 'r')
self.nx = len(ds.dimensions[self.config.xdim])
self.ny = len(ds.dimensions[self.config.ydim])
self.nt = len(ds.dimensions[self.config.tdim])
self.x = ds.variables[self.config.xname][:]
self.y = ds.variables[self.config.yname][:]
# Sort out the dimensions.
if self.config.clip:
alldims = {}
for key, val in list(ds.dimensions.items()):
alldims[key] = (0, len(val))
vardims = ds.variables[var].dimensions
for clipname in self.config.clip:
clipdims = self.config.clip[clipname]
common = set(alldims.keys()).intersection([clipname])
for k in common:
alldims[k] = clipdims
dims = [alldims[d] for d in vardims]
self.data = np.flipud(np.squeeze(ds.variables[var][
dims[0][0]:dims[0][1],
dims[1][0]:dims[1][1],
dims[2][0]:dims[2][1],
dims[3][0]:dims[3][1]
]))
self.time = ds.variables[self.config.tname][:]
self.Times = []
for t in self.time:
self.Times.append(num2date(
t,
'seconds since {}'.format(self.config.basedate),
calendar=self.config.calendar
))
ds.close()
评论列表
文章目录