Changeset 620
- Timestamp:
- May 17, 2012 7:52:59 PM (11 years ago)
- Location:
- trunk
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASII.py
r619 r620 128 128 parent.Append(menu=self.Import, title='Import') 129 129 parent.Append(menu=self.Export, title='Export') 130 self.HelpMenu=G2gd.MyHelp(self, 131 helpType='Data tree', 132 morehelpitems=[('&Tutorials','Tutorials')] 133 ) 130 self.HelpMenu=G2gd.MyHelp(self,helpType='Data tree', 131 morehelpitems=[('&Tutorials','Tutorials')]) 134 132 parent.Append(menu=self.HelpMenu,title='&Help') 135 133 … … 466 464 # look up which format was requested 467 465 reqrdr = self.ImportMenuId.get(event.GetId()) 468 rdlist = self.OnImportGeneric(reqrdr, 469 self.ImportSfactReaderlist, 470 'Structure Factor') 466 rdlist = self.OnImportGeneric(reqrdr,self.ImportSfactReaderlist, 467 'Structure Factor') 471 468 if len(rdlist) == 0: return 472 469 self.CheckNotebook() -
trunk/GSASIIIO.py
r616 r620 1471 1471 '''Defines a base class for the reading of files with coordinates 1472 1472 ''' 1473 def __init__(self, 1474 formatName, 1475 longFormatName=None, 1476 extensionlist=[], 1477 strictExtension=False, 1478 ): 1473 def __init__(self,formatName,longFormatName=None,extensionlist=[], 1474 strictExtension=False,): 1479 1475 # call parent __init__ 1480 ImportBaseclass.__init__(self,formatName, 1481 longFormatName, 1482 extensionlist, 1483 strictExtension) 1476 ImportBaseclass.__init__(self,formatName,longFormatName, 1477 extensionlist,strictExtension) 1484 1478 # define a default Phase structure 1485 1479 self.Phase = SetNewPhase(Name='new phase',SGData=SGData) 1486 1480 1487 1481 def PhaseSelector(self, ChoiceList, ParentFrame=None, 1488 title='Select a phase', size=None, 1489 header='Phase Selector'): 1482 title='Select a phase', size=None,header='Phase Selector'): 1490 1483 ''' Provide a wx dialog to select a phase if the file contains more 1491 1484 than one phase 1492 1485 ''' 1493 return self.BlockSelector(ChoiceList, 1494 ParentFrame, 1495 title, 1496 size, 1497 header) 1486 return self.BlockSelector(ChoiceList,ParentFrame,title, 1487 size,header) 1498 1488 1499 1489 ###################################################################### … … 1502 1492 of structure factors 1503 1493 ''' 1504 def __init__(self, 1505 formatName, 1506 longFormatName=None, 1507 extensionlist=[], 1508 strictExtension=False, 1509 ): 1510 ImportBaseclass.__init__(self,formatName, 1511 longFormatName, 1512 extensionlist, 1513 strictExtension) 1494 def __init__(self,formatName,longFormatName=None,extensionlist=[], 1495 strictExtension=False,): 1496 ImportBaseclass.__init__(self,formatName,longFormatName, 1497 extensionlist,strictExtension) 1514 1498 1515 1499 # define contents of Structure Factor entry … … 1539 1523 if Wave is not None: 1540 1524 HistWave = Wave 1541 self.Parameters = [ # overwrite entire list 1542 (HistType,HistWave), 1543 [HistType,HistWave], 1544 ['Type','Lam'] 1545 ] 1525 self.Parameters = [(HistType,HistWave),[HistType,HistWave], # overwrite entire list 1526 ['Type','Lam']] 1546 1527 1547 1528 def UpdateControls(self,Type='Fosq',FcalcPresent=False): … … 1549 1530 ''' 1550 1531 self.Controls['Type'] = Type 1551 self.Controls['if fc'] = FcalcPresent1532 self.Controls['ifFc'] = FcalcPresent 1552 1533 HKLmax = [None,None,None] 1553 1534 HKLmin = [None,None,None] 1554 1535 Fo2max = None 1555 for HKL,Fo2,SFo2,Fc,Fcp,Fcpp,phase in self.RefList: 1536 for refl in self.RefList: 1537 HKL = refl[:3] 1556 1538 if Fo2max is None: 1557 Fo2max = Fo21539 Fo2max = refl[8] 1558 1540 else: 1559 Fo2max = max(Fo2max, Fo2)1541 Fo2max = max(Fo2max,refl[8]) 1560 1542 for i,hkl in enumerate(HKL): 1561 1543 if HKLmax[i] is None: -
trunk/GSASIIgrid.py
r612 r620 1640 1640 def OnSelZone(event): 1641 1641 data['Zone'] = zoneSel.GetValue() 1642 izone = zones.index(data['Zone']) 1643 layerSel.SetRange(maxValue=HKLmax[izone],minValue=HKLmin[izone]) 1642 1644 G2plt.PlotSngl(G2frame,newPlot=True) 1643 1645 … … 1647 1649 1648 1650 def SetStatusLine(): 1649 Status.SetStatusText(" look at me!!!")1651 Status.SetStatusText("") 1650 1652 1651 1653 if G2frame.dataDisplay: … … 1663 1665 G2frame.dataDisplay = wx.Panel(G2frame.dataFrame) 1664 1666 G2frame.dataFrame.SetMenuBar(G2frame.dataFrame.BlankMenu) 1667 G2frame.dataFrame.SetTitle('HKL Plot Controls') 1665 1668 mainSizer = wx.BoxSizer(wx.VERTICAL) 1666 1669 mainSizer.Add((5,10),0) … … 1669 1672 scaleSizer.Add(wx.StaticText(parent=G2frame.dataDisplay,label=' Scale'),0, 1670 1673 wx.ALIGN_CENTER_VERTICAL|wx.EXPAND) 1671 scaleSel = wx.Slider(parent=G2frame.dataDisplay,maxValue=1000,minValue=1 00,1674 scaleSel = wx.Slider(parent=G2frame.dataDisplay,maxValue=1000,minValue=1, 1672 1675 style=wx.SL_HORIZONTAL,value=int(data['Scale']*100)) 1673 1676 scaleSizer.Add(scaleSel,1,wx.EXPAND|wx.RIGHT|wx.ALIGN_CENTER_VERTICAL) 1674 scaleSel.SetLineSize(10 0)1675 scaleSel.SetPageSize( 900)1677 scaleSel.SetLineSize(10) 1678 scaleSel.SetPageSize(10) 1676 1679 scaleSel.Bind(wx.EVT_SLIDER, OnScaleSlider) 1677 mainSizer.Add(scaleSizer,1,wx.EXPAND|wx.RIGHT) 1680 mainSizer.Add(scaleSizer,0,wx.EXPAND|wx.RIGHT) 1681 mainSizer.Add((0,10),0) 1678 1682 1679 1683 zoneSizer = wx.BoxSizer(wx.HORIZONTAL) … … 1691 1695 zoneSizer.Add(typeSel,0,wx.ALIGN_CENTER_VERTICAL) 1692 1696 zoneSizer.Add((10,0),0) 1693 mainSizer.Add(zoneSizer,1,wx.EXPAND|wx.RIGHT) 1697 mainSizer.Add(zoneSizer,0,wx.EXPAND|wx.RIGHT) 1698 mainSizer.Add((0,10),0) 1694 1699 1695 1700 izone = zones.index(data['Zone']) … … 1700 1705 style=wx.SL_HORIZONTAL|wx.SL_AUTOTICKS|wx.SL_LABELS,value=0) 1701 1706 layerSel.SetLineSize(1) 1702 layerSel.Set LineSize(5)1707 layerSel.SetPageSize(1) 1703 1708 layerSel.Bind(wx.EVT_SLIDER, OnLayerSlider) 1704 1709 layerSizer.Add(layerSel,1,wx.EXPAND|wx.RIGHT|wx.ALIGN_CENTER_VERTICAL) -
trunk/GSASIImath.py
r584 r620 115 115 try: 116 116 Xvec = nl.solve(Amatlam,Yvec) 117 except LinAlgError:117 except nl.LinAlgError: 118 118 print 'ouch #1' 119 psing = list(np.where(np.diag(nl. gr(Amatlam)[1]) < 1.e-14)[0])119 psing = list(np.where(np.diag(nl.qr(Amatlam)[1]) < 1.e-14)[0]) 120 120 return [x0,None,{'num cyc':icycle,'fvec':M,'nfev':nfev,'lamMax':lamMax,'psing':psing}] 121 121 Xvec /= Adiag … … 524 524 def FourierMap(data,reflData): 525 525 526 # import scipy.fftpack as fft527 526 import numpy.fft as fft 528 527 generalData = data['General'] … … 608 607 Uniq = np.array(Uniq,dtype='i')+hklHalf 609 608 print hkl-hklHalf 609 Fh0 = Fhkl[hkl[0],hkl[1],hkl[2]] 610 ph0 = np.angle(Fh0,deg=True)/360. 610 611 for j,H in enumerate(Uniq): 611 612 Fh = Fhkl[H[0],H[1],H[2]] 612 613 h,k,l = H-hklHalf 613 print '(%3d,%3d,%3d) %5.2f %9.5f'%(h,k,l,phi[j],np.angle(Fh,deg=True)) 614 ang = np.angle(Fh,deg=True)/360.-ph0 615 print '(%3d,%3d,%3d) %5.2f %9.5f %9.5f'%(h,k,l,phi[j],np.angle(Fh,deg=True)/360.,ang) 614 616 i += 1 615 617 … … 646 648 SQ = 0.25/dsp**2 647 649 ff *= G2el.ScatFac(FFtable,SQ)[0] 648 E = np.sqrt(ref[8])/ff 650 if ref[8] > 0.: 651 E = np.sqrt(ref[8])/ff 652 else: 653 E = 0. 649 654 ph = ref[10] 650 655 ph = rn.uniform(0.,360.) -
trunk/GSASIIphsGUI.py
r612 r620 27 27 import GSASIIstruct as G2str 28 28 import GSASIImath as G2mth 29 import GSASIIpwd as G2pwd 29 30 import numpy as np 30 31 import numpy.linalg as nl … … 794 795 flipRes.Bind(wx.EVT_KILL_FOCUS,OnResVal) 795 796 line2Sizer.Add(flipRes,0,wx.ALIGN_CENTER_VERTICAL) 796 line2Sizer.Add(wx.StaticText(dataDisplay,label=' k-Factor (0.2-1.2) %: '),0,wx.ALIGN_CENTER_VERTICAL)797 line2Sizer.Add(wx.StaticText(dataDisplay,label=' k-Factor (0.2-1.2): '),0,wx.ALIGN_CENTER_VERTICAL) 797 798 kFactor = wx.TextCtrl(dataDisplay,value='%.3f'%(Flip['k-factor']),style=wx.TE_PROCESS_ENTER) 798 799 kFactor.Bind(wx.EVT_TEXT_ENTER,OnkFactor) … … 3259 3260 for item in keyList: 3260 3261 histData = UseList[item] 3261 ###### Patch to add LGmix to Size & Mustrain3262 if len(histData['Size'][1]) == 2:3263 histData['Size'][1].append(1.0)3264 histData['Size'][2].append(False)3265 histData['Mustrain'][1].append(1.0)3266 histData['Mustrain'][2].append(False)3267 UseList[item] = histData3268 ###### end patch3262 ####### Patch to add LGmix to Size & Mustrain 3263 # if len(histData['Size'][1]) == 2: 3264 # histData['Size'][1].append(1.0) 3265 # histData['Size'][2].append(False) 3266 # histData['Mustrain'][1].append(1.0) 3267 # histData['Mustrain'][2].append(False) 3268 # UseList[item] = histData 3269 ####### end patch 3269 3270 showSizer = wx.BoxSizer(wx.HORIZONTAL) 3270 3271 showData = wx.CheckBox(DData,-1,label=' Show '+item) … … 3542 3543 else: 3543 3544 wave = Inst['Lam1'] 3544 3545 3545 posCorr = Inst['Zero'] 3546 3546 const = 9.e-2/(np.pi*Sample['Gonio. radius']) #shifts in microns … … 3555 3555 indx = np.searchsorted(xdata[0],pos) 3556 3556 try: 3557 ref[6] = xdata[1][indx] 3557 ref[6] = xdata[1][indx]/ref[3] 3558 pola,dIdPola = G2pwd.Polarization(Inst['Polariz.'],xdata[0][indx],0.0) 3559 ref[6] /= pola 3558 3560 except IndexError: 3559 3561 pass … … 3640 3642 reflData = reflSets[phaseName] 3641 3643 elif 'HKLF' in reflName: 3642 print 'single crystal reflections'3643 re turn3644 PatternId = G2gd.GetPatternTreeItemId(G2frame,G2frame.root, reflName) 3645 reflData = G2frame.PatternTree.GetItemPyData(PatternId) 3644 3646 mapData.update(G2mth.FourierMap(data,reflData)) 3645 3647 mapData['Flip'] = False … … 3720 3722 reflData = reflSets[phaseName] 3721 3723 elif 'HKLF' in reflName: 3722 print 'single crystal reflections'3723 re turn3724 PatternId = G2gd.GetPatternTreeItemId(G2frame,G2frame.root, reflName) 3725 reflData = G2frame.PatternTree.GetItemPyData(PatternId) 3724 3726 else: 3725 3727 print '**** ERROR - No data defined for charge flipping' -
trunk/GSASIIplot.py
r612 r620 260 260 HKL = [] 261 261 HKLF = [] 262 for H,Fosq,sig,Fcsq,x,x,x in HKLref: 262 for refl in HKLref: 263 H = np.array(refl[:3]) 264 sig,Fosq,Fcsq = refl[7:10] 263 265 HKL.append(H) 264 266 HKLF.append([Fosq,sig,Fcsq]) … … 2314 2316 shiftDown = False 2315 2317 ctrlDown = False 2318 global sumroll 2319 sumroll = np.zeros(3) 2316 2320 2317 2321 def OnKeyBox(event): … … 2541 2545 2542 2546 def SetMapRoll(newxy): 2547 global sumroll 2543 2548 anglex,angley,anglez,oldxy = drawingData['Rotation'] 2544 2549 Rx = G2lat.rotdMat(anglex,0) … … 2550 2555 dxy = np.array(dxy*rho.shape) 2551 2556 roll = np.where(dxy>0.5,1,np.where(dxy<-.5,-1,0)) 2557 sumroll += roll 2552 2558 mapData['rho'] = np.roll(np.roll(np.roll(rho,roll[0],axis=0),roll[1],axis=1),roll[2],axis=2) 2559 # print 'sumroll',sumroll,rho.shape #useful debug? 2553 2560 drawingData['Rotation'][3] = list(newxy) 2554 2561 -
trunk/GSASIIstruct.py
r612 r620 424 424 HKLFdata = single crystal data list of reflections: for each reflection: 425 425 HKLF = [np.array([h,k,l]),FoSq,sigFoSq,FcSq,Fcp,Fcpp,phase] 426 need this [h,k,l,mul,d,pos,0.0,0.0,0.0,0.0,0.0,Uniq,phi,0.0,{}] 426 427 ''' 427 428 fl = open(GPXfile,'rb') … … 495 496 refI = int(varyI.split(':')[-1]) 496 497 ih,ik,il = PawleyRef[refI][:3] 498 dspI = PawleyRef[refI][4] 497 499 for varyJ in pawleyVary[i+1:]: 498 500 refJ = int(varyJ.split(':')[-1]) 499 501 jh,jk,jl = PawleyRef[refJ][:3] 502 dspJ = PawleyRef[refJ][4] 500 503 if SGLaue in ['4/m','4/mmm']: 501 504 isum = ih**2+ik**2 … … 519 522 jsum = jh**2+jk**2+jl**2 520 523 if isum == jsum: 521 eqvDict[varyI].append(varyJ) 524 eqvDict[varyI].append(varyJ) 525 # if abs(dspI-dspJ) < 3.e-4: 526 # eqvDict[varyI].append(varyJ) 522 527 for item in pawleyVary: 523 528 if eqvDict[item]: … … 1746 1751 ################################################################################ 1747 1752 1748 def getPenalties(): 1749 return [] 1750 1751 def penaltyFxn(penalties): 1752 return [] 1753 1754 def penaltyDeriv(penalties): 1755 return [] 1753 def penaltyFxn(parmDict,varyList): 1754 pFxn = np.zeros(len(varyList)) 1755 for i,item in enumerate(varyList): 1756 if 'PWLref' in item and parmDict[item] < 0.: 1757 pFxn[i] = -parmDict[item] 1758 return pFxn 1759 1760 def penaltyDeriv(parmDict,varyList): 1761 pDerv = np.zeros(len(varyList)) 1762 for i,item in enumerate(varyList): 1763 if 'PWLref' in item and parmDict[item] < 0.: 1764 pDerv[i] += -1./parmDict[item] 1765 return pDerv 1756 1766 1757 1767 ################################################################################ … … 2742 2752 return dMdv 2743 2753 2744 def dervRefine(values,HistoPhases,p enalties,parmdict,varylist,calcControls,pawleyLookup,dlg):2754 def dervRefine(values,HistoPhases,parmdict,varylist,calcControls,pawleyLookup,dlg): 2745 2755 parmdict.update(zip(varylist,values)) 2746 2756 G2mv.Dict2Map(parmdict,varylist) … … 2765 2775 else: 2766 2776 dMdv = dMdvh 2767 if penalties: 2768 dmdv = np.concatenate((dmdv.T,penaltyDeriv(penalties).T)).T2777 # dpdv = penaltyDeriv(parmdict,varylist) 2778 # dMdv = np.concatenate((dMdv.T,np.outer(dpdv,dpdv))).T 2769 2779 return dMdv 2770 2780 2771 #def ComputePowderHessian(args): 2772 # Histogram,parmdict,varylist,Phases,calcControls,pawleyLookup = args 2773 # hId = Histogram['hId'] 2774 # hfx = ':%d:'%(hId) 2775 # Limits = calcControls[hfx+'Limits'] 2776 # x,y,w,yc,yb,yd = Histogram['Data'] 2777 # dy = y-yc 2778 # xB = np.searchsorted(x,Limits[0]) 2779 # xF = np.searchsorted(x,Limits[1]) 2780 # dMdvh = np.sqrt(w[xB:xF])*getPowderProfileDerv( 2781 # parmdict,x[xB:xF], 2782 # varylist,Histogram,Phases,calcControls,pawleyLookup) 2783 # Vec = np.sum(dMdvh*np.sqrt(w[xB:xF])*dy[xB:xF],axis=1) 2784 # Hess = np.inner(dMdvh,dMdvh) 2785 # return Vec,Hess 2786 # 2787 def HessRefine(values,HistoPhases,penalties,parmdict,varylist,calcControls,pawleyLookup,dlg): 2781 def HessRefine(values,HistoPhases,parmdict,varylist,calcControls,pawleyLookup,dlg): 2788 2782 parmdict.update(zip(varylist,values)) 2789 2783 G2mv.Dict2Map(parmdict,varylist) … … 2813 2807 Vec = np.sum(dMdvh*np.sqrt(w[xB:xF])*dy[xB:xF],axis=1) 2814 2808 Hess = np.inner(dMdvh,dMdvh) 2809 # dpdv = penaltyDeriv(parmdict,varylist) 2810 # Vec += dpdv*penaltyFxn(parmdict,varylist) 2811 # Hess += np.outer(dpdv,dpdv) 2815 2812 return Vec,Hess 2816 2813 2817 #def ComputePowderProfile(args): 2818 # Histogram,parmdict,varylist,Phases,calcControls,pawleyLookup = args 2819 # hId = Histogram['hId'] 2820 # hfx = ':%d:'%(hId) 2821 # x,y,w,yc,yb,yd = Histogram['Data'] 2822 # Limits = calcControls[hfx+'Limits'] 2823 # xB = np.searchsorted(x,Limits[0]) 2824 # xF = np.searchsorted(x,Limits[1]) 2825 # yc,yb = getPowderProfile(parmdict,x[xB:xF],varylist,Histogram,Phases, 2826 # calcControls,pawleyLookup) 2827 # return xB,xF,yc,yb,Histogram['Reflection Lists'] 2828 # 2829 def errRefine(values,HistoPhases,penalties,parmdict,varylist,calcControls,pawleyLookup,dlg): 2814 def errRefine(values,HistoPhases,parmdict,varylist,calcControls,pawleyLookup,dlg): 2830 2815 parmdict.update(zip(varylist,values)) 2831 2816 Values2Dict(parmdict, varylist, values) … … 2871 2856 parmDict['saved values'] = values 2872 2857 raise Exception #Abort!! 2873 if penalties: 2874 M = np.concatenate((M,penaltyFxn(penalties))) 2858 # M = np.concatenate((M,penaltyFxn(parmdict,varylist))) 2875 2859 return M 2876 2860 … … 2935 2919 begin = time.time() 2936 2920 values = np.array(Dict2Values(parmDict, varyList)) 2937 penalties = getPenalties()2938 2921 Ftol = Controls['min dM/M'] 2939 2922 Factor = Controls['shift factor'] … … 2942 2925 result = so.leastsq(errRefine,values,Dfun=dervRefine,full_output=True, 2943 2926 ftol=Ftol,col_deriv=True,factor=Factor, 2944 args=([Histograms,Phases],p enalties,parmDict,varyList,calcControls,pawleyLookup,dlg))2927 args=([Histograms,Phases],parmDict,varyList,calcControls,pawleyLookup,dlg)) 2945 2928 ncyc = int(result[2]['nfev']/2) 2946 2929 elif 'Hessian' in Controls['deriv type']: 2947 2930 result = G2mth.HessianLSQ(errRefine,values,Hess=HessRefine,ftol=Ftol,maxcyc=maxCyc, 2948 args=([Histograms,Phases],p enalties,parmDict,varyList,calcControls,pawleyLookup,dlg))2931 args=([Histograms,Phases],parmDict,varyList,calcControls,pawleyLookup,dlg)) 2949 2932 ncyc = result[2]['num cyc']+1 2950 2933 Rvals['lamMax'] = result[2]['lamMax'] 2951 2934 else: #'numeric' 2952 2935 result = so.leastsq(errRefine,values,full_output=True,ftol=Ftol,epsfcn=1.e-8,factor=Factor, 2953 args=([Histograms,Phases],p enalties,parmDict,varyList,calcControls,pawleyLookup,dlg))2936 args=([Histograms,Phases],parmDict,varyList,calcControls,pawleyLookup,dlg)) 2954 2937 ncyc = int(result[2]['nfev']/len(varyList)) 2955 2938 # table = dict(zip(varyList,zip(values,result[0],(result[0]-values)))) … … 3121 3104 begin = time.time() 3122 3105 values = np.array(Dict2Values(parmDict,varyList)) 3123 penalties = getPenalties()3124 3106 Ftol = Controls['min dM/M'] 3125 3107 Factor = Controls['shift factor'] … … 3129 3111 result = so.leastsq(errRefine,values,Dfun=dervRefine,full_output=True, 3130 3112 ftol=Ftol,col_deriv=True,factor=Factor, 3131 args=([Histo,Phases],p enalties,parmDict,varyList,calcControls,pawleyLookup,dlg))3113 args=([Histo,Phases],parmDict,varyList,calcControls,pawleyLookup,dlg)) 3132 3114 ncyc = int(result[2]['nfev']/2) 3133 3115 elif 'Hessian' in Controls['deriv type']: 3134 3116 result = G2mth.HessianLSQ(errRefine,values,Hess=HessRefine,ftol=Ftol,maxcyc=maxCyc, 3135 args=([Histo,Phases],p enalties,parmDict,varyList,calcControls,pawleyLookup,dlg))3117 args=([Histo,Phases],parmDict,varyList,calcControls,pawleyLookup,dlg)) 3136 3118 ncyc = result[2]['num cyc']+1 3137 3119 else: #'numeric' 3138 3120 result = so.leastsq(errRefine,values,full_output=True,ftol=Ftol,epsfcn=1.e-8,factor=Factor, 3139 args=([Histo,Phases],p enalties,parmDict,varyList,calcControls,pawleyLookup,dlg))3121 args=([Histo,Phases],parmDict,varyList,calcControls,pawleyLookup,dlg)) 3140 3122 ncyc = int(result[2]['nfev']/len(varyList)) 3141 3123 … … 3226 3208 Factor = DisAglCtls['Factors'] 3227 3209 Radii = dict(zip(DisAglCtls['AtomTypes'],zip(DisAglCtls['BondRadii'],DisAglCtls['AngleRadii']))) 3228 # Units = np.array([ #is there a nicer way to make this?3229 # [-1,-1,-1],[-1,-1,0],[-1,-1,1],[-1,0,-1],[-1,0,0],[-1,0,1],[-1,1,-1],[-1,1,0],[-1,1,1],3230 # [0,-1,-1],[0,-1,0],[0,-1,1],[0,0,-1],[0,0,0],[0,0,1],[0,1,-1],[0,1,0],[0,1,1],3231 # [1,-1,-1],[1,-1,0],[1,-1,1],[1,0,-1],[1,0,0],[1,0,1],[1,1,-1],[1,1,0],[1,1,1]])3232 3210 indices = (-1,0,1) 3233 3211 Units = np.array([[h,k,l] for h in indices for k in indices for l in indices]) -
trunk/imports/G2sfact.py
r614 r620 46 46 Fo = float(Fo) 47 47 sigFo = float(sigFo) 48 self.RefList.append([HKL,Fo**2,2.*Fo*sigFo,0,0,0,0]) # HKL. Fo**2, sig(Fo**2), Fc, Fcp, Fcpp & phase 49 #print HKL,Fo**2,2.*Fo*sigFo 48 self.RefList.append([h,k,l,0,0,0,0,2.*Fo*sigFo,Fo**2,0,0,[],[],0,{}]) 50 49 self.UpdateControls(Type='Fosq',FcalcPresent=False) # set Fobs type & if Fcalc values are loaded 51 50 self.UpdateParameters(Type='SXC',Wave=None) # histogram type -
trunk/imports/G2sfact_CIF.py
r615 r620 20 20 def __init__(self): 21 21 super(self.__class__,self).__init__( # fancy way to self-reference 22 extensionlist=('.CIF','.cif' ),22 extensionlist=('.CIF','.cif','.HKL','.hkl'), 23 23 strictExtension=False, 24 24 formatName = 'CIF', … … 153 153 except: 154 154 HKL.append('.') 155 ref = [HKL,0.,0.,0,0,0,0] # HKL. Fo**2, sig(Fo**2), Fc, Fcp, Fcpp & phase 156 # get F or F**2 and sigma 155 ref = HKL+[0,0,0,0,0,0,0,0,[],[],0,{}] 157 156 if '_refln_f_squared_meas' in itemkeys: 158 157 try: 159 ref[ 1] = float(item[itemkeys['_refln_f_squared_meas']])158 ref[8] = float(item[itemkeys['_refln_f_squared_meas']]) 160 159 except: 161 160 pass 162 161 if '_refln_f_squared_sigma' in itemkeys: 163 162 try: 164 ref[ 2] = float(item[itemkeys['_refln_f_squared_sigma']])163 ref[7] = float(item[itemkeys['_refln_f_squared_sigma']]) 165 164 except: 166 165 pass 167 166 elif '_refln_f_meas' in itemkeys: 168 167 try: 169 ref[ 1] = float(item[itemkeys['_refln_f_meas']])**2168 ref[8] = float(item[itemkeys['_refln_f_meas']])**2 170 169 except: 171 170 pass 172 171 if '_refln_f_sigma' in itemkeys: 173 172 try: 174 ref[ 2] = 2.*sqrt(ref[1])*float(item[itemkeys['_refln_f_sigma']])173 ref[7] = 2.*sqrt(ref[8])*float(item[itemkeys['_refln_f_sigma']]) 175 174 except: 176 175 pass 177 176 if '_refln_f_squared_calc' in itemkeys: 178 177 try: 179 ref[ 3] = float(item[itemkeys['_refln_f_squared_calc']])178 ref[9] = float(item[itemkeys['_refln_f_squared_calc']]) 180 179 except: 181 180 pass 182 181 elif '_refln_f_calc' in itemkeys: 183 182 try: 184 ref[ 3] = float(item[itemkeys['_refln_f_calc']])**2183 ref[9] = float(item[itemkeys['_refln_f_calc']])**2 185 184 except: 186 185 pass 187 186 if '_refln_phase_calc' in itemkeys: 188 187 try: 189 ref[6] = float(item[itemkeys['_refln_phase_calc']]) 190 except: 191 pass 192 188 ref[10] = float(item[itemkeys['_refln_phase_calc']]) 189 except: 190 pass 193 191 self.RefList.append(ref) 194 192 self.UpdateControls(Type='Fosq',FcalcPresent=FcalcPresent) # set Fobs type & if Fcalc values are loaded
Note: See TracChangeset
for help on using the changeset viewer.