voltar para o site MapBiomas

Google Earth Engine - Scripts


#1

Espaço para compartilhar e colaborar com scripts no Google Earth Engine


Como baixar dados para um bioma, estado ou município
#2

Olá pessoal!

Fiz um script no GEE para baixar o mapa de uso e cobertura do solo de 2017, derivada da coleção 3, para o bioma da Caatinga. Venho aqui compartilhar.

///// importar mapas de uso da coleção 3 - 2017
var image = ee.Image(‘projects/mapbiomas-workspace/public/collection3/mapbiomas_collection3_integration_v1’);
Map.addLayer(image,{min:0,max:100,bands:[‘classification_2017’]},‘Uso_2017’);

/// importar tabela com shapefile da Caatinga
Map.addLayer (table,{},‘Caatinga’,true);

///// exportar recorte do uso 2017 para a Caatinga
Export.image.toDrive({
image:image.select([‘classification_2017’]),
fileNamePrefix: ‘Caat_uso_2017’,
description:‘raster’,
folder:‘MapBiomas2017’,
region: table,
scale:30,
maxPixels:10000000000});


#3

Olá Adriana. Troque a parte da simbologia pelo código abaixo:

// Require the Palettes module
var palettes = require(‘users/mapbiomas/modules:Palettes.js’);

var visclass3 = {
_ ‘bands’: ‘classification_2017’,_
_ ‘min’: 0,_
_ ‘max’: 33,_
_ ‘palette’: palettes.get(‘classification2’),_
_ ‘format’: ‘png’_
_ }_

Deve melhorar a visualização das cores do mapa.


#4

Olá,
tenho pouca experiência com Engine e tentei fazer um scrip para calcular a proporção de cada classe em um shapefile com diferetens feições (ex municipios ou bacias). Porém tanto exportando em CSV e GSON as proporções (entre 0 e 1) de cada classe não aparecem em colunas, mas sim todas as classes como texto em uma mesma coluna. Por exemplo, a coluna proportion para uma geometria aleatória com 3 feições retorna assim:
system:index; proportion
0 {33=0.007666061035882462, 0=6.39561097250995E-6, 12=0.03430513100623398, 24=2.171375186503582E-4, 13=0.006537258681461959, 3=0.7613429647558654, 25=5.921474822756637E-4, 4=0.03999446690446732, 15=0.10365565783493545, 27=1.2520963234056694E-6, 10=5.742997607968119E-7, 21=0.045680938674588806};
1 {33=0.001046649654060303, 0=2.8282300647823665E-5, 12=0.21683808907995594, 24=3.857948838235778E-4, 3=0.08825521543938591, 4=0.16660015993576538, 15=4.539455132055185E-4, 19=0.08386999103479202, 21=0.44252190005811504};
2 {33=0.02794267706211883, 12=0.013064444257980666, 24=0.005448399300853789, 25=9.57615225618418E-4, 15=0.45412612143320064, 19=0.02456674341005589, 0=1.3492630166997554E-5, 3=0.06500602711685988, 4=0.011920404813896284, 9=4.207270113760412E-5, 30=2.5347426614301763E-5, 20=0.11033325953380718, 21=0.28655340415185726}

Creio que não seja algo dificil, mas até aqui não deu certo.
Segue o script

var mb = ee.Image(“projects/mapbiomas-workspace/public/collection3/mapbiomas_collection3_integration_v1”),
var munic = ee.FeatureCollection(“projects/mapbiomas-workspace/AUXILIAR/municipios-2016”);

// Select one band as example
var yr = mb.select(‘classification_1985’);

// Extract the values with histogram
var frequency = yr.reduceRegions({
collection: munic,
reducer: ee.Reducer.frequencyHistogram(),
scale: 30
});

// transform histogram to proportion
var propLUC = function(feature) {
var dict = ee.Dictionary(feature.get(‘histogram’));
var sum = ee.Array(dict.values()).reduce(ee.Reducer.sum(),[0]).get([0]);
var proportion = dict.map(function(k,v) {
return ee.Number(v).divide(sum);
});
return feature.set(‘proportion’, proportion);
};

//Map over features
var LUCprop = frequency.map(propLUC);

// Export results
Export.table.toDrive({
collection: ee.FeatureCollection(LUCprop),
description:‘teste’,
fileFormat: ‘CSV’
});


#5

Olá João, boa tarde

Primeiro obrigado pela utilização dos dado MapBiomas e do Fórum para sanar suas dúvidas.

Antes de lhe passar e explicar o código corrigido, sugiro que compartilhemos nossos scripts usando o botão “Get Link” e colando aqui o endereço que aparecerá no seu browser. Isso deixará as coisas mais enxutas e fáceis de corrigir.

Vamos ao seu código…O código em si faz sentido, o que temos aqui é uma mensagem de erro pouco precisa do GEE. O que dificulta a bastante a solução do problema. Na sua tentativa de encontrar a proporção das classes, dentro de geometrias previamente definidas, há uma geometria que está sob área sem imagem. Trata-se de parte do arquipélago de Fernando de Noronha.

A correção está disponível aqui:
https://code.earthengine.google.com/1c3ae3ce7d8322ce5bc3b008230c346f

A solução passa por filtrar essa região, excluindo-a da análise (ver linha 23)
Outra coisa é que todos os municípios postos juntos, podem lhe gerar uma mensagem de “timeout” durante a exportação do dado. Assim, tomei a liberdade de quebra-lo em pedaços, usando ID de das UF’s Brasileiras, veja as linhas 7 até 17 e a linha 58.

Espero ter ajudado,

Att

Equipe Solved


#6

Olá Cesar,

Obrigado pela resposta e desculpe pela desatenção no modo de compartilhamento.
De fato esse código era o que eu estava buscando.
Com relação à exportação das proporções em string e não em colunas, consigo solucionar no proprio CSV. Creio que para fazer isso direto do GEE precisaria criar cada feição com os valores de raster (0-33) e ir preenchendo cada coluna. Mas esse script já atende à minha demanda.

Muito obrigado!
Abs


#7

Boa tarde, Cesar!

Por favor, como faço para unir o raster do Mapbiomas (download pelo GEE) com a planilha do excel? Obrigada!


#8

Olá pessoal.

Sou bem iniciante no GEE, então ainda não tive sucesso em resolver uma questão que pensei ser útil: como habilitar uma opção em que possamos escolher visualizar a mudança da cobertura do solo entre um par de anos a nossa escolha e não apenas as datas pré-definidas?

Obrigado


#9

Olá Davi,

O cálculo de transições e geração de estatísticas é demorado e tem que ser executado em BATCH. Nos mapas de transições já deixamos pré-calculado os períodos do inventário florestal, código florestal, primeiro e último ano, 5 em 5 anos e anos subsequentes (http://mapbiomas.org/map#transitions). Para outros períodos, as transições devem ser geradas pelos mapas de cobertura, que estão disponíveis no GEE:

id: projects / mapbiomas-workspace / public / collection3_1 / mapbiomas_collection31_integration_v1