Changeset 1174
- Timestamp:
- Dec 18, 2013 2:55:50 PM (10 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIimage.py
r1171 r1174 774 774 tam = ma.mask_or(tam.flatten(),tamt*tama) 775 775 taz = ma.masked_outside(image.flatten(),int(Zlim[0]),Zlim[1]) 776 tabs = np.ones_like(taz) 776 777 tam = ma.mask_or(tam.flatten(),ma.getmask(taz)) 777 778 tax = ma.compressed(ma.array(tax.flatten(),mask=tam)) … … 779 780 taz = ma.compressed(ma.array(taz.flatten(),mask=tam)) 780 781 tad = ma.compressed(ma.array(tad.flatten(),mask=tam)) 781 return tax,tay,taz,tad 782 tabs = ma.compressed(ma.array(tabs.flatten(),mask=tam)) 783 return tax,tay,taz,tad,tabs 782 784 783 785 def ImageIntegrate(image,data,masks,blkSize=128,dlg=None): … … 816 818 dlg.Update(Nup) 817 819 Block = image[iBeg:iFin,jBeg:jFin] 818 tax,tay,taz,tad = Fill2ThetaAzimuthMap(masks,TA,tam,Block) #and apply masks820 tax,tay,taz,tad,tabs = Fill2ThetaAzimuthMap(masks,TA,tam,Block) #and apply masks 819 821 Nup += 1 820 822 if dlg: … … 822 824 tax = np.where(tax > LRazm[1],tax-360.,tax) #put azm inside limits if possible 823 825 tax = np.where(tax < LRazm[0],tax+360.,tax) 826 if data['SampleAbs'][1]: 827 muR = data['SampleAbs'][0]*(1.+npsind(tax)**2/2.)/(npcosd(tay)) 828 tabs = G2pwd.Absorb(data['SampleShape'],muR,tay) 824 829 if any([tax.shape[0],tay.shape[0],taz.shape[0]]): 825 NST,H0 = h2d.histogram2d(len(tax),tax,tay,taz*tad ,numAzms,numChans,LRazm,LUtth,Dazm,Dtth,NST,H0)830 NST,H0 = h2d.histogram2d(len(tax),tax,tay,taz*tad*tabs,numAzms,numChans,LRazm,LUtth,Dazm,Dtth,NST,H0) 826 831 Nup += 1 827 832 if dlg: -
trunk/GSASIIimgGUI.py
r1163 r1174 51 51 data['DetDepth'] = 0. 52 52 data['DetDepthRef'] = False 53 if 'SampleAbs' not in data: 54 data['SampleShape'] = 'Cylinder' 55 data['SampleAbs'] = [0.0,False] 53 56 #end patch 54 57 … … 513 516 obliqVal.SetValue('%.3f'%(data['Oblique'][0])) 514 517 518 def OnSamAbs(event): 519 if data['SampleAbs'][1]: 520 data['SampleAbs'][1] = False 521 else: 522 data['SampleAbs'][1] = True 523 524 def OnSamAbsVal(event): 525 try: 526 value = float(samabsVal.GetValue()) 527 if 0.00 <= value <= 2.00: 528 data['SampleAbs'][0] = value 529 else: 530 raise ValueError 531 except ValueError: 532 pass 533 samabsVal.SetValue('%.3f'%(data['SampleAbs'][0])) 534 515 535 def OnShowLines(event): 516 536 if data['showLines']: … … 614 634 outAzim.Bind(wx.EVT_KILL_FOCUS,OnNumOutAzms) 615 635 littleSizer.Add(outAzim,0,wx.ALIGN_CENTER_VERTICAL) 636 dataSizer.Add(littleSizer,0,) 637 littleSizer = wx.BoxSizer(wx.HORIZONTAL) 638 samabs = wx.CheckBox(parent=G2frame.dataDisplay,label='Apply sample absorption?') 639 dataSizer.Add(samabs,0,wx.ALIGN_CENTER_VERTICAL) 640 samabs.Bind(wx.EVT_CHECKBOX, OnSamAbs) 641 samabs.SetValue(data['SampleAbs'][1]) 642 littleSizer.Add(wx.StaticText(G2frame.dataDisplay,label='mu/R (0.00-2.0) '),0, 643 wx.ALIGN_CENTER_VERTICAL) 644 samabsVal = wx.TextCtrl(parent=G2frame.dataDisplay,value='%.3f'%(data['SampleAbs'][0]),style=wx.TE_PROCESS_ENTER) 645 samabsVal.Bind(wx.EVT_TEXT_ENTER,OnSamAbsVal) 646 samabsVal.Bind(wx.EVT_KILL_FOCUS,OnSamAbsVal) 647 littleSizer.Add(samabsVal,0,wx.ALIGN_CENTER_VERTICAL) 616 648 dataSizer.Add(littleSizer,0,) 617 649 littleSizer = wx.BoxSizer(wx.HORIZONTAL) -
trunk/GSASIIpwd.py
r1131 r1174 98 98 :param float Psi: flat plate tilt axis - future 99 99 ''' 100 101 def muRunder3(Sth2): 102 T0 = 16.0/(3.*np.pi) 103 T1 = (25.99978-0.01911*Sth2**0.25)*np.exp(-0.024551*Sth2)+ \ 104 0.109561*np.sqrt(Sth2)-26.04556 105 T2 = -0.02489-0.39499*Sth2+1.219077*Sth2**1.5- \ 106 1.31268*Sth2**2+0.871081*Sth2**2.5-0.2327*Sth2**3 107 T3 = 0.003045+0.018167*Sth2-0.03305*Sth2**2 108 Trns = -T0*MuR-T1*MuR**2-T2*MuR**3-T3*MuR**4 109 return np.exp(Trns) 110 111 def muRover3(Sth2): 112 T1 = 1.433902+11.07504*Sth2-8.77629*Sth2*Sth2+ \ 113 10.02088*Sth2**3-3.36778*Sth2**4 114 T2 = (0.013869-0.01249*Sth2)*np.exp(3.27094*Sth2)+ \ 115 (0.337894+13.77317*Sth2)/(1.0+11.53544*Sth2)**1.555039 116 T3 = 1.933433/(1.0+23.12967*Sth2)**1.686715- \ 117 0.13576*np.sqrt(Sth2)+1.163198 118 T4 = 0.044365-0.04259/(1.0+0.41051*Sth2)**148.4202 119 Trns = (T1-T4)/(1.0+T2*(MuR-3.0))**T3+T4 120 return Trns/100. 121 100 122 Sth2 = npsind(Tth/2.0)**2 101 123 Cth2 = 1.-Sth2 102 124 if 'Cylinder' in Geometry: #Lobanov & Alte da Veiga for 2-theta = 0; beam fully illuminates sample 103 if MuR < 3.0: 104 T0 = 16.0/(3*np.pi) 105 T1 = (25.99978-0.01911*Sth2**0.25)*np.exp(-0.024551*Sth2)+ \ 106 0.109561*np.sqrt(Sth2)-26.04556 107 T2 = -0.02489-0.39499*Sth2+1.219077*Sth2**1.5- \ 108 1.31268*Sth2**2+0.871081*Sth2**2.5-0.2327*Sth2**3 109 T3 = 0.003045+0.018167*Sth2-0.03305*Sth2**2 110 Trns = -T0*MuR-T1*MuR**2-T2*MuR**3-T3*MuR**4 111 return np.exp(Trns) 112 else: 113 T1 = 1.433902+11.07504*Sth2-8.77629*Sth2*Sth2+ \ 114 10.02088*Sth2**3-3.36778*Sth2**4 115 T2 = (0.013869-0.01249*Sth2)*np.exp(3.27094*Sth2)+ \ 116 (0.337894+13.77317*Sth2)/(1.0+11.53544*Sth2)**1.555039 117 T3 = 1.933433/(1.0+23.12967*Sth2)**1.686715- \ 118 0.13576*np.sqrt(Sth2)+1.163198 119 T4 = 0.044365-0.04259/(1.0+0.41051*Sth2)**148.4202 120 Trns = (T1-T4)/(1.0+T2*(MuR-3.0))**T3+T4 121 return Trns/100. 125 return np.where(MuR <3.0,muRunder3(Sth2),muRover3(Sth2)) 122 126 elif 'Bragg' in Geometry: 123 127 return 1.0
Note: See TracChangeset
for help on using the changeset viewer.