source: cows/trunk/cows/service/imps/data_reader_geoplot_backend/geoplot_slabs/geoplot_slab_contour.py @ 6102

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/cows/trunk/cows/service/imps/data_reader_geoplot_backend/geoplot_slabs/geoplot_slab_contour.py@6102
Revision 6102, 3.8 KB checked in by pnorton, 11 years ago (diff)

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

Line 
1import logging
2import time
3import numpy
4
5import geoplot.colour_bar
6from geoplot.layer_drawer_contour import LayerDrawerContour
7
8from cows.service.imps.data_reader_geoplot_backend.rendering_option import RenderingOption
9from 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
11
12log = logging.getLogger(__name__)
13
14
15
16class GeoplotSlabContour(GeoplotSlabBase):
17
18    style = 'contour'
19    title = 'Contour Lines'
20                     
21    renderingOptions = GeoplotSlabBase.renderingOptions + [       
22        RenderingOption('num_contour_lines', "Number of Contour Lines" ,int,10),
23        RenderingOption('contour_font_size', "Contour Label Size" ,str,'medium',["small","medium", "large",]),
24        RenderingOption('contour_label_interval', "Interval Between Labels" ,int,1),
25        RenderingOption('cbar_style', 'Colour Bar Style', str, 'line', ['line']),
26    ]
27
28    def _setupLayerDrawer(self):
29       
30        cmapMin = self.parser.getOption('cmap_min')
31        if cmapMin == None:
32            cmapMin = self.variable.min()
33       
34        cmapMax = self.parser.getOption('cmap_max')
35        if cmapMax == None:
36            cmapMax = self.variable.max()
37       
38        ld = LayerDrawerContour(self.variable, 
39                                 cmap=self.parser.getOption('cmap'), 
40                                 colourBarMin=cmapMin,
41                                 colourBarMax=cmapMax,
42                                 bgcolour = self.bgcolour,
43                                 colourBarStyle = self.parser.getOption('cbar_style'),
44                                 colourBarScale = self.parser.getOption('cmap_scale'),
45                                 labelInterval= self.parser.getOption('contour_label_interval'),
46                                 numLines = self.parser.getOption('num_contour_lines'),
47                                 fontSize = self.parser.getOption('contour_font_size'),
48                                 intervals = self.parser.getOption('intervals'),
49                                 transparent=self.transparent)
50       
51        return ld
52
53
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                                             )
84   
85        return im
Note: See TracBrowser for help on using the repository browser.