Changeset 303 for trunk/GSASIIphsGUI.py
- Timestamp:
- Jun 20, 2011 2:37:07 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIphsGUI.py
r264 r303 1734 1734 FindBonds() 1735 1735 G2plt.PlotStructure(self,data) 1736 1737 1738 1739 1736 1740 1737 dataDisplay = wx.Panel(drawOptions) … … 1850 1847 else: 1851 1848 self.dataFrame.DataMenu.Enable(G2gd.wxID_DATADELETE,False) 1852 generalData = data['General'] 1849 generalData = data['General'] 1853 1850 SGData = generalData['SGData'] 1851 try: 1852 textureData = generalData['SH Texture'] 1853 except KeyError: #fix old files! 1854 textureData = generalData['SH Texture'] = {'Order':0,'Model':'cylindrical', 1855 'Sample omega':[False,0.0],'Sample chi':[False,0.0],'Sample phi':[False,0.0], 1856 'SH Coeff':[False,{}],'SHShow':False,'PFhkl':[0,0,1]} 1857 shModels = ['cylindrical','none','shear - 2/m','rolling - mmm'] 1858 SamSym = dict(zip(shModels,['0','-1','2/m','mmm'])) 1859 1860 shAngles = ['omega','chi','phi'] 1854 1861 keyList = UseList.keys() 1855 1862 keyList.sort() 1856 1863 Indx = {} 1864 1865 def SetSHCoef(): 1866 cofNames = G2lat.GenSHCoeff(SGData['SGLaue'],SamSym[textureData['Model']],textureData['Order']) 1867 newSHCoef = dict(zip(cofNames,np.zeros(len(cofNames)))) 1868 SHCoeff = textureData['SH Coeff'][1] 1869 for cofName in SHCoeff: 1870 if cofName in cofNames: 1871 newSHCoef[cofName] = SHCoeff[cofName] 1872 return newSHCoef 1857 1873 1858 1874 def OnShowData(event): … … 1861 1877 UseList[hist]['Show'] = Obj.GetValue() 1862 1878 UpdateDData() 1879 1880 def OnShOrder(event): 1881 textureData['Order'] = int(shOrder.GetValue()) 1882 textureData['SH Coeff'][1] = SetSHCoef() 1883 UpdateDData() 1884 1885 def OnShModel(event): 1886 textureData['Model'] = shModel.GetValue() 1887 textureData['SH Coeff'][1] = SetSHCoef() 1888 UpdateDData() 1889 1890 def OnSHRefine(event): 1891 textureData['SH Coeff'][0] = shRef.GetValue() 1892 1893 def OnSHShow(event): 1894 textureData['SHShow'] = shShow.GetValue() 1895 UpdateDData() 1896 1897 def OnAngRef(event): 1898 Obj = event.GetEventObject() 1899 textureData[angIndx[Obj.GetId()]][0] = Obj.GetValue() 1900 1901 def OnAngValue(event): 1902 Obj = event.GetEventObject() 1903 try: 1904 value = float(Obj.GetValue()) 1905 except ValueError: 1906 value = textureData[valIndx[Obj.GetId()]][1] 1907 Obj.SetValue('%8.2f'%(value)) 1908 textureData[valIndx[Obj.GetId()]][1] = value 1909 1910 def OnODFValue(event): 1911 Obj = event.GetEventObject() 1912 try: 1913 value = float(Obj.GetValue()) 1914 except ValueError: 1915 value = textureData['SH Coeff'][1][ODFIndx[Obj.GetId()]] 1916 Obj.SetValue('%8.3f'%(value)) 1917 textureData['SH Coeff'][1][ODFIndx[Obj.GetId()]] = value 1918 1919 def OnPFValue(event): 1920 Obj = event.GetEventObject() 1921 try: 1922 value = int(Obj.GetValue()) 1923 except ValueError: 1924 value = textureData['PFhkl'][pfIndx[Obj.GetId()]] 1925 Obj.SetValue('%3d'%(value)) 1926 textureData['PFhkl'][pfIndx[Obj.GetId()]] = value 1927 G2plt.PlotSphHarmTexture(self,generalData) 1863 1928 1864 1929 def OnScaleRef(event): … … 1876 1941 Obj.SetValue("%.4f"%(UseList[Indx[Obj.GetId()]]['Scale'][0])) #reset in case of error 1877 1942 1878 def OnCutoffVal(event):1879 Obj = event.GetEventObject()1880 try:1881 cutoff = float(Obj.GetValue())1882 if cutoff > 0:1883 UseList[Indx[Obj.GetId()]]['Cutoff'] = cutoff1884 except ValueError:1885 pass1886 Obj.SetValue("%.3f"%(UseList[Indx[Obj.GetId()]]['Cutoff'])) #reset in case of error1887 1888 1943 def OnSizeType(event): 1889 1944 Obj = event.GetEventObject() … … 1929 1984 hist = Indx[Obj.GetId()] 1930 1985 UseList[hist]['Mustrain'][0] = Obj.GetValue() 1986 UpdateDData() 1931 1987 G2plt.PlotStrain(self,data) 1932 UpdateDData()1933 1988 1934 1989 def OnStrainRef(event): … … 2031 2086 dataDisplay = wx.Panel(DData) 2032 2087 mainSizer = wx.BoxSizer(wx.VERTICAL) 2088 mainSizer.Add(wx.StaticText(dataDisplay,-1,'Spherical harmonics texture data for '+PhaseName+':'),0,wx.ALIGN_CENTER_VERTICAL) 2089 mainSizer.Add((0,5),0) 2090 shSizer = wx.BoxSizer(wx.HORIZONTAL) 2091 shSizer.Add(wx.StaticText(dataDisplay,-1,'Texture model: '),0,wx.ALIGN_CENTER_VERTICAL) 2092 shModel = wx.ComboBox(dataDisplay,-1,value=textureData['Model'],choices=shModels, 2093 style=wx.CB_READONLY|wx.CB_DROPDOWN) 2094 shModel.Bind(wx.EVT_COMBOBOX,OnShModel) 2095 shSizer.Add(shModel,0,wx.ALIGN_CENTER_VERTICAL) 2096 shSizer.Add(wx.StaticText(dataDisplay,-1,' Harmonic order: '),0,wx.ALIGN_CENTER_VERTICAL) 2097 shOrder = wx.ComboBox(dataDisplay,-1,value=str(textureData['Order']),choices=[str(2*i) for i in range(18)], 2098 style=wx.CB_READONLY|wx.CB_DROPDOWN) 2099 shOrder.Bind(wx.EVT_COMBOBOX,OnShOrder) 2100 shSizer.Add(shOrder,0,wx.ALIGN_CENTER_VERTICAL) 2101 shSizer.Add((5,0),0) 2102 shRef = wx.CheckBox(dataDisplay,label=' Refine texture?') 2103 shRef.SetValue(textureData['SH Coeff'][0]) 2104 shRef.Bind(wx.EVT_CHECKBOX, OnSHRefine) 2105 shSizer.Add(shRef,0,wx.ALIGN_CENTER_VERTICAL) 2106 shShow = wx.CheckBox(dataDisplay,label=' Show coeff.?') 2107 shShow.SetValue(textureData['SHShow']) 2108 shShow.Bind(wx.EVT_CHECKBOX, OnSHShow) 2109 shSizer.Add(shShow,0,wx.ALIGN_CENTER_VERTICAL) 2110 mainSizer.Add(shSizer,0,0) 2111 mainSizer.Add((0,5),0) 2112 if textureData['SHShow']: 2113 mainSizer.Add(wx.StaticText(dataDisplay,-1,'Spherical harmonic coefficients: '),0,wx.ALIGN_CENTER_VERTICAL) 2114 mainSizer.Add((0,5),0) 2115 ODFSizer = wx.FlexGridSizer(2,8,2,2) 2116 ODFIndx = {} 2117 ODFkeys = textureData['SH Coeff'][1].keys() 2118 ODFkeys.sort() 2119 for item in ODFkeys: 2120 ODFSizer.Add(wx.StaticText(dataDisplay,-1,item),0,wx.ALIGN_CENTER_VERTICAL) 2121 ODFval = wx.TextCtrl(dataDisplay,wx.ID_ANY,'%8.3f'%(textureData['SH Coeff'][1][item]),style=wx.TE_PROCESS_ENTER) 2122 ODFIndx[ODFval.GetId()] = item 2123 ODFval.Bind(wx.EVT_TEXT_ENTER,OnODFValue) 2124 ODFval.Bind(wx.EVT_KILL_FOCUS,OnODFValue) 2125 ODFSizer.Add(ODFval,0,wx.ALIGN_CENTER_VERTICAL) 2126 mainSizer.Add(ODFSizer,0,wx.ALIGN_CENTER_VERTICAL) 2127 mainSizer.Add((0,5),0) 2128 PFSizer = wx.BoxSizer(wx.HORIZONTAL) 2129 PFSizer.Add(wx.StaticText(dataDisplay,-1,'Display pole figure for HKL: '),0,wx.ALIGN_CENTER_VERTICAL) 2130 pfIndx = {} 2131 for i in range(3): 2132 pfVal = wx.TextCtrl(dataDisplay,wx.ID_ANY,'%3d'%(textureData['PFhkl'][i]),size=(40,20),style=wx.TE_PROCESS_ENTER) 2133 pfIndx[pfVal.GetId()] = i 2134 pfVal.Bind(wx.EVT_TEXT_ENTER,OnPFValue) 2135 pfVal.Bind(wx.EVT_KILL_FOCUS,OnPFValue) 2136 PFSizer.Add(pfVal,0,wx.ALIGN_CENTER_VERTICAL) 2137 mainSizer.Add(PFSizer,0,wx.ALIGN_CENTER_VERTICAL) 2138 mainSizer.Add((0,5),0) 2139 mainSizer.Add(wx.StaticText(dataDisplay,-1,'Sample orientation angles: '),0,wx.ALIGN_CENTER_VERTICAL) 2140 mainSizer.Add((0,5),0) 2141 angSizer = wx.BoxSizer(wx.HORIZONTAL) 2142 angIndx = {} 2143 valIndx = {} 2144 for item in ['Sample omega','Sample chi','Sample phi']: 2145 angRef = wx.CheckBox(dataDisplay,label=item+': ') 2146 angRef.SetValue(textureData[item][0]) 2147 angIndx[angRef.GetId()] = item 2148 angRef.Bind(wx.EVT_CHECKBOX, OnAngRef) 2149 angSizer.Add(angRef,0,wx.ALIGN_CENTER_VERTICAL) 2150 angVal = wx.TextCtrl(dataDisplay,wx.ID_ANY,'%8.2f'%(textureData[item][1]),style=wx.TE_PROCESS_ENTER) 2151 valIndx[angVal.GetId()] = item 2152 angVal.Bind(wx.EVT_TEXT_ENTER,OnAngValue) 2153 angVal.Bind(wx.EVT_KILL_FOCUS,OnAngValue) 2154 angSizer.Add(angVal,0,wx.ALIGN_CENTER_VERTICAL) 2155 angSizer.Add((5,0),0) 2156 mainSizer.Add(angSizer,0,wx.ALIGN_CENTER_VERTICAL) 2033 2157 mainSizer.Add(wx.StaticText(dataDisplay,-1,'Histogram data for '+PhaseName+':'),0,wx.ALIGN_CENTER_VERTICAL) 2034 2158 for item in keyList: 2035 2159 histData = UseList[item] 2036 mainSizer.Add(wx.StaticText(dataDisplay,-1,50*'_'))2037 2160 mainSizer.Add((5,5),0) 2038 2161 showData = wx.CheckBox(dataDisplay,label=' Show '+item) … … 2059 2182 2060 2183 if item[:4] == 'PWDR' and UseList[item]['Show']: 2061 cutoffSizer = wx.BoxSizer(wx.HORIZONTAL)2062 cutoffSizer.Add(wx.StaticText(dataDisplay,label=' Peak cutoff ratio: '),0,wx.ALIGN_CENTER_VERTICAL)2063 cutoffVal = wx.TextCtrl(dataDisplay,wx.ID_ANY,'%.3f'%(UseList[item]['Cutoff']),2064 style=wx.TE_PROCESS_ENTER)2065 Indx[cutoffVal.GetId()] = item2066 cutoffVal.Bind(wx.EVT_TEXT_ENTER,OnCutoffVal)2067 cutoffVal.Bind(wx.EVT_KILL_FOCUS,OnCutoffVal)2068 cutoffSizer.Add(cutoffVal,0,wx.ALIGN_CENTER_VERTICAL)2069 mainSizer.Add(cutoffSizer)2070 2184 mainSizer.Add((0,5),0) 2071 2185 sizeSizer = wx.BoxSizer(wx.HORIZONTAL) … … 2234 2348 2235 2349 dataDisplay.SetSizer(mainSizer) 2350 mainSizer.FitInside(self.dataFrame) 2236 2351 Size = mainSizer.Fit(self.dataFrame) 2237 2352 Size[0] = max(Size[0],300)+20 2238 Size[1] += 30 2353 Size[1] += 30 #compensate for status bar 2239 2354 DData.SetScrollbars(10,10,Size[0]/10-4,Size[1]/10-10) 2240 2355 dataDisplay.SetSize(Size) … … 2290 2405 'Mustrain':['isotropic',[1.0,0.0],[False,False],[0,0,1], 2291 2406 NShkl*[0.01,],NShkl*[False,]], 2292 'Extinction':[0.0,False] ,'Cutoff':0.01}2407 'Extinction':[0.0,False]} 2293 2408 data['Histograms'] = UseList 2294 2409 UpdateDData()
Note: See TracChangeset
for help on using the changeset viewer.