Changeset 1893 for trunk/GSASIIpwd.py


Ignore:
Timestamp:
Jun 17, 2015 11:47:40 AM (7 years ago)
Author:
toby
Message:

fix background fitting by interpolation

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIpwd.py

    r1889 r1893  
    13771377               
    13781378    def BackgroundPrint(Background,sigDict):
    1379         if Background[0][1]:
    1380             print 'Background coefficients for',Background[0][0],'function'
    1381             ptfmt = "%12.5f"
    1382             ptstr =  'values:'
    1383             sigstr = 'esds  :'
    1384             for i,back in enumerate(Background[0][3:]):
    1385                 ptstr += ptfmt % (back)
     1379        print 'Background coefficients for',Background[0][0],'function'
     1380        ptfmt = "%12.5f"
     1381        ptstr =  'value: '
     1382        sigstr = 'esd  : '
     1383        for i,back in enumerate(Background[0][3:]):
     1384            ptstr += ptfmt % (back)
     1385            if Background[0][1]:
    13861386                sigstr += ptfmt % (sigDict['Back;'+str(i)])
     1387            if len(ptstr) > 75:
     1388                print ptstr
     1389                if Background[0][1]: print sigstr
     1390                ptstr =  'value: '
     1391                sigstr = 'esd  : '
     1392        if len(ptstr) > 8:
    13871393            print ptstr
    1388             print sigstr
    1389         else:
    1390             print 'Background not refined'
     1394            if Background[0][1]: print sigstr
     1395
    13911396        if Background[1]['nDebye']:
    13921397            parms = ['DebyeA;','DebyeR;','DebyeU;']
     
    14021407                print line
    14031408        if Background[1]['nPeaks']:
    1404             parms = ['BkPkpos','BkPkint','BkPksig','BkPkgam']
    1405             print 'Peaks in background coefficients'
     1409            print 'Coefficients for Background Peaks'
    14061410            ptfmt = "%15.3f"
    1407             names =   'names :'
    1408             ptstr =  'values:'
    1409             sigstr = 'esds  :'
    1410             for item in sigDict:
    1411                 if 'BkPk' in item:
    1412                     names += '%15s'%(item)
    1413                     sigstr += ptfmt%(sigDict[item])
    1414                     parm,id = item.split(';')
    1415                     ip = parms.index(parm)
    1416                     ptstr += ptfmt%(Background[1]['peaksList'][int(id)][2*ip])
    1417             print names
    1418             print ptstr
    1419             print sigstr
     1411            for j,pl in enumerate(Background[1]['peaksList']):
     1412                names =  'peak %3d:'%(j+1)
     1413                ptstr =  'values  :'
     1414                sigstr = 'esds    :'
     1415                for i,lbl in enumerate(['BkPkpos','BkPkint','BkPksig','BkPkgam']):
     1416                    val = pl[2*i]
     1417                    prm = lbl+";"+str(j)
     1418                    names += '%15s'%(prm)
     1419                    ptstr += ptfmt%(val)
     1420                    if prm in sigDict:
     1421                        sigstr += ptfmt%(sigDict[prm])
     1422                    else:
     1423                        sigstr += " "*15
     1424                print names
     1425                print ptstr
     1426                print sigstr
    14201427                           
    14211428    def SetInstParms(Inst):
     
    15621569        return np.sqrt(weights)*getPeakProfileDerv(dataType,parmdict,xdata,varylist,bakType)
    15631570           
    1564     def errPeakProfile(values,xdata,ydata, weights,dataType,parmdict,varylist,bakType,dlg):       
     1571    def errPeakProfile(values,xdata,ydata,weights,dataType,parmdict,varylist,bakType,dlg):       
    15651572        parmdict.update(zip(varylist,values))
    15661573        M = np.sqrt(weights)*(getPeakProfile(dataType,parmdict,xdata,varylist,bakType)-ydata)
     
    16081615            try:
    16091616                result = so.leastsq(errPeakProfile,values,Dfun=devPeakProfile,full_output=True,ftol=Ftol,col_deriv=True,
    1610                     args=(x[xBeg:xFin],y[xBeg:xFin],w[xBeg:xFin],dataType,parmDict,varyList,bakType,dlg))
     1617                   args=(x[xBeg:xFin],y[xBeg:xFin],w[xBeg:xFin],dataType,parmDict,varyList,bakType,dlg))
    16111618                ncyc = int(result[2]['nfev']/2)
    16121619            finally:
Note: See TracChangeset for help on using the changeset viewer.