Changes in / [9eb5eca:ccd5f01] in sasmodels


Ignore:
Location:
sasmodels
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • sasmodels/conversion_table.py

    re1ea6b5 rfa6d6fc  
    88""" 
    99 
    10 # TODO: May need to version this for future versions of sasview when 
    11 # TODO: models are reparameterized 
    1210 
    1311CONVERSION_TABLE = { 
     
    213211    ], 
    214212    "correlation_length": [ 
    215         "CorrLength", 
     213        "CorrLengthModel", 
    216214        { 
    217215            "porod_scale": "scale_p", 
     
    301299    ], 
    302300    "fractal_core_shell": [ 
    303         "FractalCoreShell", 
     301        "FractalCoreShellModel", 
    304302        { 
    305303            "sld_core": "core_sld", 
     
    323321    ], 
    324322    "gauss_lorentz_gel": [ 
    325         "GaussLorentzGel", 
     323        "GaussLorentzGelModel", 
    326324        { 
    327325            "gauss_scale": "scale_g", 
     
    333331    ], 
    334332    "gaussian_peak": [ 
    335         "Peak Gauss Model", 
     333        "PeakGaussModel", 
    336334        { 
    337335            "peak_pos": "q0", 
     
    345343            "lorentz_scale": "lScale", 
    346344            "guinier_scale": "gScale", 
    347             "fractal_dim": "FractalExp", 
     345            "fractal_dim": "scale", 
    348346            "cor_length": "zeta", 
    349347        } 
    350348    ], 
    351349    "guinier": [ 
    352         "Guinier", 
     350        "GuinierModel", 
    353351        { 
    354352            "rg": "rg" 
     
    356354    ], 
    357355    "guinier_porod": [ 
    358         "GuinierPorod", 
     356        "GuinierPorodModel", 
    359357        { 
    360358            "s": "dim", 
     
    456454            "d_spacing": "spacing", 
    457455            "Caille_parameter": "caille", 
    458             "Nlayers": "n_plates", 
     456            "Nlayers": "N_plates", 
    459457        } 
    460458    ], 
     
    488486    ], 
    489487    "lorentz": [ 
    490         "Lorentz", 
     488        "LorentzModel", 
    491489        { 
    492490            "cor_length": "length" 
     
    512510    ], 
    513511    "mono_gauss_coil": [ 
    514         "Debye", 
     512        "DebyeModel", 
    515513        { 
    516514            "rg": "rg", 
     
    566564    ], 
    567565    "peak_lorentz": [ 
    568         "Peak Lorentz Model", 
     566        "PeakLorentzModel", 
    569567        { 
    570568            "peak_pos": "q0", 
     
    804802    ], 
    805803    "two_lorentzian": [ 
    806         "TwoLorentzian", 
     804        "TwoLorentzianModel", 
    807805        { 
    808806            "lorentz_scale_1": "scale_1", 
     
    816814    ], 
    817815    "two_power_law": [ 
    818         "TwoPowerLaw", 
     816        "TwoPowerLawModel", 
    819817        { 
    820818            "coefficent_1": "coef_A", 
     
    826824    ], 
    827825    "unified_power_Rg": [ 
    828         "UnifiedPowerRg", 
    829         dict(((field_new+str(index), field_old+str(index)) 
    830               for field_new, field_old in [("rg", "Rg"), 
    831                                            ("power", "power"), 
    832                                            ("G", "G"), 
    833                                            ("B", "B"),] 
    834               for index in range(11)), 
    835              **{ 
    836                    "background": "background", 
    837                    "scale": "scale", 
    838                }) 
     826        "UnifiedPowerRgModel", 
     827        { 
     828        } 
    839829    ], 
    840830    "vesicle": [ 
  • sasmodels/convert.py

    re1ea6b5 rf80f334  
    5353    ("_pd_nsigma", ".nsigmas"), 
    5454    ("_pd_type", ".type"), 
    55     (".lower", ".lower"), 
    56     (".upper", ".upper"), 
    57     (".fittable", ".fittable"), 
    58     (".std", ".std"), 
    59     (".units", ".units"), 
    60     ("", "") 
    6155    ] 
    6256 
     
    7064    if id.startswith('M0:'): 
    7165        return True 
     66    if id.startswith('volfraction') or id.startswith('radius_effective'): 
     67        return False 
    7268    if '_pd' in id or '.' in id: 
    7369        return False 
     
    7975        if p.id == id: 
    8076            return p.type == 'sld' 
    81     return False 
     77    raise ValueError("unknown parameter %r in conversion"%id) 
    8278 
    8379def _rescale_sld(model_info, pars, scale): 
     
    123119def _pd_to_underscores(pars): 
    124120    return dict((_dot_pd_to_underscore_pd(k), v) for k, v in pars.items()) 
     121 
     122def _convert_name(conv_dict, pars): 
     123    """ 
     124    Renames parameter values (upper, lower, etc) to v4.0 names 
     125    :param conv_dict: conversion dictionary mapping new name : old name 
     126    :param pars: parameters to convert 
     127    :return: 
     128    """ 
     129    new_pars = {} 
     130    i = 0 
     131    j = 0 
     132    for key_par, value_par in pars.iteritems(): 
     133        j += 1 
     134        for key_conv, value_conv in conv_dict.iteritems(): 
     135            if re.search(value_conv, key_par): 
     136                new_pars[key_par.replace(value_conv, key_conv)] = value_par 
     137                i += 1 
     138                break 
     139            elif re.search("background", key_par) or re.search("scale", key_par): 
     140                new_pars[key_par] = value_par 
     141                i += 1 
     142                break 
     143        if i != j: 
     144            new_pars[key_par] = value_par 
     145            i += 1 
     146    return new_pars 
    125147 
    126148def _convert_pars(pars, mapping): 
     
    144166                    del newpars[source] 
    145167    return newpars 
     168 
    146169 
    147170def _conversion_target(model_name): 
     
    192215            pd = oldpars['radius.width']*oldpars['radius']/thickness 
    193216            oldpars['radius.width'] = pd 
    194     elif name == 'multilayer_vesicle': 
    195         if 'scale' in oldpars: 
    196             oldpars['volfraction'] = oldpars['scale'] 
    197             oldpars['scale'] = 1.0 
    198         if 'scale.lower' in oldpars: 
    199             oldpars['volfraction.lower'] = oldpars['scale.lower'] 
    200         if 'scale.upper' in oldpars: 
    201             oldpars['volfraction.upper'] = oldpars['scale.upper'] 
    202         if 'scale.fittable' in oldpars: 
    203             oldpars['volfraction.fittable'] = oldpars['scale.fittable'] 
    204         if 'scale.std' in oldpars: 
    205             oldpars['volfraction.std'] = oldpars['scale.std'] 
    206         if 'scale.units' in oldpars: 
    207             oldpars['volfraction.units'] = oldpars['scale.units'] 
    208217    elif name == 'pearl_necklace': 
    209218        pass 
     
    227236                oldpars[p + ".upper"] /= 1e-13 
    228237    elif name == 'spherical_sld': 
    229         oldpars["CONTROL"] = 0 
    230         i = 0 
    231         while "nu_inter" + str(i) in oldpars: 
    232             oldpars["CONTROL"] += 1 
    233             i += 1 
     238        oldpars["CONTROL"] += 1 
    234239    elif name == 'teubner_strey': 
    235240        # basically undoing the entire Teubner-Strey calculations here. 
     
    293298        translation = _get_translation_table(model_info) 
    294299    newpars = _hand_convert(newname, pars.copy()) 
     300    newpars = _convert_name(translation, newpars) 
    295301    newpars = _convert_pars(newpars, translation) 
    296302    if not model_info.structure_factor: 
Note: See TracChangeset for help on using the changeset viewer.