Changeset 3486 for DPPP


Ignore:
Timestamp:
21/02/08 12:20:27 (11 years ago)
Author:
spascoe
Message:

Capabilities almost done

Location:
DPPP/ukcip02_server/trunk/ukcip_server
Files:
4 edited
1 moved

Legend:

Unmodified
Added
Removed
  • DPPP/ukcip02_server/trunk/ukcip_server/development.ini

    r3480 r3486  
    1010smtp_server = localhost 
    1111error_email_from = paste@localhost 
    12 ukcip02.data_dir = /home/users/spascoe/host/saturn/data/ukcip02 
    1312ows_server.exception_type = pylons 
    1413ows_server.capabilities_config = ./capabilities.conf 
     
    2524beaker.session.key = ukcip_server 
    2625beaker.session.secret = somesecret 
     26ukcip02.data_dir = %(here)s/../data 
    2727 
    2828# If you'd like to fine-tune the individual locations of the cache data dirs 
  • DPPP/ukcip02_server/trunk/ukcip_server/ukcip_server/config/environment.py

    r3367 r3486  
    77import ukcip_server.lib.helpers 
    88from ukcip_server.config.routing import make_map 
    9  
    10 from ukcip_server.config import ukcip02 
    119 
    1210def load_environment(global_conf, app_conf): 
     
    3533    # any Pylons config options) 
    3634 
    37     # Initialise the UKCIP02 data 
    38     ukcip02.load_data() 
  • DPPP/ukcip02_server/trunk/ukcip_server/ukcip_server/controllers/ukcip_wms.py

    r3480 r3486  
    44from matplotlib.cm import get_cmap 
    55 
    6 from ows_common.pylons.ows_controller import OwsController, genshiLoader 
     6from ows_common.pylons.ows_controller import OwsController, genshiLoader, addOperation, addLayer 
    77from ows_common.exceptions import * 
    88 
     
    2323        return t.generate(c=c).render() 
    2424 
     25    def _loadCapabilities(self): 
     26        addOperation('GetMap', formats=['image/png']) 
     27        addOperation('GetInfo') 
     28        log.debug('Loading capabilities contents') 
     29        for layerName, layer in model.ukcip02.layers.items(): 
     30            log.debug('Loading layer %s' % layerName) 
     31            addLayer(layerName, title=layer.title, abstract=layer.abstract, 
     32                     #!TODO dimensions 
     33                     srs=layer.GridClass.crs, bbox=model.ukcip02.bbox) 
     34 
    2535    def GetMap(self): 
    2636 
     
    3949        height = int(self.getOwsParam('height')) 
    4050        srs = self.getOwsParam('srs') 
    41         if srs != 'EPSG:4326': 
    42             raise InvalidParameterValue('SRS %s not supported' % srs, 
    43                                               'srs') 
     51        #!TODO: Check valid srs 
    4452 
    4553 
     
    5058                'Multi-layer GetMap requests are not supported', 'layers') 
    5159        try: 
    52             layerObj = g.ukcip02_layers[layer] 
     60            layerObj = model.ukcip02.layers[layer] 
    5361        except KeyError: 
    5462            raise InvalidParameterValue('Layer %s not found' % layer, 'layers') 
     
    92100        request.headers['Content-Type'] = 'text/ascii' 
    93101        response.write('Some info about this service\n') 
    94         for layer in g.ukcip02_layers: 
     102        for layer in model.ukcip02.layers: 
    95103            response.write('Layer %s: %s\n' % (layer, pformat(g.ukcip02_layers[layer].__dict__))) 
    96104 
  • DPPP/ukcip02_server/trunk/ukcip_server/ukcip_server/model/__init__.py

    r3360 r3486  
     1# Load submodule 
     2import ukcip02 
  • DPPP/ukcip02_server/trunk/ukcip_server/ukcip_server/model/ukcip02.py

    r3371 r3486  
    1212import cdms 
    1313 
    14 def load_data(): 
    15     data_dir = config['ukcip02.data_dir'] 
     14import logging 
     15log = logging.getLogger(__name__) 
    1616 
    17     layers = {} 
    18     datasets = {} 
    19     for f in glob(os.path.join(data_dir, '*.nc')): 
    20         ds = cdms.open(f) 
    21         for varName in ds.listvariables(): 
    22             #!TODO: Min/Max values 
    23             layers[varName] = SimpleCdmsLayer(ds[varName], 0, 100, GridClass=CdmsBNGGrid) 
    24         datasets[f] = ds 
    25          
    26     config['pylons.g'].ukcip02_datasets = datasets 
    27     config['pylons.g'].ukcip02_layers = layers 
     17data_dir = config['ukcip02.data_dir'] 
     18log.debug('Data dir set to %s' % data_dir) 
     19 
     20layers = {} 
     21datasets = {} 
     22 
     23for f in glob(os.path.join(data_dir, '*.nc')): 
     24    log.debug('Looking for layers in %s' % f) 
     25    ds = cdms.open(f) 
     26    for varName in ds.listvariables(): 
     27        log.debug('Found layer %s' % varName) 
     28        #!TODO: Min/Max values 
     29        layers[varName] = SimpleCdmsLayer(ds[varName], 0, 100, GridClass=CdmsBNGGrid) 
     30    datasets[f] = ds 
     31 
     32# We need to hard-code the bbox for now 
     33bbox = (-200000, -200000, 695000, 1245000) 
Note: See TracChangeset for help on using the changeset viewer.