Changeset e110cb0 in sasview


Ignore:
Timestamp:
Jan 15, 2018 9:41:47 PM (6 years ago)
Author:
GitHub <noreply@…>
Branches:
master, magnetic_scatt, release-4.2.2, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
Children:
0863065, c99e717
Parents:
6eb02a5 (diff), 58a8f76 (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:
Paul Kienzle <pkienzle@…> (01/15/18 21:41:47)
git-committer:
GitHub <noreply@…> (01/15/18 21:41:47)
Message:

Merge pull request #137 from llimeht/tmp/htmllowercase

Allow models to have mixed case filenames in help

Files:
2 added
1 deleted
11 edited

Legend:

Unmodified
Added
Removed
  • src/sas/sasgui/perspectives/fitting/basepage.py

    reee94bf r58a8f76  
    28122812        if self.model is not None: 
    28132813            name = self.formfactorbox.GetValue() 
    2814             _TreeLocation = 'user/models/' + name.lower()+'.html' 
     2814            _TreeLocation = 'user/models/%s.html' % name 
    28152815            _doc_viewer = DocumentationWindow(self, wx.ID_ANY, _TreeLocation, 
    28162816                                              "", name + " Help") 
  • .gitignore

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

    r460d3a1 ra0f4768  
    99import sys 
    1010import string 
     11 
     12is_64bit = sys.maxsize > 2**32 
    1113 
    1214root = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 
     
    2527AppSupportURL = local_config._homepage 
    2628AppUpdatesURL = local_config._homepage 
     29ArchitecturesInstallIn64BitMode = 'x64' 
    2730ChangesEnvironment = 'true' 
    2831DefaultDirName = os.path.join("{pf}" , AppName+Dev) 
     
    343346    TEMPLATE += "AppSupportURL=%s\n" % str(AppSupportURL) 
    344347    TEMPLATE += "AppUpdatesURL=%s \n" % str(AppUpdatesURL) 
     348    if is_64bit: 
     349        TEMPLATE += "ArchitecturesInstallIn64BitMode=%s \n" % str(ArchitecturesInstallIn64BitMode) 
    345350    TEMPLATE += "ChangesEnvironment=%s \n" % str(ChangesEnvironment) 
    346351    TEMPLATE += "DefaultDirName=%s\n" % str(DefaultDirName) 
  • installers/sasview.spec

    • Property mode changed from 100755 to 100644
  • installers/version.txt

    • Property mode changed from 100755 to 100644
  • src/sas/sascalc/dataloader/file_reader_base_class.py

    r3053a4a ra58b5a0  
    77import os 
    88import sys 
    9 import re 
     9import math 
    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 
     29FIELDS_1D = ('x', 'y', 'dx', 'dy', 'dxl', 'dxw') 
     30# Data 2D fields for iterative purposes 
     31FIELDS_2D = ('data', 'qx_data', 'qy_data', 'q_data', 'err_data', 
     32                 'dqx_data', 'dqy_data', 'mask') 
     33 
    2734 
    2835class FileReader(object): 
     
    102109        self.current_dataset = None 
    103110        self.filepath = None 
     111        self.ind = None 
    104112        self.output = [] 
    105113 
     
    159167                # Sort data by increasing x and remove 1st point 
    160168                ind = np.lexsort((data.y, data.x)) 
    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) 
     169                data.x = self._reorder_1d_array(data.x, ind) 
     170                data.y = self._reorder_1d_array(data.y, ind) 
    163171                if data.dx is not None: 
    164172                    if len(data.dx) == 0: 
    165173                        data.dx = None 
    166174                        continue 
    167                     data.dx = np.asarray([data.dx[i] for i in ind]).astype(np.float64) 
     175                    data.dx = self._reorder_1d_array(data.dx, ind) 
    168176                if data.dxl is not None: 
    169                     data.dxl = np.asarray([data.dxl[i] for i in ind]).astype(np.float64) 
     177                    data.dxl = self._reorder_1d_array(data.dxl, ind) 
    170178                if data.dxw is not None: 
    171                     data.dxw = np.asarray([data.dxw[i] for i in ind]).astype(np.float64) 
     179                    data.dxw = self._reorder_1d_array(data.dxw, ind) 
    172180                if data.dy is not None: 
    173181                    if len(data.dy) == 0: 
    174182                        data.dy = None 
    175183                        continue 
    176                     data.dy = np.asarray([data.dy[i] for i in ind]).astype(np.float64) 
     184                    data.dy = self._reorder_1d_array(data.dy, ind) 
    177185                if data.lam is not None: 
    178                     data.lam = np.asarray([data.lam[i] for i in ind]).astype(np.float64) 
     186                    data.lam = self._reorder_1d_array(data.lam, ind) 
    179187                if data.dlam is not None: 
    180                     data.dlam = np.asarray([data.dlam[i] for i in ind]).astype(np.float64) 
     188                    data.dlam = self._reorder_1d_array(data.dlam, ind) 
     189                data = self._remove_nans_in_data(data) 
    181190                if len(data.x) > 0: 
    182191                    data.xmin = np.min(data.x) 
     
    184193                    data.ymin = np.min(data.y) 
    185194                    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 
    186233 
    187234    def sort_two_d_data(self): 
     
    214261                    dataset.x_bins = dataset.qx_data[:int(n_cols)] 
    215262                dataset.data = dataset.data.flatten() 
     263                dataset = self._remove_nans_in_data(dataset) 
    216264                if len(dataset.data) > 0: 
    217265                    dataset.xmin = np.min(dataset.qx_data) 
  • src/sas/sasgui/perspectives/fitting/fitting.py

    • Property mode changed from 100755 to 100644
  • src/sas/sasview/images/dls_logo.png

    • Property mode changed from 100755 to 100644
  • src/sas/sasview/images/tudelft_logo.png

    • Property mode changed from 100755 to 100644
  • src/sas/sasview/test/1d_data/saxess_example.pdh

    • Property mode changed from 100755 to 100644
  • test/sasdataloader/test/utest_ascii.py

    rf53d684 rdb5196d  
    55import os.path 
    66import warnings 
     7import math 
    78warnings.simplefilter("ignore") 
    89 
     
    110111            self.assertEqual(f, None) 
    111112 
     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 
    112132if __name__ == '__main__': 
    113133    unittest.main() 
Note: See TracChangeset for help on using the changeset viewer.