O editor de código do Earth Engine (EE) em code.earthengine.google.com é um IDE baseado na Web para a API JavaScript do Earth Engine. Os recursos do editor de código foram projetados para agilizar e facilitar o desenvolvimento de fluxos de trabalho geoespaciais complexos. O editor de código tem os seguintes elementos (ilustrados na Figura 1):
- Editor de código JavaScript
- Exibição de mapas para visualizar conjuntos de dados geoespaciais
- Documentação de referência da API (guia Documentos)
- Gerenciador de scripts baseado no Git (guia "Scripts")
- Saída do console (guia Console)
- Gerenciador de tarefas (guia Tarefas) para tratar consultas de longa duração
- Consulta no mapa interativa (guia Inspetor)
- Pesquisar no arquivo de dados ou em scripts salvos
- Ferramentas de desenho de geometria
Figura 1. Diagrama dos componentes do editor de código do Earth Engine em code.earthengine.google.com.
O editor de código tem vários recursos para ajudar você a aproveitar a API Earth Engine. Confira exemplos de scripts ou salve seus próprios scripts na guia Scripts. Consultar objetos colocados no mapa com a guia Inspetor. Mostre e crie gráficos de resultados numéricos usando a API Google Visualization. Compartilhe um URL exclusivo do script com colaboradores e amigos usando o botão Gerar link. Os scripts que você desenvolve no editor de código são enviados ao Google para processamento, e os blocos e/ou mensagens gerados são enviados de volta para exibição na guia Mapa e/ou Console. Tudo o que você precisa para executar o Editor de código é um navegador da Web (use o Google Chrome para melhores resultados) e uma conexão de Internet. As seções a seguir descrevem elementos do editor de código do Earth Engine com mais detalhes.
Editor de JavaScript
O editor de JavaScript vai:
- Formatar e destacar o código à medida que você digita
- Sublinhar o código com problemas, oferecer correções e outras dicas para sintaxe correta
- Preenchimento automático de pares de aspas, colchetes e parênteses
- Oferecer dicas de preenchimento de código para funções do Earth Engine
Acima do editor de código, há botões para executar o script, salvá-lo, redefinir o mapa de saída e o console e receber um link para o script. Quando o botão Get Link é pressionado, um link exclusivo aparece na barra de endereço do navegador. Esse link representa o código no editor no momento em que o botão foi pressionado.
Referência da API (guia "Docs")
No lado esquerdo do editor de código, há a guia Documentação, que contém a documentação completa da API JavaScript. É possível pesquisar e navegar pela documentação na guia Docs.
Gerenciador de scripts (guia "Scripts")
A guia Scripts fica ao lado dos documentos da API no painel esquerdo do editor de código. O gerenciador de scripts armazena scripts privados, compartilhados e de exemplo em repositórios Git hospedados pelo Google. Os repositórios são
organizados por nível de acesso, com os scripts particulares armazenados em um repositório que você
possui na pasta Owner: users/username/default
. Você (e somente você) tem
acesso aos repositórios na pasta Owner, a menos que os compartilhe com
outra pessoa. Os repositórios na pasta Writer são aqueles
em que o acesso de gravação foi concedido a você pelo proprietário. É possível adicionar novos
scripts, modificar scripts existentes ou alterar o acesso (não é possível remover
o proprietário) aos repositórios na pasta Edição. Os repositórios na pasta
Leitor são aqueles para os quais o acesso de leitura foi concedido a você
pelo proprietário. A pasta Examples é um repositório especial gerenciado pelo
Google que contém exemplos de código. A pasta Archive contém repositórios
legados a que você tem acesso, mas que ainda não foram migrados pelo
proprietário de uma versão mais antiga do Gerenciador de scripts. Pesquise seus scripts
usando a barra de filtro na parte de cima da guia Scripts.
Figura 2. O gerenciador de scripts.
Clique no botão para
criar um novo repositório na pasta Owner ou para criar pastas e arquivos
em um repositório. É possível renomear scripts com o ícone e excluí-los com o ícone
. É possível mover scripts e organizá-los em pastas usando arrastar e soltar
(Figura 2). Se você arrastar um script para outro repositório, ele será copiado.
Todos os scripts e repositórios mantêm o histórico de versões completo. Clique no ícone
ao lado de um script ou repositório para comparar ou reverter para uma versão mais antiga. Para excluir um repositório, clique no ícone . Para configurar o acesso a um repositório, clique no ícone ao lado do nome dele. Se você compartilhar um repositório, a pessoa com quem você está compartilhando precisará aceitar o repositório clicando no link mostrado na caixa de diálogo de configurações. Os repositórios aceitos anteriormente podem ser ocultados clicando no ícone após o nome do repositório no gerenciador de scripts.Os repositórios podem ser acessados usando o Git, para que você possa gerenciar e editar seus scripts fora do Code Editor ou sincronizá-los com um sistema externo, como o GitHub. (Saiba mais sobre o Git neste tutorial). Clique no ícone ao lado do nome do repositório para ver instruções sobre como clonar o repositório. É possível navegar pelos repositórios a que você tem acesso em earthengine.googlesource.com. Para algumas operações do Git, talvez seja necessário criar credenciais de autenticação acessando o link "Generate Password" na parte de cima da página earthengine.googlesource.com.
Módulos de script
É recomendável escrever um código modular e reutilizável que possa ser compartilhado entre
scripts sem muitas cópias e colagens. Para permitir o desenvolvimento modular,
o Earth Engine oferece a capacidade de compartilhar código entre scripts. Por exemplo,
suponha que você crie uma função que execute um conjunto
útil de operações. Em vez de copiar o código da função para um novo script,
é mais fácil para o novo script carregar a função diretamente. Para disponibilizar uma função
ou um objeto a outros scripts, adicione-o a um objeto especial chamado
exports
. Para usar o código em outro script, use a função require
para carregar
as exportações de outro script. Por exemplo, suponha que você defina o seguinte
módulo em um arquivo chamado FooModule.js
, que está em uma pasta chamada Modules
:
/** * The Foo module is a demonstration of script modules. * It contains a foo function that returns a greeting string. * It also contains a bar object representing the current date. * @module Modules/FooModule */ /** * Returns a greeting string. * @param {ee.String} arg The name to which the greeting should be addressed * @return {ee.String} The complete greeting. */ exports.foo = function(arg) { return 'Hello, ' + arg + '! And a good day to you!'; }; /** * An ee.Date object containing the time at which the object was created. */ exports.bar = ee.Date(Date.now());
Observe o uso da palavra-chave exports
no formato exports.objectToExport
.
É possível usar esse módulo em outro script usando a função
require
. Exemplo:
var Foo = require('users/username/default:Modules/FooModule.js'); print(Foo.doc); print(Foo.foo('world')); print('Time now:', Foo.bar);
A função require
espera uma string que descreva o caminho absoluto para o
local do módulo. Especificamente, o argumento de require()
tem o formato
'pathToRepository:pathToModuleScript'
. Só é possível carregar módulos de
repositórios que você possui e/ou tem acesso de leitura. Se você quiser que outras pessoas
possam usar seu módulo, o repositório precisa ser compartilhado com os outros usuários que
você quer que tenham acesso. Você pode documentar seu módulo para ajudar outras pessoas
a entender como usá-lo. Recomendamos usar o estilo
JSDoc com a
tag @module
.
Use o parâmetro de URL ?scriptPath={repo}:{script}
para compartilhar uma referência
a um arquivo no seu repositório, por exemplo,
https://code.earthengine.google.com/?scriptPath=users/username/utils:utils
.
Ao acessar o URL, o arquivo referenciado e o repositório dele serão adicionados ao
diretório "Reader" ou "Writer" na guia Scripts, dependendo do nível de permissão
para o repositório compartilhado.
Gerenciador de recursos (guia "Recursos")
O Gerenciador de recursos está na guia Recursos no painel à esquerda. Use o Gerenciador de recursos (Figura 3) para fazer upload e gerenciar seus próprios recursos de imagem no Earth Engine. Consulte a página do Gerenciador de recursos para mais detalhes.
Figura 3. O Gerenciador de recursos.
Links de script
Os scripts do editor de código podem ser compartilhados por um URL codificado. As seções a seguir descrevem várias maneiras de gerar um URL de script, as opções disponíveis e os métodos para gerenciar URLs de script.
Gerar link
O botão "Get Link" na parte de cima do editor de código (Figura 4) fornece uma interface para gerar URLs de script e definir opções de comportamento de script. Observe as distinções entre os URLs de snapshots e scripts salvos descritos abaixo.
Figura 4. O botão "Receber link".
Links de scripts de snapshots
O código no editor pode ser compartilhado por um URL de snapshot codificado que é criado ao clicar no botão "Get link" na parte de cima do editor de código. Quando o URL é visitado por alguém com uma conta do Earth Engine, o navegador navega até o editor de código e replica o ambiente como ele era quando o link foi criado, incluindo código, importações, camadas e posição do mapa. Clicar no botão "Get Link" copia automaticamente o link do script para a área de transferência. Além disso, uma caixa de diálogo vai aparecer com opções para controlar a execução do script compartilhado, além de botões para copiar e acessar o link gerado. As opções de controle incluem impedir a execução automática do script e ocultar o painel de código quando alguém abre o link compartilhado. A caixa de diálogo arrastável pode ser dispensada pela tecla "Esc" ou por um clique em outro lugar da página.
Links de scripts salvos
Os scripts salvos têm a opção de compartilhar um link que sempre carrega a versão salva mais recente e só é acessível por você e outras pessoas com acesso atual ao repositório que contém o script. Para usar esse recurso, carregue um script salvo na guia "Gerenciador de script", clique na seta do menu suspenso à direita do botão "Pegar link" e selecione "Copiar caminho do script". Uma caixa de diálogo vai aparecer apresentando o URL do script compartilhável. O URL do script também foi definido na barra de endereço do navegador. Para orientações sobre como compartilhar seu repositório com outras pessoas, consulte a seção do Gerenciador de script.
Gerenciamento de links de script
O botão suspenso à direita do botão "Gerar link" tem a opção "Gerenciar links". Clicar nessa opção carrega uma nova guia do navegador com uma interface para você recuperar, remover e fazer o download de links de script gerados anteriormente. Selecionar um script e pressionar o botão de download vai fazer o download de uma pasta compactada ("code_editor_links.zip") no seu sistema, contendo uma representação de arquivo .txt para cada script selecionado.
Parâmetros de URL do link do script
O módulo ui.url
permite a manipulação programática do identificador de fragmento do URL do script
usando os métodos get
e set
. Isso significa que os scripts do Code Editor e os apps do Earth Engine podem ler e armazenar valores no URL da página.
Observe o final dos dois URLs a seguir. O primeiro define a variável debug
como
false
, e o segundo a define como true
. Acesse os dois links e observe que a
caixa de seleção de depuração no console não está marcada no primeiro e está marcada no
segundo, mudando o comportamento de cada script.
https://code.earthengine.google.com/5695887aad76979388a723a85339fbf2#debug=false;
https://code.earthengine.google.com/5695887aad76979388a723a85339fbf2#debug=true;
Esse recurso pode ser usado para definir o zoom e o centro do mapa, bem como outros comportamentos que você pode querer personalizar ao enviar links para pessoas ou grupos específicos.
Ferramenta de pesquisa
Para encontrar conjuntos de dados para usar nos scripts, use a ferramenta de pesquisa do
arquivo de dados. A caixa de texto na parte de cima do editor de código que diz "Pesquisar lugares e conjuntos de dados..." é a ferramenta de pesquisa. Digite o nome de um produto de dados, sensor ou outra palavra-chave na barra de pesquisa e clique no botão na descrição do conjunto de dados.
Importações
Os resultados da importação de conjuntos de dados para o script são organizados em uma seção de importações na parte de cima do script, que fica oculta até que você importe algo. Depois de criar algumas importações, você verá algo semelhante à Figura 5. Para copiar importações para outro script ou convertê-las em JavaScript, clique no ícone
ao lado do cabeçalho Imports e copie o código gerado no script. Você pode excluir a importação com o ícone .Figura 5. A seção de importações na parte de cima do editor de código.
Mapa
O objeto Map na API se refere à exibição do mapa no Code Editor. Por
exemplo, Map.getBounds()
vai retornar a região geográfica visível no editor
de código. Verifique as funções Map
na API para conferir outras personalizações para
essa tela.
Gerenciador de camadas
Use o Gerenciador de camadas no canto superior direito do mapa para ajustar a exibição das camadas que você adicionou. Especificamente, é possível alternar a visibilidade de uma camada ou ajustar a transparência dela com o controle deslizante. Clique no ícone
para ajustar os parâmetros de visualização de camadas individuais. A ferramenta de visualização que aparece (Figura 6) permite configurar interativamente os parâmetros de exibição da camada. Clique no botão à direita da ferramenta, que realiza um alongamento Custom para o intervalo mínimo e máximo fornecido por padrão, para alongar linearmente a exibição para percentis ou desvios padrão dos valores da imagem na janela de exibição. As estatísticas são calculadas com base em todos os pixels na janela do mapa no nível de zoom atual. Use os controles deslizantes para ajustar a gama e/ou a transparência. Clique no botão de opção Palette e especifique uma paleta personalizada adicionando cores ( ), removendo cores ( ) ou inserindo manualmente uma lista de strings hexadecimais separadas por vírgulas ( ). Clique em Apply para aplicar os parâmetros de visualização à tela atual. Clique em Importar para carregar um objeto de parâmetros de visualização como uma nova variável na seção de importações do script.Figura 6. A ferramenta de visualização de camadas.
Guia "Inspetor"
A guia Inspector ao lado do Gerenciador de tarefas permite consultar o mapa de forma interativa. Quando a guia Inspector é ativada, o cursor se torna uma mira que exibe os valores de local e camada abaixo do cursor quando você clica no mapa. Por exemplo, a Figura 7 mostra os resultados de clicar no mapa na guia Inspector. A localização do cursor e o nível de zoom são exibidos com valores de pixel e uma lista de objetos no mapa. A lista de objetos é interativa. Para conferir mais informações, expanda os objetos na guia Inspector.
Figura 7. A guia "Inspector" mostra informações sobre a localização do cursor e os valores da camada abaixo dele.
Guia "Console"
Quando você print()
algo do script, como texto, objetos ou gráficos,
o resultado é exibido no console. O console é interativo, então
você pode expandir objetos impressos para conferir mais detalhes sobre eles.
Guia "Tarefas"
As tarefas do Earth Engine são operações que podem ser executadas por muito mais tempo do que o tempo limite padrão de solicitação da API. Essas tarefas de longa duração são o único mecanismo para criar artefatos permanentes no Earth Engine e em sistemas adjacentes (Google Cloud Storage, Google Drive etc.) e se enquadram em duas categorias: Import
e Export
.
As tarefas de importação podem ser usadas para fazer o upload de
imagens ou
upload de tabelas
no Earth Engine de vários tipos de arquivos (.csv
, .tif
etc.). As tarefas de exportação podem ser usadas para executar e gravar resultados do sistema de computação de EE. Consulte o guia para exportar dados.
Para exportações, cada chamada para uma função Export
no Editor de código preenche
uma entrada na seção Tarefas não enviadas da guia Tarefas. Para enviar uma
tarefa de exportação ao servidor, clique no botão Run ao lado da tarefa. Uma
caixa de diálogo de configuração vai aparecer para que você especifique vários
parâmetros para a tarefa. Se a tarefa for totalmente especificada no momento da criação (ou
seja, a chamada para Export
tiver todos os parâmetros necessários), mantenha ctrl
ou ⌘
pressionado enquanto
clicar em Run para enviar a tarefa sem mostrar a caixa de diálogo.
Para importações, o upload de arquivos acontece localmente antes que a tarefa seja enviada ao servidor. As tarefas de importação na fase de upload vão mostrar o progresso na seção Tarefas não enviadas e serão enviadas automaticamente para o servidor assim que o upload do arquivo for concluído.
As tarefas não enviadas aparecem apenas na página em que foram criadas e são perdidas quando a página é fechada. Depois que uma tarefa é enviada para o servidor, clicar na linha dela na interface mostra mais informações e opções sobre o status da tarefa, incluindo a opção de solicitar o cancelamento.
Para conferir e cancelar várias tarefas em uma visualização de página inteira (inclusive em clientes móveis), use a página "Tarefas" no Console do Cloud.
Profiler
O perfilador mostra informações sobre os recursos (tempo de CPU, memória) consumidos por algoritmos específicos e outras partes de uma computação. Isso ajuda a diagnosticar por que um script está sendo executado lentamente ou falhando devido a limites de memória. Para usar o criador de perfil, clique na opção Run with profiler no menu suspenso do botão "Run". Como atalho, mantenha Alt (ou Option no Mac) pressionado e clique em Executar ou pressione Ctrl + Alt + Enter. Isso ativa uma guia Profiler no lado direito do editor de código. À medida que o script é executado, a guia Profiler mostra uma tabela de uso de recursos do script. Clicar no botão Run (sem criar um perfil) faz com que a guia Profiler desapareça e desative o criador de perfil.
Consulte a página Visão geral da computação para ver um detalhe da saída do criador de perfil.
Ferramentas de geometria
Também é possível importar geometrias para o script desenhando-as na tela. Para criar geometrias, use as ferramentas de desenho de geometria no canto superior esquerdo da tela do mapa (Figura 8). Para desenhar pontos, use o ícone de marcador de lugar
. Para desenhar linhas, use o ícone de linha
. Para desenhar polígonos, use o ícone de polígono
. Para desenhar retângulos, use o ícone de retângulo
. Os retângulos são geometrias planas, então não podem ser colocados em uma camada com geometrias geodesíacas, como linhas e polígonos.
O uso de qualquer uma das ferramentas de desenho cria automaticamente uma nova camada de geometria e adiciona uma importação dela à seção "Importações". Para adicionar geometrias a uma nova camada, passe o cursor sobre as importações de geometria na exibição do mapa e clique no link + nova camada. Também é possível alternar a visibilidade das geometrias na seção Importações de geometria. As geometrias desenhadas são geodésicas por padrão, exceto retângulos, que são apenas planas. Use o construtor de geometria para convertê-los em geometrias planas. Saiba mais sobre geometrias no Earth Engine na página de geometria.
Figura 8. As ferramentas de desenho de geometria estão no canto superior esquerdo da tela do mapa.
Para configurar a forma como as geometrias são importadas para o script, clique no ícone Feature
ou FeatureCollection
) ou renomear
a camada.
Figura 9. A ferramenta de configuração de geometria.
Por fim, para impedir que as geometrias de uma camada sejam editadas, você pode bloquear a camada pressionando o ícone
ao lado dela. Isso impede a adição, exclusão ou edição de geometrias na camada. Para desbloquear a camada novamente, pressione o ícone .Preciso de ajuda!
Clique no botão
no canto superior direito do editor de código para conferir links para este guia do desenvolvedor, outros fóruns de ajuda, um tour guiado pelo editor de código e uma lista de atalhos de teclado que ajudam na codificação, na execução de código e na exibição de dados no Mapa. Clique no botão para enviar um relatório de bug, solicitar um novo recurso, sugerir um conjunto de dados ou enviar feedback quando não for necessário responder.