首页 > 解决方案 > GeoTrellis:为在 GeoTrellis 之外托管的云优化 GeoTIFF 创建属性存储

问题描述

云优化 GeoTiff 的战略性能优势是能够检索给定范围的栅格数据,同时仅从远程资源中提取概览和字节范围。

在 Python 中,vsicurl 和 gdal.Warp 抽象使得只需一个 URL 和一个范围就可以做到这一点:

vsicurl_url = '/vsicurl/' + url_to_cog

gdal.Warp(output_file, 
    vsicurl_url, 
    dstSRS = 'EPSG:4326', 
    cutlineDSName = jsonFileSliceAoi, 
    cropToCutline = True)

新创建的COG Spark 示例解释了如何使用在上一步中对 RDD 进行平铺而创建的 AttributeStore 来获得 Raster[Tile]:

//tiling an RDD and writing out the catalog
...

// Create the reader instance to query tiles stored as a Structured COG Layer
val reader = FileCOGLayerReader(attributeStore)

// Read layer at the max persisted zoom level
// Actually it can be any zoom level in this case from the [0; zoom] values range
val layer: TileLayerRDD[SpatialKey] = reader.read[SpatialKey, Tile](LayerId("example_cog_layer", zoom))

// Let's stitch the layer into tile
val raster: Raster[Tile] = layer.stitch

GeoTrellis 中关于 COG 支持的示例发行说明文档都确认支持平铺数据并使其可供客户端作为 COG 使用。GeoTrellis 是否也支持充当客户端的能力?

FileCOGLayerReader如果您没有预先存在的目录,但有一个支持范围请求的 URL,您如何创建一个?

标签: geotiffgeotrellis

解决方案


我们目前有两个与 COG 相关的概念:

最后一个允许您以某种方式将有关数据集的元数据收集到(范围,URI)元组中,并提供查询它的接口。熟悉我发布给你的例子,让我知道它是否适合你。

顺便说一句,RasterFoundry 使用非结构化 COG 图层作为其切片服务器。


推荐阅读