Skip to content
Snippets Groups Projects
Commit 7d18469c authored by Yngve Levinsen's avatar Yngve Levinsen
Browse files

using more of the data from density file

better skip function (hopefully)
parent c5289898
No related branches found
No related tags found
No related merge requests found
...@@ -67,6 +67,9 @@ class density_file: ...@@ -67,6 +67,9 @@ class density_file:
self.filename=filename self.filename=filename
self.fin=file(self.filename, 'r') self.fin=file(self.filename, 'r')
# currently unknown:
self.version=0
# first we simply count how many elements we have: # first we simply count how many elements we have:
counter=0 counter=0
while True: while True:
...@@ -91,12 +94,28 @@ class density_file: ...@@ -91,12 +94,28 @@ class density_file:
self.Xouv=numpy.zeros(counter) self.Xouv=numpy.zeros(counter)
self.Youv=numpy.zeros(counter) self.Youv=numpy.zeros(counter)
self.moy=numpy.zeros((counter,7))
self.moy2=numpy.zeros((counter,7))
self._max=numpy.zeros((counter,7)) self._max=numpy.zeros((counter,7))
self._min=numpy.zeros((counter,7)) self._min=numpy.zeros((counter,7))
if self.version>=7:
self.rms_emit=numpy.zeros((counter,3))
self.rms_emit2=numpy.zeros((counter,3))
self.lost=numpy.zeros((counter,self.Nrun)) self.lost=numpy.zeros((counter,self.Nrun))
self.powlost=numpy.zeros((counter,self.Nrun)) self.powlost=numpy.zeros((counter,self.Nrun))
self.lost2=numpy.zeros(counter)
self.Minlost=numpy.zeros(counter)
self.Maxlost=numpy.zeros(counter)
self.powlost2=numpy.zeros(counter)
self.Minpowlost=numpy.zeros(counter)
self.Maxpowlost=numpy.zeros(counter)
while self.i<counter: while self.i<counter:
self._getFullContent() self._getFullContent()
...@@ -117,12 +136,13 @@ class density_file: ...@@ -117,12 +136,13 @@ class density_file:
shift+=1 shift+=1
version=year version=year
year=numpy.fromfile(self.fin, dtype=numpy.int16, count=1)[0] year=numpy.fromfile(self.fin, dtype=numpy.int16, count=1)[0]
if shift:
raise ValueError("ERROR, shifted "+str(shift*2)+" bytes")
self.vlong=numpy.fromfile(self.fin, dtype=numpy.int16, count=1)[0] self.vlong=numpy.fromfile(self.fin, dtype=numpy.int16, count=1)[0]
self.Nrun=numpy.fromfile(self.fin, dtype=numpy.int32, count=1)[0] self.Nrun=numpy.fromfile(self.fin, dtype=numpy.int32, count=1)[0]
if shift:
raise ValueError("ERROR, shifted "+str(shift*2)+" bytes")
self.version=version self.version=version
self.year=year self.year=year
...@@ -131,9 +151,22 @@ class density_file: ...@@ -131,9 +151,22 @@ class density_file:
import numpy import numpy
self._getHeader() self._getHeader()
numpy.fromfile(self.fin, dtype=numpy.int16, count=15132/2) 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):
return dict(x=array[0],
y=array[1],
phase=array[2],
energy=array[3],
r=array[4],
z=array[5],
dpp=array[6],
)
def _getFullContent(self): def _getFullContent(self):
...@@ -154,8 +187,8 @@ class density_file: ...@@ -154,8 +187,8 @@ class density_file:
n=7 # x [m], y[m], Phase [deg], Energy [MeV], R[m], Z[m], dp/p n=7 # x [m], y[m], Phase [deg], Energy [MeV], R[m], Z[m], dp/p
moy=numpy.fromfile(self.fin, dtype=numpy.float32, count=n) self.moy[self.i]=numpy.fromfile(self.fin, dtype=numpy.float32, count=n)[:]
moy2=numpy.fromfile(self.fin, dtype=numpy.float32, count=n) self.moy2[self.i]=numpy.fromfile(self.fin, dtype=numpy.float32, count=n)[:]
self._max[self.i]=numpy.fromfile(self.fin, dtype=numpy.float32, count=n)[:] self._max[self.i]=numpy.fromfile(self.fin, dtype=numpy.float32, count=n)[:]
self._min[self.i]=numpy.fromfile(self.fin, dtype=numpy.float32, count=n)[:] self._min[self.i]=numpy.fromfile(self.fin, dtype=numpy.float32, count=n)[:]
...@@ -167,8 +200,8 @@ class density_file: ...@@ -167,8 +200,8 @@ class density_file:
min_pos_moy=numpy.fromfile(self.fin, dtype=numpy.float32, count=n) min_pos_moy=numpy.fromfile(self.fin, dtype=numpy.float32, count=n)
max_pos_moy=numpy.fromfile(self.fin, dtype=numpy.float32, count=n) max_pos_moy=numpy.fromfile(self.fin, dtype=numpy.float32, count=n)
if self.version>=7: if self.version>=7:
rms_emit=numpy.fromfile(self.fin, dtype=numpy.float32, count=3) self.rms_emit[self.i]=numpy.fromfile(self.fin, dtype=numpy.float32, count=3)[:]
rms_emit2=numpy.fromfile(self.fin, dtype=numpy.float32, count=3) self.rms_emit2[self.i]=numpy.fromfile(self.fin, dtype=numpy.float32, count=3)[:]
if self.version>=8: if self.version>=8:
e_ouv=numpy.fromfile(self.fin, dtype=numpy.float32, count=1) e_ouv=numpy.fromfile(self.fin, dtype=numpy.float32, count=1)
phase_ouv_pos=numpy.fromfile(self.fin, dtype=numpy.float32, count=1) phase_ouv_pos=numpy.fromfile(self.fin, dtype=numpy.float32, count=1)
...@@ -181,12 +214,12 @@ class density_file: ...@@ -181,12 +214,12 @@ class density_file:
for i in xrange(self.Nrun): for i in xrange(self.Nrun):
self.lost[self.i,i]=numpy.fromfile(self.fin, dtype=numpy.int64, count=1)[0] self.lost[self.i,i]=numpy.fromfile(self.fin, dtype=numpy.int64, count=1)[0]
self.powlost[self.i,i]=numpy.fromfile(self.fin, dtype=numpy.float32, count=1)[0] self.powlost[self.i,i]=numpy.fromfile(self.fin, dtype=numpy.float32, count=1)[0]
lost2=numpy.fromfile(self.fin, dtype=numpy.int64, count=1)[0] self.lost2[self.i]=numpy.fromfile(self.fin, dtype=numpy.int64, count=1)[0]
Minlost=numpy.fromfile(self.fin, dtype=numpy.int64, count=1)[0] self.Minlost[self.i]=numpy.fromfile(self.fin, dtype=numpy.int64, count=1)[0]
Maxlost=numpy.fromfile(self.fin, dtype=numpy.int64, count=1)[0] self.Maxlost[self.i]=numpy.fromfile(self.fin, dtype=numpy.int64, count=1)[0]
powlost2=numpy.fromfile(self.fin, dtype=numpy.float64, count=1)[0] self.powlost2[self.i]=numpy.fromfile(self.fin, dtype=numpy.float64, count=1)[0]
Minpowlost=numpy.fromfile(self.fin, dtype=numpy.float32, count=1)[0] self.Minpowlost[self.i]=numpy.fromfile(self.fin, dtype=numpy.float32, count=1)[0]
Maxpowlost=numpy.fromfile(self.fin, dtype=numpy.float32, count=1)[0] self.Maxpowlost[self.i]=numpy.fromfile(self.fin, dtype=numpy.float32, count=1)[0]
if self.vlong==1: if self.vlong==1:
tab=numpy.fromfile(self.fin, dtype=numpy.uint64, count=n*step) tab=numpy.fromfile(self.fin, dtype=numpy.uint64, count=n*step)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment