Changeset 2667
- Timestamp:
- 29/06/07 12:28:18 (14 years ago)
- 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 24 24 25 25 from ows_server.lib.csml_util import get_csml_doc, extractToNetCDF 26 from ows_server.lib.csml_cache import csmlCache, extractCache 26 27 27 28 from email.mime.multipart import MIMEMultipart … … 31 32 32 33 from ows_server.controllers.status import StatusController 34 import time 33 35 34 36 … … 52 54 submsg=MIMEText(xmlfile.read(), _subtype='xml') 53 55 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"') 54 58 msg.attach(submsg) 55 59 … … 58 62 submsg= MIMEBase('application', 'CF-netcdf') #check in ogc docs 59 63 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"') 61 66 submsg.add_header('Content-ID', '<coverage.nc>') 62 67 netcdf.close() … … 74 79 # This bit is a hack until the CSML API implements a mechanism 75 80 # 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=[''])) 83 91 return dims 84 92 … … 103 111 # Get default capabilities from superclass 104 112 sm = super(CsmlWcsController, self)._loadCapabilities() 105 106 107 113 ds = WcsDatasetSummary(titles=['Root Dataset'], datasetSummaries=[], CRSs=['CRS:84']) 108 114 # Add a DatasetSummary for each feature 109 for f_n in c.dataset.getFeatureList(): 115 for f_n in c.dataset.getFeatureList(): 110 116 feature_ds = self._loadFeatureSummary(c.dataset.getFeature(f_n)) 111 117 ds.datasetSummaries.append(feature_ds) 112 113 118 sm.contents = Contents(datasetSummaries=[ds]) 114 119 return sm … … 125 130 126 131 """ 127 128 132 # 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] 131 136 return self._renderCapabilities('ows/wcs_capabilities') 132 137 133 138 134 139 @operation 135 140 @parameter('Version', possibleValues=['1.1.0'], required=True) -
TI05-delivery/ows_framework/trunk/ows_server/ows_server/lib/base.py
r2614 r2667 68 68 69 69 """ 70 71 70 # Deduce ows_endpoint from routes 72 71 ows_endpoint = h.url_for(controller=request.environ['pylons.routes_dict']['controller']) 73 72 74 73 # Get the server-level configuration data from an XML file 75 74 config = request.environ['paste.config'] 76 75 sm_tree = ET.parse(config['ows_common_config']) 77 76 sm = ows_common.xml.service_metadata(sm_tree.getroot()) 78 77 79 78 # Extract service-level parameters and constraint 80 79 parameters = getattr(self, '_ows_parameters', {}) 81 80 constraints = getattr(self, '_ows_constraints', {}) 82 81 versions = getattr(self, '_ows_versions', []) 83 82 84 83 # Extract operation-level parameters and constraints 85 84 od = {} … … 96 95 sm.operationsMetadata = OperationsMetadata(od, constraints, parameters) 97 96 sm.serviceIdentification.serviceTypeVersions = versions 98 99 97 return sm 100 98 … … 107 105 108 106 """ 109 c.service_metadata = self._loadCapabilities() 110 107 c.service_metadata = self._loadCapabilities() 111 108 r = render_response(template, format='xml') 112 109 r.headers['content-type'] = 'text/xml' -
TI05-delivery/ows_framework/trunk/ows_server/ows_server/lib/csml_util.py
r2631 r2667 36 36 d = csml.parser.Dataset() 37 37 d.parse(f) 38 38 39 39 return d 40 40
Note: See TracChangeset
for help on using the changeset viewer.