Perguntas frequentes

Perguntas gerais

Estou com um problema e preciso de ajuda!

Poste uma pergunta seguindo este guia, fornecendo o máximo de informações possível (consulte o guia do Stack Overflow para fazer boas perguntas). Isso geralmente significa:

  • Enviando um link para um script no editor de código (clique no botão "Get Link" para acessá-lo)

  • compartilhar os recursos necessários para executar o script

  • para tarefas em lote com falha, informe o ID da tarefa. Os IDs de tarefas têm este formato: 4C25GIJBMB52PXTEJTF4JLGL. Eles podem ser encontrados na guia "Task" do editor de código. Saiba mais.

Onde posso ler sobre a arquitetura do Earth Engine?

Consulte este artigo: Gorelick et al. 2017.

Consulte as páginas EDU e Training Resources.

Confira este curso sem custo financeiro de EE de Ujaval Gandhi, que inclui um vídeo com uma introdução ao sensoriamento remoto.

Programação do Earth Engine

Quais são alguns erros de programação comuns?

Consulte o guia de depuração.

Por que não posso usar matemática básica, como ee.Image("image") * 2?

No EE, não misture objetos ou operações do lado do servidor e do cliente. Todas as operações em objetos de EE são realizadas no servidor. As computações do lado do cliente não vão funcionar como você pretende. Consulte esta página para mais detalhes.

Como posso usar loops for ou instruções if/else?

A programação do Earth Engine é feita usando uma linguagem funcional. Portanto, os loops e as operações condicionais precisam ser expressos usando conceitos equivalentes, como map ou filter. Consulte esta página para mais detalhes.

Como faço para mostrar rótulos de texto na minha imagem ou vídeo?

Não há suporte integrado para rótulos de texto, mas você pode:

Posso usar algumas paletas de cores padrão?

Use um pacote JS de terceiros, ee-palettes.

Como crio meu próprio site que usa o Earth Engine?

Use o Earth Engine Apps para aplicativos básicos. Em casos mais complexos, é possível criar apps do App Engine com tecnologia de EE.

Como os IDs de mapa funcionam?

Os IDs de mapa (chamados de mapid em toda a API) são chaves que permitem que os clientes busquem blocos de mapa. Cada ID é um hash criado ao fornecer uma expressão de imagem para o endpoint getMapId. Os IDs resultantes são chaves que apontam para a expressão da imagem e as credenciais do usuário que serão usadas para gerar tiles em uma fase posterior.

Solicitar blocos de mapa envolve especificar a localização do bloco (x, y, zoom) e a mapid (a chave da imagem e das credenciais). O mesmo ID pode ser reutilizado para carregar muitos blocos de mapa. Não há limites para a reutilização de chaves mapid, mas elas expiram após algumas horas. Não publicamos prazos específicos sobre quanto tempo eles persistem, mas qualquer código que você escrever precisa ser resiliente ao ID expirado.

A criação desses IDs envolve o armazenamento de uma pequena quantidade de dados e a validação de credenciais. Por isso, é melhor reutilizá-los pelo maior tempo possível. Não há uma cota de API especificamente associada ao endpoint getMapId, mas qualquer fluxo de trabalho que envolva a criação de objetos mapid em uma taxa próxima da taxa de busca de blocos provavelmente está fazendo algo errado. O Earth Engine não tem um endpoint de API para remover, listar ou gerenciar esses IDs, já que eles são recursos temporários.

Por que ee.Algorithms.If() imprime os casos verdadeiro e falso?

function a() { print("true"); }
function b() { print("false"); }
// Prints 'true' and 'false'.
ee.Algorithms.If(true, a(), b());

O algoritmo If() funciona como todos os outros algoritmos no Earth Engine, em que todos os argumentos precisam ser avaliados antes que o algoritmo possa ser executado. O algoritmo recebe os resultados trueCase e falseCase e, em seguida, seleciona e retorna um com base no argumento condition. No entanto, ambos os caminhos precisavam ser executados para que esses valores fossem transmitidos ao algoritmo em primeiro lugar.

Recebo a mensagem de erro "O tamanho do payload da solicitação excede o limite"

Você está tentando enviar uma solicitação muito grande para o Earth Engine. Isso geralmente acontece quando o código usa muitos loops "for" do lado do cliente ou cria uma FeatureCollection de muitos objetos de geometria. Nesse caso, em vez de criar essas geometrias no script, gere um arquivo CSV com elas e faça upload em um recurso de tabela.

Qual é a diferença entre ee.Image.clip() e ee.Filter.bounds()?

Consulte esta discussão do GIS Stack Exchange. A função ee.Image.clip() mascara pixels que não se cruzam com um determinado ee.Geometry ou ee.Feature, tornando-os transparentes nas visualizações e excluídos nas computações. Você pode conceituar isso como o corte de pixels de uma imagem.

A função ee.Filter.bounds() filtra objetos ee.Image de um ee.ImageCollection com base na interseção de imagens com um ee.Geometry ou ee.Feature. Ele é usado para limitar o escopo de uma análise apenas às imagens que cruzam uma determinada região, o que ajuda a otimizar expressões.

Como converter pixels de imagem em coleções de recursos, com um recurso por pixel?

Use a função ee.Image.sample(). Confira exemplos de uso na página de referência da API da função.

Qual é a diferença entre ee.ImageCollection.merge() e ee.ImageCollection.combine()?

A função ee.ImageCollection.merge() une todas as imagens de duas coleções em uma, mesmo que as imagens tenham bandas coincidentes, metadados, CRS ou escala. É a união de duas coleções. O método combine() combina as bandas de imagens correspondentes de duas coleções em uma única coleção. As imagens correspondentes compartilham o mesmo ID (propriedade system:index). É uma mesclagem interna de duas coleções com base no ID da imagem, em que as bandas das imagens correspondentes são combinadas. Para imagens correspondentes, as bandas da imagem secundária são anexadas à imagem principal (a substituição é opcional). Se não houver imagens correspondentes, uma coleção vazia será retornada.

Como filtrar coleções de imagens em vários intervalos de datas?

Consulte esta discussão do GIS Stack Exchange. merge() várias coleções juntas ou use ee.Filter.or().

Como criar uma caixa delimitadora em torno de um determinado ponto?

// Buffer the point by a chosen radius and then get the bounding box.
var LNG = -117.298;
var LAT = 45.162;
var point = ee.Geometry.Point([LNG, LAT]);
var buffer = point.buffer(30000); // half of box width as buffer input
var box = buffer.bounds(); // draw a bounding box around the buffered point
Map.centerObject(box);
Map.addLayer(point);
Map.addLayer(box);

// Map the buffer and bounds procedure over a point feature collection.
var pointCol = ee.FeatureCollection([
  ee.Feature(ee.Geometry.Point([LNG + 1, LAT])),
  ee.Feature(ee.Geometry.Point([LNG - 1, LAT]))
]);
var boxCol = pointCol.map(function(feature) {
  var box = feature.buffer(30000).bounds();
  return feature.setGeometry(box.geometry());
});
Map.addLayer(boxCol);

Data Catalog

Você pode adicionar o conjunto de dados X?

Registre um bug de solicitação de conjunto de dados seguindo o guia de solicitação de conjunto de dados.

Também é possível fazer upload de dados para a pasta inicial do Earth Engine. Consulte Como importar dados raster e Como importar dados de tabelas.

Um conjunto de dados atual tem uma nova versão

Registre um bug do conjunto de dados seguindo o guia de solicitação de conjuntos de dados e indique que você está solicitando uma atualização.

Um conjunto de dados não é atualizado ou está sem recursos

Antes de informar um problema, verifique, se possível, se os recursos selecionados realmente existem no site do provedor do conjunto de dados. Consulte o guia sobre imagens ausentes para mais detalhes.

Se você estiver procurando um recurso filtrando um ImageCollection, verifique se os filtros não são muito restritivos.

Em particular, observe o seguinte:

  • Os dados do Sentinel-2 SR (nível 2) não foram produzidos pela ESA para as primeiras cenas do nível 1.

  • O Landsat não tem cobertura mundial antes de 2000.

Um conjunto de dados tem valores incorretos

Postar no fórum de desenvolvedores. Inclua um script que aumenta a resolução original do recurso e deixa claros quais valores estão errados. Explique onde exatamente você observou o valor alternativo.

Onde mais posso fazer perguntas sobre conjuntos de dados?

Para dúvidas sobre conjuntos de dados da NASA, consulte o fórum de dados da NASA Earth.

Para dúvidas sobre as caixas de ferramentas que operam em conjuntos de dados do Copernicus, consulte os fóruns S1, S2 e S3.

Qual é o tamanho do catálogo de EE?

Desde outubro de 2023, o catálogo contém mais de mil conjuntos de dados. O tamanho no disco é de mais de 90 petabytes (considerando a compactação sem perdas).

Com que frequência os dados são atualizados no EE?

Normalmente, todos os conjuntos de dados em andamento são atualizados pelo menos uma vez por dia, mas nem todos têm novos dados todos os dias. Alguns conjuntos de dados são atualizados várias vezes por dia. No entanto, não há uma política que garanta a presença dos recursos mais recentes no catálogo.

Como faço para conferir o conteúdo do catálogo de EE de forma programática?

A lista de conjuntos de dados é exportada no formato STAC para um bucket gs://earthengine-stac do Google Cloud Storage. O arquivo de entrada é catalog.json.

Posso usar dados ou imagens do Google Maps para análise?

O Google não licencia nem vende dados de mapas-base para análise.

Como posso encontrar a data em que um recurso foi transferido?

A propriedade do recurso 'system:version' é o carimbo de data/hora de transferência, formatado como microssegundos desde a época Unix. Confira um exemplo que converte o carimbo de data/hora de transferência de uma imagem do Landsat em um formato legível.

var image = ee.Image('LANDSAT/LC08/C02/T1_L2/LC08_044034_20210508');
print('Ingest date', ee.Date(image.getNumber('system:version').divide(1000)));

O Catálogo do Earth Engine tem metadados JSON-LD?

Sim, os metadados JSON-LD são incorporados nas páginas HTML do catálogo. Por exemplo, a página do Sentinel-2 contém o seguinte bloco:

<script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "BreadcrumbList",
    "itemListElement": [{
      "@type": "ListItem",
      "position": 1,
      "name": "Earth Engine Data Catalog",
      "item": "https://developers.google.com/earth-engine/datasets"
    },{
      "@type": "ListItem",
      "position": 2,
      "name": "Harmonized Sentinel-2 MSI: MultiSpectral Instrument, Level-1C",
      "item": "https://developers.google.com/earth-engine/datasets/catalog/COPERNICUS_S2_HARMONIZED"
    }]
  }
  </script>

Landsat

Como o algoritmo simpleComposite é implementado?

A implementação no servidor é equivalente a este código JavaScript.

Como posso criar composições sem nuvens com base nos dados de refletância da superfície do Landsat?

Os dados do Landsat Nível 2 (reflexão de superfície) têm várias bandas de qualidade que podem ser usadas para mascarar nuvens e outros artefatos indesejados da imagem. Um exemplo de como usar essas bandas para processar imagens SR do Landsat 8 e criar um composto médio sem nuvens é fornecido em esta postagem do Stack Exchange do GIS. O mesmo procedimento é usado para criar um composto sem nuvens para uso em exemplos de classificação supervisionada no Guia do desenvolvedor.

É necessária a harmonização da refletância da superfície do Landsat entre sensores?

Roy et al., 2016 incluiu uma análise das diferenças de refletância entre a TOA do Landsat 7-8 e a refletância da superfície. Eles publicaram os coeficientes de OLS e RMA para que os leitores pudessem transformar os valores de refletância dos dados de um sensor em outro. A última linha do artigo afirma: "Embora as diferenças de sensores sejam bastante pequenas, elas podem ter um impacto significativo dependendo da aplicação dos dados do Landsat". No entanto, essa análise foi baseada em dados anteriores à coleta.

As melhorias feitas durante o reprocessamento da Coleta 1 e da Coleta 2 podem influenciar a relação entre os sensores, mas, até onde sabemos, não houve análises semelhantes a Roy et al. (2016) para os dados da Coleta 1 ou da Coleta 2. Apesar de não haver uma análise formal, parece haver um consenso geral entre os usuários influentes do Landsat de que nenhuma correção é necessária para os dados da Coleção 2, Nível 2 (reflexão da superfície). Por exemplo, em uma resposta a uma pergunta sobre a necessidade de harmonização da Coleção 2, nível 2, Mike Wulder, da equipe de ciência da Landsat, observou que, dependendo da natureza da aplicação de interesse (incluindo mapeamento de cobertura de terra e detecção de mudanças), os produtos de refletância de superfície da Coleção 2 são altamente adequados e confiáveis, sem a necessidade de ajuste entre sensores.

Como posso mascarar nuvens e sombras de nuvens em imagens de MSS?

O módulo msslib (em inglês) de terceiros para o Editor de código JavaScript inclui uma implementação do algoritmo MSScvm, bem como outras funções úteis para explorar e preparar dados MSS.

Gerenciamento de dados

Quem é o proprietário dos dados que eu envio?

De acordo com os Termos de Serviço do Earth Engine, os clientes são proprietários dos dados que enviam para a plataforma.

Não consigo fazer upload de dados.

Verifique o status da tarefa de upload no painel "Tasks", no canto superior direito do Code Editor. Também é possível acessar a página de tarefas dedicadas.

Se não houver nenhuma tarefa, provavelmente você tentou fazer upload do arquivo pelo editor de código, mas devido a um problema de rede, o upload nunca foi concluído e, portanto, a tarefa nunca foi criada. Tente usar outro navegador ou computador.

Se houver uma tarefa com falha, examine o erro mostrado. Se não houver uma mensagem de erro específica, primeiro verifique se o arquivo não está corrompido executando gdalinfo para arquivos raster ou ogr2ogr para arquivos vetoriais. Esses comandos vão tentar ler todos os dados dos arquivos de origem e exibir erros se os arquivos estiverem corrompidos.

Exemplo de chamada gdalinfo:

gdalinfo -mm -stats -checksum file.tif

Exemplo de chamada ogr2ogr que vai converter in.shp em out.csv:

ogr2ogr -lco GEOMETRY=AS_WKT -f CSV out.csv in.shp

Se o arquivo parecer válido, publique o ID da tarefa com falha como texto (não como captura de tela) na lista de e-mails para desenvolvedores. Os IDs de tarefas têm este formato: 4C25GIJBMB52PXTEJTF4JLGL. Torne o arquivo de origem legível publicamente, se possível. Se for um arquivo particular, compartilhe-o com apenas earthengine@google.com se quiser que a equipe do Earth Engine o examine. Se não for possível compartilhar o arquivo de origem, pelo menos forneça a saída de gdalinfo -mm -stats -checksum.

Se o Earth Engine não oferecer suporte a uma determinada projeção, será necessário reprojetar os dados antes do upload usando, por exemplo, gdalwarp.

Como faço para fazer upload de um arquivo em NetCDF ou outro formato raster sem suporte?

Somente GeoTIFFs podem ser enviados para o Earth Engine. Outros formatos compatíveis com o GDAL podem ser convertidos em GeoTIFFs usando gdal_translate. Exemplo:

gdal_translate -co COMPRESS=DEFLATE file.nc file.tif

Alguns arquivos NetCDF ou HDF consistem em vários subconjuntos de dados que podem ser descobertos com gdalinfo. O comando gdal_translate nesse caso vai ficar assim (observe o caminho entre as aspas duplas):

gdal_translate HDF4_EOS:EOS_GRID:"/tmp/MCD12Q1.A2001001.h00v08.005.2011055224312.hdf":MOD12Q1:Land_Cover_Type_1 file.tif

Às vezes, os arquivos NetCDF não têm uma projeção reconhecida pelo GDAL. Nesse caso, você precisa definir a projeção e a extensão espacial na linha de comando gdal_translate. Exemplo:

gdal_translate -a_srs EPSG:4326 -a_ullr -180 90 180 -90 file.nc file.tid

Quais algoritmos de compactação posso usar para GeoTIFFs enviados?

Para fazer upload, os GeoTIFFs podem ser compactados com DEFLATE, JPEG, JPEG-XL/JXL, LERC, LERC_DEFLATE, LERC_ZSTD, LZMA, LZW, WEBP ou ZSTD. Para leitura de COG em tempo real, use DEFLATE, JPEG, LZW ou ZSTD. O ZSTD é uma boa escolha geral, porque é rápido de descompactar e ainda oferece boa compactação da maioria das imagens.

Para aplicar a compactação ZSTD ao usar gdal_translate, adicione estas opções. Se os dados tiverem valores de ponto flutuante, mude PREDICTOR para 3.

gdal_translate in.tif out.tif \
  -co COPY_SRC_OVERVIEWS=YES \
  -co TILED=YES \
  -co BLOCKXSIZE=512 \
  -co BLOCKYSIZE=512 \
  -co COMPRESS=ZSTD \
  -co PREDICTOR=2 \
  -co ZSTD_LEVEL=22 \
  -co INTERLEAVE=BAND \
  -co NUM_THREADS=ALL_CPUS

Minha transferência de Raster está em execução há dias e não foi concluída.

Usando gdalinfo, verifique se o arquivo tem a seguinte opção GDAL definida: INTERLEAVE=PIXEL. Para arquivos com essa opção e muitas bandas, a transferência pode não ser concluída porque o layout desses arquivos torna as leituras muito lentas.

Tente converter esses arquivos para o layout entrelaçado de faixas antes do upload:

gdal_translate -co "INTERLEAVE=BAND" src.tif dst.tif

Os rasters enviados por upload não correspondem ao mapa-base.

Se os dados estiverem ligeiramente deslocados do mapa-base, a projeção provavelmente terá um datum incorreto (hipótese sobre a forma da Terra). Isso acontece com mais frequência com a projeção sinusoidal que não pode ser totalmente codificada nos metadados do GDAL. Quando você sabe qual deve ser a projeção de meta (por exemplo, SR-ORG:6974 para arquivos usando a projeção sinusoidal MODIS. Defina a flag --crs durante o upload de linha de comando ou o campo crs do manifesto de upload.

Se os dados parecerem distorcidos ou no lugar errado, a projeção ou a transformação afim provavelmente está errada.

Meu raster só aparece no hemisfério oriental.

Você provavelmente fez o upload de um raster global que abrange o intervalo de longitude [0, 360]. No entanto, o Earth Engine exige que os rasters estejam no intervalo [-180, 180]. Troque as metades esquerda e direita do raster antes da transferência. Confira estas sugestões do GIS Stack Exchange.

Por que a imagem de classificação inferida parece ter manchas?

Você provavelmente usou a política de pirâmide MEAN padrão. Para imagens de classificação, use a política de escalonamento MODE. Para imagens de QA/máscara de bits, use a política de escalonamento SAMPLE.

Recebo o seguinte erro: Nenhum valor de dados -128,0 pode ser aplicado à faixa #0 do tipo Short<0, 255>.

O GDAL não pode tratar bandas de um único byte como contendo números inteiros assinados, então ele lê essas bandas como números inteiros não assinados. Isso entraria em conflito com valores de dados negativos.

Se os valores forem inteiros assinados, use o upload de manifesto e adicione isso à seção do conjunto de blocos que contém seu arquivo: data_type: "INT8"

Se os valores forem números inteiros não assinados, o arquivo terá um valor inválido de nodata. Você pode substituí-lo no upload com o valor de dados correto (ou um valor que nunca ocorre, se houver um). Também é possível usar gdal_translate -a_nodata para mudar o valor de nodata ou gdal_edit.py -unsetnodata para removê-lo.

Como faço para fazer upload de um arquivo em GeoJSON ou outro formato vetorial sem suporte?

Use ogr2ogr para converter formatos compatíveis com o OGR em CSV ou SHP. Exemplo:

or2ogr -f "ESRI Shapefile" file.shp file.kml

Nos uploads de CSV, a coluna de geometria pode conter GeoJSON.

Quero fazer upload de dados usando Python ou enviar vários arquivos de uma vez.

Use o upload de linha de comando. Esses uploads exigem que os arquivos de origem sejam colocados em um bucket do GCS (Google Cloud Storage). O uso do GCS não tem custo se você permanecer dentro dos limites do nível sem custo financeiro. Consulte a página de preços.

Quero fazer upload de um mosaico raster grande dividido em vários blocos.

Se todos os arquivos tiverem a mesma projeção e tamanho de pixel, basta fazer o upload deles juntos no mesmo recurso. Eles serão mesclados automaticamente.

Se os arquivos tiverem projeções ou tamanhos de pixel diferentes, eles não poderão ser mosaicos em um único recurso raster. Em vez disso, faça upload de cada bloco como um recurso separado no mesmo ImageCollection que pode ser mesclado usando ImageCollection.mosaic().

Estou tentando fazer upload de um mosaico e recebo erros sobre blocos incompatíveis.

Os blocos dos mosaicos de raster do Earth Engine precisam ter a mesma projeção e o mesmo tamanho de pixel. Além disso, os blocos precisam ser alinhados exatamente nos limites dos pixels.

Estou tentando fazer upload de um arquivo de um bucket do GCS, mas o Earth Engine não consegue encontrá-lo.

Talvez você tenha usado Contas do Google diferentes para o upload do GCS e para se conectar ao Earth Engine. Verifique se o arquivo GCS pode ser lido pela conta que você usa para se conectar ao Earth Engine. Se o multilogin do navegador estiver confuso, conecte-se ao Earth Engine em uma janela de navegação anônima.

Quero exportar muitos recursos de uma só vez.

Você precisa exportar cada imagem separadamente.

Quero mover ou excluir um Folder ou um ImageCollection com um único comando.

Primeiro, mova ou exclua cada recurso e, em seguida, mova ou exclua a pasta ou coleção principal. Se houver muitos recursos filhos, escreva um loop de shell ou Python para iterar sobre eles.

Quero acessar diretamente os dados do Earth Engine de fora do EE.

O QGIS tem um plug-in do Earth Engine.

O GDAL tem um driver do Earth Engine.

Outros sistemas podem usar a API REST do EE.

Gostaria de atualizar uma parte do meu recurso do Earth Engine sem precisar fazer um novo envio.

Não é possível atualizar dados raster ou vetores enviados para a EE. Somente as propriedades de metadados do recurso podem ser atualizadas.

Estou perdendo o acesso à minha conta. O que eu faço com meus recursos?

Se as políticas da conta original permitirem a transferência de dados, compartilhe seus recursos com outra conta e copie os recursos para que sejam de propriedade da nova conta. Use o utilitário de cópia de linha de comando se houver muitos recursos para mover.

Se uma conta for excluída, os recursos dela não poderão mais ser acessados.

A imagem exportada está no lugar errado.

Para algumas projeções, como sinusoidal ou cônica, os arquivos GeoTIFF às vezes não podem armazenar todos os parâmetros de projeção necessários. Isso resulta em um arquivo exportado que aparece no lugar errado quando visualizado em ferramentas SIG para computador ou reenviado para a EE.

Para corrigir isso, especifique um parâmetro crs de exportação que funcione bem com arquivos GeoTIFF. Por exemplo, use o código EPSG para a zona UTM que contém sua área de interesse.

Qual local do bucket do Cloud Storage devo usar para armazenar recursos de COG?

A resposta depende do que você está tentando otimizar. Se você estiver otimizando para acesso de computação de baixa latência, os melhores locais de bucket do GCS para armazenar recursos do COG são US-CENTRAL*. Consulte a página Locais de bucket para informações sobre outras considerações.

Os recursos exportados da coleção de elementos não preservam as propriedades que eu defini.

Nenhuma função Export.table.* preserva as propriedades no nível da tabela na saída. Para muitos formatos de saída (por exemplo, CSV, GeoJSON), não há suporte para esses metadados. A função Export.table.toAsset pode oferecer suporte a propriedades no nível da tabela, mas não no momento.

As tabelas exportadas para o Drive no formato CSV são convertidas para XLSX.

Dependendo das suas configurações do Google Drive, as tabelas CSV exportadas do Engine podem ser convertidas em arquivos XLSX com efeitos indesejados, como conversões de tipo de dados. Siga estas etapas para modificar o comportamento das exportações seguintes.

  1. No Google Drive na Web, clique na roda dentada de configurações no canto superior direito.
  2. Clique em "Configurações".
  3. Role a tela até "Converter arquivos enviados para o formato do editor do Documentos Google" e desmarque a opção.

Editor de código

Não consigo fazer login no Code Editor porque ele pede para usar a conta errada.

Sair, selecione a conta registrada para usar o Earth Engine na página "Escolher uma conta" e selecione novamente a mesma conta na segunda página "Escolher uma conta para continuar no editor de código do Earth Engine" (a redação exata pode ser diferente).

Quero fazer uma captura de tela de um mapa global, mas não gosto da projeção de Mercator da Web.

A projeção do mapa usada no editor de código é a Web Mercator ('EPSG:3857'). Ele infla o tamanho dos objetos longe do equador, fazendo com que regiões de alta latitude pareçam muito maiores do que são, em comparação com regiões próximas ao equador. Não é possível mudar a projeção da tela de mapa do editor de código, mas é possível "pintar" uma imagem na projeção de sua escolha na tela do Web Mercator usando o método ee.Image.changeProj. Consulte a página de referência da API do método para conferir um exemplo de como mostrar um DEM global no mapa do Editor de código na projeção de Robinson. Essa técnica só deve ser usada para fins de visualização, já que o inspetor e as ferramentas de desenho do editor de código ainda operam no Web Mercator.

Meu script não é salvo (Script error: Unknown commit).

Se você receber uma mensagem Script error: Unknown commit ao salvar um script, provavelmente significa que o repositório em que você está salvando está fora de sincronia. A causa desse estado é variável e difícil de identificar. Para resolver o problema, tente atualizar a lista de scripts usando o botão no canto superior direito da guia "Script". Se isso não funcionar, tente criar um novo repositório usando o botão "Novo" na guia "Script" e salvar o script. Talvez seja necessário mover os scripts para o novo repositório do repositório fora de sincronização.