Changeset 5848


Ignore:
Timestamp:
20/10/09 11:40:28 (10 years ago)
Author:
pnorton
Message:

First attempt at passing the axis config xml through to the metadata in the getcapabilities.

Location:
cows/trunk/cows/service/imps/data_reader_geoplot_backend
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • cows/trunk/cows/service/imps/data_reader_geoplot_backend/data_reader_geoplot_wms_layer.py

    r5761 r5848  
    3434     
    3535    EnableDisplayOptions = False 
    36      
    37     def __init__(self, name, title, abstract, dimensions, units, crss, boundingBox, dataReader): 
     36    EnableXMLAxisConfig = False 
     37     
     38    def __init__(self, name, title, abstract, dimensions, units, crss,  
     39                 boundingBox, dataReader): 
    3840        self.featureInfoFormats=None #NotImplemented 
    3941        self.title=title 
     
    150152         
    151153        if actualStyle not in [x.style for x in DRGeoplotWmsLayer.slab_classes]: 
    152              Exception("No slab class found for style = %s"  % (style,)) 
     154            Exception("No slab class found for style = %s"  % (style,)) 
    153155              
    154156        return actualStyle 
     
    165167         
    166168        if slabClass == None: 
    167              Exception("No slab class found for style = %s"  % (style,)) 
     169            Exception("No slab class found for style = %s"  % (style,)) 
    168170         
    169171        return slabClass 
     
    315317        return styles 
    316318     
     319    def getAxisConfigFile(self): 
     320        xmlFile = None 
     321         
     322        if hasattr(self.dataReader, 'getConfigAxisXMLFile'): 
     323             
     324            xmlFile =  self.dataReader.getConfigAxisXMLFile() 
     325         
     326        return xmlFile 
     327     
    317328    def _buildMetadataURL(self): 
     329         
     330        metadataURLs = [] 
    318331         
    319332        if DRGeoplotWmsLayer.EnableDisplayOptions == True: 
     
    321334                                        "?request=GetDisplayOptions&layers=%s" % self.name) 
    322335             
    323             displayMetadata = MetadataURL(metadataType='display_options', format='application/json', onlineResource=onlineRes) 
    324              
    325             return [displayMetadata]  
    326         else: 
    327             return [] 
     336            metadataURLs.append( MetadataURL(metadataType='display_options',  
     337                                          format='application/json',  
     338                                          onlineResource=onlineRes) ) 
     339             
     340        if DRGeoplotWmsLayer.EnableXMLAxisConfig: 
     341             
     342            xmlFile =  self.getAxisConfigFile() 
     343             
     344            if xmlFile != None: 
     345                 
     346                onlineRes = OnlineResource(url_for(qualified=True, action='index') +\ 
     347                                        "?request=GetAxisConfig&layers=%s" % self.name) 
     348             
     349                metadataURLs.append( MetadataURL(metadataType='axis_config',  
     350                                                 format='text/xml',  
     351                                          onlineResource=onlineRes) )       
     352         
     353        return metadataURLs 
  • cows/trunk/cows/service/imps/data_reader_geoplot_backend/data_readers/csml_data_reader.py

    r5692 r5848  
    2828        self.ds = self.connector.getCsmlDoc(fileoruri) 
    2929        self.varcache = {}  
     30         
     31 
    3032     
    3133    def getWMSLayerInfo(self): 
     
    98100    def _getFeature(self, id): 
    99101        for feature in csml.csmllibs.csmlextra.listify(self.ds.featureCollection.featureMembers): 
    100            if feature.id == id: 
    101                return feature 
     102            if feature.id == id: 
     103                return feature 
    102104             
    103105        raise Exception("Feature with id %s not found" % (id,)) 
     
    169171        return convertedVals 
    170172     
     173     
     174    def getConfigAxisXMLFile(self): 
     175         
     176        xmlPath = None 
     177        for m in self._getMetadataElements(): 
     178            log.debug("m.text = %s" % (m.text,)) 
     179            metadataValue = m.text.strip() 
     180            if metadataValue.find('AxisConfigXML') == 0: 
     181                xmlPath = metadataValue.split('=')[1] 
     182         
     183        log.debug("xmlPath = %s" % (xmlPath,)) 
     184        return xmlPath 
     185     
     186    def _getMetadataElements(self): 
     187         
     188        featureCollectionElt = None 
     189        for c in self.ds.elem.getchildren():  
     190            if c.tag.find('CSMLFeatureCollection') > -1: 
     191                featureCollectionElt = c 
     192                break 
     193         
     194        metadataElements = [] 
     195        if featureCollectionElt != None: 
     196            for c in featureCollectionElt.getchildren(): 
     197                if c.tag.find("metaDataProperty") > -1: 
     198                    metadataElements.append(c)     
     199 
     200        return metadataElements 
     201         
    171202    @staticmethod 
    172203    def isDataPresent(fileoruri): 
     
    180211             
    181212        return False 
     213     
     214     
  • cows/trunk/cows/service/imps/data_reader_geoplot_backend/geoplot_slabs/geoplot_slab_base.py

    r5761 r5848  
    7373        """ 
    7474        #log.debug("GetImage called with bbox=%s, width=%s, height = %s" % (bbox, width, height,)) 
     75         
    7576        xLimits = (bbox[0], bbox[2]) 
    7677        yLimits = (bbox[1], bbox[3]) 
    77                  
    78         if self.variable.getAxisIds().sort() == ['latlitude','longitude'].sort(): 
     78         
     79        if sorted(self.variable.getAxisIds()) == sorted(['latitude','longitude']): 
    7980             
    8081            if not self._areBoundsInLimits(bbox, xLimits, yLimits): 
     
    8586                log.debug("empty image used as no data found for id=%s (%sx%s), lon=%s, lat=%s " % \ 
    8687                  (self.variable.id, width, height, xLimits, yLimits)) 
    87                  
     88             
    8889                return pilImage 
    8990                        
     
    105106        xRange = [ lonAx.getBounds().min(), lonAx.getBounds().max()] 
    106107        yRange = [ latAx.getBounds().min(), latAx.getBounds().max()] 
    107 #        log.debug("xLimits = %s" % (xLimits,)) 
    108 #        log.debug("yLimits = %s" % (yLimits,)) 
    109 #        log.debug("xRange = %s" % (xRange,)) 
    110 #        log.debug("yRange = %s" % (yRange,)) 
     108        log.debug("xLimits = %s" % (xLimits,)) 
     109        log.debug("yLimits = %s" % (yLimits,)) 
     110        log.debug("xRange = %s" % (xRange,)) 
     111        log.debug("yRange = %s" % (yRange,)) 
    111112         
    112113        xRange = self._fixLongitudeRange(xLimits, xRange) 
     
    114115        isInLimits = isRangeInLimits(xRange, xLimits) and \ 
    115116                     isRangeInLimits(yRange, yLimits) 
    116                       
     117                              
     118        log.debug("isInLimits = %s" % (isInLimits,)) 
     119         
    117120        return isInLimits 
    118121     
Note: See TracChangeset for help on using the changeset viewer.