From acf78ef4df3e1aebd5f66c5c079e9e64a8269f0e Mon Sep 17 00:00:00 2001 From: Vladimir Onoprienko <vonopr@yandex.ru> Date: Thu, 3 Sep 2020 16:41:03 +0300 Subject: [PATCH] Fix bugs --- ctler.py | 16 +++++++++++++--- setup.py | 2 ++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/ctler.py b/ctler.py index f9e6668..5711882 100644 --- a/ctler.py +++ b/ctler.py @@ -33,7 +33,7 @@ class CTLReader(object): dset = re.search("DSET *(.*)", self.ctl).group(1) if dset.startswith('^'): dset = os.path.join(os.path.dirname(self.filename), dset[1:]) - data = np.fromfile(dset, 'f') + data = np.fromfile(dset.strip(), 'f') if big_endian: data = data.byteswap() self.data = np.ma.masked_values(data, self.undef) @@ -73,10 +73,20 @@ class CTLReader(object): SPACE = self.dimensions['latitude'] * self.dimensions['longitude'] if levels[0] > 0: var.dimensions = ('time', 'levels', 'latitude', 'longitude') - size = self.dimensions['time'] * self.dimensions['levels'] * (SPACE+2) # account for header bytes + + if self.dimensions['time'] > 1: + size = self.dimensions['time'] * self.dimensions['levels'] * (SPACE+2) # account for header bytes + else: + size = self.dimensions['time'] * self.dimensions['levels'] * SPACE + else: var.dimensions = ('time', 'latitude', 'longitude') - size = self.dimensions['time'] * (SPACE+2) # account for header bytes + + if self.dimensions['time'] > 1: + size = self.dimensions['time'] * (SPACE+2) # account for header bytes + else: + size = self.dimensions['time'] * SPACE + var.shape = tuple(self.dimensions[dim] for dim in var.dimensions) var.data = self.data[i:i+size].reshape(-1, SPACE)[:,:].reshape(var.shape) # remove header bytes diff --git a/setup.py b/setup.py index 50267d0..69af46d 100644 --- a/setup.py +++ b/setup.py @@ -19,6 +19,8 @@ setup( include_package_data=True, install_requires=[ + 'setuptools', + 'matplotlib', 'numpy', 'netCDF4' ] -- GitLab