Changeset 5191


Ignore:
Timestamp:
Feb 25, 2022 11:56:30 AM (3 years ago)
Author:
toby
Message:

pseudovars & parametric fitting fixes; add G2 version to CIFs

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified trunk/GSASIIexprGUI.py

    r5181 r5191  
    263263        bSizer.Add((1,1), 1, wx.ALL|wx.EXPAND, 0)
    264264        self.OKbtn = wx.Button(self, wx.ID_OK)
     265        self.OKbtn.Bind(wx.EVT_BUTTON,lambda event: self.EndModal(wx.ID_OK))
    265266        self.OKbtn.SetDefault()
    266267        self.OKbtn.Disable()
    267268        btnsizer.AddButton(self.OKbtn)
    268269        btn = wx.Button(self, wx.ID_CANCEL)
     270        btn.Bind(wx.EVT_BUTTON,lambda event: self.EndModal(wx.ID_CANCEL))
    269271        btnsizer.AddButton(btn)
    270272        btnsizer.Realize()
     
    493495        varListlbl = [fmt.format(i,*G2obj.VarDescr(i)) for i in wildList]
    494496        dlg = G2G.G2SingleChoiceDialog(
    495             self,'Select GSAS-II variable for '+str(var)+':',
    496             'Select variable',
     497            self,'Select GSAS-II parameter for variable "'+str(var)+'":',
     498            'Select parameter',
    497499            varListlbl,monoFont=True)
    498500        dlg.SetSize((625,250))
     
    684686                    self.depVarDict.get(self.dependentVar,'?')
    685687                    )
    686             self.setEvalResult("Expression evaluates to: "+str(s)+depVal)
     688            self.setEvalResult("Expression evaluates to: "+str(s)+depVal+
     689                                   " with first defined values")
    687690            self.OKbtn.Enable()
    688691            if self.ExtraBtn: self.ExtraBtn.Enable()
  • TabularUnified trunk/GSASIIobj.py

    r5181 r5191  
    33033303                varlist = LookupWildCard(varname,list(parmDict.keys()))
    33043304                if len(varlist) == 0:
    3305                     raise Exception("No variables match "+str(v))
     3305                    self.exprDict[v] = None
     3306                    self.lblLookup[v] = varname # needed?
     3307                    self.exprDict.update(self.fxnpkgdict) # needed?
     3308                    return
    33063309                for var in varlist:
    33073310                    self.lblLookup[var] = v
     
    33633366            val = eval(self.compiledExpr,globals(),self.exprDict)
    33643367        except TypeError:
     3368            val = None
     3369        except NameError:
    33653370            val = None
    33663371        if not np.isscalar(val):
  • TabularUnified trunk/GSASIIseqGUI.py

    r5189 r5191  
    695695                if row[indx] is None: continue
    696696                calcobj.depVal = row[indx]
    697                 calcobj.depSig = G2frame.colSigs[indx][j]
     697                if G2frame.colSigs[indx]:
     698                    calcobj.depSig = G2frame.colSigs[indx][j]
     699                else:
     700                    calcobj.depSig = 1.
    698701                calcObjList.append(calcobj)
    699702        # varied parameters
     
    940943                    key = pfx+'PWLref:'+str(i)
    941944                    refl[ik] = parmDict[key]
    942 #                    if key in sigDict:  #TODO: error here sigDict not defined. What was intended
     945#                    if key in sigDict:  #TODO: error here sigDict not defined. What was intended?
    943946#                        refl[ik+1] = sigDict[key]
    944947#                    else:
     
    11271130    atomsVaryList = {}     # dict of atom coords varied in any histogram, includes dependent params
    11281131                           # key is atom param name, value is esd parm name
    1129     firstValueDict = {}  # first value for each parameter; used for pseudo vars GUI
     1132    firstValueDict = {}    # first value for each parameter; used to create VarDict for parametric fit pseudo vars GUI
    11301133    foundHistNames = []    # histograms to be used in sequential table
    11311134    maxPWL = 5             # number of Pawley vars to show
     
    14481451                esdList.append(np.sqrt(np.inner(derivs,np.inner(VCoV,derivs.T)) ))
    14491452            else:
    1450                 derivs = np.array(
     1453                derivs = np.array(  # TODO: this needs to be reworked
    14511454                    [EvalPSvarDeriv(calcobj,parmDict.copy(),sampleDict[name],var,ESD)
    14521455                     for var,ESD in zip(varyList,sigs)])
     1456                # needs work: calls calcobj.SetupCalc each call time
     1457                # integrate into G2obj.ExpressionCalcObj
    14531458                if None in list(derivs):
    14541459                    esdList.append(None)
     
    14701475    #---- table build done -------------------------------------------------------------
    14711476
    1472     # Make dict needed for creating & editing pseudovars (PSvarDict).
    1473    
    1474     name = histNames[0]
    1475     parmDict = data[name].get('parmDict',{})
    1476     PSvarDict = parmDict.copy()
     1477    # Make PSvarDict, needed for creating & editing pseudovars
     1478    # contains 1st value for each parameter in parmDict
     1479    PSvarDict = {}
    14771480    PSvarDict.update(sampleParms)
     1481
     1482    for name in histNames:
     1483        parmDict = data[name].get('parmDict',{})
     1484        PSvarDict.update({i:parmDict[i] for i in parmDict if i not in PSvarDict})
    14781485    UpdateParmDict(PSvarDict)
    1479     # Also dicts of variables
    1480     # for Parametric fitting from the data table
    1481     parmDict = dict(zip(colLabels,list(zip(*G2frame.colList))[0])) # scratch dict w/all values in table
    1482     parmDict.update({var:val for var,val in newCellDict.values()}) #  add varied reciprocal cell terms
    1483     del parmDict['Use']
    1484     name = histNames[0]
    14851486
    14861487    # remove selected items from table
     
    14911492        G2frame.SeqTblHideList += [item for item in saveColLabels if ':*:D' in item]
    14921493    #******************************************************************************
    1493     # create a set of values for example evaluation of pseudovars and
    1494     # this does not work for refinements that have differing numbers of variables.
     1494    # create a set of values for example evaluation of parametric equation fitting
    14951495    VarDict = {}
    14961496    for i,var in enumerate(colLabels):
  • TabularUnified trunk/exports/G2export_CIF.py

    r5150 r5191  
    38553855            self.Write(70*'#')
    38563856            WriteCIFitem(self.fp, 'data_'+phaseOnly.replace(' ','_'))
     3857            WriteCIFitem(self.fp, '_gsas_GSASII_version',
     3858                             str(GSASIIpath.GetVersionNumber()))
    38573859            #phaseblk = self.Phases[phaseOnly] # pointer to current phase info
    38583860            # report the phase info
     
    38793881            #phasenam = self.Phases.keys()[0]
    38803882            WriteCIFitem(self.fp, 'data_'+self.CIFname)
     3883            WriteCIFitem(self.fp, '_gsas_GSASII_version',
     3884                             str(GSASIIpath.GetVersionNumber()))
    38813885            if hist.startswith("PWDR") and MM:
    38823886                WritePowderDataMM(hist)
     
    40824086            self.CIFname = hist[5:40].replace(' ','')
    40834087            WriteCIFitem(self.fp, 'data_'+self.CIFname)
     4088            WriteCIFitem(self.fp, '_gsas_GSASII_version',
     4089                             str(GSASIIpath.GetVersionNumber()))
    40844090            if hist.startswith("PWDR") and MM:
    40854091                WritePowderDataMM(hist)
     
    40954101            #======================================================================
    40964102            WriteCIFitem(self.fp, 'data_'+self.CIFname)
     4103            WriteCIFitem(self.fp, '_gsas_GSASII_version',
     4104                             str(GSASIIpath.GetVersionNumber()))
    40974105            if phasenam is None: # if not already selected, select the first phase (should be one)
    40984106                phasenam = self.Phases.keys()[0]
     
    41574165                dlg.Update(step,"Exporting overall section")
    41584166                WriteCIFitem(self.fp, '\ndata_'+self.CIFname+'_publ')
     4167                WriteCIFitem(self.fp, '_gsas_GSASII_version',
     4168                                str(GSASIIpath.GetVersionNumber()))
    41594169                WriteAudit()
    41604170                WriteCIFitem(self.fp, '_pd_block_id',
     
    43784388                dlg.Update(step,"Exporting overall section")
    43794389                WriteCIFitem(self.fp, '\ndata_'+self.CIFname+'_publ')
     4390                WriteCIFitem(self.fp, '_gsas_GSASII_version',
     4391                                str(GSASIIpath.GetVersionNumber()))
    43804392                WriteAudit()
    43814393                WriteCIFitem(self.fp, '_pd_block_id',
Note: See TracChangeset for help on using the changeset viewer.