GeoTrellis: создайте хранилище атрибутов для оптимизированного для облака GeoTIFF, размещенного вне GeoTrellis - PullRequest
0 голосов
/ 03 октября 2018

Стратегическим преимуществом облачной оптимизации 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 Объясните, как получить растр [Tile], используя AttributeStore, созданный в результате разбиения RDD на предыдущем шаге:

//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

examples , releaseПримечания и документы для поддержки COG в GeoTrellis подтверждают, что существует поддержка для разбиения данных на блоки и предоставления их клиентам для использования в качестве COG.Поддерживает ли GeoTrellis также возможность выступать в роли клиента?

Как создать FileCOGLayerReader, если у вас нет ранее существующего каталога, но есть URL-адрес, поддерживающий запросы диапазона?

1 Ответ

0 голосов
/ 04 октября 2018

На данный момент у нас есть две концепции, относящиеся к COG:

  • Первый - это слой COG GeoTrellis - очень похожий на слой слоя GeoTrellis avro, но вместо хранения отдельных плиток avro мы хранимплитки как сегмент tiff (s).Чтобы подготовить такой каталог, вам придется пройти через процесс загрузки, чтобы структурировать данные и переформатировать их в готовый формат GeoTrellis.Это был бы слой, который состоит из частичных пирамид, где каждая частичная пирамида представлена ​​набором COGS.
  • Второй - слой неструктурированных COG GeoTrellis: https://github.com/locationtech/geotrellis/blob/master/doc-examples/src/main/scala/geotrellis/doc/examples/spark/COGSparkExamples.scala#L114

Последний позволяет вам просто каким-то образом собирать метаданные о вашем наборе данных в (экстенты, URI) кортежи и предоставлять интерфейс для его запроса.Ознакомьтесь с примером, который я вам опубликовал, и дайте мне знать, если это работает для вас.

Кстати, RasterFoundry использует неструктурированные слои COG для своего сервера плиток.

...