Gerenciar recursos

Os recursos do Earth Engine são dados geoespaciais do projeto armazenados na plataforma. Você pode fazer upload dos seus próprios dados e armazenar dados produzidos nas análises do 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 de informações geográficas baseada em grade 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 elementos vetoriais (linhas), cada um deles 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 em apps do Earth Engine.
Folder Um contêiner para recursos e pastas adicionais 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 são de 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) nela.

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 recursos e pastas individuais. As coleções de imagens são um tipo de recurso especial 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 nome-classificador
      • 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 transferir imagens e tabelas de arquivos locais ou de um bucket do Google Cloud Storage. Os formatos de imagem com suporte incluem GeoTIFF (padrão e COG) e TFRecord. Os formatos de tabela aceitos incluem Shapefile e CSV. Também é possível criar recursos ao exportar um resultado de análise do Earth Engine usando funções de lote Export.*.toAsset.

Cliente Python

Imagem

Use a função ee.data.startIngestion para transferir imagens do Cloud Storage. Consulte a página 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 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 ou ImageCollections vazias.

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 de opções. 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 (COG) otimizados para a nuvem que você envia 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 os recursos com suporte do COG e a criação de 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 conferir 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 listar e os detalhes de valor 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 compartilhar. 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 ADD ACCESS para confirmar a mudança. Marque a caixa "Qualquer pessoa pode ler" para conceder permissão de leitura a qualquer entidade. Também é possível fornecer acesso aos apps do Earth Engine na caixa de diálogo selecionando o nome do app na lista suspensa (ativos pertencentes ao projeto ativo do Code Editor).

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 para 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 compartilhar. 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 os 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, mantenha o ponteiro sobre um recurso, clique no ícone editar 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 dele e clique no botão DELETE.

Linha de comando

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

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

Conferir metadados do recurso

Cliente Python

Use a função ee.data.getAsset para acessar 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 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

Os seguintes metadados do recurso podem ser definidos:

  • 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 e ative o botã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 o botã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 a 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 conferir o uso da cota de armazenamento de uma raiz de recursos.

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

Editor de código

No Gerenciador de recursos, mantenha o ponteiro sobre a raiz de um 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.