Changeset 5980


Ignore:
Timestamp:
09/11/09 12:10:30 (10 years ago)
Author:
pnorton
Message:

Moved the getMatplotlibColour function from the base layer drawer to the utils module.

Location:
qesdi/geoplot/trunk/lib/geoplot
Files:
1 added
5 edited

Legend:

Unmodified
Added
Removed
  • qesdi/geoplot/trunk/lib/geoplot/layer_drawer.py

    r5946 r5980  
    1616from geoplot.map_factory import MapFactory 
    1717from geoplot.colour_scheme import ColourSchemeBuilder 
    18 import matplotlib 
    19  
     18import geoplot.utils as utils 
    2019 
    2120log = logging.getLogger(__name__) 
     
    4746        self.transparent = transparent 
    4847        self.cmap = cmap 
     48         
     49        log.debug("bgcolour = %s" % (bgcolour,)) 
    4950        self.bgcolour = bgcolour 
    5051         
     
    175176             
    176177        return map         
    177      
    178     def _getMatplotlibColour(self, value): 
    179         """ 
    180         Makes sure that value is a valid matplotlib colour, will convert form a float 
    181         to a string if neccesary. Will raise a ValueError if the value is not a valid colour. 
    182         """ 
    183         if type(value) == float: 
    184             val = str(value) 
    185         else: 
    186             val = value 
    187              
    188         try: 
    189             matplotlib.colors.colorConverter.to_rgb(val) 
    190         except: 
    191             raise 
    192         else: 
    193             return val     
    194      
     178         
    195179    ### properties ###         
    196180     
     
    284268         
    285269        try: 
    286             newVal = self._getMatplotlibColour(value) 
     270            newVal = utils.getMatplotlibColour(value) 
    287271        except ValueError, e: 
    288272            log.warning("Error occurred getting matplotlib colour form %s, Exception:%s" % (value, e)) 
  • qesdi/geoplot/trunk/lib/geoplot/layer_drawer_coastline.py

    r5760 r5980  
    99 
    1010from geoplot.layer_drawer import LayerDrawerBase 
     11import geoplot.utils as utils 
    1112 
    1213log = logging.getLogger(__name__) 
     
    2122                 resolution='i',  
    2223                 transparent=False,  
    23                  drawRivers=False, 
    2424                 bgcolour='white', 
    2525                 coastlineColour='black', 
     26                 riverColour=None, 
    2627                 landColour=None, 
    2728                 coastlineWidth=0.5): 
     
    3031        self._coastlineColour = 'black' 
    3132        self._landColour = None 
     33        self._riverColour = None 
    3234         
    3335        self.coastlineColour = coastlineColour 
    34         self.coastlineWidth = 0.5 
     36        self.coastlineWidth = coastlineWidth 
    3537        self.landColour = landColour 
     38        self.riverColour = riverColour 
    3639         
    3740        LayerDrawerBase.__init__(self, transparent=transparent, 
     
    4245         
    4346         
    44         # must be done after the base constructor or the _mapFactory won't be  
    45         # created 
    46         self._mapFactory.drawRivers = drawRivers 
    47  
    4847    def _drawToAxes(self, axes, xLimits, yLimits): 
    4948        """ 
     
    5352        map = self._getMap(xLimits, yLimits) 
    5453         
     54        log.debug("self.coastlineColour =%s , self.riverColour = %s, self.landColour = %s" % (self.coastlineColour, self.riverColour, self.landColour,)) 
     55         
    5556        #draw the map onto the axes  
    56         map.basemap.drawcoastlines(ax = axes,  
    57                                    linewidth=self.coastlineWidth, 
    58                                    color=self.coastlineColour, 
    59                                    antialiased=0,                                        
    60                                    xLimits=xLimits, yLimits=yLimits) 
     57        if self.coastlineColour != None:  
     58            map.basemap.drawcoastlines(ax = axes,  
     59                                       linewidth=self.coastlineWidth, 
     60                                       color=self.coastlineColour, 
     61                                       antialiased=0,                                        
     62                                       xLimits=xLimits, yLimits=yLimits) 
    6163 
    62         if map.drawRivers: 
    63             map.basemap.drawrivers(ax = axes, color='b', linewidth=0.3, 
     64     
     65        if self.riverColour != None: 
     66            map.basemap.drawrivers(ax = axes, color=self.riverColour, linewidth=0.3, 
    6467                                    antialiased=0,                                    
    6568                                    xLimits=xLimits, yLimits=yLimits) 
     
    9295         
    9396        try: 
    94             newCoastColour = self._getMatplotlibColour(value) 
     97            if value == None: 
     98                newCoastColour = value 
     99            else: 
     100                newCoastColour = utils.getMatplotlibColour(value) 
    95101        except ValueError, e: 
    96102            log.warning("Error occurred getting matplotlib colour form %s, Exception:%s" % (value, e)) 
     
    109115                newVal = value 
    110116            else: 
    111                 newVal = self._getMatplotlibColour(value) 
     117                newVal = utils.getMatplotlibColour(value) 
    112118        except ValueError, e: 
    113119            log.warning("Error occurred getting matplotlib colour form %s, Exception:%s" % (value, e)) 
     
    119125     
    120126    landColour = property(__get_landColour, __set_landColour)     
     127 
     128    def __set_riverColour(self, value): 
    121129         
     130        try: 
     131            if value == None: 
     132                newVal = value 
     133            else: 
     134                newVal = utils.getMatplotlibColour(value) 
     135        except ValueError, e: 
     136            log.warning("Error occurred getting matplotlib colour form %s, Exception:%s" % (value, e)) 
     137        else: 
     138            self._riverColour = newVal 
     139                 
     140    def __get_riverColour(self): 
     141        return self._riverColour 
     142     
     143    riverColour = property(__get_riverColour, __set_riverColour)     
     144         
     145         
  • qesdi/geoplot/trunk/lib/geoplot/tests/drawing/draw_test_layer_drawer_grid.py

    r5946 r5980  
    11import os 
    22import logging 
     3import numpy 
    34 
    45import geoplot 
     
    3839    width = 600; height=900 
    3940     
    40     var = makeLLVar(lonBounds=xLimits, latBounds=yLimits, nx=5000, ny=6000,  
     41    mask = numpy.array([[True, True, True, False], 
     42                        [False, False, False, False]]) 
     43     
     44    var = makeLLVar(lonBounds=xLimits, latBounds=yLimits, nx=4, ny=2,  
    4145                    function=fnSinXAddCosY_10to10, missing_value=-999, 
    42                     axisOrder='xy') 
     46                    axisOrder='xy', mask=mask) 
    4347 
    4448 
    4549    ld = LayerDrawerGrid(var, showGridLines=True, 
    46                          intervals="-10,-7.5,-5,-2.5,0,2.5,5,7.5,10") 
     50                         intervals="-10,-7.5,-5,-2.5,0,2.5,5,7.5,10", 
     51                         bgcolour='lightblue') 
    4752     
    4853    img = ld.makeImage(xLimits, yLimits, width, height) 
     
    5257    outputFile = outputDir + '/fast_ld_grid_lat_lon.' + plot_format 
    5358    fld = LayerDrawerGridFast(var, showGridLines=True, 
    54                          intervals="-10,-7.5,-5,-2.5,0,2.5,5,7.5,10") 
     59                         intervals="-10,-7.5,-5,-2.5,0,2.5,5,7.5,10", 
     60                         bgcolour='lightblue') 
    5561         
    5662    img = fld.makeImage(xLimits, yLimits, 600, 900) 
  • qesdi/geoplot/trunk/lib/geoplot/tests/make_data_functions.py

    r5946 r5980  
    4949    yvals = N.linspace(0, yMax, shape[1]) 
    5050     
    51     sinX = N.sin(xvals) 
    52     cosY = N.cos(yvals) 
     51    # arguments to meshgrid should be y, x so the  
     52    # resulting arrays are in the order x, y 
     53    ymesh, xmesh = N.meshgrid(yvals, xvals) 
     54     
     55    sinX = N.sin(xmesh) 
     56    cosY = N.cos(ymesh) 
    5357     
    5458    data = sinX + cosY 
  • qesdi/geoplot/trunk/lib/geoplot/utils.py

    r5876 r5980  
    1111import logging 
    1212import numpy 
     13 
    1314 
    1415import matplotlib.colors as colors 
     
    200201    return  numpy.array(x)     
    201202     
    202      
     203def getMatplotlibColour(value): 
     204    """ 
     205    Makes sure that value is a valid matplotlib colour, will convert form a float 
     206    to a string if neccesary. Will raise a ValueError if the value is not a valid colour. 
     207    """ 
     208    if type(value) == float: 
     209        val = str(value) 
     210    else: 
     211        val = value 
     212         
     213    try: 
     214        colors.colorConverter.to_rgb(val) 
     215    except: 
     216        raise 
     217    else: 
     218        return val     
Note: See TracChangeset for help on using the changeset viewer.