Explorar o código

trying to handle bands - not fixed yet

Jachym Cepicky %!s(int64=14) %!d(string=hai) anos
pai
achega
599b9884f3
Modificáronse 3 ficheiros con 7 adicións e 4 borrados
  1. 4 4
      OWS.py
  2. 2 0
      wcs/__init__.py
  3. 1 0
      wcs/templates/wcs.xml

+ 4 - 4
OWS.py

@@ -217,7 +217,7 @@ class OWS:
         return layerurl
         return layerurl
 
 
     def createLayerDefinitionFile(self, name,
     def createLayerDefinitionFile(self, name,
-            templatefile,time=None,target=None):
+            templatefile,time="",target=None):
 
 
             layerurl = self.getLayerUrl()
             layerurl = self.getLayerUrl()
             defFileName = None
             defFileName = None
@@ -227,12 +227,12 @@ class OWS:
                 defFileName = os.path.join(self.cachedir,'%s.%s'%(name,self.service.lower()))
                 defFileName = os.path.join(self.cachedir,'%s.%s'%(name,self.service.lower()))
             if time:
             if time:
                 time = "<DefaultTime>"+time+"</DefaultTime>"
                 time = "<DefaultTime>"+time+"</DefaultTime>"
-            else:
-                time = ""
 
 
             open(defFileName,'w').write(
             open(defFileName,'w').write(
                     Template(open(templatefile).read()).substitute( 
                     Template(open(templatefile).read()).substitute( 
-                            dict(url= layerurl, name=name,time=time)))
+                            dict(url= layerurl,
+                                name=name,time=time,extras="&BAND=1,2,3")))
+                            # FIXME always takes band 1,2,3 ^^
 
 
             logging.debug("Created %s layer definition file" % defFileName)
             logging.debug("Created %s layer definition file" % defFileName)
 
 

+ 2 - 0
wcs/__init__.py

@@ -44,6 +44,7 @@ class WCS(OWS):
 
 
             # create the layer
             # create the layer
             ds = gdal.Open(layerDefFile)
             ds = gdal.Open(layerDefFile)
+
             try:
             try:
                 lyrobj = mapscript.layerObj(mapobj)
                 lyrobj = mapscript.layerObj(mapobj)
                 lyrobj.name = name
                 lyrobj.name = name
@@ -55,6 +56,7 @@ class WCS(OWS):
                 #    lyrobj.setMetaData("ows_abstract",  layer["{%s}%s" % (self.owsns11,"Abstract")].text)
                 #    lyrobj.setMetaData("ows_abstract",  layer["{%s}%s" % (self.owsns11,"Abstract")].text)
                 lyrobj.setMetaData("wms_srs",self.config.get("MapServer","srs"))
                 lyrobj.setMetaData("wms_srs",self.config.get("MapServer","srs"))
                 extent = None
                 extent = None
+                # processing
                 if layer.crsOptions:
                 if layer.crsOptions:
                     lyrobj.setProjection(layer.crsOptions[0])
                     lyrobj.setProjection(layer.crsOptions[0])
                     extent = self.getLayerExtent(layer,layer.crsOptions[0])
                     extent = self.getLayerExtent(layer,layer.crsOptions[0])

+ 1 - 0
wcs/templates/wcs.xml

@@ -2,5 +2,6 @@
   <ServiceURL>$url</ServiceURL>
   <ServiceURL>$url</ServiceURL>
   <CoverageName>$name</CoverageName>
   <CoverageName>$name</CoverageName>
   <Timeout>5000</Timeout>
   <Timeout>5000</Timeout>
+  <GetCoverageExtras>$extras</GetCoverageExtras>
   $time
   $time
 </WCS_GDAL>
 </WCS_GDAL>