Changeset 1248


Ignore:
Timestamp:
Mar 13, 2014 2:16:20 PM (8 years ago)
Author:
vondreele
Message:

add setscale for SASD data
don't square the 1/cos(2-theta) correction to integrated intensities in ImageIntegrate?
scale SASD error bars by Scale
replace ':' with ';' in BkPk? parameter names
fix bug of missing Residuals in LS Refine

Location:
trunk
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIgrid.py

    r1247 r1248  
    106106
    107107[ wxID_BACKCOPY,wxID_LIMITCOPY,wxID_SAMPLECOPY, wxID_BACKFLAGCOPY, wxID_SAMPLEFLAGCOPY,
    108     wxID_SAMPLESAVE, wxID_SAMPLELOAD,wxID_ADDEXCLREGION,
    109 ] = [wx.NewId() for item in range(8)]
     108    wxID_SAMPLESAVE, wxID_SAMPLELOAD,wxID_ADDEXCLREGION,wxID_SETSCALE,
     109] = [wx.NewId() for item in range(9)]
    110110
    111111[ wxID_INSTPRMRESET,wxID_CHANGEWAVETYPE,wxID_INSTCOPY, wxID_INSTFLAGCOPY, wxID_INSTLOAD,
     
    24732473        self.SampleEdit = wx.Menu(title='')
    24742474        self.SampleMenu.Append(menu=self.SampleEdit, title='Command')
     2475        self.SetScale = self.SampleEdit.Append(id=wxID_SETSCALE, kind=wx.ITEM_NORMAL,text='Set scale',
     2476            help='Set scale by matching to another histogram')
    24752477        self.SampleEdit.Append(id=wxID_SAMPLELOAD, kind=wx.ITEM_NORMAL,text='Load',
    24762478            help='Load sample parameters from file')
     
    24822484            help='Copy sample parameter refinement flags to other histograms')
    24832485        self.PostfillDataMenu()
     2486        self.SetScale.Enable(False)
    24842487
    24852488        # PDR / Peak List
  • trunk/GSASIIimage.py

    r1244 r1248  
    879879    else:
    880880        H1 = LRazm
    881     H0 /= npcosd(H2[:-1])           #**2?
     881    H0 /= npcosd(H2[:-1])           #**2? I don't think so, **1 is right for powders
    882882    if data['Oblique'][1]:
    883883        H0 /= G2pwd.Oblique(data['Oblique'][0],H2[:-1])
  • trunk/GSASIIplot.py

    r1246 r1248  
    903903                        Plot.set_yscale("log",nonposy='mask')
    904904                        if G2frame.ErrorBars:
    905                             Plot.errorbar(X,Y,yerr=np.sqrt(1./(Pattern[0]['wtFactor']*xye[2])),
     905                            Plot.errorbar(X,Y,yerr=Sample['Scale'][0]*np.sqrt(1./(Pattern[0]['wtFactor']*xye[2])),
    906906                                ecolor=colors[N%6],picker=3.,clip_on=False)
    907907                        else:
  • trunk/GSASIIpwd.py

    r1217 r1248  
    581581    while True:
    582582        try:
    583             pkP = parmDict[pfx+'BkPkpos:'+str(iD)]
    584             pkI = parmDict[pfx+'BkPkint:'+str(iD)]
    585             pkS = parmDict[pfx+'BkPksig:'+str(iD)]
    586             pkG = parmDict[pfx+'BkPkgam:'+str(iD)]
     583            pkP = parmDict[pfx+'BkPkpos;'+str(iD)]
     584            pkI = parmDict[pfx+'BkPkint;'+str(iD)]
     585            pkS = parmDict[pfx+'BkPksig;'+str(iD)]
     586            pkG = parmDict[pfx+'BkPkgam;'+str(iD)]
    587587            shl = 0.002
    588588            Wd,fmin,fmax = getWidthsCW(pkP,pkS,pkG,shl)
     
    675675    while True:
    676676        try:
    677             pkP = parmDict[pfx+'BkPkpos:'+str(iD)]
    678             pkI = parmDict[pfx+'BkPkint:'+str(iD)]
    679             pkS = parmDict[pfx+'BkPksig:'+str(iD)]
    680             pkG = parmDict[pfx+'BkPkgam:'+str(iD)]
     677            pkP = parmDict[pfx+'BkPkpos;'+str(iD)]
     678            pkI = parmDict[pfx+'BkPkint;'+str(iD)]
     679            pkS = parmDict[pfx+'BkPksig;'+str(iD)]
     680            pkG = parmDict[pfx+'BkPkgam;'+str(iD)]
    681681            shl = 0.002
    682682            Wd,fmin,fmax = getWidthsCW(pkP,pkS,pkG,shl)
  • trunk/GSASIIpwdGUI.py

    r1244 r1248  
    11291129    data tree item.
    11301130    '''
     1131                                                       
    11311132    def SetCopyNames(histName,addNames=[]):
    11321133        copyNames = ['Scale',]
     
    11661167        finally:
    11671168            dlg.Destroy()
    1168                                                        
     1169           
    11691170    def OnSampleLoad(event):
    11701171        '''Loads sample parameters from a G2 .samprm file
     
    11951196            dlg.Destroy()
    11961197   
     1198    def OnSetScale(event):
     1199        histList = []
     1200        item, cookie = G2frame.PatternTree.GetFirstChild(G2frame.root)
     1201        while item:
     1202            name = G2frame.PatternTree.GetItemText(item)
     1203            if 'SASD' in name and name != histName:
     1204                histList.append(name)
     1205            item, cookie = G2frame.PatternTree.GetNextChild(G2frame.root, cookie)
     1206        if not len(histList):      #nothing to copy to!
     1207            return
     1208        dlg = wx.SingleChoiceDialog(G2frame,'Select reference histogram for scaling',
     1209            'Reference histogram',histList)
     1210        try:
     1211            if dlg.ShowModal() == wx.ID_OK:
     1212                sel = dlg.GetSelection()
     1213                refHist = histList[sel]
     1214        finally:
     1215            dlg.Destroy()
     1216        Limits = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,G2frame.PatternId, 'Limits'))
     1217        Profile = G2frame.PatternTree.GetItemPyData(G2frame.PatternId)[1]
     1218        Data = [Profile,Limits,data]
     1219        refId = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,refHist)
     1220        refSample = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,refId, 'Sample Parameters'))
     1221        refLimits = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,refId, 'Limits'))
     1222        refProfile = G2frame.PatternTree.GetItemPyData(refId)[1]
     1223        refData = [refProfile,refLimits,refSample]
     1224        G2sasd.SetScale(Data,refData)
     1225        UpdateSampleGrid(G2frame,data)       
     1226        G2plt.PlotPatterns(G2frame,plotType='SASD',newPlot=True)
     1227       
    11971228    def OnSampleCopy(event):
    11981229        histType,copyNames = SetCopyNames(histName,
     
    13271358    G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.SampleMenu)
    13281359    G2frame.dataFrame.SetLabel('Sample Parameters')
     1360    G2frame.Bind(wx.EVT_MENU, OnSetScale, id=G2gd.wxID_SETSCALE)
    13291361    G2frame.Bind(wx.EVT_MENU, OnSampleCopy, id=G2gd.wxID_SAMPLECOPY)
    13301362    G2frame.Bind(wx.EVT_MENU, OnSampleFlagCopy, id=G2gd.wxID_SAMPLEFLAGCOPY)
    13311363    G2frame.Bind(wx.EVT_MENU, OnSampleSave, id=G2gd.wxID_SAMPLESAVE)
    13321364    G2frame.Bind(wx.EVT_MENU, OnSampleLoad, id=G2gd.wxID_SAMPLELOAD)
     1365    if 'SASD' in histName:
     1366        G2frame.dataFrame.SetScale.Enable(True)
    13331367    if not G2frame.dataFrame.GetStatusBar():
    13341368        Status = G2frame.dataFrame.CreateStatusBar()   
  • trunk/GSASIIsasd.py

    r1246 r1248  
    689689if __name__ == '__main__':
    690690    tests()
     691   
     692###############################################################################
     693#### SASD Utilities
     694###############################################################################
     695
     696def SetScale(Data,refData):
     697    Profile,Limits,Sample = Data
     698    refProfile,refLimits,refSample = refData
     699    x,y = Profile[:2]
     700    rx,ry = refProfile[:2]
     701    Beg = np.max([rx[0],x[0],Limits[1][0],refLimits[1][0]])
     702    Fin = np.min([rx[-1],x[-1],Limits[1][1],refLimits[1][1]])
     703    iBeg = np.searchsorted(x,Beg)
     704    iFin = np.searchsorted(x,Fin)
     705    sum = np.sum(y[iBeg:iFin])
     706    refsum = np.sum(np.interp(x[iBeg:iFin],rx,ry,0,0))
     707    Sample['Scale'][0] = refSample['Scale'][0]*refsum/sum
    691708   
    692709###############################################################################
     
    722739        Ic[Ibeg:Ifin] = Back[0]
    723740    Gmat = G_matrix(Q[Ibeg:Ifin],Bins,Contrast,shapes[Shape][0],shapes[Shape][1],args=Parms)
    724     chisq,BinMag,Ic[Ibeg:Ifin] = MaxEnt_SB(Io[Ibeg:Ifin]-Back[0],1./np.sqrt(wtFactor*wt[Ibeg:Ifin]),BinsBack,
     741    chisq,BinMag,Ic[Ibeg:Ifin] = MaxEnt_SB(Sample['Scale'][0]*Io[Ibeg:Ifin]-Back[0],
     742        Sample['Scale'][0]/np.sqrt(wtFactor*wt[Ibeg:Ifin]),BinsBack,
    725743        data['Size']['MaxEnt']['Niter'],Gmat,report=True)
    726744    print ' Final chi^2: %.3f'%(chisq)
  • trunk/GSASIIstrIO.py

    r1242 r1248  
    21902190        peakList = []
    21912191        for i in range(DebyePeaks['nPeaks']):
    2192             peakNames = [':'+str(hId)+':BkPkpos:'+str(i),':'+str(hId)+ \
    2193                 ':BkPkint:'+str(i),':'+str(hId)+':BkPksig:'+str(i),':'+str(hId)+':BkPkgam:'+str(i)]
     2192            peakNames = [':'+str(hId)+':BkPkpos;'+str(i),':'+str(hId)+ \
     2193                ':BkPkint;'+str(i),':'+str(hId)+':BkPksig;'+str(i),':'+str(hId)+':BkPkgam;'+str(i)]
    21942194            peakDict.update(dict(zip(peakNames,DebyePeaks['peaksList'][i][::2])))
    21952195            peakList += zip(peakNames,DebyePeaks['peaksList'][i][1::2])
     
    24042404        if DebyePeaks['nPeaks']:
    24052405            for i in range(DebyePeaks['nPeaks']):
    2406                 names = [pfx+'BkPkpos:'+str(i),pfx+'BkPkint:'+str(i),
    2407                     pfx+'BkPksig:'+str(i),pfx+'BkPkgam:'+str(i)]
     2406                names = [pfx+'BkPkpos;'+str(i),pfx+'BkPkint;'+str(i),
     2407                    pfx+'BkPksig;'+str(i),pfx+'BkPkgam;'+str(i)]
    24082408                for j,name in enumerate(names):
    24092409                    DebyePeaks['peaksList'][i][2*j] = parmDict[name]
  • trunk/GSASIIstrMain.py

    r1247 r1248  
    105105                        del(varyList[ipvt-1])
    106106                        break
    107         G2stMth.GetFobsSq(Histograms,Phases,parmDict,calcControls)
     107    G2stMth.GetFobsSq(Histograms,Phases,parmDict,calcControls)
    108108    return Rvals,result,covMatrix,sig
    109109
     
    169169    Rvals,result,covMatrix,sig = RefineCore(Controls,Histograms,Phases,restraintDict,
    170170        rigidbodyDict,parmDict,varyList,calcControls,pawleyLookup,ifPrint,printFile,dlg)
    171        
    172171    sigDict = dict(zip(varyList,sig))
    173172    newCellDict = G2stMth.GetNewCellParms(parmDict,varyList)
  • trunk/GSASIIstrMath.py

    r1244 r1248  
    14971497    for name in varylist:
    14981498        if 'BkPk' in name:
    1499             id = int(name.split(':')[-1])
    1500             parm = name[:int(name.rindex(':'))]
     1499            id = int(name.split(';')[-1])
     1500            parm = name[:int(name.rindex(';'))]
    15011501            ip = names.index(parm)
    15021502            dMdv[varylist.index(name)] = dMdpk[4*id+ip]
Note: See TracChangeset for help on using the changeset viewer.