Changes in / [6bd4235:18af6d2] in sasview
- Files:
-
- 1 added
- 7 deleted
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
.gitignore
r1b605fb r948484f 29 29 default_categories.json 30 30 /setup.cfg 31 Thumbs.db32 31 33 32 # doc build -
installers/installer_generator.py
ra0f4768 r460d3a1 9 9 import sys 10 10 import string 11 12 is_64bit = sys.maxsize > 2**3213 11 14 12 root = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) … … 27 25 AppSupportURL = local_config._homepage 28 26 AppUpdatesURL = local_config._homepage 29 ArchitecturesInstallIn64BitMode = 'x64'30 27 ChangesEnvironment = 'true' 31 28 DefaultDirName = os.path.join("{pf}" , AppName+Dev) … … 346 343 TEMPLATE += "AppSupportURL=%s\n" % str(AppSupportURL) 347 344 TEMPLATE += "AppUpdatesURL=%s \n" % str(AppUpdatesURL) 348 if is_64bit:349 TEMPLATE += "ArchitecturesInstallIn64BitMode=%s \n" % str(ArchitecturesInstallIn64BitMode)350 345 TEMPLATE += "ChangesEnvironment=%s \n" % str(ChangesEnvironment) 351 346 TEMPLATE += "DefaultDirName=%s\n" % str(DefaultDirName) -
installers/sasview.spec
- Property mode changed from 100644 to 100755
-
installers/version.txt
- Property mode changed from 100644 to 100755
-
src/sas/sascalc/dataloader/file_reader_base_class.py
ra58b5a0 r3053a4a 7 7 import os 8 8 import sys 9 import math9 import re 10 10 import logging 11 11 from abc import abstractmethod … … 25 25 def decode(s): 26 26 return s.decode() if isinstance(s, bytes) else s 27 28 # Data 1D fields for iterative purposes29 FIELDS_1D = ('x', 'y', 'dx', 'dy', 'dxl', 'dxw')30 # Data 2D fields for iterative purposes31 FIELDS_2D = ('data', 'qx_data', 'qy_data', 'q_data', 'err_data',32 'dqx_data', 'dqy_data', 'mask')33 34 27 35 28 class FileReader(object): … … 109 102 self.current_dataset = None 110 103 self.filepath = None 111 self.ind = None112 104 self.output = [] 113 105 … … 167 159 # Sort data by increasing x and remove 1st point 168 160 ind = np.lexsort((data.y, data.x)) 169 data.x = self._reorder_1d_array(data.x, ind)170 data.y = self._reorder_1d_array(data.y, ind)161 data.x = np.asarray([data.x[i] for i in ind]).astype(np.float64) 162 data.y = np.asarray([data.y[i] for i in ind]).astype(np.float64) 171 163 if data.dx is not None: 172 164 if len(data.dx) == 0: 173 165 data.dx = None 174 166 continue 175 data.dx = self._reorder_1d_array(data.dx, ind)167 data.dx = np.asarray([data.dx[i] for i in ind]).astype(np.float64) 176 168 if data.dxl is not None: 177 data.dxl = self._reorder_1d_array(data.dxl, ind)169 data.dxl = np.asarray([data.dxl[i] for i in ind]).astype(np.float64) 178 170 if data.dxw is not None: 179 data.dxw = self._reorder_1d_array(data.dxw, ind)171 data.dxw = np.asarray([data.dxw[i] for i in ind]).astype(np.float64) 180 172 if data.dy is not None: 181 173 if len(data.dy) == 0: 182 174 data.dy = None 183 175 continue 184 data.dy = self._reorder_1d_array(data.dy, ind)176 data.dy = np.asarray([data.dy[i] for i in ind]).astype(np.float64) 185 177 if data.lam is not None: 186 data.lam = self._reorder_1d_array(data.lam, ind)178 data.lam = np.asarray([data.lam[i] for i in ind]).astype(np.float64) 187 179 if data.dlam is not None: 188 data.dlam = self._reorder_1d_array(data.dlam, ind) 189 data = self._remove_nans_in_data(data) 180 data.dlam = np.asarray([data.dlam[i] for i in ind]).astype(np.float64) 190 181 if len(data.x) > 0: 191 182 data.xmin = np.min(data.x) … … 193 184 data.ymin = np.min(data.y) 194 185 data.ymax = np.max(data.y) 195 196 @staticmethod197 def _reorder_1d_array(array, ind):198 """199 Reorders a 1D array based on the indices passed as ind200 :param array: Array to be reordered201 :param ind: Indices used to reorder array202 :return: reordered array203 """204 array = np.asarray(array, dtype=np.float64)205 return array[ind]206 207 @staticmethod208 def _remove_nans_in_data(data):209 """210 Remove data points where nan is loaded211 :param data: 1D or 2D data object212 :return: data with nan points removed213 """214 if isinstance(data, Data1D):215 fields = FIELDS_1D216 elif isinstance(data, Data2D):217 fields = FIELDS_2D218 else:219 return data220 # Make array of good points - all others will be removed221 good = np.isfinite(getattr(data, fields[0]))222 for name in fields[1:]:223 array = getattr(data, name)224 if array is not None:225 # Update good points only if not already changed226 good &= np.isfinite(array)227 if not np.all(good):228 for name in fields:229 array = getattr(data, name)230 if array is not None:231 setattr(data, name, array[good])232 return data233 186 234 187 def sort_two_d_data(self): … … 261 214 dataset.x_bins = dataset.qx_data[:int(n_cols)] 262 215 dataset.data = dataset.data.flatten() 263 dataset = self._remove_nans_in_data(dataset)264 216 if len(dataset.data) > 0: 265 217 dataset.xmin = np.min(dataset.qx_data) -
src/sas/sascalc/dataloader/readers/abs_reader.py
re3775c6 r1efbc190 29 29 type_name = "IGOR 1D" 30 30 # Wildcards 31 type = ["IGOR 1D files (*.abs)|*.abs" , "IGOR 1D USANS files (*.cor)|*.cor"]31 type = ["IGOR 1D files (*.abs)|*.abs"] 32 32 # List of allowed extensions 33 ext = ['.abs' , '.cor']33 ext = ['.abs'] 34 34 35 35 def get_file_contents(self): … … 46 46 self.current_datainfo = DataInfo() 47 47 self.current_datainfo.filename = filepath 48 self.reset_data_list(len(lines)) 48 49 detector = Detector() 49 50 data_line = 0 … … 187 188 self.current_dataset.y[data_line] = _y 188 189 self.current_dataset.dy[data_line] = _dy 189 if _dx > 0: 190 self.current_dataset.dx[data_line] = _dx 191 else: 192 if data_line == 0: 193 self.current_dataset.dx = None 194 self.current_dataset.dxl = np.zeros(len(lines)) 195 self.current_dataset.dxw = np.zeros(len(lines)) 196 self.current_dataset.dxl[data_line] = abs(_dx) 197 self.current_dataset.dxw[data_line] = 0 190 self.current_dataset.dx[data_line] = _dx 198 191 data_line += 1 199 192 … … 204 197 pass 205 198 206 # SANS Data:207 199 # The 6 columns are | Q (1/A) | I(Q) (1/cm) | std. dev. 208 200 # I(Q) (1/cm) | sigmaQ | meanQ | ShadowFactor| 209 # USANS Data: 210 # EMP LEVEL: <value> ; BKG LEVEL: <value> 211 if line.startswith("The 6 columns") or line.startswith("EMP LEVEL"): 201 if line.count("The 6 columns") > 0: 212 202 is_data_started = True 213 203 -
src/sas/sascalc/dataloader/readers/associations.py
ra32c19c r574adc7 26 26 ".dat": "red2d_reader", 27 27 ".abs": "abs_reader", 28 ".cor": "abs_reader",29 28 ".sans": "danse_reader", 30 29 ".pdh": "anton_paar_saxs_reader" -
src/sas/sasgui/perspectives/fitting/basepage.py
r58a8f76 reee94bf 2812 2812 if self.model is not None: 2813 2813 name = self.formfactorbox.GetValue() 2814 _TreeLocation = 'user/models/ %s.html' % name2814 _TreeLocation = 'user/models/' + name.lower()+'.html' 2815 2815 _doc_viewer = DocumentationWindow(self, wx.ID_ANY, _TreeLocation, 2816 2816 "", name + " Help") -
src/sas/sasgui/perspectives/fitting/fitting.py
- Property mode changed from 100644 to 100755
-
src/sas/sasview/images/dls_logo.png
- Property mode changed from 100644 to 100755
-
src/sas/sasview/images/tudelft_logo.png
- Property mode changed from 100644 to 100755
-
src/sas/sasview/test/1d_data/saxess_example.pdh
- Property mode changed from 100644 to 100755
-
test/sasdataloader/test/utest_abs_reader.py
rfa749b7 rf53d684 75 75 data = Loader().load(find("jan08002.ABS")) 76 76 self.assertEqual(data[0].meta_data['loader'], "IGOR 1D") 77 78 def test_usans_negative_dxl(self):79 data_abs = Loader().load(find("sam14_cor.ABS"))80 data_cor = Loader().load(find("sam14_cor.cor"))81 for i in range(0, len(data_abs) - 1):82 self.assertEquals(data_abs.x[i], data_cor.x[i])83 self.assertEquals(data_abs.y[i], data_cor.y[i])84 self.assertEquals(data_abs.dxl[i], data_cor.dxl[i])85 self.assertEquals(data_abs.dxw[i], data_cor.dxw[i])86 self.assertTrue(data_abs.dxl > 0)87 88 77 89 78 class DanseReaderTests(unittest.TestCase): -
test/sasdataloader/test/utest_ascii.py
rdb5196d rf53d684 5 5 import os.path 6 6 import warnings 7 import math8 7 warnings.simplefilter("ignore") 9 8 … … 111 110 self.assertEqual(f, None) 112 111 113 def test_nan_values(self):114 """115 Test loading an ascii data file with nan values saved in x, y, or dy.116 """117 f_1d = self.loader.load(find("nans_in_1d_data.dat"))[0]118 f_2d = self.loader.load(find("nans_in_2d_data.DAT"))[0]119 for i in range(0, len(f_1d.x) - 1):120 self.assertFalse(math.isnan(f_1d.x[i]))121 self.assertFalse(math.isnan(f_1d.y[i]))122 self.assertFalse(math.isnan(f_1d.dy[i]))123 f_2d.data = f_2d.data.flatten()124 f_2d.qx_data = f_2d.qx_data.flatten()125 f_2d.qy_data = f_2d.qy_data.flatten()126 for i in range(0, len(f_2d.data) - 1):127 self.assertFalse(math.isnan(f_2d.data[i]))128 self.assertFalse(math.isnan(f_2d.qx_data[i]))129 self.assertFalse(math.isnan(f_2d.qy_data[i]))130 131 132 112 if __name__ == '__main__': 133 113 unittest.main()
Note: See TracChangeset
for help on using the changeset viewer.