diff --git a/ellipsyswrapper/ellipsys_output.py b/ellipsyswrapper/ellipsys_output.py index be7cb89e27266c6760f9f41ae6e5cd606d4fff81..15aeefc8537d7e668343f731080f4ba1d0ed4185 100644 --- a/ellipsyswrapper/ellipsys_output.py +++ b/ellipsyswrapper/ellipsys_output.py @@ -431,8 +431,8 @@ class EllipSys3DOutput(object): setattr(self, 'ext_%s_%iCF%03d' % (xdir, grlev, i), data[ix, 5]) setattr(self, 'ext_%s_%iP_ave%03d' % (xdir, grlev, i), data[ix, 6]) setattr(self, 'ext_%s_%iCF_ave%03d' % (xdir, grlev, i), data[ix, 7]) - - # read the grid.points file + + # read the grid.*points file var_map = {} for grlev in range(1, 6): filename = self.project + '.%ipoints' % grlev @@ -457,3 +457,56 @@ class EllipSys3DOutput(object): for j in range(data.shape[1]): var = getattr(self, 'pt_ext_%s' % var_map[j]) var.append(data[:, j]) + + # read the grid.*les file + var_map = {} + for grlev in range(1, 6): + filename = self.project + '.%iles' % grlev + if not os.path.exists(filename): + break + fid = open(filename, 'r') + fid.readline() + fid.readline() + fid.readline() + line = fid.readline() + ivar = 0 + while line.startswith('#'): + name = line.split()[-1] + var_map[ivar] = name + if not hasattr(self, 'les_ext_%s' % name): + setattr(self, 'les_ext_%s' % name, []) + line = fid.readline() + ivar += 1 + # unroll readline so all data is read by loadtxt + fid.seek(-len(line), 1) + data = np.loadtxt(fid) + for j in range(data.shape[1]): + var = getattr(self, 'les_ext_%s' % var_map[j]) + var.append(data[:, j]) + + # read the grid.*ha file + var_map = {} + for grlev in range(1, 6): + filename = self.project + '.%iha' % grlev + if not os.path.exists(filename): + break + fid = open(filename, 'r') + fid.readline() + fid.readline() + fid.readline() + line = fid.readline() + ivar = 0 + while line.startswith('#'): + name = line.split()[-1] + var_map[ivar] = name + if not hasattr(self, 'ha_ext_%s' % name): + setattr(self, 'ha_ext_%s' % name, []) + line = fid.readline() + ivar += 1 + # unroll readline so all data is read by loadtxt + fid.seek(-len(line), 1) + data = np.loadtxt(fid) + for j in range(data.shape[1]): + var = getattr(self, 'ha_ext_%s' % var_map[j]) + var.append(data[:, j]) + diff --git a/ellipsyswrapper/testsuite.py b/ellipsyswrapper/testsuite.py index f9cdcd5c3759349f75a113aa61088403706e046e..07f556e6de5300519f764ab65f2af9eb26141b87 100644 --- a/ellipsyswrapper/testsuite.py +++ b/ellipsyswrapper/testsuite.py @@ -103,7 +103,9 @@ class CaseRunner(object): 'grid.%ipoints', 'grid.%iHY', 'grid.%iFY', - 'grid.%iPY'] + 'grid.%iPY', + 'grid.%iles', + 'grid.%iha'] for i in range(1, 0, -1): for f in files: try: