Ignore:
Timestamp:
15/01/10 16:26:13 (10 years ago)
Author:
pnorton
Message:

First attempt at getting the buildplot action to work.

Location:
qesdi/graphplotter/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • qesdi/graphplotter/trunk

    • Property svn:ignore
      •  

        old new  
        11.pydevproject 
        22.project 
         3Paste-1.7.2-py2.5.egg 
         4PasteDeploy-1.3.3-py2.5.egg 
         5PasteScript-1.7.3-py2.5.egg 
  • qesdi/graphplotter/trunk/graphplotter/lib/data_reader.py

    r6311 r6313  
    1212class DataReader(object): 
    1313     
    14     def __init__(self, file, variable, axis, selection, axisLookup): 
     14    def __init__(self, file, axisLookup): 
    1515         
    1616        self.file = file 
    17         self.variable = variable 
    18         self.axis = axis 
    19         self.selection = selection 
    2017        self.axisLookup = axisLookup 
    2118     
    22     def getData(self): 
     19    def getData(self, variable, axis, selection): 
     20         
    2321        fin = cdms.open(self.file) 
    2422         
    2523        try: 
    26             var = fin(self.variable) 
     24            var = fin(variable) 
    2725             
    28             selKW = self._buildSelectionKeywords(fin, var) 
     26            selKW = self._buildSelectionKeywords(fin, var, axis, selection) 
    2927             
    30             xdata, ydata = self._getData(var, selKW) 
     28            xdata, ydata = self._getData(var, selKW, axis) 
    3129             
    3230        finally: 
     
    3533        return xdata, ydata 
    3634     
    37     def _buildSelectionKeywords(self, fin, var): 
     35    def getVariableNames(self): 
     36        fin = cdms.open(self.file) 
     37         
     38        variableNames = None 
     39 
     40        try: 
     41            variableNames = fin.listvariables() 
     42        finally: 
     43            fin.close() 
     44         
     45        return variableNames 
     46     
     47    def getAxisNames(self, variable): 
     48        fin = cdms.open(self.file) 
     49         
     50        axisNames = None 
     51        try: 
     52            var = fin(variable) 
     53            axisNames = var.getAxisIds() 
     54        finally: 
     55            fin.close() 
     56         
     57        return axisNames 
     58     
     59    def getAxisValues(self, variable, axis): 
     60        fin = cdms.open(self.file) 
     61         
     62        axisValues = None 
     63        try: 
     64            var = fin(variable) 
     65             
     66            if axis in self.axisLookup: 
     67                axisVar = fin(self.axisLookup[axis]) 
     68                axisValues = axisVar[:] 
     69                if type(axisValues[0]) is not str: 
     70                    axisValues = [self._getString(n) for n in axisValues]                 
     71            else: 
     72                axis = var.getAxis(var.getAxisIndex(axis)) 
     73                axisValues = axis[:] 
     74                 
     75        finally: 
     76            fin.close() 
     77         
     78        return axisValues 
     79     
     80    def getSelectionData(self, variable, axis): 
     81        """ 
     82        Get the data require to build a selection control to set the values of 
     83        the other axis given that variable and axis have already been selected. 
     84        """ 
     85        pass 
     86     
     87    def _buildSelectionKeywords(self, fin, var, axis, selection): 
    3888        selKW = {} 
    3989         
     
    4191            # we don't want to generate a selection for the axis 
    4292            # that will be used for the xdata 
    43             if ax.id == self.axis: 
     93            if ax.id == axis: 
    4494                continue 
    4595         
    46             value = self.selection[ax.id] 
     96            value = selection[ax.id] 
    4797     
    4898            if ax.id in self.axisLookup: 
     
    61111        return selKW 
    62112     
    63     def _getData(self, var, selKW): 
     113    def _getData(self, var, selKW, axis): 
    64114         
    65115        #get the y data by selecting from the variable 
     
    67117         
    68118        #get the x-data from the named axis 
    69         xdata = var.getAxis(var.getAxisIndex(str(self.axis)))[:] 
     119        xdata = var.getAxis(var.getAxisIndex(axis))[:] 
    70120         
    71121        return xdata, ydata 
Note: See TracChangeset for help on using the changeset viewer.