Changeset 2777 for trunk/GSASIIpwdGUI.py
- Timestamp:
- Apr 12, 2017 3:12:45 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIpwdGUI.py
r2776 r2777 4852 4852 data['2% weight'] = weight.GetValue() 4853 4853 4854 def OnSLDplot(event): 4855 sld.SetValue(False) 4856 x,xr,y = G2pwd.makeSLDprofile(data,Substances) 4857 ModelPlot(data,x,xr,y) 4858 4859 def OnQ4fftplot(event): 4860 q4fft.SetValue(False) 4861 R,F = G2pwd.makeRefdFFT(Limits,Profile) 4862 XY = [[R[:2500],F[:2500]],] 4863 G2plt.PlotXY(G2frame,XY,labelX='thickness',labelY='F(R)',newPlot=True, 4864 Title='Fourier transform',lines=True) 4865 4854 4866 controlSizer = wx.BoxSizer(wx.VERTICAL) 4855 4867 resol = wx.BoxSizer(wx.HORIZONTAL) … … 4876 4888 weight.Bind(wx.EVT_CHECKBOX, OnWeight) 4877 4889 minimiz.Add(weight,0,WACV) 4878 4879 #Recomb':0.5, needed??4880 4890 controlSizer.Add(minimiz,0,WACV) 4891 plotSizer = wx.BoxSizer(wx.HORIZONTAL) 4892 plotSizer.Add(wx.StaticText(G2frame.dataDisplay,label=' Plot controls: '),0,WACV) 4893 sld = wx.CheckBox(G2frame.dataDisplay,label='Plot SLD?') 4894 sld.Bind(wx.EVT_CHECKBOX, OnSLDplot) 4895 plotSizer.Add(sld,0,WACV) 4896 # q4fft = wx.CheckBox(G2frame.dataDisplay,label='Plot fft?') 4897 # q4fft.Bind(wx.EVT_CHECKBOX, OnQ4fftplot) 4898 # plotSizer.Add(q4fft,0,WACV) 4899 controlSizer.Add(plotSizer,0,WACV) 4881 4900 return controlSizer 4882 4901 … … 5910 5929 powName = 'PWDR'+dataFile[4:] 5911 5930 powId = G2gd.GetPatternTreeItemId(G2frame,G2frame.root, powName) 5912 if not powId: # skip if no matching PWDR entry 5913 G2G.G2MessageBox(G2frame,'matching PWDR record not found. PDF can not be used.') 5914 return 5915 fullLimits,limits = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,powId, 'Limits'))[:2] 5916 inst = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,powId, 'Instrument Parameters'))[0] 5917 if 'C' in inst['Type'][0]: 5918 wave = G2mth.getWave(inst) 5919 keV = 12.397639/wave 5920 qLimits = [tth2q(fullLimits[0],wave),tth2q(fullLimits[1],wave)] 5921 polariz = inst['Polariz.'][1] 5922 else: #'T'of 5923 qLimits = [tof2q(fullLimits[1],inst['difC'][1]),tof2q(fullLimits[0],inst['difC'][1])] 5924 polariz = 1.0 5925 data['QScaleLim'][1] = min(qLimits[1],data['QScaleLim'][1]) 5926 if data['QScaleLim'][0]: 5927 data['QScaleLim'][0] = max(qLimits[0],data['QScaleLim'][0]) 5928 else: #initial setting at 90% of max Q 5929 data['QScaleLim'][0] = 0.90*data['QScaleLim'][1] 5930 itemDict = {} 5931 #patch 5932 if 'BackRatio' not in data: 5933 data['BackRatio'] = 0. 5934 if 'noRing' not in data: 5935 data['noRing'] = False 5936 if 'Rmax' not in data: 5937 data['Rmax'] = 100. 5938 if 'Flat Bkg' not in data: 5939 data['Flat Bkg'] = 0. 5940 if 'IofQmin' not in data: 5941 data['IofQmin'] = 1.0 5942 if 'Rmin' not in data: 5943 data['Rmin'] = 1.5 5944 if data['DetType'] == 'Image plate': 5945 data['DetType'] = 'Area detector' 5946 if 'Refine' not in data['Sample Bkg.']: 5947 data['Sample Bkg.']['Refine'] = False 5948 if 'diffGRname' not in data: 5949 data['diffGRname'] = '' 5950 if 'diffMult' not in data: 5951 data['diffMult'] = 1.0 5931 if powId: # skip if no matching PWDR entry 5932 fullLimits,limits = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,powId, 'Limits'))[:2] 5933 inst = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,powId, 'Instrument Parameters'))[0] 5934 if 'C' in inst['Type'][0]: 5935 wave = G2mth.getWave(inst) 5936 keV = 12.397639/wave 5937 qLimits = [tth2q(fullLimits[0],wave),tth2q(fullLimits[1],wave)] 5938 polariz = inst['Polariz.'][1] 5939 else: #'T'of 5940 qLimits = [tof2q(fullLimits[1],inst['difC'][1]),tof2q(fullLimits[0],inst['difC'][1])] 5941 polariz = 1.0 5942 data['QScaleLim'][1] = min(qLimits[1],data['QScaleLim'][1]) 5943 if data['QScaleLim'][0]: 5944 data['QScaleLim'][0] = max(qLimits[0],data['QScaleLim'][0]) 5945 else: #initial setting at 90% of max Q 5946 data['QScaleLim'][0] = 0.90*data['QScaleLim'][1] 5947 itemDict = {} 5948 #patch 5949 if 'BackRatio' not in data: 5950 data['BackRatio'] = 0. 5951 if 'noRing' not in data: 5952 data['noRing'] = False 5953 if 'Rmax' not in data: 5954 data['Rmax'] = 100. 5955 if 'Flat Bkg' not in data: 5956 data['Flat Bkg'] = 0. 5957 if 'IofQmin' not in data: 5958 data['IofQmin'] = 1.0 5959 if 'Rmin' not in data: 5960 data['Rmin'] = 1.5 5961 if data['DetType'] == 'Image plate': 5962 data['DetType'] = 'Area detector' 5963 if 'Refine' not in data['Sample Bkg.']: 5964 data['Sample Bkg.']['Refine'] = False 5965 if 'diffGRname' not in data: 5966 data['diffGRname'] = '' 5967 if 'diffMult' not in data: 5968 data['diffMult'] = 1.0 5952 5969 if G2frame.dataDisplay: 5953 5970 G2frame.dataFrame.Clear() 5954 5971 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.PDFMenu) 5955 5972 if not G2frame.dataFrame.GetStatusBar(): 5956 Status = G2frame.dataFrame.CreateStatusBar() 5973 Status = G2frame.dataFrame.CreateStatusBar() 5974 if powId: 5975 G2frame.dataFrame.PDFMenu.EnableTop(0,enable=True) 5976 else: 5977 G2frame.dataFrame.PDFMenu.EnableTop(0,enable=False) 5957 5978 G2frame.dataDisplay = wx.Panel(G2frame.dataFrame) 5958 5979 G2frame.dataFrame.Bind(wx.EVT_MENU, OnCopyPDFControls, id=G2gd.wxID_PDFCOPYCONTROLS) … … 5964 5985 G2frame.dataFrame.Bind(wx.EVT_MENU, OnComputeAllPDF, id=G2gd.wxID_PDFCOMPUTEALL) 5965 5986 5966 ElList = data['ElList']5967 5987 mainSizer = wx.BoxSizer(wx.VERTICAL) 5968 mainSizer.Add(PDFFileSizer(),0,WACV) 5969 G2G.HorizontalLine(mainSizer,G2frame.dataDisplay) 5970 mainSizer.Add(SampleSizer(),0,WACV) 5971 G2G.HorizontalLine(mainSizer,G2frame.dataDisplay) 5972 mainSizer.Add(SFGctrlSizer(),0,WACV) 5973 G2G.HorizontalLine(mainSizer,G2frame.dataDisplay) 5988 if powId: 5989 ElList = data['ElList'] 5990 mainSizer.Add(PDFFileSizer(),0,WACV) 5991 G2G.HorizontalLine(mainSizer,G2frame.dataDisplay) 5992 mainSizer.Add(SampleSizer(),0,WACV) 5993 G2G.HorizontalLine(mainSizer,G2frame.dataDisplay) 5994 mainSizer.Add(SFGctrlSizer(),0,WACV) 5995 G2G.HorizontalLine(mainSizer,G2frame.dataDisplay) 5974 5996 mainSizer.Add(DiffSizer(),0,WACV) 5975 5997 mainSizer.Layout() … … 6037 6059 wx.CallAfter(UpdatePDFPeaks,G2frame,peaks,data) 6038 6060 6039 6040 atms = ','.join(data['ElList'].keys()) 6061 def ElTypeSelect(event): 6062 r,c = event.GetRow(),event.GetCol() 6063 if 'Atom' in PDFPeaks.GetColLabelValue(c): 6064 PE = G2elemGUI.PickElement(G2frame) 6065 if PE.ShowModal() == wx.ID_OK: 6066 el = PE.Elem.strip() 6067 peaks['Peaks'][r][c] = el 6068 PDFPeaks.SetCellValue(r,c,el) 6069 PE.Destroy() 6070 6041 6071 colLabels = ['position','magnitude','sig','refine','Atom A','Atom B','Bond No.'] 6042 6072 Types = 3*[wg.GRID_VALUE_FLOAT+':10,3',]+[wg.GRID_VALUE_CHOICE+': ,P,M,S,PM,PS,MS,PMS',]+ \ 6043 2*[wg.GRID_VALUE_ CHOICE+':'+atms,]+[wg.GRID_VALUE_FLOAT+':10,3',]6073 2*[wg.GRID_VALUE_STRING,]+[wg.GRID_VALUE_FLOAT+':10,3',] 6044 6074 rowLabels = range(len(peaks['Peaks'])) 6045 6075 peakTable = G2G.Table(peaks['Peaks'],rowLabels=rowLabels,colLabels=colLabels,types=Types) … … 6050 6080 PDFPeaks.AutoSizeColumns(False) 6051 6081 PDFPeaks.Bind(wg.EVT_GRID_LABEL_LEFT_DCLICK, PeaksRefine) 6082 PDFPeaks.Bind(wg.EVT_GRID_CELL_LEFT_DCLICK, ElTypeSelect) 6052 6083 6053 6084 peakBox = wx.BoxSizer(wx.VERTICAL) … … 6110 6141 peaks = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,pId,'PDF Peaks')) 6111 6142 newpeaks,vals,varyList,sigList,parmDict,Rvals = G2pwd.PDFPeakFit(peaks,data['G(R)']) 6143 if vals is None: 6144 print 'Nothing varied!' 6145 dlg.Destroy() 6146 return 6112 6147 SeqResult[name] = {'variables':vals,'varyList':varyList,'sig':sigList,'Rvals':Rvals, 6113 6148 'covMatrix':np.eye(len(varyList)),'title':name,'parmDict':parmDict}
Note: See TracChangeset
for help on using the changeset viewer.