Changeset 5697


Ignore:
Timestamp:
09/09/09 10:03:38 (10 years ago)
Author:
pnorton
Message:

Extended the options available on the grid and contour slabs in the data reader backend. Also fixed a bug with the slab_option_parser and improved the legend rendering code.

Location:
cows/trunk/cows/service/imps/data_reader_geoplot_backend
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • cows/trunk/cows/service/imps/data_reader_geoplot_backend/data_reader_geoplot_wms_layer.py

    r5693 r5697  
    99import time 
    1010import os 
    11 import csml 
    12 import cdms2 as cdms 
    1311 
    1412from cows.service.imps.csmlbackend.config import config 
     
    1816 
    1917import geoplot.colour_bar 
     18from geoplot.grid_builder_lat_lon import GridBuilderLatLon 
    2019 
    2120from cows.model.wms import Style, LegendURL, FormattedURL, MetadataURL 
     
    259258            maxval = variable.max() 
    260259             
    261         log.debug("dimValues = %s, minval = %s, maxval = %s" % (dimValues, minval , maxval,)) 
    262  
    263         im = geoplot.colour_bar.getColourBarImage(width, height,  
     260        intervalNames = parser.getOption('intervalNames') 
     261        if intervalNames != None: 
     262            intervalNames = intervalNames.split(',') 
     263         
     264        intervalColourbar = parser.getOption('intervalColourbar') 
     265         
     266        log.debug("intervalNames = %s" % (intervalNames,)) 
     267        log.debug("intervalColourbar = %s" % (intervalColourbar,)) 
     268         
     269        #log.debug("dimValues = %s, minval = %s, maxval = %s" % (dimValues, minval , maxval,)) 
     270         
     271        if intervalColourbar: 
     272            builder = GridBuilderLatLon(variable) 
     273             
     274            grid = builder.buildGrid() 
     275             
     276            im = geoplot.colour_bar.getIntervalColourBarImage(grid, width, height,  
     277                                             label='Units of measure: %s' % str(self.units),  
     278                                             cmap=parser.getOption('cmap'),  
     279                                             cmapRange=(minval, maxval), 
     280                                             intervalNames=intervalNames,  
     281                                             orientation=orientation) 
     282             
     283        else: 
     284            im = geoplot.colour_bar.getColourBarImage(width, height,  
    264285                                             label='Units of measure: %s' % str(self.units),  
    265286                                             cmap=parser.getOption('cmap'),  
  • cows/trunk/cows/service/imps/data_reader_geoplot_backend/geoplot_slabs/geoplot_slab_contour.py

    r5692 r5697  
    2020        RenderingOption('cmap_min', "Legend Min" ,float,None), 
    2121        RenderingOption('cmap_max', "Legend Max" ,float,None), 
     22        RenderingOption('intervalColourbar', "intervalColourbar" ,bool,False), 
     23        RenderingOption('intervalNames', "intervalNames" ,str,None), 
     24        RenderingOption('cmap_max', "Legend Max" ,float,None), 
    2225        RenderingOption('num_contour_lines', "Number of Contour Lines" ,int,10), 
    2326        RenderingOption('contour_font_size', "Contour Label Size" ,str,'medium',["small","medium", "large",]), 
     
    3437        if cmapMax == None: 
    3538            cmapMax = self.variable.max() 
     39         
     40        intervalNames = self.parser.getOption('intervalNames') 
     41        if intervalNames != None: 
     42            intervalNames = intervalNames.split(',') 
     43         
    3644             
    3745        ld = LayerDrawerContour(self.variable,  
     
    4149                                 numLines = self.parser.getOption('num_contour_lines'), 
    4250                                 fontSize = self.parser.getOption('contour_font_size'), 
     51                                 intervalColourbar = self.parser.getOption('intervalColourbar'), 
     52                                 intervalNames=intervalNames, 
    4353                                 transparent=self.transparent) 
    4454         
  • cows/trunk/cows/service/imps/data_reader_geoplot_backend/geoplot_slabs/geoplot_slab_grid.py

    r5692 r5697  
    1818        RenderingOption('cmap_min', "Legend Min" ,float,None), 
    1919        RenderingOption('cmap_max', "Legend Max" ,float,None), 
     20        RenderingOption('intervalColourbar', "intervalColourbar" ,bool,False), 
     21        RenderingOption('intervalNames', "intervalNames" ,str,None), 
    2022        RenderingOption('show_grid_lines', "Draw Grid Boxes" ,bool,False), 
    2123    ]                         
     
    3032        if cmapMax == None: 
    3133            cmapMax = self.variable.max() 
     34             
     35        intervalNames = self.parser.getOption('intervalNames') 
     36        if intervalNames != None: 
     37            intervalNames = intervalNames.split(',') 
     38         
     39        log.debug("self.transparent = %s" % (self.transparent,)) 
    3240         
    3341        ld = LayerDrawerGrid(self.variable,  
     
    3543                             showGridLines=self.parser.getOption('show_grid_lines'),  
    3644                             cmapRange=(cmapMin, cmapMax), 
     45                             intervalColourbar = self.parser.getOption('intervalColourbar'), 
     46                             intervalNames=intervalNames,                              
    3747                             transparent=self.transparent) 
    3848         
  • cows/trunk/cows/service/imps/data_reader_geoplot_backend/slab_options_parser.py

    r5692 r5697  
    1313        self._slabOptionsLookup = {} 
    1414        for option in slabOptions: 
    15             self._slabOptionsLookup[option.name] = option 
     15            self._slabOptionsLookup[option.name.lower()] = option 
    1616         
    1717        self._renderOptions = renderOptions 
     
    2222    def _getOption(self, optionName): 
    2323         
    24          
    25         if optionName not in self._slabOptionsLookup: 
     24        name = optionName.lower() 
     25 
     26        if name not in self._slabOptionsLookup: 
    2627            log.warning("Unknown option %s received, returning None") 
    2728            return None 
    2829         
    2930        value = None; 
    30         if optionName in self._renderOptions: 
    31             value = self._getOptionFromDict(optionName) 
     31        if name in self._renderOptions: 
     32            value = self._getOptionFromDict(name) 
    3233         
    3334        if value == None: 
    34             value = self._getDefaultForOption(optionName) 
     35            value = self._getDefaultForOption(name) 
    3536         
    3637        return value 
     
    4344            stringValue = self._renderOptions[optionName] 
    4445            type = self._slabOptionsLookup[optionName].type 
    45              
    46             value = type(stringValue) 
     46            log.debug("optionName = %s, stringValue = %s" % (optionName, stringValue,)) 
     47            if type == bool : 
     48                value = stringValue.lower() == 'true' 
     49            else: 
     50                value = type(stringValue) 
     51                 
    4752        except: 
    4853            log.exception("Error getting option %s from renderOptions=%s" % (optionName, self._renderOptions)) 
Note: See TracChangeset for help on using the changeset viewer.