fit_logic_standalone.py 文件源码

python
阅读 25 收藏 0 点赞 0 评论 0

项目:qudi 作者: Ulm-IQO 项目源码 文件源码
def double_lorentzian_fixedsplitting_testing():
    # This method does not work and has to be fixed!!!
    for ii in range(1):
#                time.sleep(0.51)
        start=2800
        stop=2950
        num_points=int((stop-start)/2)
        x = np.linspace(start, stop, num_points)

        mod,params = qudi_fitting.make_multiplelorentzian_model(no_of_lor=2)

        p=Parameters()

        #============ Create data ==========
        p.add('c',value=100)
        p.add('lorentz0_amplitude',value=-abs(np.random.random(1)*50+100))
        p.add('lorentz0_center',value=np.random.random(1)*150.0+2800)
        p.add('lorentz0_sigma',value=abs(np.random.random(1)*2.+1.))
        p.add('lorentz1_center',value=p['lorentz0_center']+20)
        p.add('lorentz1_sigma',value=abs(np.random.random(1)*2.+1.))
        p.add('lorentz1_amplitude',value=-abs(np.random.random(1)*50+100))

        data_noisy=(mod.eval(x=x,params=p)
                                + 2*np.random.normal(size=x.shape))

        para=Parameters()

        result=qudi_fitting.make_doublelorentzian_fit(axis=x,data=data_noisy,add_parameters=para)


        data_smooth, offset = qudi_fitting.find_offset_parameter(x,data_noisy)

        data_level=data_smooth-offset

        #search for double lorentzian

        error, \
        sigma0_argleft, dip0_arg, sigma0_argright, \
        sigma1_argleft, dip1_arg , sigma1_argright = \
        qudi_fitting._search_double_dip(x, data_level,make_prints=False)

        print(x[sigma0_argleft], x[dip0_arg], x[sigma0_argright], x[sigma1_argleft], x[dip1_arg], x[sigma1_argright])
        print(x[dip0_arg], x[dip1_arg])

        plt.plot((x[sigma0_argleft], x[sigma0_argleft]), ( data_noisy.min() ,data_noisy.max()), 'b-')
        plt.plot((x[sigma0_argright], x[sigma0_argright]), (data_noisy.min() ,data_noisy.max()), 'b-')

        plt.plot((x[sigma1_argleft], x[sigma1_argleft]), ( data_noisy.min() ,data_noisy.max()), 'k-')
        plt.plot((x[sigma1_argright], x[sigma1_argright]), ( data_noisy.min() ,data_noisy.max()), 'k-')

        try:
            plt.plot(x,data_noisy,'o')
            plt.plot(x,result.init_fit,'-y')
            plt.plot(x,result.best_fit,'-r',linewidth=2.0,)
            plt.plot(x,data_smooth,'-g')
        except:
            print('exception')
        plt.show()
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号