Changes in / [db24ec1:1dc134e6] in sasview
- Files:
-
- 2 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
run.py
rbc8b8a1 r3388337 67 67 68 68 69 def prepare( ):69 def prepare(rebuild=True): 70 70 # Don't create *.pyc files 71 71 sys.dont_write_bytecode = True … … 113 113 # Build project if the build directory does not already exist. 114 114 # PAK: with "update" we can always build since it is fast 115 if Trueor not os.path.exists(build_path):115 if rebuild or not os.path.exists(build_path): 116 116 import subprocess 117 117 build_cmd = [sys.executable, "setup.py", "build", "update"] -
src/sas/sascalc/fit/BumpsFitting.py
r1386b2f r0aeba4e 2 2 BumpsFitting module runs the bumps optimizer. 3 3 """ 4 from __future__ import print_function 5 4 6 import os 5 7 from datetime import timedelta, datetime … … 9 11 10 12 from bumps import fitters 13 11 14 try: 12 15 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 13 18 # Default bumps to use the Levenberg-Marquardt optimizer 14 19 FIT_CONFIG.selected_id = fitters.LevenbergMarquardtFit.id … … 17 22 except ImportError: 18 23 # 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 19 26 # Default bumps to use the Levenberg-Marquardt optimizer 20 27 fitters.FIT_DEFAULT = 'lm' … … 126 133 if initial_values is not None: 127 134 self._reset_pars(fitted, initial_values) 135 #print("constraints", constraints) 128 136 self.constraints = dict(constraints) 129 137 self.set_fitted(fitted) … … 222 230 def _setup(self): 223 231 exprs = {} 224 for M in self.models: 225 exprs.update((".".join((M.name, k)), v) for k, v in M.constraints.items()) 232 for model in self.models: 233 exprs.update((".".join((model.name, k)), v) 234 for k, v in model.constraints.items()) 226 235 if exprs: 227 symtab = dict((".".join(( M.name, k)), p)228 for Min self.models229 for k, p in M.parameters().items())236 symtab = dict((".".join((model.name, k)), p) 237 for model in self.models 238 for k, p in model.parameters().items()) 230 239 self.update = compile_constraints(symtab, exprs) 231 240 else: -
src/sas/sascalc/fit/pagestate.py
r863ac2c r863ac2c 1 1 """ 2 2 Class 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 3 134 """ 4 135 # TODO: Refactor code so we don't need to use getattr/setattr … … 162 293 self.theory_data = None 163 294 # Is 2D 164 self.is_2D = False165 295 self.images = None 166 296 … … 557 687 temp_parameters = [] 558 688 temp_fittable_param = [] 559 if self.data.__class__.__name__ == "Data2D":560 self.is_2D = True561 else:562 self.is_2D = False563 689 if self.data is not None: 564 if not self.is_2D: 690 is_2D = (self.data.__class__.__name__ == "Data2D") 691 if not is_2D: 565 692 for item in self.parameters: 566 693 if item not in self.orientation_params: -
src/sas/sasgui/perspectives/fitting/fitpage.py
rba1c145 rba1c145 52 52 # draw sizer 53 53 self._fill_data_sizer() 54 self.is_2D = None55 54 self.fit_started = False 56 55 self.weightbt_string = None
Note: See TracChangeset
for help on using the changeset viewer.