Changeset 2667 for TI05-delivery


Ignore:
Timestamp:
29/06/07 12:28:18 (12 years ago)
Author:
domlowe
Message:

using csml cache, and changes to MIME headers

Location:
TI05-delivery/ows_framework/trunk/ows_server/ows_server
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/controllers/csml_wcs.py

    r2653 r2667  
    2424 
    2525from ows_server.lib.csml_util import get_csml_doc, extractToNetCDF 
     26from ows_server.lib.csml_cache import csmlCache, extractCache 
    2627 
    2728from email.mime.multipart import MIMEMultipart 
     
    3132 
    3233from ows_server.controllers.status import StatusController 
     34import time 
    3335 
    3436 
     
    5254        submsg=MIMEText(xmlfile.read(), _subtype='xml') 
    5355        submsg.add_header('Content-ID', '<coverage.xml>') 
     56        submsg.add_header('Content-Disposition', 'attachment; filename="coverage.xml"') 
     57        #submsg.set_type('text/xml; name="coverage.xml"') 
    5458        msg.attach(submsg) 
    5559 
     
    5862        submsg= MIMEBase('application', 'CF-netcdf') #check in ogc docs 
    5963        submsg.set_payload(netcdf.read()) 
    60         submsg.set_type('application/CF-netcdf; name="coverage.nc"') 
     64        submsg.set_type('application/CF-netcdf') 
     65        submsg.add_header('Content-Disposition', 'attachment; filename="coverage.nc"') 
    6166        submsg.add_header('Content-ID', '<coverage.nc>') 
    6267        netcdf.close() 
     
    7479        # This bit is a hack until the CSML API implements a mechanism 
    7580        # to determine which elements of a domain are longitude and latitude. 
    76         for axis_name, axis in feature.getDomain().iteritems(): 
    77             if axis_name in ['longitude', 'latitude']: 
    78                 continue 
    79             dims[axis_name] = Domain(possibleValues=PossibleValues.fromAllowedValues(axis), 
    80                                      #!TODO: this is a fudge until we can deduce UOM. 
    81                                      valuesUnit=ValuesUnit(uoms=[''], 
    82                                                            referenceSystems=[''])) 
     81        lon=feature.getLongitudeAxis() 
     82        lat=feature.getLongitudeAxis() 
     83        domain=feature.getDomain() 
     84        for axis_name, axis in domain.iteritems(): 
     85            if axis_name in [lon,lat]: 
     86                continue             
     87            dims[axis_name] =            Domain(possibleValues=PossibleValues.fromAllowedValues(axis), 
     88                                 #!TODO: this is a fudge until we can deduce UOM. 
     89                                 valuesUnit=ValuesUnit(uoms=[''], 
     90                                                       referenceSystems=[''])) 
    8391        return dims 
    8492 
     
    103111        # Get default capabilities from superclass 
    104112        sm = super(CsmlWcsController, self)._loadCapabilities() 
    105  
    106  
    107113        ds = WcsDatasetSummary(titles=['Root Dataset'], datasetSummaries=[], CRSs=['CRS:84']) 
    108114        # Add a DatasetSummary for each feature         
    109         for f_n in c.dataset.getFeatureList():            
     115        for f_n in c.dataset.getFeatureList():         
    110116            feature_ds = self._loadFeatureSummary(c.dataset.getFeature(f_n)) 
    111117            ds.datasetSummaries.append(feature_ds) 
    112  
    113118        sm.contents = Contents(datasetSummaries=[ds]) 
    114119        return sm 
     
    125130 
    126131        """ 
    127          
    128132        # Populate the context object with information required by the template 
    129         c.dataset = get_csml_doc(file) 
    130  
     133        #c.dataset = get_csml_doc(file) 
     134        #get doc from cache or disk: 
     135        c.dataset = csmlCache[file] 
    131136        return self._renderCapabilities('ows/wcs_capabilities') 
    132137 
    133  
     138     
    134139    @operation 
    135140    @parameter('Version', possibleValues=['1.1.0'], required=True) 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/lib/base.py

    r2614 r2667  
    6868 
    6969        """ 
    70  
    7170        # Deduce ows_endpoint from routes 
    7271        ows_endpoint = h.url_for(controller=request.environ['pylons.routes_dict']['controller']) 
    73  
     72         
    7473        # Get the server-level configuration data from an XML file 
    7574        config = request.environ['paste.config'] 
    7675        sm_tree = ET.parse(config['ows_common_config']) 
    7776        sm = ows_common.xml.service_metadata(sm_tree.getroot()) 
    78  
     77         
    7978        # Extract service-level parameters and constraint 
    8079        parameters = getattr(self, '_ows_parameters', {}) 
    8180        constraints = getattr(self, '_ows_constraints', {}) 
    8281        versions = getattr(self, '_ows_versions', []) 
    83  
     82         
    8483        # Extract operation-level parameters and constraints 
    8584        od = {} 
     
    9695        sm.operationsMetadata = OperationsMetadata(od, constraints, parameters) 
    9796        sm.serviceIdentification.serviceTypeVersions = versions 
    98          
    9997        return sm 
    10098 
     
    107105 
    108106        """ 
    109         c.service_metadata = self._loadCapabilities() 
    110  
     107        c.service_metadata = self._loadCapabilities()         
    111108        r = render_response(template, format='xml') 
    112109        r.headers['content-type'] = 'text/xml' 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/lib/csml_util.py

    r2631 r2667  
    3636    d = csml.parser.Dataset() 
    3737    d.parse(f) 
    38          
     38       
    3939    return d 
    4040 
Note: See TracChangeset for help on using the changeset viewer.