Changes in src/sas/sasgui/perspectives/fitting/pagestate.py [c8e1996:0b1d7d3] in sasview
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/sas/sasgui/perspectives/fitting/pagestate.py
rc8e1996 r0b1d7d3 25 25 from lxml import etree 26 26 27 from sasmodels import convert 27 28 import sasmodels.weights 28 29 … … 355 356 obj.saved_states[copy_name] = copy_state 356 357 return obj 358 359 def _is_sasmodels(self): 360 """ 361 A check to see if the loaded save state was saved in SasView v4_0+ 362 :return: None 363 """ 364 newname = convert._conversion_target(self.formfactorcombobox) 365 if newname == None: 366 return True 367 else: 368 return False 369 370 def _convert_to_sasmodels(self): 371 """ 372 Convert parameters to a form usable by sasmodels converter 373 374 :return: None 375 """ 376 # Create conversion dictionary to send to sasmodels 377 p = dict() 378 for fittable, name, value, _, uncert, lower, upper, units in \ 379 self.parameters: 380 if not value: 381 value = numpy.nan 382 if not uncert or uncert[1] == '': 383 uncert[0] = False 384 uncert[1] = numpy.nan 385 if not upper or upper[1] == '': 386 upper[0] = False 387 upper[1] = numpy.nan 388 if not lower or lower[1] == '': 389 lower[0] = False 390 lower[1] = numpy.nan 391 p[name] = float(value) 392 p[name + ".fittable"] = bool(fittable) 393 p[name + ".std"] = float(uncert[1]) 394 p[name + ".upper"] = float(upper[1]) 395 p[name + ".lower"] = float(lower[1]) 396 p[name + ".units"] = units 397 398 structurefactor, params = \ 399 convert.convert_model(self.structurecombobox, p) 400 formfactor, params = \ 401 convert.convert_model(self.formfactorcombobox, params) 402 # if len(self.str_parameters) > 0: 403 # formfactor, str_params = \ 404 # convert.convert_model(formfactor, self.str_parameters) 405 406 # Only convert if old != new, otherwise all the same 407 if formfactor != self.formfactorcombobox or \ 408 structurefactor != self.structurecombobox: 409 self.formfactorcombobox = formfactor 410 self.structurecombobox = structurefactor 411 self.parameters = [] 412 for name, info in params.iteritems(): 413 if ".fittable" in name or ".std" in name or ".upper" in name or\ 414 ".lower" in name or ".units" in name: 415 pass 416 else: 417 fittable = params.get(name + ".fittable", True) 418 std = params.get(name + ".std", '0.0') 419 upper = params.get(name + ".upper", 'inf') 420 lower = params.get(name + ".lower", '-inf') 421 units = params.get(name + ".units") 422 if std is not None and std is not numpy.nan: 423 std = [True, str(std)] 424 else: 425 std = [False, ''] 426 if lower is not None and lower is not numpy.nan: 427 lower = [True, str(lower)] 428 else: 429 lower = [True, '-inf'] 430 if upper is not None and upper is not numpy.nan: 431 upper = [True, str(upper)] 432 else: 433 upper = [True, 'inf'] 434 param_list = [bool(fittable), str(name), str(info), 435 "+/-", std, lower, upper, str(units)] 436 self.parameters.append(param_list) 437 357 438 358 439 def _repr_helper(self, list, rep):
Note: See TracChangeset
for help on using the changeset viewer.