GeoTrellis:为在GeoTrellis外部托管的云优化的GeoTIFF创建属性存储

时间:2018-10-03 20:52:15

标签: geotiff geotrellis

经云优化的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 Examples解释了如何使用在上一步中平铺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的examplesrelease notesdocs都确认存在对切片数据的支持,并使客户可以将其作为COG使用。 GeoTrellis是否也支持充当客户的能力?

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

1 个答案:

答案 0 :(得分:0)

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

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

顺便说一句,RasterFoundry将非结构化的COG图层用于其图块服务器。