In [1]:
import sys
sys.path.append('/Users/ck/devel/peak-o-mat/')
In [15]:
from peak_o_mat.model import Model
from peak_o_mat.spec import Spec
In [3]:
m = Model('CB LO1 GA1 LO2')
In [4]:
m.parse()
In [5]:
print m.CB
CB: function of 'const'
In [8]:
print m.LO1
LO1: function of 'amp','fwhm','pos'
In [10]:
m.LO1.amp.value = 3.4
In [14]:
print m['LO1']['amp'].value
3.4
In [17]:
s = Spec('/Users/ck/devel/peak-o-mat/data/ruby.dat')
In [42]:
plot(s.x,s.y,'o')
Out[42]:
[<matplotlib.lines.Line2D at 0x95fb230>]
In [43]:
m = Model('CB LO1 GA LO2')
m.parse()
In [44]:
m.CB.const.value = 0.0
m.LO1.amp.value = 1.0
m.LO1.fwhm.value = 0.5
m.LO1.pos.value = 6930
m.GA.amp.value = 2.0
m.GA.fwhm.value = 0.2
m.GA.pos.value = 6934
m.LO2.amp.value = 2.0
m.LO2.fwhm.value = 0.5
m.LO2.pos.value = 6944
In [45]:
import numpy as np
x = np.linspace(6925,6950,500)
In [46]:
y = m.evaluate(x)
In [47]:
plot(s.x,s.y,'ko',alpha=0.2)
plot(x,y,'r-')
Out[47]:
[<matplotlib.lines.Line2D at 0x95fb650>]
In [48]:
from peak_o_mat.fit import Fit
In [49]:
f = Fit(s, m)
res = f.run()
print res[-1]
m.update_from_fit(res)
['reason for halting: Sum of squares convergence', 'residual variance: 0.000643948']
In [50]:
y = m.evaluate(x)
In [51]:
plot(s.x,s.y,'ko',alpha=0.2)
plot(x,y,'r-')
Out[51]:
[<matplotlib.lines.Line2D at 0x96f8570>]
In []: