def _Fit_Spec_fired(self): plt.figure() plt.contourf(Data.wavelength, Data.time, Data.TrA_Data, 100) plt.title('Pick time to fit') plt.xlabel('Wavelength') plt.ylabel('Time') fittingto = np.array(ginput(1)) plt.show() plt.close() index_time = (np.abs(Data.time - fittingto[:, 1])).argmin() Data.tracefitmodel = fitgui.fit_data(Data.wavelength, Data.TrA_Data[index_time, :], autoupdate=False) #If you want to have the fitting gui in another window while PyTrA remains responsive change the fit model to a model instance and use the line bellow to call it #Data.tracefitmodel.edit_traits() results_error = Data.tracefitmodel.getCov().diagonal() results_par = Data.tracefitmodel.params results = Data.tracefitmodel.parvals self.log = ( '%s\n---\nFitted parameters at time %s \nFitting parameters' % (self.log, fittingto[:, 1])) for i in range(len(results)): self.log = ( '%s\n---\n%s = %s +- %s' % (self.log, results_par[i], results[i], results_error[i]))
def get_model(s, netlist): netlist_combined_data = get_combined_data(s, netlist) deltas = get_deltas(netlist_combined_data) count = len(deltas) hist, bin_edges = np.histogram(deltas) model = fit_data(range(len(hist)), hist / count) return model, netlist_combined_data
def _Fit_Trace_fired(self): plt.figure() plt.contourf(Data.wavelength, Data.time, Data.TrA_Data, 100) plt.title('Pick wavelength to fit') plt.xlabel('Wavelength') plt.ylabel('Time') fittingto = np.array(ginput(1)) plt.show() plt.close() index_wavelength = (np.abs(Data.wavelength - fittingto[:, 0])).argmin() Data.tracefitmodel = fitgui.fit_data( Data.time, Data.TrA_Data[:, index_wavelength], autoupdate=False, model=Convoluted_exp1, include_models= 'Convoluted_exp1,Convoluted_exp2,Convoluted_exp3,Convoluted_exp4,doublegaussian,doubleopposedgaussian,gaussian' ) #If you want to have the fitting gui in another window while PyTrA remains responsive change the fit model to a model instance and use the line bellow to call it #Data.tracefitmodel.edit_traits() results_error = Data.tracefitmodel.getCov().diagonal() results_par = Data.tracefitmodel.params results = Data.tracefitmodel.parvals self.log = ( '%s\n---\nFitted parameters at wavelength %s \nFitting parameters' % (self.log, fittingto[:, 0])) for i in range(len(results)): self.log = ( '%s\n%s = %s +- %s' % (self.log, results_par[i], results[i], results_error[i]))
def _Fit_Trace_fired(self): plt.figure() plt.contourf(Data.wavelength, Data.time, Data.TrA_Data, 100) plt.title('Pick wavelength to fit') plt.xlabel('Wavelength') plt.ylabel('Time') fittingto = np.array(ginput(1)) plt.show() plt.close() index_wavelength=(np.abs(Data.wavelength-fittingto[:,0])).argmin() Data.tracefitmodel = fitgui.fit_data(Data.time,Data.TrA_Data[:,index_wavelength],autoupdate=False,model=Convoluted_exp1,include_models='Convoluted_exp1,Convoluted_exp2,Convoluted_exp3,Convoluted_exp4') #If you want to have the fitting gui in another window while PyTrA remains responsive change the fit model to a model instance and use the line bellow to call it #Data.tracefitmodel.edit_traits() results_error = Data.tracefitmodel.getCov().diagonal() results_par = Data.tracefitmodel.params results = Data.tracefitmodel.parvals self.log= ('%s \nFitted parameters at wavelength %s \nFitting parameters'%(self.log,fittingto[:,0])) for i in range(len(results)): self.log = ('%s \n%s = %s +- %s'%(self.log,results_par[i],results[i],results_error[i]))