Changes in / [840ac87:912e645] in sasview


Ignore:
Files:
2 deleted
4 edited

Legend:

Unmodified
Added
Removed
  • run.py

    r3388337 rbc8b8a1  
    6767 
    6868 
    69 def prepare(rebuild=True): 
     69def prepare(): 
    7070    # Don't create *.pyc files 
    7171    sys.dont_write_bytecode = True 
     
    113113    # Build project if the build directory does not already exist. 
    114114    # PAK: with "update" we can always build since it is fast 
    115     if rebuild or not os.path.exists(build_path): 
     115    if True or not os.path.exists(build_path): 
    116116        import subprocess 
    117117        build_cmd = [sys.executable, "setup.py", "build", "update"] 
  • src/sas/sascalc/fit/BumpsFitting.py

    r0aeba4e r1386b2f  
    22BumpsFitting module runs the bumps optimizer. 
    33""" 
    4 from __future__ import print_function 
    5  
    64import os 
    75from datetime import timedelta, datetime 
     
    119 
    1210from bumps import fitters 
    13  
    1411try: 
    1512    from bumps.options import FIT_CONFIG 
    16     # Preserve bumps default fitter in case someone wants it later 
    17     BUMPS_DEFAULT_FITTER = FIT_CONFIG.selected_id 
    1813    # Default bumps to use the Levenberg-Marquardt optimizer 
    1914    FIT_CONFIG.selected_id = fitters.LevenbergMarquardtFit.id 
     
    2217except ImportError: 
    2318    # CRUFT: Bumps changed its handling of fit options around 0.7.5.6 
    24     # Preserve bumps default fitter in case someone wants it later 
    25     BUMPS_DEFAULT_FITTER = fitters.FIT_DEFAULT 
    2619    # Default bumps to use the Levenberg-Marquardt optimizer 
    2720    fitters.FIT_DEFAULT = 'lm' 
     
    133126        if initial_values is not None: 
    134127            self._reset_pars(fitted, initial_values) 
    135         #print("constraints", constraints) 
    136128        self.constraints = dict(constraints) 
    137129        self.set_fitted(fitted) 
     
    230222    def _setup(self): 
    231223        exprs = {} 
    232         for model in self.models: 
    233             exprs.update((".".join((model.name, k)), v) 
    234                          for k, v in model.constraints.items()) 
     224        for M in self.models: 
     225            exprs.update((".".join((M.name, k)), v) for k, v in M.constraints.items()) 
    235226        if exprs: 
    236             symtab = dict((".".join((model.name, k)), p) 
    237                           for model in self.models 
    238                           for k, p in model.parameters().items()) 
     227            symtab = dict((".".join((M.name, k)), p) 
     228                          for M in self.models 
     229                          for k, p in M.parameters().items()) 
    239230            self.update = compile_constraints(symtab, exprs) 
    240231        else: 
  • src/sas/sascalc/fit/pagestate.py

    r59873e1 r59873e1  
    11""" 
    22Class that holds a fit page state 
    3  
    4 Pagestate fields reflect the names of the gui controls from the sasview 3.x 
    5 fit page, so they are somewhat difficult to interpret. 
    6  
    7 Pagestate attributes are as follows: 
    8  
    9     # =>name: desc       indicates the attribute is derived 
    10     # name(xml): desc    indicates the attribute name differs from the xml tag 
    11  
    12     # SasView version which saved the file 
    13     version: (4, 1, 2) from <fitting_plug_in version="major.minor.point"> 
    14  
    15     # Session information 
    16     group_id: unique id for fit page in running system (int) 
    17     => data_group_id: unique id for data item in running system (None) 
    18  
    19     # Data file 
    20     data: contents of <SASdata> (Data1D or Data2D) 
    21     data_name: filename + [num] (latex_smeared.xml [1]) 
    22     data_id: filename + [num] + timestamp (latex_smeared.xml [1]1523303027.73) 
    23     file: filename + [date time] (latex_smeared.xml [Apr 09 15:45]) 
    24     name: ?? (None) 
    25     npts: number of points (float) 
    26     enable2D: True if data is 2D (or if model is 2D and no data) 
    27     is_data: True (pagestate will not save if there is no data attached) 
    28  
    29     # Data weighting 
    30     dI_didata: True if dy = data.dy 
    31     dI_idata: True if dy = data.y 
    32     dI_noweight: True if dy = 1 
    33     dI_sqrdata: True if dy = sqrt(data.y) 
    34  
    35     # Data selection 
    36     qmax: maximum q (float) 
    37     qmin: minimum q (float) 
    38     => qmax_x: ?? (None) 
    39     => qmin_x: ?? (None) 
    40  
    41     # Resolution smearing 
    42     enable_smearer: True if use data.dx 
    43     disable_smearer: True if no smearing 
    44     pinhole_smearer: True if custom pinhole smear 
    45     slit_smearer: True if custom slit smear 
    46     dq_l: 2D resolution <dQp> 
    47     dq_r: 2D resolution <dQs> 
    48     dx_old: True for 3.x version of custom pinhole, which used dx_min rather 
    49         than dx_percent, with dx_percent interpreted as 100 * dx_percent/q[0] 
    50     dx_percent: custom pinhole resolution percentage 
    51     dxl: slit height for custom slit resolution 
    52     dxw: slit width for custom slit resolution 
    53     smearer: repr() for active smearer (None on load) 
    54     smear_type: None (None on load) 
    55  
    56     # Model selection 
    57     categorycombobox: model category 
    58     formfactorcombobox: model name (could be "[plug-in] name") 
    59     structurecombobox: structure factor model name (string or None or "None") 
    60     multi_factor: multiplicity (integer or None) 
    61     magnetic_on: True if model is magnetic (only for 2D data for now) 
    62     => model: active model object (None on load) 
    63  
    64     # Model parameters 
    65     # Parameter is a tuple with the following structure.  The parentheses 
    66     # indicate xml attribute for the <parameter .../> tag: 
    67     #    fitted(selected_to_fit): True if parameter is fitted 
    68     #    name(name): display name for the parameter (string) 
    69     #    value(value): displayed parameter value (string) 
    70     #    => plusminus: '+/-' (constant string) 
    71     #    => uncertainty: tuple 
    72     #        (uncertainty_displayed): True if there is an uncertainty 
    73     #        (uncertainty_value): displayed uncertainty (string) 
    74     #    => lower: tuple 
    75     #        (minimum_displayed): True if there is a lower bound 
    76     #        (minimum_value): displayed lower bound (string) 
    77     #    => upper: tuple 
    78     #        (maximum_displayed): True if there is a upper bound 
    79     #        (maximum_value): displayed upper bound (string) 
    80     #    units(unit): displayed units 
    81     parameters: list of normal parameters 
    82     fixed_param: list of non-fitting parameters (nsigma, npts in dispersity) 
    83     fittable_param: list of fittable dispersity parameters (distribution width) 
    84     str_parameters: list of selection parameters (e.g, shell forms in spherical_sld) 
    85     orientation_params(orientation_parameters): list of orientation and 
    86         magnetic parameters (already included in parameters, so safe to ignore) 
    87     orientation_params_disp(dispersity_parameters): list of orientation 
    88         disperisty parameters (already included in fixed_param and 
    89         fittable_param so safe to ignore) 
    90  
    91     # Dispersity controls 
    92     enable_disp: True if dispersity parameters 
    93     disable_disp: True if no dispersity parameters 
    94     disp_obj_dict(disp_obj): {'parameter.width': 'dispersity distribution'} 
    95     values: {'parameter.width': [array distribution parameter values] } 
    96     weights: {'parameter.width': [array distribution parameter weights] } 
    97     => disp_box 0 
    98     => disp_cb_dict {} 
    99     => disp_list [] 
    100  
    101     # Simultaneous fitting 
    102  
    103     => images: None (initialized but unused?) 
    104     => reset: False (initialized but unused?) 
    105     => event_owner None 
    106     => m_name None 
    107     => manager None 
    108     => page_name 
    109     => param_toFit: [] 
    110     => process: list of process done on object [] (maybe managed by guiframe?) 
    111     => saved_states {} 
    112     => cb1: False (simfit cb1 is now stored in select_all) 
    113  
    114     tcChi 1.3463 
    115     theory_data None 
    116     timestamp 1523303103.74 
    117  
    118 Constraint attributes are as follows: 
    119  
    120     constraint_dict {} 
    121     constraints_list 
    122         {'model_cbox': 'M2', 'param_cbox': 'scale', 'egal_txt': ' = ', 'constraint': 'M1.scale'} 
    123         {'model_cbox': 'M2', 'param_cbox': 'radius', 'egal_txt': ' = ', 'constraint': 'M1.radius'} 
    124         {'model_cbox': 'M2', 'param_cbox': 'radius.width', 'egal_txt': ' = ', 'constraint': 'M1.radius.width'} 
    125     fit_page_no None 
    126     model_list 
    127         {'fit_number': '393', 'checked': 'True', 'fit_page_source': 'M2', 'name': 'latex_smeared.xml   [1]1523535051.03', 'model_name': 'sphere'} 
    128         {'fit_number': '335', 'checked': 'True', 'fit_page_source': 'M1', 'name': 'latex_smeared.xml  1523535050.03', 'model_name': 'sphere'} 
    129     model_to_fit 
    130     no_constraint 0 
    131     select_all True 
    132  
    133  
    1343""" 
    1354# TODO: Refactor code so we don't need to use getattr/setattr 
     
    293162        self.theory_data = None 
    294163        # Is 2D 
     164        self.is_2D = False 
    295165        self.images = None 
    296166 
     
    687557        temp_parameters = [] 
    688558        temp_fittable_param = [] 
     559        if self.data.__class__.__name__ == "Data2D": 
     560            self.is_2D = True 
     561        else: 
     562            self.is_2D = False 
    689563        if self.data is not None: 
    690             is_2D = (self.data.__class__.__name__ == "Data2D") 
    691             if not is_2D: 
     564            if not self.is_2D: 
    692565                for item in self.parameters: 
    693566                    if item not in self.orientation_params: 
  • src/sas/sasgui/perspectives/fitting/fitpage.py

    rdabcaf7 rdabcaf7  
    5050        # draw sizer 
    5151        self._fill_data_sizer() 
     52        self.is_2D = None 
    5253        self.fit_started = False 
    5354        self.weightbt_string = None 
Note: See TracChangeset for help on using the changeset viewer.