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