Changes in / [5c1c486:7b3f154] in sasview


Ignore:
Files:
5 edited

Legend:

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

    rb76e65a ra1b8fee  
    29292929            return False 
    29302930 
    2931  
    2932     def _get_copy_params_details(self): 
    2933         """ 
    2934         Combines polydisperse parameters with self.parameters so that they can 
    2935         be written to the clipboard (for Excel or LaTeX). Also returns a list of 
    2936         the names of parameters that have been fitted 
    2937  
    2938         :returns: all_params - A list of all parameters, in the format of  
    2939         self.parameters 
    2940         :returns: fitted_par_names - A list of the names of parameters that have 
    2941         been fitted 
    2942         """ 
    2943         # Names of params that are being fitted 
    2944         fitted_par_names = [param[1] for param in self.param_toFit] 
    2945         # Names of params with associated polydispersity 
    2946         disp_params = [param[1].split('.')[0] for param in self.fittable_param] 
    2947  
    2948         # Create array of all parameters 
    2949         all_params = copy.copy(self.parameters) 
    2950         for param in self.parameters: 
    2951             if param[1] in disp_params: 
    2952                 # Polydisperse params aren't in self.parameters, so need adding 
    2953                 # to all_params 
    2954                 name = param[1] + ".width" 
    2955                 index = all_params.index(param) + 1 
    2956                 to_insert = [] 
    2957                 if name in fitted_par_names: 
    2958                     # Param is fitted, so already has a param list in self.param_toFit 
    2959                     to_insert = self.param_toFit[fitted_par_names.index(name)] 
    2960                 else: 
    2961                     # Param isn't fitted, so mockup a param list 
    2962                     to_insert = [None, name, self.model.getParam(name), None, None] 
    2963                 all_params.insert(index, to_insert) 
    2964         return all_params, fitted_par_names 
    2965  
    29662931    def get_copy_excel(self): 
    29672932        """ 
     
    29772942        Get the string copies of the param names and values in the tap 
    29782943        """ 
    2979         if not self.parameters: 
    2980             # Do nothing if parameters doesn't exist 
    2981             return False 
    2982  
    29832944        content = '' 
     2945 
    29842946        crlf = chr(13) + chr(10) 
    29852947        tab = chr(9) 
    29862948 
    2987         all_params, fitted_param_names = self._get_copy_params_details() 
    2988  
    2989         # Construct row of parameter names 
    2990         for param in all_params: 
    2991             name = param[1] # Parameter name 
    2992             content += name 
    2993             content += tab 
    2994             if name in fitted_param_names: 
    2995                 # Only print errors for fitted parameters 
    2996                 content += name + "_err" 
     2949        # Do it if params exist 
     2950        if self.parameters: 
     2951 
     2952            for param in self.parameters: 
     2953                content += param[1]  # parameter name 
    29972954                content += tab 
    2998  
    2999         content += crlf 
    3000  
    3001         # Construct row of parameter values and errors 
    3002         for param in all_params: 
    3003             value = param[2] 
    3004             if hasattr(value, 'GetValue'): 
    3005                 # param[2] is a text box 
    3006                 value = value.GetValue() 
    3007             else: 
    3008                 # param[2] is a float (from our self._get_copy_params_details) 
    3009                 value = str(value) 
    3010             content += value 
    3011             content += tab 
    3012             if param[1] in fitted_param_names: 
    3013                 # Only print errors for fitted parameters 
    3014                 content += param[4].GetValue() 
    3015                 content += tab  
    3016  
    3017         return content 
     2955                content += param[1] + "_err" 
     2956                content += tab 
     2957 
     2958            content += crlf 
     2959 
     2960            # row of values and errors... 
     2961            for param in self.parameters: 
     2962                content += param[2].GetValue()  # value 
     2963                content += tab 
     2964                content += param[4].GetValue()  # error 
     2965                content += tab 
     2966 
     2967            return content 
     2968        else: 
     2969            return False 
    30182970 
    30192971    def get_copy_latex(self): 
     
    30302982        Get the string copies of the param names and values in the tap 
    30312983        """ 
    3032         if not self.parameters: 
    3033             # Do nothing if self.parameters doesn't exist 
    3034             return False 
    3035          
    30362984        content = '\\begin{table}' 
    30372985        content += '\\begin{tabular}[h]' 
     
    30402988        tab = chr(9) 
    30412989 
    3042         all_params, fitted_param_names = self._get_copy_params_details() 
    3043  
    3044         content += '{|' 
    3045         for param in all_params: 
    3046             content += 'l|l|' 
    3047         content += '}\hline' 
    3048         content += crlf 
    3049  
    3050         # Construct row of parameter names 
    3051         for index, param in enumerate(all_params): 
    3052             name = param[1] # Parameter name 
    3053             content += name.replace('_', '\_')  # Escape underscores 
    3054             if name in fitted_param_names: 
    3055                 # Only print errors for fitted parameters 
     2990        # Do it if params exist 
     2991        if self.parameters: 
     2992 
     2993            content += '{|' 
     2994            for param in self.parameters: 
     2995                content += 'l|l|' 
     2996            content += '}\hline' 
     2997            content += crlf 
     2998 
     2999            for index, param in enumerate(self.parameters): 
     3000                content += param[1].replace('_', '\_')  # parameter name 
    30563001                content += ' & ' 
    3057                 content += name.replace('_', '\_') + "\_err" 
    3058             if index < len(all_params) - 1: 
     3002                content += param[1].replace('_', '\_') + "\_err" 
     3003                if index < len(self.parameters) - 1: 
     3004                    content += ' & ' 
     3005            content += '\\\\ \\hline' 
     3006            content += crlf 
     3007 
     3008            # row of values and errors... 
     3009            for index, param in enumerate(self.parameters): 
     3010                content += param[2].GetValue()  # parameter value 
    30593011                content += ' & ' 
    3060  
    3061         content += '\\\\ \\hline' 
    3062         content += crlf 
    3063  
    3064         # Construct row of values and errors 
    3065         for index, param in enumerate(all_params): 
    3066             value = param[2] 
    3067             if hasattr(value, "GetValue"): 
    3068                 # value is a text box 
    3069                 value = value.GetValue() 
    3070             else: 
    3071                 # value is a float (from self._get_copy_params_details) 
    3072                 value = str(value) 
    3073             content += value 
    3074             if param[1] in fitted_param_names: 
    3075                 # Only print errors for fitted params 
    3076                 content += ' & ' 
    3077                 content += param[4].GetValue() 
    3078             if index < len(all_params) - 1: 
    3079                 content += ' & ' 
    3080          
    3081         content += '\\\\ \\hline' 
    3082         content += crlf 
    3083         content += '\\end{tabular}' 
    3084         content += '\\end{table}' 
    3085  
    3086         return content 
     3012                content += param[4].GetValue()  # parameter error 
     3013                if index < len(self.parameters) - 1: 
     3014                    content += ' & ' 
     3015            content += '\\\\ \\hline' 
     3016            content += crlf 
     3017 
     3018            content += '\\end{tabular}' 
     3019            content += '\\end{table}' 
     3020            return content 
     3021        else: 
     3022            return False 
    30873023 
    30883024    def set_clipboard(self, content=None): 
  • src/sas/sasgui/perspectives/fitting/fitpage.py

    r0b6f83c r9a5097c  
    289289        self.btFitHelp.SetToolTipString("General fitting help.") 
    290290        self.btFitHelp.Bind(wx.EVT_BUTTON, self._onFitHelp) 
    291  
     291         
    292292        # Resolution Smearing Help button (for now use same technique as 
    293293        # used for dI help to get tiniest possible button that works 
     
    303303        self.btSmearHelp.SetToolTipString("Resolution smearing help.") 
    304304        self.btSmearHelp.Bind(wx.EVT_BUTTON, self._onSmearHelp) 
    305  
     305         
    306306        # textcntrl for custom resolution 
    307307        self.smear_pinhole_percent = ModelTextCtrl(self, wx.ID_ANY, 
     
    564564        sizer.Add(self.draw_button, 0, 0) 
    565565        sizer.Add((-1, 5)) 
    566  
     566         
    567567        sizer.Add(self.tcChi, 0, 0) 
    568568        sizer.Add(self.Npts_fit, 0, 0) 
     
    570570        sizer.Add(self.btFit, 0, 0) 
    571571        sizer.Add(self.btFitHelp, 0, 0) 
    572  
     572         
    573573        boxsizer_range.Add(sizer_chi2) 
    574574        boxsizer_range.Add(sizer) 
     
    21812181        self.save_current_state() 
    21822182 
    2183         if not self.is_mac: 
    2184             self.Layout() 
    2185             self.Refresh() 
    21862183        # plot model ( when drawing, do not update chisqr value again) 
    21872184        self._draw_model(update_chisqr=False, source='fit') 
     
    27782775            else: 
    27792776                return cmp(a.lower(), b.lower()) 
    2780  
     2777         
    27812778        # keys obtained now from ordered dict, so commenting alphabetical 
    27822779        # ordering keys.sort(custom_compare) 
  • src/sas/sasgui/perspectives/fitting/fitpanel.py

    r6f9abd3 r67b0a99  
    501501            if data is None: 
    502502                return None 
    503         focused_page = self.GetPage(self.GetSelection()) 
    504503        for page in self.opened_pages.values(): 
    505504            # check if the selected data existing in the fitpanel 
    506505            pos = self.GetPageIndex(page) 
    507506            if not check_data_validity(page.get_data()) and not page.batch_on: 
    508                 if page.model is not None and page != focused_page: 
    509                     # Page has an active theory and is in background - don't 
    510                     # send data here. 
    511                     continue 
    512507                # make sure data get placed in 1D empty tab if data is 1D 
    513508                # else data get place on 2D tab empty tab 
  • src/sas/sasgui/perspectives/fitting/fitting.py

    r2d9526d r2d9526d  
    13261326 
    13271327                is_data2d = issubclass(data.__class__, Data2D) 
    1328                 # Check consistency of arrays 
     1328                #check consistency of arrays 
    13291329                if not is_data2d: 
    13301330                    if len(res.theory) == len(res.index[res.index]) and \ 
     
    13371337                    new_theory[res.index == False] = np.nan 
    13381338                    correct_result = True 
    1339                 # Get all fittable parameters of the current model 
     1339                #get all fittable parameters of the current model 
    13401340                param_list = model.getParamList() 
    13411341                for param in model.getDispParamList(): 
    1342                     if '.' in param and param in param_list: 
    1343                         # Ensure polydispersity results are displayed 
    1344                         p1, p2 = param.split('.') 
    1345                         if not model.is_fittable(p1) and not (p2 == 'width' and param in res.param_list)\ 
    1346                             and param in param_list: 
    1347                             param_list.remove(param) 
    1348                     elif not model.is_fittable(param) and \ 
     1342                    if not model.is_fittable(param) and \ 
    13491343                        param in param_list: 
    13501344                        param_list.remove(param) 
     
    13671361                    batch_outputs["Chi2"].append(ERROR) 
    13681362                    for param in param_list: 
    1369                         # Save value of  fixed parameters 
     1363                        # save value of  fixed parameters 
    13701364                        if param not in res.param_list: 
    13711365                            batch_outputs[str(param)].append(ERROR) 
    13721366                        else: 
    1373                             # Save only fitted values 
     1367                            #save only fitted values 
    13741368                            batch_outputs[param].append(ERROR) 
    13751369                            batch_inputs["error on %s" % str(param)].append(ERROR) 
  • test/corfunc/test/utest_corfunc.py

    r968d67e r253eb6c6  
    1717            upperq=(0.15, 0.24)) 
    1818        self.extrapolation = None 
    19         self.transformation = None 
    2019 
    2120    def extrapolate(self): 
Note: See TracChangeset for help on using the changeset viewer.