Gerenciar recursos

Os recursos do Earth Engine são dados geoespaciais de propriedade do projeto armazenados na plataforma. Você pode fazer upload dos seus próprios dados e armazenar os dados produzidos pelas análises do Earth Engine como recursos.

Tipos de recursos

O Earth Engine oferece vários formatos de recursos para diferentes tipos de dados, além de elementos de contêiner para organização.

Tipos de recursos
Image Um raster é uma representação baseada em grade de informações geográficas em que cada célula da grade contém um valor correspondente a um local específico na superfície da Terra.
ImageCollection Uma coleção de imagens raster relacionadas que constituem um mosaico ou uma série temporal. Ele é funcionalmente semelhante a uma pasta, mas pode ser importado para o Earth Engine como um objeto ee.ImageCollection que inclui um conjunto de métodos para filtragem e análise.
Table Uma estrutura de dados de tabela composta por recursos de vetor (linhas), cada um contendo uma série de propriedades (colunas). Ele é representado pelo objeto ee.FeatureCollection, que inclui um conjunto de métodos para filtragem e análise.
Classifier Um modelo de machine learning treinado do Earth Engine. Ele é representado pelo objeto ee.Classifier, que inclui um conjunto de métodos para aplicação e análise.
FeatureView Uma visualização de uma tabela para uso nos apps do Earth Engine.
Folder Um contêiner para recursos e outras pastas que ajudam na organização.

Organização de recursos

Os recursos do Earth Engine são organizados em um sistema hierárquico de pastas e coleções. A estrutura é semelhante aos sistemas de arquivos comuns.

Raiz

Os recursos pertencem a um projeto do Cloud. O nome do projeto define a raiz do diretório de recursos. Por exemplo, a raiz de my-project é projects/my-project/assets. Todos os recursos que pertencem a my-project estão na pasta projects/my-project/assets ou em uma subpasta (ou ImageCollection) dentro dela.

Diretório

O Earth Engine usa uma estrutura de diretório semelhante a uma árvore para organizar os recursos. Cada projeto do Cloud tem um diretório raiz que pode conter ativos e pastas individuais. ImageCollections são um tipo especial de recurso projetado especificamente para armazenar conjuntos de imagens relacionadas, como séries temporais ou mosaicos. Ao contrário das pastas, as ImageCollections só podem conter recursos de imagem e não podem aninhar outras pastas ou coleções.

  • folder_dataprojects/my-project/assets/
    • pasta nome-da-pasta/
      • photo image-name
      • view_comfy nome-da-tabela
      • satellite featureview-name
      • bubble_chart classifier-name
      • photo_library imagecollection-name/
        • photo image-name-1
        • photo image-name-2

Código do recurso

O Earth Engine usa IDs de recursos para referenciar dados em scripts e operações de linha de comando. Eles definem locais de recursos usando barras (/) como separadores entre diretórios. Por exemplo, projects/my-project/assets/my-asset especifica um recurso chamado "my-asset" localizado na raiz "my-project". Confira um exemplo de como usar esse ID para receber informações sobre o recurso.

Python

print(ee.data.getAsset('projects/my-project/assets/my-asset'))

Editor de código

print(ee.Image('projects/my-project/assets/my-asset'))

Linha de comando

earthengine asset info projects/my-project/assets/my-asset

Criar recursos

É possível criar pastas e ImageCollections e ingerir imagens e tabelas de arquivos locais ou de um bucket do Cloud Storage. Os formatos de imagem compatíveis incluem GeoTIFF (padrão e COG) e TFRecord. Os formatos de tabela compatíveis incluem Shapefile e CSV. Os recursos também podem ser criados ao exportar um resultado de análise do Earth Engine usando funções em lote Export.*.toAsset.

Cliente Python

Imagem

Use a função ee.data.startIngestion para ingerir imagens do Cloud Storage. Consulte a página do manifesto de imagem para mais informações sobre como configurar o upload.

manifest = {
  'name': 'projects/my-project/assets/asset-name',
  'tilesets': [
    {
      'sources': [
        {
          'uris': [
            'gs://my-bucket/filename.tif'
          ]
        }
      ]
    }
  ]
}
ee.data.startIngestion(None, manifest)

Tabela

Use a função ee.data.startTableIngestion para ingerir tabelas do Cloud Storage. Consulte a página do manifesto de imagem para mais informações sobre como configurar o upload.

manifest = {
  'name': 'projects/my-project/assets/asset-name',
  'sources': [
    {
      'uris': [
        'gs://my-bucket/filename.csv'
      ]
    }
  ]
}
ee.data.startTableIngestion(None, manifest)

Pasta ou ImageCollection

Use a função ee.data.createAsset para criar pastas vazias ou ImageCollections.

ee.data.createAsset(
    {'type': 'FOLDER'}, # or 'IMAGE_COLLECTION'
    'projects/my-project/assets/asset-name'
)

Editor de código

No Gerenciador de recursos, clique no botão NOVO e selecione o tipo de recurso que você quer fazer upload ou criar na lista suspensa. Configure o upload ou a criação de recursos na caixa de diálogo.

Linha de comando

Imagem ou tabela

earthengine upload image --asset_id=projects/my-project/assets/asset-name gs://my-bucket/filename.tif
earthengine upload table --asset_id=projects/my-project/assets/asset-name gs://my-bucket/filename.csv

Pasta ou ImageCollection

Use o comando earthengine create para criar pastas vazias ou ImageCollections.

earthengine create folder projects/my-project/assets/folder-name
earthengine create collection projects/my-project/assets/collection-name

Imagem externa

Os arquivos GeoTIFF otimizados para nuvem (COG) enviados para um bucket do Google Cloud Storage podem ser registrados como recursos de imagem externos e usados diretamente no Earth Engine. Consulte os documentos de referência para mais informações sobre ativos com suporte a COG e como criar um manifesto.

earthengine alpha upload external_image --manifest /tmp/foo.json

Listar recursos

Cliente Python

Use a função ee.data.listAssets para listar recursos em uma pasta ou coleção (não recursiva). Consulte os documentos de referência para mais informações sobre filtragem e paginação.

ee.data.listAssets('projects/my-project/assets')

Consulte também ee.data.listImages e ee.data.listFeatures.

Editor de código

Abra as pastas no Gerenciador de recursos para ver os recursos.

Linha de comando

Use o comando earthengine ls para listar recursos em uma pasta ou coleção (não recursivo). Consulte a documentação de referência para mais informações sobre como limitar o número de recursos a serem listados e a quantidade de detalhes a serem retornados.

earthengine ls projects/my-project/assets

Definir permissões de recursos

Cliente Python

Use a função ee.data.setAssetAcl para definir permissões em um recurso.

asset_id = 'projects/my-project/assets/asset-name'
acl_update = {
    'owners': [
        'user:big_cheese@example.com',
        'user:el_jefe@example.com'
    ],
    'writers': [
        'user:romeo@example.com',
        'user:juliet@example.com'
    ],
    'readers': [
        'group:some-group@googlegroups.com',
        'domain:example.com',
        'serviceAccount:some-project-id@appspot.gserviceaccount.com'
    ],
    'all_users_can_read': False
}
ee.data.setAssetAcl(asset_id, acl_update)

Editor de código

No Gerenciador de recursos, mantenha o ponteiro sobre um recurso e clique no ícone de compartilhamento. Na caixa de diálogo, insira um endereço de e-mail ou domínio para compartilhar o recurso e selecione um nível de permissão na lista suspensa. Clique no botão ADICIONAR ACESSO para confirmar a mudança. Marque a caixa "Qualquer pessoa pode ler" para conceder permissão de leitura a qualquer entidade. Você também pode dar acesso aos apps do Earth Engine na caixa de diálogo selecionando o nome do app na lista suspensa (recursos pertencentes ao projeto ativo do Editor de código).

Linha de comando

Use o comando earthengine acl set para definir o acesso de leitura de um recurso como public ou private.

earthengine acl set public projects/my-project/assets/asset-name

Use o comando earthengine acl ch para definir permissões individuais de leitura e gravação de recursos.

earthengine acl ch -u person@gmail.com:R projects/my-project/assets/asset-name

Consulte a página de referência da linha de comando para mais detalhes.

Verificar as permissões de recursos

Cliente Python

Use a função ee.data.getAssetAcl para buscar a lista de controle de acesso de um recurso.

ee.data.getAssetAcl('projects/my-project/assets/asset-name')

Editor de código

No Gerenciador de recursos, mantenha o ponteiro sobre um recurso e clique no ícone de compartilhamento. A caixa de diálogo mostra uma lista de e-mails e domínios com os respectivos níveis de acesso.

Linha de comando

Use o comando earthengine acl get para buscar a lista de controle de acesso de um recurso.

earthengine acl get projects/my-project/assets/asset-name

Copiar recursos

Cliente Python

Use a função ee.data.copyAsset para copiar um recurso.

ee.data.copyAsset('projects/my-project/assets/asset-name', 'projects/my-project/assets/asset-copy-name')

Editor de código

Use o cliente Python ou a ferramenta de linha de comando para copiar recursos.

Linha de comando

Use o comando earthengine cp para copiar um recurso.

earthengine cp projects/my-project/assets/asset-name projects/my-project/assets/asset-copy-name

Mover ou renomear recursos

Cliente Python

Use a função ee.data.renameAsset para mover ou renomear um recurso.

ee.data.renameAsset('projects/my-project/assets/asset-name', 'projects/my-project/assets/new-asset-name')

Editor de código

Mover

No Gerenciador de recursos, arraste um recurso para uma nova pasta.

Renomear

No Gerenciador de recursos, passe o cursor sobre um recurso, clique no ícone de edição e digite um novo nome no campo de entrada editável.

Linha de comando

Use o comando earthengine mv para mover ou renomear um recurso.

earthengine mv projects/my-project/assets/asset-name projects/my-project/assets/new-asset-name

Excluir recursos

Cliente Python

Use a função ee.data.deleteAsset para excluir um recurso.

ee.data.deleteAsset('projects/my-project/assets/asset-name')

Editor de código

Clique em um recurso para abrir a página de diálogo e clique no botão EXCLUIR.

Linha de comando

Use o comando earthengine rm para excluir um recurso. Consulte a referência da função para opções recursivas e de simulação.

earthengine rm projects/my-project/assets/asset-name

Ver metadados do recurso

Cliente Python

Use a função ee.data.getAsset para receber os metadados do recurso.

ee.data.getAsset('projects/my-project/assets/asset-name')

Editor de código

Clique em um recurso para abrir a página de caixa de diálogo dele. Confira as informações do recurso.

Linha de comando

Use o comando earthengine asset info para acessar os metadados do recurso.

earthengine asset info projects/my-project/assets/asset-name

Definir metadados do recurso

É possível definir os seguintes metadados de recursos:

  • start_time
  • end_time
  • properties

Cliente Python

Use a função ee.data.updateAsset para atualizar os metadados do recurso.

asset_id = 'projects/my-project/assets/asset-name'
new_metadata = {
  'properties': {
    'name': 'value'
  },
  'start_time': '2024-10-02T15:01:24Z',
  'end_time': '2024-10-02T15:01:25Z',
}
update_these = ['start_time', 'end_time', 'properties']

ee.data.updateAsset(asset_id, new_metadata, update_these)

Editor de código

Clique em um recurso para abrir a página de diálogo dele e ative a opção de edição no canto superior direito. É possível editar a descrição, as propriedades e as datas de início e término. Desative a opção de edição para salvar as mudanças.

Linha de comando

Use o comando earthengine asset set para atualizar os metadados do recurso. Consulte os documentos de referência para mais informações.

earthengine asset set \
  --time_start 2024-10-02T15:01:24 \
  --time_end 2024-10-02T15:01:25 \
  --property 'name=value' \
  projects/my-project/assets/asset-name

Verificar cota de recursos

A cota é aplicada no nível do projeto. Saiba mais sobre a cota de recursos na página Limites de uso e cota.

Cliente Python

Use a função ee.data.getAssetRootQuota para acessar o uso da cota de armazenamento de uma raiz de recurso.

ee.data.getAssetRootQuota('projects/my-project/assets')

Editor de código

No Gerenciador de recursos, mantenha o ponteiro sobre uma raiz de projeto e clique no ícone data_usage. Uma caixa de diálogo de informações vai aparecer.

Linha de comando

Use o cliente Python ou o editor de código para verificar a cota de recursos.