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