Changeset 6331 for qesdi


Ignore:
Timestamp:
18/01/10 17:20:30 (10 years ago)
Author:
pnorton
Message:

Introduced the 'dataVariables' config section to specify which of the many variables actually contains the data and to specify an alias for the variable name.

Location:
qesdi/graphplotter/trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • qesdi/graphplotter/trunk/df_config/co2.ini

    r6311 r6331  
    77sensitivity=sensitivity_name 
    88model=model_name 
     9 
     10[DataVariables] 
     11data=carbon dioxide 
  • qesdi/graphplotter/trunk/graphplotter/controllers/buildplot.py

    r6330 r6331  
    2121         
    2222        c.dataFiles = [''] + cr.getDataFileList() 
    23         log.debug("c.dataFiles = %s" % (c.dataFiles,)) 
     23         
    2424        params = getParams(request) 
    2525         
     
    3838        dfConfig = cr.getConfig(c.selectedDataFile) 
    3939        reader = DataReader(dfConfig['path'], dfConfig['axisLookup']) 
     40        log.debug("dfConfig = %s" % (dfConfig,)) 
    4041         
    41         c.variables = [''] + reader.getVariableNames() 
     42        if 'dataVariables' in dfConfig: 
     43            allVars = reader.getVariableNames() 
     44             
     45            for v in dfConfig['dataVariables'].keys(): 
     46                assert v in allVars, 'Variable %s not found in file. Variables found = %s' % (v, allVars) 
     47                 
     48            c.variables = [('','')] + dfConfig['dataVariables'].items() 
     49             
     50        else: 
     51            c.variables = [''] + reader.getVariableNames() 
     52         
     53         
    4254        c.selectedVariable = params.get('variable', '') 
    4355         
  • qesdi/graphplotter/trunk/graphplotter/lib/df_config_reader.py

    r6313 r6331  
    4545                 
    4646            dfConfig['axisLookup'] = axisLookup 
     47             
     48        if self.cp.has_section('DataVariables'): 
     49            dataVariables = {} 
     50            for k in self.cp.options('DataVariables'): 
     51                dataVariables[k] = self.cp.get('DataVariables',k) 
     52             
     53            dfConfig['dataVariables'] = dataVariables 
     54                         
    4755     
    4856        return dfConfig 
  • qesdi/graphplotter/trunk/graphplotter/lib/plot_builder.py

    r6330 r6331  
    3737        plt = Plot() 
    3838         
    39         plt.setYLabel(self.params['variable']) 
     39        plt.setYLabel(self._getVariableName()) 
    4040        plt.setXLabel(self.params['axis']) 
    4141         
    42         s = set(selections[0].items()) 
     42        commonItems = self._getCommonItems(selections) 
    4343         
    44         for sel in selections[1:]: 
    45             s = s.intersection(sel.items()) 
    46              
    47         commonItems = dict(s) 
    48          
    49         title = self.params['variable']+ ' vs ' + self.params['axis'] 
    50          
    51         if len(commonItems) > 1:  
    52             title += ' with ' + self._getLineName(commonItems) 
    53              
    54         plt.setTitle(title) 
     44        self._setPlotTitle(plt, commonItems)     
    5545         
    5646        log.debug("commonItems = %s" % (commonItems,)) 
     
    6151         
    6252             
     53            kwargs ={} 
     54             
    6355            lineName = self._getLineName(sel, commonItems) 
    6456             
    65             plt.draw(xdata, ydata, label=lineName) 
     57            if lineName != '': 
     58                kwargs['label'] = lineName                 
     59             
     60            plt.draw(xdata, ydata, **kwargs) 
     61             
     62            log.debug("xdata = %s, ydata = %s" % (xdata, ydata,)) 
    6663         
    6764        return plt.getImage() 
     
    111108        name = name[:-2] 
    112109        return name 
     110     
     111    def _getCommonItems(self, selections): 
     112        """ 
     113        Finds all the common items in all the selection dictionaries 
     114        """ 
     115         
     116        if len(selections) > 1: 
     117            s = set(selections[0].items()) 
     118             
     119            for sel in selections[1:]: 
     120                s = s.intersection(sel.items()) 
     121             
     122            commonItems = dict(s) 
     123        else: 
     124            commonItems = {} 
     125         
     126        return commonItems 
     127     
     128    def _setPlotTitle(self, plt, commonItems): 
     129         
     130        title = self._getVariableName() + ' vs ' + self.params['axis'] 
     131         
     132        if len(commonItems) > 1:  
     133            title += ' with ' + self._getLineName(commonItems) 
     134             
     135        plt.setTitle(title) 
     136         
     137    def _getVariableName(self): 
     138        """ 
     139        Attempt to get the variable name from the dataVariables section of the 
     140        config file, if not just return the variable from the parameters. 
     141        """ 
     142         
     143        if 'dataVariables' in self.config: 
     144             
     145            if self.params['variable'] in self.config['dataVariables']: 
     146                return self.config['dataVariables'][self.params['variable']] 
     147         
     148        return self.params['variable'] 
  • qesdi/graphplotter/trunk/graphplotter/templates/buildplot.html

    r6330 r6331  
    134134         
    135135    </form> 
    136     <input type="button" value="Remove Selection" onClick="onAddSelectionClick();"></input> 
     136    <input type="button" value="Remove Selection" onClick=""></input> 
    137137     
    138138    <input type="button" value="Refresh" onClick="onRefreshClick();"></input> 
Note: See TracChangeset for help on using the changeset viewer.