Changeset 3d8c49a in sasview


Ignore:
Timestamp:
Nov 9, 2016 8:57:23 AM (7 years ago)
Author:
krzywon
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.1.1, release-4.1.2, release-4.2.2, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
Children:
4ec7089
Parents:
8bd5840
Message:

#795: Start of the conversion of old save states to new.

Location:
src/sas/sasgui/perspectives/fitting
Files:
2 edited

Legend:

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

    r8bd5840 r3d8c49a  
    11571157            category_pos = int(state.categorycombobox) 
    11581158        except: 
    1159             import sasmodels.convert as convert 
    11601159            if state.formfactorcombobox is not None: 
    1161                 state.formfactorcombobox, state.parameters = \ 
    1162                     convert.convert_model(state.formfactorcombobox, 
    1163                                           state.parameters) 
    1164             state.formfactorcombobox = state.formfactorcombobox.lower() 
    1165             state.formfactorcombobox = \ 
    1166                 state.formfactorcombobox.replace('model', '') 
    1167             state.formfactorcombobox = unicode(state.formfactorcombobox) 
     1160                state._convert_to_sasmodels() 
    11681161            state.categorycombobox = unicode(state.categorycombobox) 
    11691162            if state.categorycombobox in self.categorybox.Items: 
  • src/sas/sasgui/perspectives/fitting/pagestate.py

    rc8e1996 r3d8c49a  
    355355            obj.saved_states[copy_name] = copy_state 
    356356        return obj 
     357 
     358    def _convert_to_sasmodels(self): 
     359        """ 
     360        Convert parameters to a form usable by sasmodels converter 
     361 
     362        :return: None 
     363        """ 
     364        from sasmodels import convert 
     365        # Create conversion dictionary to send to sasmodels 
     366        p = dict() 
     367        for fittable, name, value, _, uncert, lower, upper, units in \ 
     368                self.parameters: 
     369            if not value: 
     370                value = numpy.nan 
     371            if not uncert or uncert[1] == '': 
     372                uncert[0] = False 
     373                uncert[1] = numpy.nan 
     374            if not upper or upper[1] == '': 
     375                upper[0] = False 
     376                upper[1] = numpy.nan 
     377            if not lower or lower[1] == '': 
     378                lower[0] = False 
     379                lower[1] = numpy.nan 
     380            p[name] = { 
     381                "fittable" : bool(fittable), 
     382                "value" : float(value), 
     383                "std" : float(uncert[1]), 
     384                "upper" : float(upper[1]), 
     385                "lower" : float(lower[1]), 
     386                "units" : units, 
     387            } 
     388        name, params = convert.convert_model(self.formfactorcombobox, p) 
     389 
     390        # Only convert if old != new, otherwise all the same 
     391        if name != self.formfactorcombobox: 
     392            self.formfactorcombobox = name 
     393            self.parameters = [] 
     394            for name, info in params.iteritems(): 
     395                if info.get("std") is not numpy.nan: 
     396                    std = ['True', str(info.get("std"))] 
     397                else: 
     398                    std = ['False', ''] 
     399                if info.get("lower") is not numpy.nan: 
     400                    lower = ['True', str(info.get("lower"))] 
     401                else: 
     402                    lower = ['False', ''] 
     403                if info.get("upper") is not numpy.nan: 
     404                    upper = ['True', str(info.get("upper"))] 
     405                else: 
     406                    upper = ['False', ''] 
     407                param_list = [info.get("fittable"), name, info.get("value"), 
     408                              "+/-", std, lower, upper] 
     409                self.parameters.append(param_list) 
     410 
    357411 
    358412    def _repr_helper(self, list, rep): 
Note: See TracChangeset for help on using the changeset viewer.