Ignore:
Timestamp:
18/09/09 09:47:28 (10 years ago)
Author:
pnorton
Message:

Added some wms request logging that writes the parameeters and the header information to a file. Hopefully this will enable statistics to be generated on the data usage.

Also made some changes to the demo page so that it works in IE.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • qesdi/wms_ddc_vis/trunk/lib/wms_ddc_vis/controllers/coastwms.py

    r5701 r5734  
    1818from cows.exceptions import * 
    1919from cows import bbox_util 
     20from cows.service.imps.data_reader_geoplot_backend.rendering_option import RenderingOption 
     21from cows.service.imps.data_reader_geoplot_backend.slab_options_parser import SlabOptionsParser 
     22from cows.service.imps.data_reader_geoplot_backend.slab_options_json_generator import SlabJSONGenerator 
     23 
     24from wms_ddc_vis.lib.wms_request_log_utils import buildLogString, wms_request_logger 
     25 
    2026import time 
    2127 
     
    2834 
    2935class CoastwmsController(ows_controller.OWSController): 
     36 
     37    renderingOptions = [ 
     38        RenderingOption('show_rivers', "Show Rivers" ,bool , False ), 
     39        RenderingOption('coastline_colour', "Coastline Colour" ,str , "black" ), 
     40        RenderingOption('resolution', "Coastline Resolution" ,str , "auto", ["coarse","low", "intermediate", "high", "auto"]  ),             
     41    ] 
     42        
    3043 
    3144    #layers = {}     
     
    4962 
    5063 
     64    def __before__(self, **kwargs): 
     65        wms_request_logger.info( buildLogString(request) ) 
    5166 
    5267    def _renderCapabilities(self, version, format): 
     
    8196         
    8297         
    83         layers = ( ('c', 'coarse', 'coarse detail'),  
    84                    ('l', 'low', 'low detail'),  
    85                    ('i', 'intermediate', 'intermediate detail'), 
    86                    ('h', 'high', 'high detail'), 
    87                    ('f', 'full', 'full detail'), 
    88                    ('auto', 'auto', 'automatic detail'),) 
     98   
     99         
     100        layers = ( ('coastline', 'coastline', 'Coast Outline'), ) 
    89101         
    90102         
     
    165177        st = time.time() 
    166178 
     179 
     180        parser = SlabOptionsParser(CoastwmsController.renderingOptions, request.params) 
     181         
     182 
    167183         
    168184        # Housekeeping 
     
    191207            srs = self.getOwsParam('crs') 
    192208 
    193        # Get format 
     209        # Get format 
    194210        format = self.getOwsParam('format') 
    195211        if format not in self._pilImageFormats: 
     
    197213                'Format %s not supported' % format, 'format') 
    198214 
    199         if layerName == 'auto': 
    200             layerName = None 
    201          
     215  
     216        longResolution = parser.getOption('resolution') 
     217        log.debug("longResolution = %s" % (longResolution,)) 
     218        resMap = {'coarse':'c', 
     219                  'low':'l', 
     220                  'intermediate':'i', 
     221                  'high':'h', 
     222                  'full':'f', 
     223                  'auto':None 
     224                  } 
     225        resolution = resMap[longResolution] 
     226          
     227        log.debug("resolution = %s" % (resolution,)) 
    202228        ldg = LayerDrawerCoastlines(transparent=transparent, 
    203                                     resolution=layerName) 
     229                                    resolution=resolution) 
     230 
     231 
     232        ldg.drawRivers = parser.getOption('show_rivers') 
     233        ldg.coastlineColour = parser.getOption('coastline_colour') 
    204234 
    205235        xLimits = (bbox[0], bbox[2]) 
     
    276306 
    277307    def GetDisplayOptions(self): 
    278              
    279         displayOptions = { 
    280 #          "common": [ 
    281 #                        { 
    282 #                            "type":"select", 
    283 #                            "name":"cmap", 
    284 #                            "options":["bone","jet", "copper", "gray", "winter"], 
    285 #                            "title":"Colour Scheme", 
    286 #                            "defaultVal":"jet", 
    287 #                        }, 
    288 #                        { 
    289 #                            "type":"value", 
    290 #                            "name":"cmap_min", 
    291 #                            "title":"Legend Min", 
    292 #                            "defaultVal":None, 
    293 #                        }, 
    294 #                        { 
    295 #                            "type":"value", 
    296 #                            "name":"cmap_max", 
    297 #                            "title":"Legend Max", 
    298 #                            "defaultVal":None, 
    299 #                        },          
    300 #                     ], 
    301 #          "grid": [ 
    302 #                        { 
    303 #                            "type":"bool", 
    304 #                            "name":"show_grid_lines", 
    305 #                            "title":"Draw Grid Boxes", 
    306 #                            "defaultVal":"False", 
    307 #                        },     
    308 #                  ], 
    309 #          "contour":[ 
    310 #                        { 
    311 #                            "type":"value", 
    312 #                            "name":"num_contour_lines", 
    313 #                            "title":"Number of Contour Lines", 
    314 #                            "defaultVal":10, 
    315 #                        }, 
    316 #                        { 
    317 #                            "type":"select", 
    318 #                            "name":"contour_font_size", 
    319 #                            "title":"Contour Label Size", 
    320 #                            "options":["small","medium", "large",], 
    321 #                            "defaultVal":"medium", 
    322 #                        },    
    323 #                        { 
    324 #                            "type":"value", 
    325 #                            "name":"contour_label_interval", 
    326 #                            "title":"Interval Between Labels", 
    327 #                            "defaultVal":1, 
    328 #                        },              
    329 #                    ], 
    330         } 
    331          
    332          
     308         
     309         
     310        generator = SlabJSONGenerator({'':CoastwmsController.renderingOptions}) 
    333311        request.headers['Content-Type'] = 'application/json' 
    334         response.write( json.dumps(displayOptions) ) 
    335  
     312        response.write( generator.generateJSON() ) 
     313 
Note: See TracChangeset for help on using the changeset viewer.