In [1]:
from pyCHX.chx_packages import *
%matplotlib notebook
plt.rcParams.update({'figure.max_open_warning': 0})
plt.rcParams.update({ 'image.origin': 'lower' })
plt.rcParams.update({ 'image.interpolation': 'none' })
import pickle as cpk
from pyCHX.chx_xpcs_xsvs_jupyter_V1 import *
from pyCHX.chx_generic_functions import get_qval_qwid_dict,get_roi_mask_qval_qwid_by_shift
import itertools
In [2]:
%matplotlib notebook
#%matplotlib inline
In [ ]:
In [4]:
## Load form factor
fig, ax = plt.subplots()
plot1D( x=qp, y=pq, ls='--', m='o', c='k', ax=ax, logy=True )
ax.set_xlabel('q ('r'$\AA^{-1}$)')
ax.set_ylabel('P(q)')
Out[4]:
In [8]:
### Fit form factor
%run -i ~/pyCHX_link/pyCHX/SAXS.py
In [9]:
# for 250 nm
fitp, fitpe, q_, fitq, result = get_form_factor_fit_lmfit( qp, pq,
guess_values={'radius': 1186, 'sigma':0.02,'delta_rho':3e-9, 'background':5e-6,
'qpower_scale':5e-10, 'qpower': -4.0 },
guess_limit = { 'radius': [1000, 1500], 'sigma':[1e-3, .5], 'delta_rho': [1e-16, 1e-4],
'background': [1e-6, 1e-3], 'qpower_scale': [1e-16, 1], 'qpower': [ -5,-3]},
fit_range=[0.0022, 0.04],
fit_variables={'radius': True, 'sigma':True, 'delta_rho':True, 'background': True,
'qpower_scale':True, 'qpower':True},
fit_func='G', qpower_bg= True )
r,sig=fitp[ 'radius'], fitp['sigma']
radius, sigma, delta_rho, background, qpower_scale, qpower = (fitp[ 'radius'], fitp['sigma'],
fitp['delta_rho'],fitp['background'],
fitp[ 'qpower_scale'], fitp['qpower'] )
bk= qpower_scale*qp**( qpower ) + background
ff= poly_sphere_form_factor_intensity( qp, radius=radius, sigma=sigma, delta_rho=delta_rho,
background=0, num_points= 20,
spread=5,fit_func= 'G' ) + bk
print( radius, sigma, delta_rho, background, qpower_scale, qpower )
In [10]:
report_fit( result)
In [11]:
fig = plt.figure( )#figsize=[8,6])
ax = fig.add_subplot( 1,1,1 )
plot1D(x=qp,y=pq,ax=ax,m='o', ls='',c='k', legend='data', logy=True)
#plot1D(x=q,y=pqfit,ax=ax,m='', ls='-',c='g', legend='fitManu', logy=True)
#plot1D(x=q_2,y=fitq2 + bk2 ,ax=ax,m='', ls='-',c='r', legend='fitG', logy=True)
#plot1D(x=q_,y=fitq,ax=ax,m='', ls='-',c='r', legend='fitG_bg', logy=True)#, logx=True )
plot1D(x=qp,y=ff,ax=ax,m='', ls='-',c='b', legend='fitG_bgA', logy=True)#, logx=True )
#plot1D(x=q, y = bk, ls='--',c='g',ax=ax, lw=1, markersize=2,)
#qpower_scale, qpower
plot1D(x=qp, y= qp**( qpower ) * np.exp( qpower_scale ) /1e8, ax=ax, m='', ls='-', c='k', legend= r'$q^{%.1f}$'% qpower)
txts = r'radius' + r' = %.2f +/- %.2f '%( radius/10, fitpe['radius'] ) + r'$ nm$'
ax.text(x =0.02, y=.2, s=txts, fontsize=14, transform=ax.transAxes)
txts = r'sigma' + r' = %.4f +/- %.4f'%( sigma, fitpe['sigma'])
#txts = r'$\beta$' + r'$ = %.3f$'%(beta[i]) + r'$ s^{-1}$'
ax.text(x =0.02, y=.1, s=txts, fontsize=14, transform=ax.transAxes)
ax.set_xscale('log')
#ax.set_ylim( [1.00, 1.15 ] )
ax.set_xlabel(r'$q$ ('r'$\AA^{-1}$)', fontsize=18)
ax.set_ylabel(r'$I(q)$', fontsize=18)
#ax.set_title( 'uid=%s'%uid, fontsize=18)
plt.tight_layout()
118.96*2
Out[11]:
In [ ]:
In [ ]: