Changeset a8d79fd in sasview
- Timestamp:
- Apr 4, 2017 11:41:31 AM (8 years ago)
- Branches:
- master, ESS_GUI, ESS_GUI_Docs, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_iss959, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc, costrafo411, magnetic_scatt, release-4.2.2, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
- Children:
- 571bf4b
- Parents:
- 063dd44 (diff), 5156918 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent. - git-author:
- Andrew Jackson <andrew.jackson@…> (04/04/17 11:41:31)
- git-committer:
- GitHub <noreply@…> (04/04/17 11:41:31)
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
src/sas/sasgui/perspectives/fitting/basepage.py
rb301db9 r5156918 1449 1449 self.state_change = True 1450 1450 self._draw_model() 1451 # Time delay has been introduced to prevent _handle error1452 # on Windows1453 # This part of code is executed when model is selected and1454 # it's parameters are changed (with respect to previously1455 # selected model). There are two Iq evaluations occuring one1456 # after another and therefore there may be compilation error1457 # if model is calculated for the first time.1458 # This seems to be Windows only issue - haven't tested on Linux1459 # though.The proper solution (other than time delay) requires1460 # more fundemental code refatoring1461 # Wojtek P. Nov 7, 20161462 if not ON_MAC:1463 time.sleep(0.1)1464 1451 self.Refresh() 1465 1452 … … 2609 2596 Layout is called after fitting. 2610 2597 """ 2611 self._sleep4sec()2612 2598 self.Layout() 2613 2599 return 2614 2615 def _sleep4sec(self):2616 """2617 sleep for 1 sec only applied on Mac2618 Note: This 1sec helps for Mac not to crash on self.2619 Layout after self._draw_model2620 """2621 if ON_MAC:2622 time.sleep(1)2623 2600 2624 2601 def _find_polyfunc_selection(self, disp_func=None): -
src/sas/sasgui/perspectives/fitting/fitpage.py
rd85f1d8a r5156918 1809 1809 self.onSmear(None) 1810 1810 1811 def _mac_sleep(self, sec=0.2):1812 """1813 Give sleep to MAC1814 """1815 if self.is_mac:1816 time.sleep(sec)1817 1818 1811 def get_view_mode(self): 1819 1812 """ … … 2188 2181 self.save_current_state() 2189 2182 2190 if not self.is_mac:2191 self.Layout()2192 self.Refresh()2193 self._mac_sleep(0.1)2194 2183 # plot model ( when drawing, do not update chisqr value again) 2195 2184 self._draw_model(update_chisqr=False, source='fit') -
src/sas/sasgui/perspectives/fitting/fitting.py
r4c5098c r5156918 876 876 qmin=qmin, qmax=qmax, weight=weight) 877 877 878 def _mac_sleep(self, sec=0.2):879 """880 Give sleep to MAC881 """882 if ON_MAC:883 time.sleep(sec)884 885 878 def draw_model(self, model, page_id, data=None, smearer=None, 886 879 enable1D=True, enable2D=False, … … 1030 1023 manager=self, 1031 1024 improvement_delta=0.1) 1032 self._mac_sleep(0.2)1033 1025 1034 1026 # batch fit … … 1270 1262 :param elapsed: time spent at the fitting level 1271 1263 """ 1272 self._mac_sleep(0.2)1273 1264 uid = page_id[0] 1274 1265 if uid in self.fit_thread_list.keys(): … … 1520 1511 page_id = [] 1521 1512 ## fit more than 1 model at the same time 1522 self._mac_sleep(0.2)1523 1513 try: 1524 1514 index = 0 -
check_packages.py
r131d94b rf433e6a 2 2 Checking and reinstalling the external packages 3 3 """ 4 import os 4 from __future__ import print_function 5 5 6 import sys 6 7 … … 14 15 sys.modules['Image'] = PIL.Image 15 16 17 if sys.version_info[0] > 2: 18 print("To use the sasview GUI you must use Python 2\n") 16 19 17 20 common_required_package_list = { 18 'setuptools': {'version':'0.6c11','import_name':'setuptools','test':'__version__'},19 'pyparsing': {'version':'1.5.5','import_name':'pyparsing','test':'__version__'},20 'html5lib': {'version':'0.95','import_name':'html5lib','test':'__version__'},21 'reportlab': {'version':'2.5','import_name':'reportlab','test':'Version'},22 'h5py': {'version':'2.5','import_name':'h5py','test':'__version__'},23 'lxml': {'version':'2.3','import_name':'lxml.etree','test':'LXML_VERSION'},24 'PIL': {'version':'1.1.7','import_name':'Image','test':'VERSION'},25 'pylint': {'version':None,'import_name':'pylint','test':None},26 'periodictable': {'version':'1.3.0','import_name':'periodictable','test':'__version__'},27 'bumps': {'version':'0.7.5.9','import_name':'bumps','test':'__version__'},28 'numpy': {'version':'1.7.1','import_name':'numpy','test':'__version__'},29 'scipy': {'version':'0.18.0','import_name':'scipy','test':'__version__'},30 'wx': {'version':'2.8.12.1','import_name':'wx','test':'__version__'},31 'matplotlib': {'version':'1.1.0','import_name':'matplotlib','test':'__version__'},32 'xhtml2pdf': {'version':'3.0.33','import_name':'xhtml2pdf','test':'__version__'},33 'sphinx': {'version':'1.2.1','import_name':'sphinx','test':'__version__'},34 'unittest-xml-reporting': {'version':'1.10.0','import_name':'xmlrunner','test':'__version__'},35 'pyopencl': {'version':'2015.1','import_name':'pyopencl','test':'VERSION_TEXT'},21 'setuptools': {'version': '0.6c11', 'import_name': 'setuptools', 'test': '__version__'}, 22 'pyparsing': {'version': '1.5.5', 'import_name': 'pyparsing', 'test': '__version__'}, 23 'html5lib': {'version': '0.95', 'import_name': 'html5lib', 'test': '__version__'}, 24 'reportlab': {'version': '2.5', 'import_name': 'reportlab', 'test': 'Version'}, 25 'h5py': {'version': '2.5', 'import_name': 'h5py', 'test': '__version__'}, 26 'lxml': {'version': '2.3', 'import_name': 'lxml.etree', 'test': 'LXML_VERSION'}, 27 'PIL': {'version': '1.1.7', 'import_name': 'Image', 'test': 'VERSION'}, 28 'pylint': {'version': None, 'import_name': 'pylint', 'test': None}, 29 'periodictable': {'version': '1.3.0', 'import_name': 'periodictable', 'test': '__version__'}, 30 'bumps': {'version': '0.7.5.9', 'import_name': 'bumps', 'test': '__version__'}, 31 'numpy': {'version': '1.7.1', 'import_name': 'numpy', 'test': '__version__'}, 32 'scipy': {'version': '0.18.0', 'import_name': 'scipy', 'test': '__version__'}, 33 'wx': {'version': '2.8.12.1', 'import_name': 'wx', 'test': '__version__'}, 34 'matplotlib': {'version': '1.1.0', 'import_name': 'matplotlib', 'test': '__version__'}, 35 'xhtml2pdf': {'version': '3.0.33', 'import_name': 'xhtml2pdf', 'test': '__version__'}, 36 'sphinx': {'version': '1.2.1', 'import_name': 'sphinx', 'test': '__version__'}, 37 'unittest-xml-reporting': {'version': '1.10.0', 'import_name': 'xmlrunner', 'test': '__version__'}, 38 'pyopencl': {'version': '2015.1', 'import_name': 'pyopencl', 'test': 'VERSION_TEXT'}, 36 39 } 37 40 win_required_package_list = { 38 'comtypes': {'version':'0.6.2','import_name':'comtypes','test':'__version__'},39 'pywin': {'version':'217','import_name':'pywin','test':'__version__'},40 'py2exe': {'version':'0.6.9','import_name':'py2exe','test':'__version__'},41 'comtypes': {'version': '0.6.2', 'import_name': 'comtypes', 'test': '__version__'}, 42 'pywin': {'version': '217', 'import_name': 'pywin', 'test': '__version__'}, 43 'py2exe': {'version': '0.6.9', 'import_name': 'py2exe', 'test': '__version__'}, 41 44 } 42 45 mac_required_package_list = { 43 'py2app': {'version':None,'import_name':'py2app','test':'__version__'},46 'py2app': {'version': None, 'import_name': 'py2app', 'test': '__version__'}, 44 47 } 45 48 46 49 deprecated_package_list = { 47 'pyPdf': {'version':'1.13','import_name':'pyPdf','test':'__version__'},50 'pyPdf': {'version': '1.13', 'import_name': 'pyPdf', 'test': '__version__'}, 48 51 } 49 52 50 print "Checking Required Package Versions...."51 print 52 print "Common Packages" 53 for package_name, test_vals in common_required_package_list.iteritems():53 print("Checking Required Package Versions....\n") 54 print("Common Packages") 55 56 for package_name, test_vals in common_required_package_list.items(): 54 57 try: 55 i = __import__(test_vals['import_name'], fromlist=[''])58 i = __import__(test_vals['import_name'], fromlist=['']) 56 59 if test_vals['test'] == None: 57 print "%s Installed (Unknown version)" % package_name60 print("%s Installed (Unknown version)" % package_name) 58 61 elif package_name == 'lxml': 59 verstring = str(getattr(i, 'LXML_VERSION'))60 print "%s Version Installed: %s"% (package_name,verstring.replace(', ','.').lstrip('(').rstrip(')'))62 verstring = str(getattr(i, 'LXML_VERSION')) 63 print("%s Version Installed: %s"% (package_name, verstring.replace(', ', '.').lstrip('(').rstrip(')'))) 61 64 else: 62 print "%s Version Installed: %s"% (package_name,getattr(i,test_vals['test']))63 except :64 print '%s NOT INSTALLED'% package_name65 print("%s Version Installed: %s"% (package_name, getattr(i, test_vals['test']))) 66 except ImportError: 67 print('%s NOT INSTALLED'% package_name) 65 68 66 69 if sys.platform == 'win32': 67 print 68 print "Windows Specific Packages:"69 for package_name, test_vals in win_required_package_list.iteritems():70 print("") 71 print("Windows Specific Packages:") 72 for package_name, test_vals in win_required_package_list.items(): 70 73 try: 71 74 if package_name == "pywin": 72 75 import win32api 73 fixed_file_info = win32api.GetFileVersionInfo(win32api.__file__, '\\')74 print "%s Version Installed: %s"% (package_name,fixed_file_info['FileVersionLS'] >> 16)76 fixed_file_info = win32api.GetFileVersionInfo(win32api.__file__, '\\') 77 print("%s Version Installed: %s"% (package_name, fixed_file_info['FileVersionLS'] >> 16)) 75 78 else: 76 i = __import__(test_vals['import_name'], fromlist=[''])77 print "%s Version Installed: %s"% (package_name,getattr(i,test_vals['test']))78 except :79 print '%s NOT INSTALLED'% package_name79 i = __import__(test_vals['import_name'], fromlist=['']) 80 print("%s Version Installed: %s"% (package_name, getattr(i, test_vals['test']))) 81 except ImportError: 82 print('%s NOT INSTALLED'% package_name) 80 83 81 84 if sys.platform == 'darwin': 82 print 83 print "MacOS Specific Packages:"84 for package_name, test_vals in mac_required_package_list.iteritems():85 print("") 86 print("MacOS Specific Packages:") 87 for package_name, test_vals in mac_required_package_list.items(): 85 88 try: 86 i = __import__(test_vals['import_name'], fromlist=[''])87 print "%s Version Installed: %s"% (package_name,getattr(i,test_vals['test']))88 except :89 print '%s NOT INSTALLED'% package_name89 i = __import__(test_vals['import_name'], fromlist=['']) 90 print("%s Version Installed: %s"% (package_name, getattr(i, test_vals['test']))) 91 except ImportError: 92 print('%s NOT INSTALLED'% package_name) 90 93 91 94 92 print 93 print "Deprecated Packages"94 print "You can remove these unless you need them for other reasons!"95 for package_name, test_vals in deprecated_package_list.iteritems():95 print("") 96 print("Deprecated Packages") 97 print("You can remove these unless you need them for other reasons!") 98 for package_name, test_vals in deprecated_package_list.items(): 96 99 try: 97 i = __import__(test_vals['import_name'], fromlist=[''])100 i = __import__(test_vals['import_name'], fromlist=['']) 98 101 if package_name == 'pyPdf': 99 # pyPdf doesn't have the version number internally100 print 'pyPDF Installed (Version unknown)'102 # pyPdf doesn't have the version number internally 103 print('pyPDF Installed (Version unknown)') 101 104 else: 102 print "%s Version Installed: %s"% (package_name,getattr(i,test_vals['test']))103 except :104 print '%s NOT INSTALLED'% package_name105 print("%s Version Installed: %s"% (package_name, getattr(i, test_vals['test']))) 106 except ImportError: 107 print('%s NOT INSTALLED'% package_name) -
src/sas/sascalc/dataloader/manipulations.py
rb2b36932 r36d69e1 80 80 81 81 """ 82 if data2d.data == None or data2d.x_bins == None or data2d.y_bins ==None:82 if data2d.data is None or data2d.x_bins is None or data2d.y_bins is None: 83 83 raise ValueError, "Can't convert this data: data=None..." 84 84 new_x = numpy.tile(data2d.x_bins, (len(data2d.y_bins), 1)) … … 90 90 qy_data = new_y.flatten() 91 91 q_data = numpy.sqrt(qx_data * qx_data + qy_data * qy_data) 92 if data2d.err_data ==None or numpy.any(data2d.err_data <= 0):92 if data2d.err_data is None or numpy.any(data2d.err_data <= 0): 93 93 new_err_data = numpy.sqrt(numpy.abs(new_data)) 94 94 else: -
src/sas/sascalc/dataloader/readers/IgorReader.py
rb699768 r36d69e1 13 13 ############################################################################# 14 14 import os 15 import numpy 16 import math 17 #import logging 15 18 16 from sas.sascalc.dataloader.data_info import Data2D 19 17 from sas.sascalc.dataloader.data_info import Detector 20 18 from sas.sascalc.dataloader.manipulations import reader2D_converter 19 import numpy as np 21 20 22 21 # Look for unit converter … … 40 39 """ Read file """ 41 40 if not os.path.isfile(filename): 42 raise ValueError, \ 43 "Specified file %s is not a regular file" % filename 44 45 # Read file 46 f = open(filename, 'r') 47 buf = f.read() 48 49 # Instantiate data object 41 raise ValueError("Specified file %s is not a regular " 42 "file" % filename) 43 50 44 output = Data2D() 45 51 46 output.filename = os.path.basename(filename) 52 47 detector = Detector() 53 if len(output.detector) > 0:54 print str(output.detector[0])48 if len(output.detector): 49 print(str(output.detector[0])) 55 50 output.detector.append(detector) 56 57 # Get content 58 dataStarted = False 59 60 lines = buf.split('\n') 61 itot = 0 62 x = [] 63 y = [] 64 65 ncounts = 0 66 67 xmin = None 68 xmax = None 69 ymin = None 70 ymax = None 71 72 i_x = 0 73 i_y = -1 74 i_tot_row = 0 75 76 isInfo = False 77 isCenter = False 78 79 data_conv_q = None 80 data_conv_i = None 81 82 if has_converter == True and output.Q_unit != '1/A': 51 52 data_conv_q = data_conv_i = None 53 54 if has_converter and output.Q_unit != '1/A': 83 55 data_conv_q = Converter('1/A') 84 56 # Test it 85 57 data_conv_q(1.0, output.Q_unit) 86 58 87 if has_converter == Trueand output.I_unit != '1/cm':59 if has_converter and output.I_unit != '1/cm': 88 60 data_conv_i = Converter('1/cm') 89 61 # Test it 90 62 data_conv_i(1.0, output.I_unit) 91 92 for line in lines: 93 94 # Find setup info line 95 if isInfo: 96 isInfo = False 97 line_toks = line.split() 98 # Wavelength in Angstrom 99 try: 100 wavelength = float(line_toks[1]) 101 except: 102 msg = "IgorReader: can't read this file, missing wavelength" 103 raise ValueError, msg 104 105 #Find # of bins in a row assuming the detector is square. 106 if dataStarted == True: 107 try: 108 value = float(line) 109 except: 110 # Found a non-float entry, skip it 111 continue 112 113 # Get total bin number 114 115 i_tot_row += 1 116 i_tot_row = math.ceil(math.sqrt(i_tot_row)) - 1 117 #print "i_tot", i_tot_row 118 size_x = i_tot_row # 192#128 119 size_y = i_tot_row # 192#128 120 output.data = numpy.zeros([size_x, size_y]) 121 output.err_data = numpy.zeros([size_x, size_y]) 122 123 #Read Header and 2D data 124 for line in lines: 125 # Find setup info line 126 if isInfo: 127 isInfo = False 128 line_toks = line.split() 129 # Wavelength in Angstrom 130 try: 131 wavelength = float(line_toks[1]) 132 except: 133 msg = "IgorReader: can't read this file, missing wavelength" 134 raise ValueError, msg 135 # Distance in meters 136 try: 137 distance = float(line_toks[3]) 138 except: 139 msg = "IgorReader: can't read this file, missing distance" 140 raise ValueError, msg 141 142 # Distance in meters 143 try: 144 transmission = float(line_toks[4]) 145 except: 146 msg = "IgorReader: can't read this file, " 147 msg += "missing transmission" 148 raise ValueError, msg 149 150 if line.count("LAMBDA") > 0: 151 isInfo = True 152 153 # Find center info line 154 if isCenter: 155 isCenter = False 156 line_toks = line.split() 157 158 # Center in bin number: Must substrate 1 because 159 #the index starts from 1 160 center_x = float(line_toks[0]) - 1 161 center_y = float(line_toks[1]) - 1 162 163 if line.count("BCENT") > 0: 164 isCenter = True 165 166 # Find data start 167 if line.count("***")>0: 168 dataStarted = True 169 170 # Check that we have all the info 171 if wavelength == None \ 172 or distance == None \ 173 or center_x == None \ 174 or center_y == None: 175 msg = "IgorReader:Missing information in data file" 176 raise ValueError, msg 177 178 if dataStarted == True: 179 try: 180 value = float(line) 181 except: 182 # Found a non-float entry, skip it 183 continue 184 185 # Get bin number 186 if math.fmod(itot, i_tot_row) == 0: 187 i_x = 0 188 i_y += 1 189 else: 190 i_x += 1 191 192 output.data[i_y][i_x] = value 193 ncounts += 1 194 195 # Det 640 x 640 mm 196 # Q = 4pi/lambda sin(theta/2) 197 # Bin size is 0.5 cm 198 #REmoved +1 from theta = (i_x-center_x+1)*0.5 / distance 199 # / 100.0 and 200 #REmoved +1 from theta = (i_y-center_y+1)*0.5 / 201 # distance / 100.0 202 #ToDo: Need complete check if the following 203 # covert process is consistent with fitting.py. 204 theta = (i_x - center_x) * 0.5 / distance / 100.0 205 qx = 4.0 * math.pi / wavelength * math.sin(theta/2.0) 206 207 if has_converter == True and output.Q_unit != '1/A': 208 qx = data_conv_q(qx, units=output.Q_unit) 209 210 if xmin == None or qx < xmin: 211 xmin = qx 212 if xmax == None or qx > xmax: 213 xmax = qx 214 215 theta = (i_y - center_y) * 0.5 / distance / 100.0 216 qy = 4.0 * math.pi / wavelength * math.sin(theta / 2.0) 217 218 if has_converter == True and output.Q_unit != '1/A': 219 qy = data_conv_q(qy, units=output.Q_unit) 220 221 if ymin == None or qy < ymin: 222 ymin = qy 223 if ymax == None or qy > ymax: 224 ymax = qy 225 226 if not qx in x: 227 x.append(qx) 228 if not qy in y: 229 y.append(qy) 230 231 itot += 1 232 233 63 64 data_row = 0 65 wavelength = distance = center_x = center_y = None 66 dataStarted = isInfo = isCenter = False 67 68 with open(filename, 'r') as f: 69 for line in f: 70 data_row += 1 71 # Find setup info line 72 if isInfo: 73 isInfo = False 74 line_toks = line.split() 75 # Wavelength in Angstrom 76 try: 77 wavelength = float(line_toks[1]) 78 except ValueError: 79 msg = "IgorReader: can't read this file, missing wavelength" 80 raise ValueError(msg) 81 # Distance in meters 82 try: 83 distance = float(line_toks[3]) 84 except ValueError: 85 msg = "IgorReader: can't read this file, missing distance" 86 raise ValueError(msg) 87 88 # Distance in meters 89 try: 90 transmission = float(line_toks[4]) 91 except: 92 msg = "IgorReader: can't read this file, " 93 msg += "missing transmission" 94 raise ValueError(msg) 95 96 if line.count("LAMBDA"): 97 isInfo = True 98 99 # Find center info line 100 if isCenter: 101 isCenter = False 102 line_toks = line.split() 103 104 # Center in bin number: Must subtract 1 because 105 # the index starts from 1 106 center_x = float(line_toks[0]) - 1 107 center_y = float(line_toks[1]) - 1 108 109 if line.count("BCENT"): 110 isCenter = True 111 112 # Find data start 113 if line.count("***"): 114 # now have to continue to blank line 115 dataStarted = True 116 117 # Check that we have all the info 118 if (wavelength is None 119 or distance is None 120 or center_x is None 121 or center_y is None): 122 msg = "IgorReader:Missing information in data file" 123 raise ValueError(msg) 124 125 if dataStarted: 126 if len(line.rstrip()): 127 continue 128 else: 129 break 130 131 # The data is loaded in row major order (last index changing most 132 # rapidly). However, the original data is in column major order (first 133 # index changing most rapidly). The swap to column major order is done 134 # in reader2D_converter at the end of this method. 135 data = np.loadtxt(filename, skiprows=data_row) 136 size_x = size_y = int(np.rint(np.sqrt(data.size))) 137 output.data = np.reshape(data, (size_x, size_y)) 138 output.err_data = np.zeros_like(output.data) 139 140 # Det 640 x 640 mm 141 # Q = 4 * pi/lambda * sin(theta/2) 142 # Bin size is 0.5 cm 143 # Removed +1 from theta = (i_x - center_x + 1)*0.5 / distance 144 # / 100.0 and 145 # Removed +1 from theta = (i_y - center_y + 1)*0.5 / 146 # distance / 100.0 147 # ToDo: Need complete check if the following 148 # convert process is consistent with fitting.py. 149 150 # calculate qx, qy bin centers of each pixel in the image 151 theta = (np.arange(size_x) - center_x) * 0.5 / distance / 100. 152 qx = 4 * np.pi / wavelength * np.sin(theta/2) 153 154 theta = (np.arange(size_y) - center_y) * 0.5 / distance / 100. 155 qy = 4 * np.pi / wavelength * np.sin(theta/2) 156 157 if has_converter and output.Q_unit != '1/A': 158 qx = data_conv_q(qx, units=output.Q_unit) 159 qy = data_conv_q(qx, units=output.Q_unit) 160 161 xmax = np.max(qx) 162 xmin = np.min(qx) 163 ymax = np.max(qy) 164 ymin = np.min(qy) 165 166 # calculate edge offset in q. 234 167 theta = 0.25 / distance / 100.0 235 xstep = 4.0 * math.pi / wavelength * math.sin(theta / 2.0)168 xstep = 4.0 * np.pi / wavelength * np.sin(theta / 2.0) 236 169 237 170 theta = 0.25 / distance / 100.0 238 ystep = 4.0 * math.pi/ wavelength * math.sin(theta / 2.0)171 ystep = 4.0 * np.pi/ wavelength * np.sin(theta / 2.0) 239 172 240 173 # Store all data ###################################### 241 174 # Store wavelength 242 if has_converter == Trueand output.source.wavelength_unit != 'A':175 if has_converter and output.source.wavelength_unit != 'A': 243 176 conv = Converter('A') 244 177 wavelength = conv(wavelength, units=output.source.wavelength_unit) … … 246 179 247 180 # Store distance 248 if has_converter == Trueand detector.distance_unit != 'm':181 if has_converter and detector.distance_unit != 'm': 249 182 conv = Converter('m') 250 183 distance = conv(distance, units=detector.distance_unit) … … 254 187 output.sample.transmission = transmission 255 188 256 # Store pixel size 189 # Store pixel size (mm) 257 190 pixel = 5.0 258 if has_converter == Trueand detector.pixel_size_unit != 'mm':191 if has_converter and detector.pixel_size_unit != 'mm': 259 192 conv = Converter('mm') 260 193 pixel = conv(pixel, units=detector.pixel_size_unit) … … 267 200 268 201 # Store limits of the image (2D array) 269 xmin = xmin -xstep / 2.0270 xmax = xmax +xstep / 2.0271 ymin = ymin -ystep / 2.0272 ymax = ymax +ystep / 2.0273 if has_converter == Trueand output.Q_unit != '1/A':202 xmin -= xstep / 2.0 203 xmax += xstep / 2.0 204 ymin -= ystep / 2.0 205 ymax += ystep / 2.0 206 if has_converter and output.Q_unit != '1/A': 274 207 xmin = data_conv_q(xmin, units=output.Q_unit) 275 208 xmax = data_conv_q(xmax, units=output.Q_unit) … … 282 215 283 216 # Store x and y axis bin centers 284 output.x_bins = x285 output.y_bins = y217 output.x_bins = qx.tolist() 218 output.y_bins = qy.tolist() 286 219 287 220 # Units -
test/corfunc/test/utest_corfunc.py
racefa2b r253eb6c6 8 8 from sas.sascalc.corfunc.corfunc_calculator import CorfuncCalculator 9 9 from sas.sascalc.dataloader.data_info import Data1D 10 import matplotlib.pyplot as plt 10 11 11 12 12 class TestCalculator(unittest.TestCase): … … 69 69 self.assertLess(abs(params['max']-75), 2.5) # L_p ~= 75 70 70 71 72 71 # Ensure tests are ran in correct order; 73 72 # Each test depends on the one before it -
test/sasdataloader/test/utest_abs_reader.py
r5f26aa4 r36d69e1 4 4 5 5 import unittest 6 import numpy, math 7 from sas.sascalc.dataloader.loader import Loader 6 import math 7 import numpy as np 8 from sas.sascalc.dataloader.loader import Loader 9 from sas.sascalc.dataloader.readers.IgorReader import Reader as IgorReader 8 10 from sas.sascalc.dataloader.data_info import Data1D 9 11 … … 86 88 87 89 def setUp(self): 88 self.data = Loader().load("MAR07232_rest.ASC") 89 90 # the IgorReader should be able to read this filetype 91 # if it can't, stop here. 92 reader = IgorReader() 93 self.data = reader.read("MAR07232_rest.ASC") 94 90 95 def test_igor_checkdata(self): 91 96 """ … … 108 113 109 114 self.assertEqual(self.data.detector[0].beam_center_unit, 'mm') 110 center_x = (68.76 -1)*5.0111 center_y = (62.47 -1)*5.0115 center_x = (68.76 - 1)*5.0 116 center_y = (62.47 - 1)*5.0 112 117 self.assertEqual(self.data.detector[0].beam_center.x, center_x) 113 118 self.assertEqual(self.data.detector[0].beam_center.y, center_y) 114 119 115 120 self.assertEqual(self.data.I_unit, '1/cm') 116 self.assertEqual(self.data.data[0], 0.279783) 117 self.assertEqual(self.data.data[1], 0.28951) 118 self.assertEqual(self.data.data[2], 0.167634) 119 121 # 3 points should be suffcient to check that the data is in column 122 # major order. 123 np.testing.assert_almost_equal(self.data.data[0:3], 124 [0.279783, 0.28951, 0.167634]) 125 np.testing.assert_almost_equal(self.data.qx_data[0:3], 126 [-0.01849072, -0.01821785, -0.01794498]) 127 np.testing.assert_almost_equal(self.data.qy_data[0:3], 128 [-0.01677435, -0.01677435, -0.01677435]) 129 130 def test_generic_loader(self): 131 # the generic loader should direct the file to IgorReader as well 132 data = Loader().load("MAR07232_rest.ASC") 133 self.assertEqual(data.meta_data['loader'], "IGOR 2D") 134 135 120 136 class danse_reader(unittest.TestCase): 121 137 … … 313 329 from sas.sascalc.dataloader.readers.cansas_reader import Reader 314 330 r = Reader() 315 x = n umpy.ones(5)316 y = n umpy.ones(5)317 dy = n umpy.ones(5)331 x = np.ones(5) 332 y = np.ones(5) 333 dy = np.ones(5) 318 334 319 335 filename = "write_test.xml"
Note: See TracChangeset
for help on using the changeset viewer.