云优化 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,您如何创建一个?