Changeset 3139
- Timestamp:
- Oct 25, 2017 1:35:18 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIdataGUI.py
r3136 r3139 1782 1782 Iparm1, Iparm2 = Iparm 1783 1783 if 'T' in Iparm1['Type'][0]: 1784 print('TOF simulation not supported yet')1785 return False1784 rd.idstring = ' TOF neutron simulation' 1785 simType = 'TOF' 1786 1786 else: 1787 1787 # need to get name, 2theta start, end, step 1788 1788 rd.idstring = ' CW' 1789 simType = 'CW' 1789 1790 if 'X' in Iparm1['Type'][0]: 1790 1791 rd.idstring = 'CW x-ray simulation' … … 1801 1802 N = 0 1802 1803 while (N < 3): # insist on a dataset with a few points 1803 names = ('dataset name', 'start angle', 'end angle', 'step size') 1804 if not wave or wave < 1.0: 1805 inp = [rd.idstring, 10.,40.,0.005] # see names for what's what 1804 if 'TOF' in rd.idstring: 1805 names = ('dataset name', 'start TOF(ms)', 'end TOF(ms)', 'DT/T') 1806 inp = [rd.idstring, 10.,80.,0.0005] # see names for what's what 1807 dlg = G2G.ScrolledMultiEditor( 1808 self,[inp] * len(inp),range(len(inp)),names, 1809 header='Enter simulation name and range', 1810 minvals=(None,.5,1.0,0.0001), 1811 maxvals=(None,200.,200.,.001), 1812 sizevals=((225,-1),) 1813 ) 1806 1814 else: 1807 inp = [rd.idstring, 10.,80.,0.01] # see names for what's what 1808 dlg = G2G.ScrolledMultiEditor( 1809 self,[inp] * len(inp),range(len(inp)),names, 1810 header='Enter simulation name and range', 1811 minvals=(None,0.001,0.001,0.0001), 1812 maxvals=(None,180.,180.,.1), 1813 sizevals=((225,-1),) 1814 ) 1815 names = ('dataset name', 'start angle', 'end angle', 'step size') 1816 if not wave or wave < 1.0: 1817 inp = [rd.idstring, 10.,40.,0.005] # see names for what's what 1818 else: 1819 inp = [rd.idstring, 10.,80.,0.01] # see names for what's what 1820 dlg = G2G.ScrolledMultiEditor( 1821 self,[inp] * len(inp),range(len(inp)),names, 1822 header='Enter simulation name and range', 1823 minvals=(None,0.001,0.001,0.0001), 1824 maxvals=(None,180.,180.,.1), 1825 sizevals=((225,-1),) 1826 ) 1815 1827 dlg.CenterOnParent() 1816 1828 if dlg.ShowModal() == wx.ID_OK: … … 1822 1834 else: 1823 1835 return False 1824 N = int((end-start)/step)+1 1825 x = np.linspace(start,end,N,True) 1826 N = len(x) 1836 if 'TOF' in rd.idstring: 1837 N = (np.log(end)-np.log(start))/step 1838 x = np.exp((np.arange(0,N))*step+np.log(start*1000.)) 1839 N = len(x) 1840 else: 1841 N = int((end-start)/step)+1 1842 x = np.linspace(start,end,N,True) 1843 N = len(x) 1827 1844 rd.powderdata = [ 1828 1845 np.array(x), # x-axis values … … 1844 1861 valuesdict = { 1845 1862 'wtFactor':1.0, 1846 'Dummy':True, 1863 'Dummy':True,'simType':simType, 1847 1864 'ranId':ran.randint(0,sys.maxsize), 1848 1865 'Offset':[0.0,0.0],'delOffset':0.02*Ymax,'refOffset':-.1*Ymax,'refDelt':0.1*Ymax, … … 4285 4302 ''' 4286 4303 lastRaisedPlotTab = self.G2plotNB.lastRaisedPlotTab # save the last page saved 4287 #print 'lastRaisedPlotTab=',lastRaisedPlotTab4288 4304 self.G2plotNB.lastRaisedPlotTab = None 4305 # print ('lastRaisedPlotTab='+lastRaisedPlotTab) 4289 4306 # mark displayed plots as invalid 4290 4307 for lbl,frame in zip(self.G2plotNB.plotList,self.G2plotNB.panelList): … … 6849 6866 def onEditSimRange(event): 6850 6867 'Edit simulation range' 6851 inp = [ 6852 min(data[1][0]), 6853 max(data[1][0]), 6854 None 6855 ] 6856 inp[2] = (inp[1] - inp[0])/(len(data[1][0])-1.) 6857 names = ('start angle', 'end angle', 'step size') 6858 dlg = G2G.ScrolledMultiEditor( 6859 G2frame,[inp] * len(inp), range(len(inp)), names, 6860 header='Edit simulation range', 6861 minvals=(0.001,0.001,0.0001), 6862 maxvals=(180.,180.,.1), 6863 ) 6868 if 'TOF' in data[0].get('simType','CW'): 6869 inp = [ 6870 min(data[1][0])/1000., 6871 max(data[1][0])/1000., 6872 None 6873 ] 6874 inp[2] = (np.log(inp[1]) - np.log(inp[0]))/(len(data[1][0])-1.) 6875 names = ('start TOF(ms)', 'end TOF(ms)', 'DT/T') 6876 dlg = G2G.ScrolledMultiEditor( 6877 G2frame,[inp] * len(inp), range(len(inp)), names, 6878 header='Edit simulation range', 6879 minvals=(0.5,1.0,0.0001), 6880 maxvals=(200.,200.,.001), 6881 ) 6882 else: 6883 inp = [ 6884 min(data[1][0]), 6885 max(data[1][0]), 6886 None 6887 ] 6888 inp[2] = (inp[1] - inp[0])/(len(data[1][0])-1.) 6889 names = ('start angle', 'end angle', 'step size') 6890 dlg = G2G.ScrolledMultiEditor( 6891 G2frame,[inp] * len(inp), range(len(inp)), names, 6892 header='Edit simulation range', 6893 minvals=(0.001,0.001,0.0001), 6894 maxvals=(180.,180.,.1), 6895 ) 6864 6896 dlg.CenterOnParent() 6865 6897 val = dlg.ShowModal() … … 6871 6903 start,end,step = inp 6872 6904 step = abs(step) 6873 N = int((end-start)/step)+1 6874 newdata = np.linspace(start,end,N,True) 6875 if len(newdata) < 2: return # too small a range - reject 6905 if 'TOF' in data[0].get('simType','CW'): 6906 N = (np.log(end)-np.log(start))/step 6907 newdata = np.exp((np.arange(0,N))*step+np.log(start*1000.)) 6908 else: 6909 N = int((end-start)/step)+1 6910 newdata = np.linspace(start,end,N,True) 6911 if len(newdata) < 2: return # too small a range - reject 6876 6912 data[1] = [newdata,np.zeros_like(newdata),np.ones_like(newdata), 6877 6913 np.zeros_like(newdata),np.zeros_like(newdata),np.zeros_like(newdata)] … … 7066 7102 G2frame.Bind(wx.EVT_MENU, OnPlotAll3DHKL, id=G2G.wxID_3DALLHKLPLOT) 7067 7103 7068 G2frame.dataWindow.ClearData() 7104 if G2frame.dataWindow: 7105 G2frame.dataWindow.ClearData() 7069 7106 mainSizer = G2frame.dataWindow.GetSizer() 7070 7107 mainSizer.Add((5,5),) … … 7087 7124 Tmax = max(data[1][0]) 7088 7125 num = len(data[1][0]) 7089 step = (Tmax - Tmin)/(num-1) 7090 t = u'2\u03b8' # 2theta 7091 lbl = u'Simulation range: {:.2f} to {:.2f} {:s}\nwith {:.4f} steps ({:d} points)' 7126 if 'TOF' in data[0].get('simType','CW'): 7127 step = (np.log(Tmax) - np.log(Tmin))/(num-1.) 7128 t = u'\u00b5s' 7129 lbl = u'Simulation range: {:.2f} to {:.2f} {:s} with {:.4f} resolution ({:d} points)' 7130 else: 7131 step = (Tmax - Tmin)/(num-1) 7132 t = u'2\u03b8' # 2theta 7133 lbl = u'Simulation range: {:.2f} to {:.2f} {:s} with {:.4f} steps ({:d} points)' 7092 7134 lbl += u'\n(Edit range resets observed intensities).' 7093 7135 lbl = lbl.format(Tmin,Tmax,t,step,num) 7094 simSizer.Add(wx.StaticText(G2frame.dataWindow,wx.ID_ANY,lbl), 7095 0,WACV) 7136 simSizer.Add(wx.StaticText(G2frame.dataWindow,wx.ID_ANY,lbl),0,WACV) 7096 7137 but = wx.Button(G2frame.dataWindow,wx.ID_ANY,"Edit range") 7097 7138 but.Bind(wx.EVT_BUTTON,onEditSimRange) 7098 simSizer.Add(but,0,WACV)7099 7139 mainSizer.Add(simSizer) 7140 mainSizer.Add(but,0,WACV) 7100 7141 if 'Nobs' in data[0]: 7101 7142 mainSizer.Add(wx.StaticText(G2frame.dataWindow,-1, … … 7159 7200 'FoMax' : FoMax,'Zone' : '001','Layer' : 0,'Scale' : 1.0,'Super':Super,'SuperVec':SuperVec} 7160 7201 G2plt.PlotSngl(G2frame,newPlot=True,Data=controls,hklRef=refList) 7202 G2frame.dataWindow.SetDataSize() 7161 7203 7162 7204 ################################################################################
Note: See TracChangeset
for help on using the changeset viewer.