From 165f9722703028977fac2fe736206c00a85a2ea4 Mon Sep 17 00:00:00 2001
From: Yngve Inntjore Levinsen <Yngve.Levinsen@esss.se>
Date: Fri, 15 Apr 2016 15:06:09 +0200
Subject: [PATCH] added a simple code to read&save fieldmaps this might not
 work in all cases just yet

---
 ess/TraceWin.py | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/ess/TraceWin.py b/ess/TraceWin.py
index da2518b..5f31d20 100644
--- a/ess/TraceWin.py
+++ b/ess/TraceWin.py
@@ -934,3 +934,43 @@ class partran(dict):
         for i in xrange(len(self.columns)):
             self[self.columns[i]]=self.data[:,i]
 
+class field_map:
+    '''
+    Class to read in the field map structures
+
+    WARNING: Work in progress!!
+    '''
+
+    def __init__(self, filename):
+        self._filename=filename
+        self._load_data(filename)
+
+    def _load_data(self,filename):
+        import os,numpy
+
+        if not os.path.isfile(filename):
+            raise ValueError("Cannot find file {}".format(filename))
+        fin = file(filename,'r')
+        l=fin.readline().split()
+        self.size=[]
+        numindexes=[]
+        while len(l)==2:
+            numindexes.append(int(l[0])+1)
+            self.size.append(float(l[1]))
+            l=fin.readline().split()
+
+        self.norm=float(l[0])
+        self.map=numpy.loadtxt(fin).reshape(numindexes)
+        print self.map.shape
+
+    def savemap(self, filename):
+        fout=file(filename,'w')
+        for n,s in zip(self.map.shape,self.size):
+            fout.write('{} {}\n'.format(n-1,s))
+        fout.write('{}\n'.format(self.norm))
+        l=1
+        for i in self.map.shape:
+            l*=i
+        data=self.map.reshape(l)
+        for j in data:
+            fout.write('{}\n'.format(j))
-- 
GitLab