Changeset 6102 for cows


Ignore:
Timestamp:
09/12/09 16:06:48 (10 years ago)
Author:
pnorton
Message:

Removed the old modis data reader class. Also modified COWS to pass the style parameter to the GetLegendImage? methods on the layer objects.

Location:
cows/trunk/cows
Files:
3 deleted
10 edited

Legend:

Unmodified
Added
Removed
  • cows/trunk/cows/pylons/config.py

    r5682 r6102  
    1818    """ 
    1919    from cows.service.imps.csmlbackend.config import config 
    20     from cows.service.imps.data_reader_geoplot_backend.data_readers.mosid_config import config as modis_config 
    2120     
    2221    for k in pylons.config: 
     
    2524            k2 = '.'.join(parts[2:]) 
    2625            config[k2] = pylons.config[k] 
    27              
    28         elif parts[:2] == ['cows','modis']: 
    29             k2 = '.'.join(parts[2:]) 
    30             modis_config[k2] = pylons.config[k] 
    31  
    32  
    33                     
    34      
  • cows/trunk/cows/pylons/wms_controller.py

    r5945 r6102  
    515515            restoredDimValues[restoredDim]=dimValues[dim] 
    516516         
    517         img = layerObj.getLegendImage(restoredDimValues, renderOpts=additionalParams) 
     517        layerObjects = self._getLayerParam() 
     518        styles       = self._getStylesParam(len(layerObjects))         
     519         
     520         
     521        #can't cope with multiple styles so just taking the first one 
     522        if len(styles) > 0: 
     523            style = styles[0] 
     524        else: 
     525            style = None 
     526         
     527        img = layerObj.getLegendImage(restoredDimValues,  
     528                                      renderOpts=additionalParams, 
     529                                      style=style) 
    518530         
    519531        self._writeImageResponse(img, format) 
  • cows/trunk/cows/service/imps/csmlbackend/wms_csmllayer.py

    r5708 r6102  
    281281        return value 
    282282 
    283     def getLegendImage(self, dimValues, orientation='horizontal', renderOpts={}): 
     283    def getLegendImage(self, dimValues, orientation='horizontal', renderOpts={} 
     284                       , style=None): 
    284285        """ 
    285286        Create an image of the colourbar for this layer. 
  • cows/trunk/cows/service/imps/data_reader_geoplot_backend/data_reader_geoplot_layer_mapper.py

    r5995 r6102  
    1313 
    1414from cows.service.imps.data_reader_geoplot_backend.data_readers.csml_data_reader import CSMLDataReader 
    15 from cows.service.imps.data_reader_geoplot_backend.data_readers.modis_file_reader import ModisFileReader 
    16  
    1715 
    1816log = logging.getLogger(__name__) 
     
    2220    def __init__(self): 
    2321        self.layermapcache={} 
    24         self.readerClasses = [CSMLDataReader]#, ModisFileReader] 
     22        self.readerClasses = [CSMLDataReader] 
    2523    
    2624    def map(self, **kwargs): 
  • cows/trunk/cows/service/imps/data_reader_geoplot_backend/data_reader_geoplot_wms_layer.py

    r6042 r6102  
    240240        return value 
    241241 
    242     def getLegendImage(self, dimValues, width=None, height=None, orientation='horizontal', renderOpts={}): 
     242    def getLegendImage(self, dimValues, width=None, height=None,  
     243                       orientation='horizontal',  
     244                       renderOpts={},  
     245                       style=None 
     246                       ): 
    243247        """ 
    244248        Create an image of the colourbar for this layer. 
     
    255259        variable = self.dataReader.getNetcdfVar(self.name, dimValues) 
    256260         
    257         klass = self._getSlabClass(None) 
     261        klass = self._getSlabClass(style) 
     262         
     263        return klass.makeColourBar(width , height, orientation, self.units, renderOpts, variable) 
     264     
     265         
    258266        parser = SlabOptionsParser(klass.renderingOptions, renderOpts) 
     267         
     268        log.debug("klass.style = %s" % (klass.style,)) 
    259269         
    260270        minval = parser.getOption('cmap_min') 
     
    265275        if maxval == None: 
    266276            maxval = variable.max() 
     277             
     278            # can't have a colourbar with an infinite maximum, take the highest  
     279            # non-inf value. 
    267280            if maxval == numpy.inf: 
    268281                maxval = numpy.ma.masked_equal(variable, numpy.inf).max() 
     
    276289                                             colourBarMin=minval, 
    277290                                             colourBarMax=maxval, 
    278                                              colourBarScale=parser.getOption('cmap_scale'),  
     291                                             colourBarScale=parser.getOption('cmap_scale'), 
     292                                             numIntervals=parser.getOption('num_intervals'),  
    279293                                             orientation=orientation, 
    280294                                             intervals=parser.getOption('intervals'), 
  • cows/trunk/cows/service/imps/data_reader_geoplot_backend/data_readers/csml_data_reader.py

    r5945 r6102  
    122122             
    123123            convertedDimVals = self._convertDimValues(dimValues) 
    124                    
     124             
     125            variable = None 
     126             
    125127            if type(feature) == csml.parser.GridSeriesFeature: 
    126128                 
     
    140142                #disk (limitiation of CSML api) 
    141143                netcdf=cdms.open(result[1]) 
    142                                                  
     144                try:                  
     145                    variable =  netcdf(variable_name, squeeze=1) 
     146                finally: 
     147                    netcdf.close() 
     148                 
    143149                #and then delete the temporary file 
    144150                os.system('rm %s'%result[1]) 
     
    149155                raise NotImplementedError 
    150156             
    151             variable =  netcdf(variable_name, squeeze=1) 
    152157             
    153158            #try to set any NAN variable to masked variables 
  • cows/trunk/cows/service/imps/data_reader_geoplot_backend/geoplot_slabs/geoplot_slab_base.py

    r5945 r6102  
    2323    renderingOptions = [ 
    2424        RenderingOption('cmap', "Colour Scheme" ,str,'jet',["bone","jet", "copper", "gray", "winter"] ), 
    25         RenderingOption('cbar_style', 'Colour Bar Style', str, 'continuous', ['continuous','legend']), 
     25         
    2626        RenderingOption('cmap_min', "Legend Min" ,float,None), 
    2727        RenderingOption('cmap_max', "Legend Max" ,float,None), 
    2828        RenderingOption('cmap_scale', "Colour Bar Scale" ,str ,'linear', ['linear','log']), 
    29         RenderingOption('intervals', "intervals" ,str,None), 
    30         RenderingOption('intervalNames', "intervalNames" ,str,None), 
    3129    ] 
    3230 
     
    4745 
    4846        self.title = title 
    49         self.crs = crs 
    50         self.dimValues = dimValues 
    5147        self.renderOpts = renderOpts 
    5248        self.bgcolour = bgcolour 
    5349        self.transparent = transparent 
    54         self.bbox=bbox 
    5550        self.variable = variable 
    5651                 
  • cows/trunk/cows/service/imps/data_reader_geoplot_backend/geoplot_slabs/geoplot_slab_contour.py

    r5945 r6102  
    11import logging 
    22import time 
     3import numpy 
    34 
     5import geoplot.colour_bar 
    46from geoplot.layer_drawer_contour import LayerDrawerContour 
    57 
    68from cows.service.imps.data_reader_geoplot_backend.rendering_option import RenderingOption 
    79from cows.service.imps.data_reader_geoplot_backend.geoplot_slabs.geoplot_slab_base import GeoplotSlabBase 
     10from cows.service.imps.data_reader_geoplot_backend.slab_options_parser import SlabOptionsParser 
    811 
    912log = logging.getLogger(__name__) 
     
    2023        RenderingOption('contour_font_size', "Contour Label Size" ,str,'medium',["small","medium", "large",]), 
    2124        RenderingOption('contour_label_interval', "Interval Between Labels" ,int,1), 
     25        RenderingOption('cbar_style', 'Colour Bar Style', str, 'line', ['line']), 
    2226    ] 
    2327 
     
    3741                                 colourBarMax=cmapMax, 
    3842                                 bgcolour = self.bgcolour, 
     43                                 colourBarStyle = self.parser.getOption('cbar_style'), 
    3944                                 colourBarScale = self.parser.getOption('cmap_scale'), 
    4045                                 labelInterval= self.parser.getOption('contour_label_interval'), 
     
    4752 
    4853 
    49                 
     54    @staticmethod 
     55    def makeColourBar(width , height, orientation, units, renderOpts, variable): 
     56         
     57        parser = SlabOptionsParser(GeoplotSlabContour.renderingOptions, renderOpts) 
     58                 
     59        minval = parser.getOption('cmap_min') 
     60        if minval == None: 
     61            minval = variable.min() 
     62             
     63        maxval = parser.getOption('cmap_max') 
     64        if maxval == None: 
     65            maxval = variable.max() 
     66             
     67            # can't have a colourbar with an infinite maximum, take the highest  
     68            # non-inf value. 
     69            if maxval == numpy.inf: 
     70                maxval = numpy.ma.masked_equal(variable, numpy.inf).max() 
     71         
     72        im = geoplot.colour_bar.getColourBarImage(width, height,  
     73                                             label='Units of measure: %s' % str(units), 
     74                                             cmap=parser.getOption('cmap'),  
     75                                             colourBarMin=minval, 
     76                                             colourBarMax=maxval, 
     77                                             colourBarScale=parser.getOption('cmap_scale'), 
     78                                             numIntervals=parser.getOption('num_contour_lines') - 1,  
     79                                             orientation=orientation, 
     80                                             intervals=parser.getOption('intervals'), 
     81                                             intervalNames=parser.getOption('intervalNames'), 
     82                                             colourBarStyle=parser.getOption('cbar_style'), 
     83                                             ) 
    5084     
    51  
     85        return im 
  • cows/trunk/cows/service/imps/data_reader_geoplot_backend/geoplot_slabs/geoplot_slab_grid.py

    r5945 r6102  
    11import time 
     2import numpy 
    23import logging 
    34 
     5import geoplot.colour_bar 
    46from geoplot.layer_drawer_grid import LayerDrawerGrid 
    57from geoplot.layer_drawer_grid_fast import LayerDrawerGridFast 
     
    79from cows.service.imps.data_reader_geoplot_backend.rendering_option import RenderingOption 
    810from cows.service.imps.data_reader_geoplot_backend.geoplot_slabs.geoplot_slab_base import GeoplotSlabBase 
     11from cows.service.imps.data_reader_geoplot_backend.slab_options_parser import SlabOptionsParser 
    912 
    1013log = logging.getLogger(__name__) 
     
    1821        RenderingOption('disable_subset', "Disable Subsetting" ,bool,False), 
    1922        RenderingOption('show_grid_lines', "Draw Grid Boxes" ,bool,False), 
     23        RenderingOption('intervals', "intervals" ,str,None), 
     24        RenderingOption('intervalNames', "intervalNames" ,str,None), 
     25        RenderingOption('num_intervals', 'Default Num Intervals', int, 6), 
     26        RenderingOption('hide_outside', "Mask Data Outside Bounds" , bool ,False), 
     27        RenderingOption('cbar_style', 'Colour Bar Style', str, 'continuous', ['continuous','legend']), 
    2028    ] 
    2129         
     
    4351                     colourBarMin=cmapMin, 
    4452                     colourBarMax=cmapMax, 
     53                     numIntervals = self.parser.getOption('num_intervals'), 
     54                     colourBarStyle = self.parser.getOption('cbar_style'), 
    4555                     colourBarScale = self.parser.getOption('cmap_scale'), 
     56                     hideOutside = self.parser.getOption('hide_outside'), 
    4657                     bgcolour = self.bgcolour, 
    4758                     intervals = self.parser.getOption('intervals'),    
     
    4960         
    5061        return ld 
     62     
     63    @staticmethod 
     64    def makeColourBar(width , height, orientation, units, renderOpts, variable): 
     65         
     66        parser = SlabOptionsParser(GeoplotSlabGrid.renderingOptions, renderOpts) 
     67                 
     68        minval = parser.getOption('cmap_min') 
     69        if minval == None: 
     70            minval = variable.min() 
     71             
     72        maxval = parser.getOption('cmap_max') 
     73        if maxval == None: 
     74            maxval = variable.max() 
     75             
     76            # can't have a colourbar with an infinite maximum, take the highest  
     77            # non-inf value. 
     78            if maxval == numpy.inf: 
     79                maxval = numpy.ma.masked_equal(variable, numpy.inf).max() 
     80         
     81        im = geoplot.colour_bar.getColourBarImage(width, height,  
     82                                             label='Units of measure: %s' % str(units), 
     83                                             cmap=parser.getOption('cmap'),  
     84                                             colourBarMin=minval, 
     85                                             colourBarMax=maxval, 
     86                                             colourBarScale=parser.getOption('cmap_scale'), 
     87                                             numIntervals=parser.getOption('num_intervals'),  
     88                                             orientation=orientation, 
     89                                             intervals=parser.getOption('intervals'), 
     90                                             intervalNames=parser.getOption('intervalNames'), 
     91                                             colourBarStyle=parser.getOption('cbar_style'), 
     92                                             ) 
     93     
     94        return im     
    5195  
  • cows/trunk/cows/service/imps/data_reader_geoplot_backend/slab_options_parser.py

    r5877 r6102  
    4949            type = self._slabOptionsLookup[optionName].type 
    5050            log.debug("optionName = %s, stringValue = %s" % (optionName, stringValue,)) 
     51             
     52              
     53             
    5154            if type == bool : 
    5255                value = stringValue.lower() == 'true' 
     
    5457                value = type(stringValue) 
    5558                 
     59            renderOpt = self._slabOptionsLookup[optionName] 
     60             
     61            if not renderOpt.options is None: 
     62                if value not in renderOpt.options: 
     63                    log.debug("value %s not in options %s" % (value, renderOpt.options,)) 
     64                    value = None 
     65 
    5666        except: 
    5767            log.exception("Error getting option %s from renderOptions=%s" % (optionName, self._renderOptions)) 
Note: See TracChangeset for help on using the changeset viewer.