Пример #1
0
def get_cached_vrt(idaho_id, node, level):
    cache_key = vrt_cache_key(idaho_id, node, level)
    cache_path = os.path.join(IDAHO_CACHE_DIR, cache_key)
    try:
        d = os.path.dirname(cache_path)
        if not os.path.exists(d):
            mkdir_p(d)
        with open(cache_path) as f:
            f.read()
        return cache_path
    except IOError:
        raise NotFound("VRT template for key '{}' not found in cache".format(cache_key))
Пример #2
0
def put_cached_vrt(idaho_id, node, level, template):
    try:
        cache_key = vrt_cache_key(idaho_id, node, level)
        cache_path = os.path.join(IDAHO_CACHE_DIR, cache_key)
        d = os.path.dirname(cache_path)
        if not os.path.exists(d):
            mkdir_p(d)
        with open(cache_path, "w") as f:
            f.write(Template(template.decode('utf-8')).substitute(query=""))
        return cache_path
    except Exception as e:
        print("VRT could not be cached", e)
        pass
Пример #3
0
    "BYTE": "Byte",
    "FLOAT": "Float32"
}

NODE_DATA_TYPES = {
    "MsSourceImage": "UInt16",
    "MsOrthoImage": "UInt16",
    "MsOrthoImage-pan": "UInt16",
    "Pansharpened": "UInt16",
    "IntegerImage": "UInt16",
    "IntegerImage-pan": "UInt16"
}

IDAHO_CACHE_DIR = os.environ.get("IDAHO_CACHE_DIR", "/tmp/idaho-cache")
if not os.path.exists(IDAHO_CACHE_DIR):
    mkdir_p(IDAHO_CACHE_DIR)


def generate_vrt_template(conn, ipe_id, node, level, num_bands=None):
    meta = get_ipe_metadata(conn, ipe_id, node=node)
    image_md = meta['image']
    if num_bands is None:
        num_bands = image_md["numBands"]
    tfm = meta['georef']
    tile_size_x = image_md['tileXSize']
    tile_size_y = image_md['tileYSize']

    vrt = ET.Element("VRTDataset",
                     {"rasterXSize": str(image_md["imageWidth"]), "rasterYSize": str(image_md["imageHeight"])})
    ET.SubElement(vrt, "SRS").text = tfm["spatialReferenceSystemCode"]
    ET.SubElement(vrt, "GeoTransform").text = ", ".join(map(str, [tfm["translateX"],