From f6a9c1578ee3ea3396731010f4b28a0afdd6369e Mon Sep 17 00:00:00 2001 From: Yngve Inntjore Levinsen <Yngve.Levinsen@esss.se> Date: Wed, 21 Oct 2015 11:14:21 +0200 Subject: [PATCH] first attempt at supporting envelope density files --- ess/TraceWin.py | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/ess/TraceWin.py b/ess/TraceWin.py index 096e05b..9c1a961 100644 --- a/ess/TraceWin.py +++ b/ess/TraceWin.py @@ -403,13 +403,21 @@ class density_file: into a pythonized object ''' - def __init__(self, filename): + def __init__(self, filename, envelope=None): import numpy, sys self.filename=filename self.fin=file(self.filename, 'r') + if envelope==None: # try to guess + if filename.split('/')[-1].split('.')[0]=='Density_Env': + self.envelope=True + else: + self.envelope=False + else: + self.envelope=envelope + # currently unknown: self.version=0 @@ -510,11 +518,14 @@ class density_file: self._getHeader() - if self.version==8: - numpy.fromfile(self.fin, dtype=numpy.int16, count=8344/2) - if self.Nrun>1: - #WARN not 100% sure if this is correct.. - numpy.fromfile(self.fin, dtype=numpy.int16, count=((5588+self.Nrun*12)/2)) + if self.envelope: + numpy.fromfile(self.fin, dtype=numpy.int16, count=292/2) + else: + if self.version==8: + numpy.fromfile(self.fin, dtype=numpy.int16, count=8344/2) + if self.Nrun>1: + #WARN not 100% sure if this is correct.. + numpy.fromfile(self.fin, dtype=numpy.int16, count=((5588+self.Nrun*12)/2)) def _get_7dim_array(array): ''' -- GitLab