Ignore:
Timestamp:
Sep 14, 2021 11:55:59 AM (3 months ago)
Author:
vondreele
Message:

Add shell plots to 3D reflection plots.
Fix escape character issues in CopyRietveld2Origin
Revise LeBail? operation - now works in sequential refinements. Remove "Fit LeBail?" from Calculate menu.
OnLeBail? does 10 cycles instead of 3 in the "zero cycle" step.
Initial FOSQ set to Scale*Phase fr. instead of 1.0 - improves initial LeBaill? fit.
Put newLeBail flag in Controls - as more global.
Allow LeBail? refinements in sequential refinements.
Remove a wx.Yield() - obsolete
Disable deletion of selected parameters in a LeBail? refinement & let the LS handle any singularities that may ensue
Derivatives no longer controlled by LeBail? flag.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIddataGUI.py

    r5003 r5025  
    830830        G2frame.dataWindow.SendSizeEvent()
    831831        if LeBailMsg:
    832             G2G.G2MessageBox(G2frame,LeBailMsg,
    833                                  title='LeBail refinement changes')
     832            G2G.G2MessageBox(G2frame,LeBailMsg,title='LeBail refinement changes')
    834833       
    835834    def ShowHistogramInfo():
     
    845844            Obj = event.GetEventObject()
    846845            if not UseList[G2frame.hist]['LeBail']:
    847                 UseList[G2frame.hist]['newLeBail'] = True
    848                 Obj.SetLabel('Do new Le Bail extraction?')
     846                Controls['newLeBail'] = True
     847            else:
     848                Controls['newLeBail'] = False
    849849            UseList[G2frame.hist]['LeBail'] = not UseList[G2frame.hist]['LeBail']
    850850            wx.CallLater(100,RepaintHistogramInfo,DData.GetScrollPos(wx.VERTICAL))
     
    892892        if 'LeBail' not in UseList[G2frame.hist]:
    893893            UseList[G2frame.hist]['LeBail'] = False
    894         if 'newLeBail' not in UseList[G2frame.hist]:
    895             UseList[G2frame.hist]['newLeBail'] = True
    896894        if 'Babinet' not in UseList[G2frame.hist]:
    897895            UseList[G2frame.hist]['Babinet'] = {'BabA':[0.0,False],'BabU':[0.0,False]}
     
    915913        useBox.Add(useData,0,WACV)
    916914        if not generalData['doPawley'] and 'PWDR' in G2frame.hist[:4]:
    917             lbLabel = 'Redo Le Bail extraction?   '
    918             if UseList[G2frame.hist]['newLeBail']:
    919                 lbLabel = 'Do new Le Bail extraction?'
    920             lebail = wx.CheckBox(DData,wx.ID_ANY,label=lbLabel)
    921             lebail.Bind(wx.EVT_CHECKBOX, OnLeBail)
    922             lebail.SetValue(UseList[G2frame.hist]['LeBail'])
     915            lbLabel = 'Start Le Bail extraction?   '
     916            if UseList[G2frame.hist]['LeBail']:
     917                lbLabel = 'Stop Le Bail extraction?'
     918                G2frame.SetStatusText('To reset Le Bail extracted intensities, cycle Le Bail button.',1)
     919            lebail = wx.Button(DData,wx.ID_ANY,label=lbLabel)
     920            lebail.Bind(wx.EVT_BUTTON, OnLeBail)
    923921            useBox.Add(lebail,0,WACV)
    924             if UseList[G2frame.hist]['LeBail']:
    925                 G2frame.SetStatusText('To reset Le Bail, cycle Le Bail check box.',1)
    926922        bottomSizer.Add(useBox,0,wx.TOP|wx.BOTTOM|wx.LEFT,5)
    927923        if G2frame.testSeqRefineMode() and not UseList[G2frame.hist]['LeBail']:
     
    10351031                if generalData['Type'] != 'magnetic':
    10361032                    bottomSizer.Add(BabSizer(),0,wx.BOTTOM,5)
    1037             else:   #turn off PWDR intensity related paramters for LeBail refinement
    1038                 if UseList[G2frame.hist]['Scale'][1]:
    1039                     offMsg = "Phase fraction"
    1040                     UseList[G2frame.hist]['Scale'][1] = False
    1041                 if UseList[G2frame.hist]['Pref.Ori.'][2]:
    1042                     UseList[G2frame.hist]['Pref.Ori.'][2] = False
    1043                     if offMsg: offMsg += ', '
    1044                     offMsg += 'Preferred orientation'
    1045                 if UseList[G2frame.hist]['Extinction'][1]:
    1046                     UseList[G2frame.hist]['Extinction'][1] = False
    1047                     if offMsg: offMsg += ', '
    1048                     offMsg += 'Extinction'
    1049                 flag = False
    1050                 for item in UseList[G2frame.hist]['Babinet']:
    1051                     if UseList[G2frame.hist]['Babinet'][item][1]:
    1052                         UseList[G2frame.hist]['Babinet'][item][1] = False
    1053                         flag = True
    1054                 if flag:
    1055                     if offMsg: offMsg += ', '
    1056                     offMsg += 'Babinet'
    1057                 # make sure that the at least one phase uses the histogram...
    1058                 allLeBail = True
    1059                 hists,phases = G2frame.GetUsedHistogramsAndPhasesfromTree()
    1060                 for key in phases:
    1061                     d = phases[key]
    1062                     if G2frame.hist not in d['Histograms']: continue
    1063                     if not d['Histograms'][G2frame.hist]['Use']: continue
    1064                     if not d['Histograms'][G2frame.hist]['LeBail']:
    1065                         #print('Phase',key,'is used as non-LeBail')
    1066                         allLeBail = False
    1067                         break
    1068                 # ...or turn off scale
    1069                 if allLeBail:
    1070                     if hists[G2frame.hist]['Sample Parameters']['Scale'][1]:
    1071                         hists[G2frame.hist]['Sample Parameters']['Scale'][1] = False
    1072                         if offMsg: offMsg += ', '
    1073                         offMsg += 'Histogram scale factor'
    1074                 if offMsg:
    1075                     offMsg = "Refinement flags turned for: " + offMsg
     1033            # else:   #turn off PWDR intensity related paramters for LeBail refinement
     1034            #     if UseList[G2frame.hist]['Scale'][1]:
     1035            #         offMsg = "Phase fraction"
     1036            #         UseList[G2frame.hist]['Scale'][1] = False
     1037            #     if UseList[G2frame.hist]['Pref.Ori.'][2]:
     1038            #         UseList[G2frame.hist]['Pref.Ori.'][2] = False
     1039            #         if offMsg: offMsg += ', '
     1040            #         offMsg += 'Preferred orientation'
     1041            #     if UseList[G2frame.hist]['Extinction'][1]:
     1042            #         UseList[G2frame.hist]['Extinction'][1] = False
     1043            #         if offMsg: offMsg += ', '
     1044            #         offMsg += 'Extinction'
     1045            #     flag = False
     1046            #     for item in UseList[G2frame.hist]['Babinet']:
     1047            #         if UseList[G2frame.hist]['Babinet'][item][1]:
     1048            #             UseList[G2frame.hist]['Babinet'][item][1] = False
     1049            #             flag = True
     1050            #     if flag:
     1051            #         if offMsg: offMsg += ', '
     1052            #         offMsg += 'Babinet'
     1053            #     # make sure that the at least one phase uses the histogram...
     1054            #     allLeBail = True
     1055            #     hists,phases = G2frame.GetUsedHistogramsAndPhasesfromTree()
     1056            #     for key in phases:
     1057            #         d = phases[key]
     1058            #         if G2frame.hist not in d['Histograms']: continue
     1059            #         if not d['Histograms'][G2frame.hist]['Use']: continue
     1060            #         if not d['Histograms'][G2frame.hist]['LeBail']:
     1061            #             #print('Phase',key,'is used as non-LeBail')
     1062            #             allLeBail = False
     1063            #             break
     1064            #     # ...or turn off scale
     1065            #     if allLeBail:
     1066            #         if hists[G2frame.hist]['Sample Parameters']['Scale'][1]:
     1067            #             hists[G2frame.hist]['Sample Parameters']['Scale'][1] = False
     1068            #             if offMsg: offMsg += ', '
     1069            #             offMsg += 'Histogram scale factor'
     1070            #     if offMsg:
     1071            #         offMsg = "Refinement flags turned for: " + offMsg
    10761072        elif G2frame.hist[:4] == 'HKLF':
    10771073            bottomSizer.Add(ExtSizer('HKLF'),0,wx.BOTTOM,5)
     
    10851081    #### Beginning of UpdateDData execution here
    10861082    ######################################################################
     1083    Controls = G2frame.GPXtree.GetItemPyData(G2gd.GetGPXtreeItemId(G2frame,G2frame.GPXtree.root, 'Controls'))
    10871084    G2frame.SetStatusText('',1)
    10881085    keyList = G2frame.GetHistogramNames(['PWDR','HKLF'])
     
    13121309            copyNames = ['Extinction','Babinet','Flack','Twins']
    13131310        else:  #PWDR 
    1314             copyNames = ['Pref.Ori.','Size','Mustrain','HStrain','Extinction','Babinet','LeBail','newLeBail','Layer Disp']
     1311            copyNames = ['Pref.Ori.','Size','Mustrain','HStrain','Extinction','Babinet','LeBail','Layer Disp']
    13151312        copyNames += ['Scale','Fix FXU','FixedSeqVars']
    13161313        copyDict = {}
     
    13631360                for bab in babNames:
    13641361                    copyDict[name][bab] = sourceDict[name][bab][1]
    1365             elif name == 'Fix FXU' or name == 'FixedSeqVars':
     1362            elif name in ['Fix FXU','FixedSeqVars']:
    13661363                copyDict[name] = copy.deepcopy(sourceDict[name])                   
    13671364        keyList = G2frame.dataWindow.HistsInPhase[:]
     
    14051402                            for bab in babNames:
    14061403                                data['Histograms'][item][name][bab][1] = copy.deepcopy(copyDict[name][bab])
    1407                         elif name == 'Fix FXU' or name == 'FixedSeqVars':
     1404                        elif name in ['Fix FXU','FixedSeqVars']:
    14081405                            data['Histograms'][item][name] = copy.deepcopy(sourceDict[name])                     
    14091406        finally:
     
    14221419            copyNames = ['Extinction','Babinet','Flack','Twins']
    14231420        else:  #PWDR 
    1424             copyNames = ['Pref.Ori.','Size','Mustrain','HStrain','Extinction','Babinet','LeBail','newLeBail','Layer Disp']
     1421            copyNames = ['Pref.Ori.','Size','Mustrain','HStrain','Extinction','Babinet','LeBail','Layer Disp']
    14251422        copyNames += ['Scale','Fix FXU','FixedSeqVars']           
    14261423        dlg = G2G.G2MultiChoiceDialog(G2frame,'Select which parameters to copy',
     
    14751472                    for histoName in newList:
    14761473                        Id = G2gd.GetGPXtreeItemId(G2frame,G2frame.root,histoName)
    1477                         data['Histograms'][histoName] = {'Histogram':histoName,'Show':False,'LeBail':False,'newLeBail':True,
     1474                        data['Histograms'][histoName] = {'Histogram':histoName,'Show':False,'LeBail':False,
    14781475                            'Scale':[1.0,False],'Pref.Ori.':['MD',1.0,False,[0,0,1],0,{},['',],0.1],
    14791476                            'Size':['isotropic',[1.,1.,1.],[False,False,False],[0,0,1],
Note: See TracChangeset for help on using the changeset viewer.