Example #1
0
def gaussFit(data):

    # Create x-axis
    xaxis = np.arange(data.size)

    # Estimate parameters
    params_estimate = GaussFit.gauss_params_estimate(data)
    print "Estimate:", params_estimate

    print "Fitting"
    fit_params, fit_cov = GaussFit.curve_fit(GaussFit.gauss, xaxis, data,
                                             params_estimate)
    fit_params_error = np.sqrt(np.diag(fit_cov))

    fit_results = {
        'mean': fit_params[0],
        'sigma': fit_params[1],
        'height': fit_params[2],
        'pedestal': fit_params[3],
        'mean_error': fit_params_error[0],
        'sigma_error': fit_params_error[1],
        'height_error': fit_params_error[2],
        'pedestal_error': fit_params_error[3]
    }

    return fit_results
def gaussFit(data):

    # Create x-axis
    xaxis = np.arange(data.size)

    # Estimate parameters
    params_estimate = GaussFit.gauss_params_estimate(data)
    print "Estimate:", params_estimate

    print "Fitting"
    fit_params, fit_cov = GaussFit.curve_fit(GaussFit.gauss, xaxis, data,
                                             params_estimate)
    fit_params_error = np.sqrt(np.diag(fit_cov))

    #print "Final Fit(errors):",zip(fit_params,fit_params_error)
    #print "Covariance Matrix:",fit_cov

    combinedvals = zip(fit_params, fit_params_error)
    print "Fit Values(errors):"
    print "mean:", combinedvals[0],
    print "sigma:", combinedvals[1],
    print "Height:", combinedvals[2],
    print "Pedestal:", combinedvals[3]

    return fit_params, fit_params_error
Example #3
0
def fit_gauss(mirrorpos, sharpness):
    """
    Fit mirror position vs sharpness to a Gaussian to find optimal
    mirror position
    """

    # Estimate parameters
    params_estimate = GaussFit.gauss_params_estimate(sharpness)

    # Translate mean and sigma from array index units to mirror
    # position units
    gradient = (mirrorpos[-1] - mirrorpos[0]) / float(mirrorpos.size)
    params_estimate[0] = mirrorpos[0] + (params_estimate[0] * gradient)
    params_estimate[1] = params_estimate[1] * gradient

    # Fit to Gaussian
    fit_params, fit_cov = GaussFit.curve_fit(GaussFit.gauss, mirrorpos,
                                             sharpness, params_estimate)
    fit_params_error = np.sqrt(np.diag(fit_cov))

    # Return the fitted mean position
    return fit_params[0], GaussFit.gaus(mirrorpos, *fit_params)