Changeset 5647


Ignore:
Timestamp:
20/08/09 12:09:57 (10 years ago)
Author:
pnorton
Message:

Removed the ddc layer/slab/layermapper as these are now included in cows as the csml_geoplot implementation.

Added the GetFigure? method that uses geoplot to generate a simple figure output.

Location:
qesdi/wms_ddc_vis/trunk
Files:
6 deleted
4 edited

Legend:

Unmodified
Added
Removed
  • qesdi/wms_ddc_vis/trunk/buildout/buildout.cfg

    r5529 r5647  
    88  ../../image_utils_trunk 
    99  ../../geoplot_trunk 
    10   ../../../cows_qesdi 
     10  ../../../cows_trunk 
    1111 
    1212[wms_ddc_vis] 
     
    1919  numpy 
    2020  image_utils 
     21  decorator==3.0.1 
    2122  Pylons==0.9.6.1 
    2223  cdat_lite 
  • qesdi/wms_ddc_vis/trunk/development.ini

    r5494 r5647  
    5959# Logging configuration 
    6060[loggers] 
    61 keys = root 
     61keys = root,paste,pylons,routes,cows,geoplot,cows_wms,cows_ows,cows_imps 
    6262 
    6363[handlers] 
     
    7171handlers = console 
    7272 
     73[logger_paste] 
     74level = INFO 
     75handlers = console 
     76propagate = 0 
     77qualname = paste 
     78 
     79[logger_pylons] 
     80level = INFO 
     81handlers = console 
     82propagate = 0 
     83qualname = pylons 
     84 
     85[logger_routes] 
     86level = INFO 
     87handlers = console 
     88propagate = 0 
     89qualname = routes 
     90 
     91[logger_cows_imps] 
     92level = DEBUG 
     93handlers = console 
     94propagate = 0 
     95qualname = cows.service.imps 
     96 
     97[logger_cows_ows] 
     98level = INFO 
     99handlers = console 
     100propagate = 0 
     101qualname = cows.pylons.ows_controller 
     102 
     103[logger_cows_wms] 
     104level = DEBUG 
     105handlers = console 
     106propagate = 0 
     107qualname = cows.pylons.wms_controller 
     108 
     109[logger_cows] 
     110level = INFO 
     111handlers = console 
     112propagate = 0 
     113qualname = cows 
     114 
     115[logger_geoplot] 
     116level = INFO 
     117handlers = console 
     118propagate = 0 
     119qualname = geoplot 
     120 
    73121[handler_console] 
    74122class = StreamHandler 
  • qesdi/wms_ddc_vis/trunk/lib/wms_ddc_vis/controllers/coastwms.py

    r5535 r5647  
    1818from cows.exceptions import * 
    1919from cows import bbox_util 
     20import time 
    2021 
    2122from geoplot.layer_drawer_coastline import LayerDrawerCoastlines 
     
    160161         
    161162     
    162     def GetMap(self): 
    163  
     163    def GetMap(self):         
     164        st = time.time() 
     165 
     166         
    164167        # Housekeeping 
    165168        version = self.getOwsParam('version', default=self.validVersions[0]) 
     
    193196                'Format %s not supported' % format, 'format') 
    194197 
     198        if layerName == 'auto': 
     199            layerName = None 
     200         
    195201        ldg = LayerDrawerCoastlines(transparent=transparent, 
    196202                                    resolution=layerName) 
     
    199205        yLimits = (bbox[1], bbox[3])         
    200206        finalImg = ldg.makeImage(xLimits, yLimits, width, height)      
    201        
     207 
    202208         
    203209        # IE < 7 doesn't display the alpha layer right.  Here we sniff the 
     
    217223        response.write(buf.getvalue()) 
    218224 
     225         
     226        log.debug("got coastline in %s" % (time.time() - st,)) 
    219227 
    220228    def GetContext(self): 
  • qesdi/wms_ddc_vis/trunk/lib/wms_ddc_vis/controllers/csmlwms.py

    r5529 r5647  
    11import logging 
    22import simplejson as json 
     3from geoplot.plot_lat_lon import PlotLatLon  
     4from geoplot.contour_plot import ContourPlot 
    35 
    46from cows.pylons.wms_controller import WMSController 
    5 from wms_ddc_vis.model.ddc_layer_mapper import DDCLayerMapper 
     7from cows.pylons import ows_controller 
     8 
     9from cows.service.imps.csml_geoplot_backend.csml_geoplot_layer_mapper import CSMLGeoplotLayerMapper 
     10from cows.service.imps.csml_geoplot_backend.csml_geoplot_wms_layer import CSMLGeoplotWmsLayer 
     11 
     12CSMLGeoplotWmsLayer.EnableDisplayOptions = True 
    613 
    714from wms_ddc_vis.lib.base import request, response 
     
    1017 
    1118class CsmlwmsController(WMSController): 
    12     layerMapper = DDCLayerMapper() 
     19    layerMapper = CSMLGeoplotLayerMapper() 
    1320     
    14     owsOperations = (WMSController.owsOperations + ['GetDisplayOptions',]) 
     21    owsOperations = (WMSController.owsOperations + ['GetDisplayOptions','GetFigure']) 
     22     
     23    nonPILFormats = {'application/postscript':'ps', 
     24                     'application/pdf':'pdf', 
     25                     'image/svg+xml':'svg'} 
     26     
     27    def _loadCapabilities(self, *args, **kwargs): 
     28        ows_controller.addOperation('GetDisplayOptions', formats=['application/json']) 
     29        ows_controller.addOperation('GetFigure', formats=['image/png', 'image/jpg','image/gif', 'application/postscript', 'application/pdf','image/svg+xml' ]) 
     30        WMSController._loadCapabilities(self, *args, **kwargs) 
    1531     
    1632    def GetDisplayOptions(self): 
    17          
    18          
    19          
     33                 
    2034        displayOptions = { 
    2135          "common": [ 
     
    7488        request.headers['Content-Type'] = 'application/json' 
    7589        response.write( json.dumps(displayOptions) ) 
     90         
     91    def GetFigure(self): 
     92         
     93        #!TODO:For a start just geting the GetMap params, clearup! 
     94        # Get the parameters 
     95        version      = self._getVersionParam() 
     96        format = self.getOwsParam('format', default='image/png') 
     97         
     98        validFormats = self._pilImageFormats.keys() 
     99        validFormats.extend(self.nonPILFormats.keys()) 
     100         
     101        if format not in validFormats: 
     102            raise InvalidParameterValue('Format %s not supported' % format, 'format') 
     103           
     104        transparent  = self._getTransparentParam() 
     105        bgcolor      = self._getBgcolorParam() 
     106        bbox         = self._getBboxParam() 
     107        width        = self._getWidthParam() 
     108        height       = self._getHeightParam() 
     109         
     110        layerObjects = self._getLayerParam() 
     111         
     112        assert len(layerObjects) == 1 
     113        layerObj = layerObjects[0] 
     114         
     115        styles       = self._getStylesParam(len(layerObjects)) 
     116        srs          = self._getSrsParam(version) 
     117         
     118        dimValues = self._getDimValues(layerObj) 
     119         
     120         
     121        netcdf = layerObj._getNetcdfVar(dimValues) 
     122        variable =  netcdf(layerObj.title, squeeze=1) 
     123        log.debug("netcdf = %s" % (netcdf,)) 
     124        log.debug("variable.shape = %s" % (variable.shape,)) 
     125        log.debug("bbox = %s" % (bbox,)) 
     126         
     127        (xMin, yMin, xMax, yMax) = bbox 
     128         
     129        kwargs = {} 
     130        kwargs['xLimits'] = (xMin, xMax) 
     131        kwargs['yLimits'] = (yMin, yMax) 
     132        kwargs['drawColourBar'] = True 
     133        kwargs['drawLogo'] = True 
     134        kwargs['drawRivers'] = False 
     135        kwargs['drawMetadata'] = True 
     136        kwargs['units'] = layerObj.units 
    76137 
     138        if self.getOwsParam('cmap', default=None) != None: 
     139            kwargs['cmap'] = self.getOwsParam('cmap') 
     140         
     141        if self.getOwsParam('CMAP_MAX', default=None) != None: 
     142            kwargs['colourBarMax'] = float(self.getOwsParam('CMAP_MAX')) 
     143        else: 
     144            kwargs['colourBarMax'] = variable[:].max() 
     145 
     146        if self.getOwsParam('CMAP_MIN', default=None) != None: 
     147            kwargs['colourBarMin'] = float(self.getOwsParam('CMAP_MIN')) 
     148        else: 
     149            kwargs['colourBarMin'] = variable[:].min()         
     150         
     151  
     152        if styles == "" or styles[0] == 'grid': 
     153             
     154            if self.getOwsParam('SHOW_GRID_LINES', default=None) != None: 
     155                kwargs['showGridLines'] = self.getOwsParam('SHOW_GRID_LINES').lower() == 'true' 
     156                 
     157            plt = PlotLatLon(variable, **kwargs) 
     158 
     159        elif styles[0] == 'contour': 
     160             
     161            if self.getOwsParam('NUM_CONTOUR_LINES', default=None) != None: 
     162                kwargs['numContourLines'] = int(self.getOwsParam('NUM_CONTOUR_LINES')) 
     163         
     164            if self.getOwsParam('CONTOUR_LABEL_INTERVAL', default=None) != None: 
     165                kwargs['contourLabelInterval'] = int(self.getOwsParam('CONTOUR_LABEL_INTERVAL')) 
     166                 
     167            log.debug("kwargs = %s" % (kwargs,)) 
     168            plt = ContourPlot(cdmsVar=variable, **kwargs) 
     169             
     170        else: 
     171            raise Exception("unknown style %s" % (styles[0],)) 
     172  
     173         
     174        if format in self.nonPILFormats.keys(): 
     175            plt.format = self.nonPILFormats[format] 
     176            buf = plt.drawToBuffer() 
     177             
     178            response.headers['Content-Type'] = format 
     179            response.write(buf.getvalue())     
     180        else: 
     181             
     182             
     183            img = plt.drawToImage() 
     184             
     185            log.debug("img.format = %s" % (img.format,)) 
     186             
     187            log.debug("variable.getAxisIds() = %s" % (variable.getAxisIds(),)) 
     188             
     189            self._writeImageResponse(img, format) 
     190             
     191        log.debug("finished getFigure") 
     192             
Note: See TracChangeset for help on using the changeset viewer.