Changes in / [6bd4235:18af6d2] in sasview


Ignore:
Files:
1 added
7 deleted
14 edited

Legend:

Unmodified
Added
Removed
  • .gitignore

    r1b605fb r948484f  
    2929default_categories.json 
    3030/setup.cfg 
    31 Thumbs.db 
    3231 
    3332# doc build 
  • installers/installer_generator.py

    ra0f4768 r460d3a1  
    99import sys 
    1010import string 
    11  
    12 is_64bit = sys.maxsize > 2**32 
    1311 
    1412root = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 
     
    2725AppSupportURL = local_config._homepage 
    2826AppUpdatesURL = local_config._homepage 
    29 ArchitecturesInstallIn64BitMode = 'x64' 
    3027ChangesEnvironment = 'true' 
    3128DefaultDirName = os.path.join("{pf}" , AppName+Dev) 
     
    346343    TEMPLATE += "AppSupportURL=%s\n" % str(AppSupportURL) 
    347344    TEMPLATE += "AppUpdatesURL=%s \n" % str(AppUpdatesURL) 
    348     if is_64bit: 
    349         TEMPLATE += "ArchitecturesInstallIn64BitMode=%s \n" % str(ArchitecturesInstallIn64BitMode) 
    350345    TEMPLATE += "ChangesEnvironment=%s \n" % str(ChangesEnvironment) 
    351346    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  
    77import os 
    88import sys 
    9 import math 
     9import re 
    1010import logging 
    1111from abc import abstractmethod 
     
    2525    def decode(s): 
    2626        return s.decode() if isinstance(s, bytes) else s 
    27  
    28 # Data 1D fields for iterative purposes 
    29 FIELDS_1D = ('x', 'y', 'dx', 'dy', 'dxl', 'dxw') 
    30 # Data 2D fields for iterative purposes 
    31 FIELDS_2D = ('data', 'qx_data', 'qy_data', 'q_data', 'err_data', 
    32                  'dqx_data', 'dqy_data', 'mask') 
    33  
    3427 
    3528class FileReader(object): 
     
    109102        self.current_dataset = None 
    110103        self.filepath = None 
    111         self.ind = None 
    112104        self.output = [] 
    113105 
     
    167159                # Sort data by increasing x and remove 1st point 
    168160                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) 
    171163                if data.dx is not None: 
    172164                    if len(data.dx) == 0: 
    173165                        data.dx = None 
    174166                        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) 
    176168                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) 
    178170                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) 
    180172                if data.dy is not None: 
    181173                    if len(data.dy) == 0: 
    182174                        data.dy = None 
    183175                        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) 
    185177                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) 
    187179                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) 
    190181                if len(data.x) > 0: 
    191182                    data.xmin = np.min(data.x) 
     
    193184                    data.ymin = np.min(data.y) 
    194185                    data.ymax = np.max(data.y) 
    195  
    196     @staticmethod 
    197     def _reorder_1d_array(array, ind): 
    198         """ 
    199         Reorders a 1D array based on the indices passed as ind 
    200         :param array: Array to be reordered 
    201         :param ind: Indices used to reorder array 
    202         :return: reordered array 
    203         """ 
    204         array = np.asarray(array, dtype=np.float64) 
    205         return array[ind] 
    206  
    207     @staticmethod 
    208     def _remove_nans_in_data(data): 
    209         """ 
    210         Remove data points where nan is loaded 
    211         :param data: 1D or 2D data object 
    212         :return: data with nan points removed 
    213         """ 
    214         if isinstance(data, Data1D): 
    215             fields = FIELDS_1D 
    216         elif isinstance(data, Data2D): 
    217             fields = FIELDS_2D 
    218         else: 
    219             return data 
    220         # Make array of good points - all others will be removed 
    221         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 changed 
    226                 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 data 
    233186 
    234187    def sort_two_d_data(self): 
     
    261214                    dataset.x_bins = dataset.qx_data[:int(n_cols)] 
    262215                dataset.data = dataset.data.flatten() 
    263                 dataset = self._remove_nans_in_data(dataset) 
    264216                if len(dataset.data) > 0: 
    265217                    dataset.xmin = np.min(dataset.qx_data) 
  • src/sas/sascalc/dataloader/readers/abs_reader.py

    re3775c6 r1efbc190  
    2929    type_name = "IGOR 1D" 
    3030    # Wildcards 
    31     type = ["IGOR 1D files (*.abs)|*.abs", "IGOR 1D USANS files (*.cor)|*.cor"] 
     31    type = ["IGOR 1D files (*.abs)|*.abs"] 
    3232    # List of allowed extensions 
    33     ext = ['.abs', '.cor'] 
     33    ext = ['.abs'] 
    3434 
    3535    def get_file_contents(self): 
     
    4646        self.current_datainfo = DataInfo() 
    4747        self.current_datainfo.filename = filepath 
     48        self.reset_data_list(len(lines)) 
    4849        detector = Detector() 
    4950        data_line = 0 
     
    187188                    self.current_dataset.y[data_line] = _y 
    188189                    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 
    198191                    data_line += 1 
    199192 
     
    204197                    pass 
    205198 
    206             # SANS Data: 
    207199            # The 6 columns are | Q (1/A) | I(Q) (1/cm) | std. dev. 
    208200            # 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: 
    212202                is_data_started = True 
    213203 
  • src/sas/sascalc/dataloader/readers/associations.py

    ra32c19c r574adc7  
    2626    ".dat": "red2d_reader", 
    2727    ".abs": "abs_reader", 
    28     ".cor": "abs_reader", 
    2928    ".sans": "danse_reader", 
    3029    ".pdh": "anton_paar_saxs_reader" 
  • src/sas/sasgui/perspectives/fitting/basepage.py

    r58a8f76 reee94bf  
    28122812        if self.model is not None: 
    28132813            name = self.formfactorbox.GetValue() 
    2814             _TreeLocation = 'user/models/%s.html' % name 
     2814            _TreeLocation = 'user/models/' + name.lower()+'.html' 
    28152815            _doc_viewer = DocumentationWindow(self, wx.ID_ANY, _TreeLocation, 
    28162816                                              "", 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  
    7575        data = Loader().load(find("jan08002.ABS")) 
    7676        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  
    8877 
    8978class DanseReaderTests(unittest.TestCase): 
  • test/sasdataloader/test/utest_ascii.py

    rdb5196d rf53d684  
    55import os.path 
    66import warnings 
    7 import math 
    87warnings.simplefilter("ignore") 
    98 
     
    111110            self.assertEqual(f, None) 
    112111 
    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  
    132112if __name__ == '__main__': 
    133113    unittest.main() 
Note: See TracChangeset for help on using the changeset viewer.