Exemplo n.º 1
0
    def _getWCSMetadata(self, wcs, layer):

        oldProxy = proxyFix(wcs.url)
        try:
            layerMetadata = wcs[layer]
            bboxLimits = ",".join([str(x) for x in layerMetadata.boundingBoxWGS84])
            timepositions = layerMetadata.timepositions
            supportedFormats = layerMetadata.supportedFormats
            supportedCRS = layerMetadata.supportedCRS

        finally:
            resetProxy(oldProxy)

        return layerMetadata, bboxLimits, timepositions, supportedFormats, supportedCRS
Exemplo n.º 2
0
    def _getWCSObj(self, endpoint):
        oldProxy = proxyFix(endpoint)
        try:

            log.debug("wcs endpoint = %s" % (endpoint,))

            getCapabilitiesEndpoint = parseEndpointString(endpoint, {"Service": "WCS", "Request": "GetCapabilities"})

            log.debug("wcs endpoint = %s" % (getCapabilitiesEndpoint,))
            # requires OWSLib with cookie support
            wcs = WebCoverageService(
                getCapabilitiesEndpoint, version="1.0.0", cookies=request.headers.get("Cookie", "")
            )

            layers = [x[0] for x in wcs.items()]
        finally:
            resetProxy(oldProxy)

        return wcs, layers
Exemplo n.º 3
0
        log.debug("Checking for value for dimension %s" % dimensionName)
        if dimensionName in params:
            args[dimensionName] = params[dimensionName]
            log.debug("Found value %s" % params[dimensionName])

    log.debug("args = %s" % (args,))

    # Perform the GetCoverage request.
    oldProxy = proxyFix(endpoint)
    try:
        output = wcs.getCoverage(**args)
    except Exception, e:
        log.exception("Exception occurred")
        raise
    finally:
        resetProxy(oldProxy)

    # Retrieve the content disposition and type headers.
    responseHeaders = {}
    for k in output.headers.keys():
        v = output.headers[k]
        log.debug("Header %s=%s" % (k, v))

        if k.lower() == "content-disposition":
            responseHeaders["Content-Disposition"] = v
            match = CONTENT_FILENAME_REGEX.search(v)
            try:
                responseHeaders["filename"] = match.group("filename")
            except IndexError:
                pass
        elif k.lower() == "content-type":