Ignore:
Timestamp:
Aug 3, 2018 8:30:04 AM (6 years ago)
Author:
Piotr Rozyczko <rozyczko@…>
Branches:
ESS_GUI, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc
Children:
04972ea
Parents:
cf8d6c9
git-author:
Piotr Rozyczko <rozyczko@…> (08/03/18 07:57:48)
git-committer:
Piotr Rozyczko <rozyczko@…> (08/03/18 08:30:04)
Message:

Copy/paste fitting parameters SASVIEW-933

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/sas/qtgui/Perspectives/Fitting/FittingUtilities.py

    r57be490 r8e2cd79  
    33from PyQt5 import QtCore 
    44from PyQt5 import QtGui 
    5 from PyQt5 import QtWidgets 
    65 
    76import numpy 
     
    9998                    continue 
    10099                width = kernel_module.getParam(p.name+'.width') 
    101                 type = kernel_module.getParam(p.name+'.type') 
     100                ptype = kernel_module.getParam(p.name+'.type') 
    102101 
    103102                item1_2 = QtGui.QStandardItem(str(width)) 
     
    107106                item1_4 = QtGui.QStandardItem() 
    108107                item1_4.setEditable(False) 
    109                 item1_5 = QtGui.QStandardItem(type) 
     108                item1_5 = QtGui.QStandardItem(ptype) 
    110109                item1_5.setEditable(False) 
    111110                poly_item.appendRow([item1_1, item1_2, item1_3, item1_4, item1_5]) 
     
    434433    returning the modified (deep) copy of the kernel. 
    435434    """ 
    436     assert(isinstance(results, dict)) 
     435    assert isinstance(results, dict) 
    437436    local_kernel = copy.deepcopy(kernel) 
    438437 
     
    455454    for row in range(num_rows): 
    456455        param_name = model.item(row, 0).text() 
    457         checkbox_state = model.item(row,0).checkState() == QtCore.Qt.Checked 
    458         value= model.item(row, 1).text() 
     456        checkbox_state = model.item(row, 0).checkState() == QtCore.Qt.Checked 
     457        value = model.item(row, 1).text() 
    459458        column_shift = 0 
    460459        if model.columnCount() == 5: # no error column 
     
    485484    """ 
    486485    param = [] 
    487     if kernel_module is None:  
     486    if kernel_module is None: 
    488487        return None 
    489488    for param_name in list(kernel_module.params.keys()): 
     
    502501 
    503502    return param 
     503 
     504def formatParameters(parameters): 
     505    """ 
     506    Prepare the parameter string in the standard SasView layout 
     507    """ 
     508    assert parameters is not None 
     509    assert isinstance(parameters, list) 
     510    output_string = "sasview_parameter_values:" 
     511    for parameter in parameters: 
     512        output_string += ",".join([p for p in parameter if p is not None]) 
     513        output_string += ":" 
     514    return output_string 
     515 
     516def formatParametersExcel(parameters): 
     517    """ 
     518    Prepare the parameter string in the Excel format (tab delimited) 
     519    """ 
     520    assert parameters is not None 
     521    assert isinstance(parameters, list) 
     522    crlf = chr(13) + chr(10) 
     523    tab = chr(9) 
     524 
     525    output_string = "" 
     526    # names 
     527    names = "" 
     528    values = "" 
     529    for parameter in parameters: 
     530        names += parameter[0]+tab 
     531        # Add the error column if fitted 
     532        if parameter[1] == "True" and parameter[3] is not None: 
     533            names += parameter[0]+"_err"+tab 
     534 
     535        values += parameter[2]+tab 
     536        if parameter[1] == "True" and parameter[3] is not None: 
     537            values += parameter[3]+tab 
     538        # add .npts and .nsigmas when necessary 
     539        if parameter[0][-6:] == ".width": 
     540            names += parameter[0].replace('.width', '.nsigmas') + tab 
     541            names += parameter[0].replace('.width', '.npts') + tab 
     542            values += parameter[5] + tab + parameter[4] + tab 
     543 
     544    output_string = names + crlf + values 
     545    return output_string 
     546 
     547def formatParametersLatex(parameters): 
     548    """ 
     549    Prepare the parameter string in latex 
     550    """ 
     551    assert parameters is not None 
     552    assert isinstance(parameters, list) 
     553    output_string = r'\begin{table}' 
     554    output_string += r'\begin{tabular}[h]' 
     555 
     556    crlf = chr(13) + chr(10) 
     557    output_string += '{|' 
     558    output_string += 'l|l|'*len(parameters) 
     559    output_string += r'}\hline' 
     560    output_string += crlf 
     561 
     562    for index, parameter in enumerate(parameters): 
     563        name = parameter[0] # Parameter name 
     564        output_string += name.replace('_', r'\_')  # Escape underscores 
     565        # Add the error column if fitted 
     566        if parameter[1] == "True" and parameter[3] is not None: 
     567            output_string += ' & ' 
     568            output_string += parameter[0]+r'\_err' 
     569 
     570        if index < len(parameters) - 1: 
     571            output_string += ' & ' 
     572 
     573        # add .npts and .nsigmas when necessary 
     574        if parameter[0][-6:] == ".width": 
     575            output_string += parameter[0].replace('.width', '.nsigmas') + ' & ' 
     576            output_string += parameter[0].replace('.width', '.npts') 
     577 
     578            if index < len(parameters) - 1: 
     579                output_string += ' & ' 
     580 
     581    output_string += r'\\ \hline' 
     582    output_string += crlf 
     583 
     584    # Construct row of values and errors 
     585    for index, parameter in enumerate(parameters): 
     586        output_string += parameter[2] 
     587        if parameter[1] == "True" and parameter[3] is not None: 
     588            output_string += ' & ' 
     589            output_string += parameter[3] 
     590 
     591        if index < len(parameters) - 1: 
     592            output_string += ' & ' 
     593 
     594        # add .npts and .nsigmas when necessary 
     595        if parameter[0][-6:] == ".width": 
     596            output_string += parameter[5] + ' & ' 
     597            output_string += parameter[4] 
     598 
     599            if index < len(parameters) - 1: 
     600                output_string += ' & ' 
     601 
     602    output_string += r'\\ \hline' 
     603    output_string += crlf 
     604    output_string += r'\end{tabular}' 
     605    output_string += r'\end{table}' 
     606 
     607    return output_string 
Note: See TracChangeset for help on using the changeset viewer.