Exemplo n.º 1
0
def mfit(data, xmin, xmax, ymin, ymax, dy):

    fs = [Function('Linear', linear), Function('Gaussian', gaussian)]
    x = np.linspace(xmin, xmax, 200)

    ylo, yhi = ymin, ymin+dy

    while yhi < ymax:

        slab = data[ylo:yhi,xmin:xmax]
        diff = slab.nxsignal.shape[0]
        cut = slab.sum([0])
        cut.plot()
    
        fit = Fit(cut, fs, use_errors=True)
    
        y = np.array(fit.y)
        for f in fs:
            f.guess_parameters(fit.x, y)
            y = y - f.function_values(fit.x)

        fit.fit_data()
    
        NXdata(fit.get_model(x), x).oplot('-')
    
        if raw_input('Keep? [y,N] ') == 'y':
            data[ylo:yhi,xmin:xmax] = slab - fit.get_model(f=fs[1]) / diff
        
        ylo = yhi
        yhi = ylo + dy
    
    return data
Exemplo n.º 2
0
def mfit(data, xmin, xmax, ymin, ymax, dy):

    fs = [Function('Linear', linear), Function('Gaussian', gaussian)]
    x = np.linspace(xmin, xmax, 200)

    ylo, yhi = ymin, ymin + dy

    while yhi < ymax:

        slab = data[ylo:yhi, xmin:xmax]
        diff = slab.nxsignal.shape[0]
        cut = slab.sum([0])
        cut.plot()

        fit = Fit(cut, fs, use_errors=True)

        y = np.array(fit.y)
        for f in fs:
            f.guess_parameters(fit.x, y)
            y = y - f.function_values(fit.x)

        fit.fit_data()

        NXdata(fit.get_model(x), x).oplot('-')

        if raw_input('Keep? [y,N] ') == 'y':
            data[ylo:yhi, xmin:xmax] = slab - fit.get_model(f=fs[1]) / diff

        ylo = yhi
        yhi = ylo + dy

    return data
Exemplo n.º 3
0
 def get_model(self, f=None):
     self.read_parameters()
     fit = Fit(self.data, self.functions)
     if self.plot_checkbox.isChecked():
         x = fit.x
     else:
         x = np.linspace(float(self.plot_minbox.text()),
                         float(self.plot_maxbox.text()), 1001)
     return NXdata(NXfield(fit.get_model(x, f), name='model'),
                   NXfield(x, name=fit.data.nxaxes[0].nxname),
                   title='Fit Results')
Exemplo n.º 4
0
 def get_model(self, f=None):
     self.read_parameters()
     fit = Fit(self.data, self.functions)
     if self.plot_checkbox.isChecked():
         x = fit.x
     else:
         x = np.linspace(float(self.plot_minbox.text()), 
                         float(self.plot_maxbox.text()), 1001)
     return NXdata(NXfield(fit.get_model(x,f), name='model'),
                   NXfield(x, name=fit.data.nxaxes[0].nxname), 
                   title = 'Fit Results')