Partilhar via


Cubos de dados no Microsoft Planetary Computer Pro

Conforme mencionado em Tipos de dados suportados, o Microsoft Planetary Computer Pro suporta ingestão, otimização de nuvem e visualização de arquivos de cubo de dados nos formatos NetCDF, HDF5, Zarr e GRIB2. Embora complexos e historicamente complicados no armazenamento local, esses ativos são otimizados para ambientes de nuvem com o Planetary Computer Pro, capacitando-os ainda mais como ferramentas eficientes para estruturar e armazenar dados multidimensionais, como imagens de satélite e modelos climáticos.

Ingestão de cubos de dados

Os arquivos de cubo de dados podem ser ingeridos no Planetary Computer Pro da mesma forma que outros tipos de dados raster. Assim como acontece com outros formatos de data, os ativos e os itens STAC (Spatio Temporal Asset Catalog) associados devem primeiro ser armazenados no Armazenamento de Blobs do Azure. Ao contrário de outros ativos raster bidimensionais, no entanto, mais etapas de otimização de nuvem ocorrem após a ingestão de certos formatos de cubo de dados (NetCDF e HDF5).

Observação

Os dados GRIB2 são ingeridos da mesma forma que outros dados raster bidimensionais (sem outras etapas de otimização de nuvem), pois são essencialmente uma coleção de rasters 2D com um arquivo de índice associado que referencia os dados de forma eficiente em ambientes de nuvem. Da mesma forma, o Zarr já é um formato nativo da nuvem, portanto, nenhuma otimização ocorre após a ingestão.

Otimização de cubos de dados na nuvem

Quando um item STAC contendo ativos NetCDF ou HDF5 é ingerido, os ativos são otimizados para a nuvem, não transformando os dados em si, mas sim gerando arquivos de referência que permitem um acesso mais eficiente aos dados.

Otimização da nuvem via manifestos Kerchunk

Ao contrário dos dados raster 2D que são transformados em Geotiffs Otimizados para Nuvem (COGs) quando ingeridos no Planetary Computer Pro, os ativos em cubo de dados são otimizados através da geração de arquivos de referência ou manifestos Kerchunk. Kerchunk é uma biblioteca Python de código aberto que cria esses manifestos de bloco, ou arquivos JSON que descrevem a estrutura do cubo de dados e seus blocos usando chaves de bloco no estilo Zarr que mapeiam para os intervalos de bytes no arquivo original onde esses blocos residem. Uma vez gerados, os arquivos Kerchunk são armazenados em armazenamento de blob ao lado dos ativos, e os itens STAC são enriquecidos para incluir referências a esses manifestos, otimizando o acesso aos dados para ambientes de nuvem.

Propriedades do item STAC que acionam a otimização da nuvem

Dentro dos itens STAC da coleção, as seguintes condições devem ser verdadeiras para que um ativo de cubo de dados seja otimizado para nuvem:

  • O formato do ativo é um dos seguintes tipos:
    • application/netcdf
    • application/x-netcdf
    • application/x-hdf5
  • O ativo tem um roles campo que inclui data ou visual dentro da sua lista de funções.

Se essas condições forem atendidas, um manifesto Kerchunk (assetid-kerchunk.json) será gerado no armazenamento Blob ao lado do ativo.

Observação

O tipoapplication/x-hdf de formato de ativo geralmente corresponde aos ativos HDF4. Atualmente, a ingestão do GeoCatalog não suporta a criação de manifestos kerchunk virtuais para HDF4 devido à sua complexidade adicional e múltiplas variantes.

Enriquecimento de itens STAC

Para cada ativo otimizado dentro do item STAC, os seguintes campos são adicionados:

  • msft:datacube_converted: true – Indica que o enriquecimento foi aplicado.
  • cube:dimensions – Um dicionário listando as dimensões do conjunto de dados e suas propriedades.
  • cube:variables – Um dicionário que descreve as variáveis do conjunto de dados e suas propriedades.

Essas variáveis devem ser usadas para configurações de renderização para garantir que sua visualização de ativos de cubo de dados no Explorer esteja lendo e renderizando seus dados com mais eficiência.

Benefícios dos cubos de dados otimizados para a nuvem

A otimização da nuvem do cubo de dados melhora o desempenho do acesso aos dados, especialmente para fluxos de trabalho de visualização. Quando um manifesto Kerchunk está presente, ele permite um acesso mais rápido em comparação com o carregamento de todo o arquivo do conjunto de dados.

O Microsoft Planetary Computer Pro API Explorer e as APIs de tileamento usam preferencialmente o manifesto do Kerchunk para operações de leitura de dados, se este existir no mesmo diretório de armazenamento de blobs que o ativo original.

A leitura de dados usando uma abordagem fragmentada e baseada em referência é mais rápida porque evita a leitura de todo o arquivo na memória.

Desativando a otimização da nuvem do cubo de dados

Se você decidir que não deseja trabalhar com ativos de cubo de dados otimizados para nuvem, desative a otimização de nuvem removendo data e visual da lista de roles ativos no item JSON STAC antes da ingestão.

Ingestão de Zarr e atualizações de dados

Como mencionado anteriormente, o Zarr é inerentemente um formato nativo da nuvem, portanto, nenhuma otimização extra ocorre quando ingerido e nenhuma modificação de seus itens STAC é necessária. No entanto, se planeia atualizar dinamicamente os seus ativos Zarr e reprocessar itens STAC para utilizar a versão mais recente, é importante estar ciente de dois métodos de atualização: Append e Sync.

Append

Se adicionares novos dados a uma loja Zarr armazenada localmente, mas quiseres atualizar a versão armazenada no Planetary Computer Pro, precisarás de reintegrar o item STAC. Quando esse item é reintegrado, o comportamento padrão é revisar os ativos em busca de novos dados e adicioná-los aos dados armazenados na nuvem. Não é necessária qualquer modificação ao item STAC antes da reingestão.

Sincronização

Se você remover dados de um armazenamento Zarr armazenado localmente, regestionar o mesmo item STAC não permitirá que a versão baseada em nuvem corresponda à versão em sua máquina, pois a funcionalidade de acréscimo procura novos dados, mas não se ajusta de acordo com quaisquer dados ausentes. É aí que a sincronização entra em jogo. Ao modificar o item STAC para incluir um parâmetro que indica que se deseja sincronizar os dados existentes com os novos e reingestir esse item STAC modificado, apenas os dados mais atualizados do repositório Zarr estarão disponíveis no Planetary Computer Pro. A modificação do item STAC deve aparecer da seguinte forma:

{
    ...
    "assets": {
        "pr": {
            "href": "https://managedstorage.azure.com/collection-container/somestuff/pr.zarr",
            "msft:ingestion": {
              "directory": "sync"
            }
        }
    }
}