relatório fase 1 construção da plataforma e criação da ...de+dados/m… · construção da...

34
Relatório Fase 1 Construção da Plataforma e Criação da Coleção Beta de Mapas 2008-2015 AGRICULTURA e FLORESTAS PLANTADAS Dezembro, 2015

Upload: others

Post on 13-Aug-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Relatório Fase 1 Construção da Plataforma e Criação da ...de+dados/M… · Construção da Plataforma e Criação da Coleção Beta de Mapas 2008-2015 AGRICULTURA e FLORESTAS

Relatório Fase 1

Construção da Plataforma e Criação da Coleção Beta de Mapas 2008-2015

AGRICULTURA e FLORESTAS PLANTADAS

Dezembro, 2015

Page 2: Relatório Fase 1 Construção da Plataforma e Criação da ...de+dados/M… · Construção da Plataforma e Criação da Coleção Beta de Mapas 2008-2015 AGRICULTURA e FLORESTAS

Índice 1- Apresentação

1.1 - Objetivos do relatório

1.2 - Escopos do trabalho

2- Descrição dos temas mapeados

3- Atividades desenvolvidas

4- Processamento de imagens e classificação

4.1. Filtragem e Seleção dos Dados Landsat

4.2. Classificação supervisionada

5- Próximos passos

5.1. Desafios identificados

5.2. Soluções em vias de implementação

ANEXO: Scripts utilizados no processamento

ANEXO: Mapas de Referencia

ANEXO: Equipe do Projeto

Page 3: Relatório Fase 1 Construção da Plataforma e Criação da ...de+dados/M… · Construção da Plataforma e Criação da Coleção Beta de Mapas 2008-2015 AGRICULTURA e FLORESTAS

1- Apresentação

1.1 - Objetivos do relatório

Neste relatório, apresentamos, a metodologia utilizada para o mapeamento das áreas de

agricultura e florestas plantadas para toda a extensão do território nacional, considerando o

período de 2008 a 2015, tendo por base a classificação automática das imagens das séries

Landsat 5, 7 e 8. Os resultados desta primeira fase são apresentados e discutidos com o objetivo

de entender as dificuldades e os desafios deste mapeamento, assim como suas limitações e

perspectivas futuras.

1.2 - Escopos do trabalho

O mapeamento das áreas de agricultura e florestas plantadas teve por base as áreas das

cenas Landsat definidas pelo Worldwide Reference System (WRS) (ao contrário do

mapeamento dos temas floresta e não floresta nos biomas, em que o mapeamento foi baseado

na divisão das cartas do IBGE em escala 1:250.000). Especificamente, foram consideradas as

380 cenas necessárias ao recobrimento da totalidade do território nacional apresentadas na

Figura 1.

Figura 1 - Conjunto de cenas Landsat 5, 7 e 8 utilizadas para o mapeamento das áreas

de agricultura e florestas plantadas em todo o território nacional (cenas Landsat de acordo

com o Worldwide Reference System – WRS2).

Page 4: Relatório Fase 1 Construção da Plataforma e Criação da ...de+dados/M… · Construção da Plataforma e Criação da Coleção Beta de Mapas 2008-2015 AGRICULTURA e FLORESTAS

Para cada mapeamento anual, foram consideradas tanto as imagens do ano de interesse,

quanto do ano anterior. Assim, para a geração dos mapas anuais para o período de 2008 a 2015,

foram analisadas aproximadamente 70 mil imagens Landsat, referentes aos oito anos de análise,

vezes a quantia de 23 imagens por ano (conforme a resolução temporal do Landsat de 16 dias),

vezes as 380 cenas que cobrem o território do Brasil. Considerando que cada imagem Landsat,

com resolução de 30 metros, tem aproximadamente 60 milhões de pixels (aproximadamente

7800 linhas por 7600 colunas), analisamos cerca de quatro trilhões de pixels (60 milhões de

pixels por imagem, vezes 380 imagens para cobrir o Brasil, vezes 23 imagens por ano, vezes os

oito anos que compreendem o período da análise), sendo que para cada pixel foram associadas

27 variáveis conforme será detalhado no item 4 ‘Processamento de imagens e classificação’.

Sobre as imagens Landsat utilizadas no mapeamento, é importante ressaltar que

correspondem a dados com correções tipo L1T. Estes dados são corrigidos incorporando pontos

de controle no terreno e um modelo digital de elevação (MDE) para a exatidão topográfica. A

exatidão geodésica do produto depende da precisão dos pontos de controle e da resolução do

MDE usado para a correção. Além do nível de correção L1T, foram utilizados dados corrigidos,

também, para valores de refletância no topo da atmosfera (i.e. refletância aparente), o que

garante uma maior padronização entre os diferentes sensores a bordo dos diferentes satélites

Landsat (i.e. TM/Landsat5, ETM+/Landsat7 e OLI/Landsat8) e consistência da escala de

variação dos valores representados entre cenas e datas diferentes.

2- Descrição dos temas mapeados

Para esta primeira fase do projeto MapBiomas, a classe de mapeamento das áreas

agrícolas não diferenciou entre culturas anuais e perenes. Portanto, nesta primeira fase, o tema

‘Agricultura’ engloba as culturas anuais (i.e. soja, milho e algodão) e semi-perenes (i.e. cana-

de-açúcar) enquanto que o tema ‘Florestas plantadas’ abrange os cultivos florestais destinados

à produção comercial.

Como a identificação de áreas potencialmente ocupadas por agricultura ou florestas

plantadas foi baseada em um método de classificação automática, para o treinamento do

algoritmo de classificação utilizamos mapeamentos prévios de referência. Para o tema

Agricultura foram utilizados mapeamentos agrícolas realizados pela Agrosatélite e para o tema

Florestas plantadas foram utilizados mapeamentos realizados pela Agrosatélite e o mapa de

florestas plantadas do projeto Global Forest Watch fornecido pelo World Resources Institute

Page 5: Relatório Fase 1 Construção da Plataforma e Criação da ...de+dados/M… · Construção da Plataforma e Criação da Coleção Beta de Mapas 2008-2015 AGRICULTURA e FLORESTAS

(WRI), parceiro institucional do projeto MapBiomas. A Figura 2 representa a distribuição

espacial das áreas de agricultura anual, em verde, e de florestas plantadas, em vermelho.

Figura 2 - Distribuição espacial das áreas de agricultura anual (verde) e das florestas

plantadas (vermelho), utilizadas como referência no mapeamento do período de 2008 a 2014,

nos estados do Brasil e nas cenas Landsat.

3- Atividades desenvolvidas

O trabalho em rede foi facilitado por meio de reuniões semanais (virtuais) envolvendo

todos os grupos do projeto MapBiomas, bem como algumas reuniões específicas com a equipe

do LAPIG para discutirmos e decidirmos sobre questões pertinentes aos temas transversais

agricultura e pastagens. Da mesma forma, a equipe da Agrosatélite também participou de três

reuniões presenciais, realizadas em Goiânia (LAPIG, 10 a 11 de agosto) e em São Paulo (FGV,

7 a 8 de outubro e Google, 3 a 4 de novembro), em que os problemas comuns a todos os temas

do MapBiomas foram abordados e encaminhados.

Um mapeamento com este escopo só é possível com a adoção de protocolos consistentes

e um alto nível de automatização dos processos. Diversos scripts (JavaScript) foram

desenvolvidos e testados durante a etapa de desenvolvimento desta primeira fase do

MapBiomas. Para a operacionalização do processo de classificação, optou-se pela utilização de

um script, escrito na linguagem Python, adaptado do script desenvolvido e utilizado pela equipe

do LAPIG/UFG para o mapeamento de pastagens, por meio do qual todas as etapas relacionadas

à aquisição, pré-processamento e classificação das imagens de satélite foram automatizadas e

otimizadas (i.e. geração de composições, classificação e download dos mapas).

Page 6: Relatório Fase 1 Construção da Plataforma e Criação da ...de+dados/M… · Construção da Plataforma e Criação da Coleção Beta de Mapas 2008-2015 AGRICULTURA e FLORESTAS

Para a geração dos mapas anuais indicativos das áreas de agricultura e florestas

plantadas no Brasil, adotamos uma lógica de "solução em blocos", representada na Figura 3,

cujas prioridades, de forma integrada e sequenciada, tiveram por foco a aquisição e pré-

processamento dos dados raster, geração e seleção de amostras de treinamento do algoritmo de

classificação, classificação, pixel à pixel, utilizando o algoritmo “Random Forest” e validação

dos mapas gerados.

Figura 3 - “Solução em blocos” adotada para a geração dos mapas anuais de

agricultura, florestas plantadas e pastagens para o Brasil, focada em quatro aspectos

principais: dados raster (bloco em azul), dados de treinamento (bloco em amarelo),

classificação (bloco em vermelho) e validação (bloco em verde).

4- Processamento de imagens e classificação

4.1. Filtragem e Seleção dos Dados Landsat

Todas as imagens foram avaliadas, pixel a pixel, quanto a ocorrência de nuvens, sendo

descartados todos os pixels com alta probabilidade de contaminação por nuvens ou aerossóis.

Especificamente, e após uma análise quantitativa e qualitativa baseada em métodos automáticos

e de inspeção visual, optou-se por filtrar as observações cujos valores indicados pelo Google

Page 7: Relatório Fase 1 Construção da Plataforma e Criação da ...de+dados/M… · Construção da Plataforma e Criação da Coleção Beta de Mapas 2008-2015 AGRICULTURA e FLORESTAS

Earth Engine simple cloud score1 fossem superiores à 40% ou com indicativo de presença de

nuvens conforme a banda quality assurance, disponível para o OLI/Landsat8.

Após este pré-processamento, cada pixel Landsat foi associado à uma série temporal,

considerando, em dois anos consecutivos, as observações bimestrais de melhor qualidade. Esta

abordagem teve como pressuposto fundamental que as transições nas regiões de agricultura no

Brasil, em um período de dois anos, não ocorrem abruptamente e de que a sazonalidade que

caracteriza e discrimina os ciclos de culturas anuais pode ser representada de forma satisfatória

em intervalos bimestrais e bianuais. Assim, considerando a resolução temporal de 16 dias das

imagens Landsat, cada pixel pode ser associado a até oito observações por composição em um

intervalo de dois meses e um período de dois anos (bimestral bianual) conforme ilustrado na

Figura 4.

Figura 4 - Esquema para a geração das composições bimestrais bianuais Landsat

MVC (maximum value composite) e respectivas séries temporais.

Tendo por referência o método do maximum value composite (MVC) utilizado nos

produtos gerados com base nos dados do sensor MODIS de índice de vegetação, cuja a melhor

observação possível é aquela que corresponde ao maior valor do índice de vegetação da

diferença normalizada (NDVI), cada um dos bilhões de pixels distribuídos pelo Brasil foi

1 Índice com valores variando de 0 a 100%, conforme a probabilidade de um pixel ser contaminado por nuvens,

cuja identificação se baseia, principalmente, nos valores de brilho e temperatura da superfície.

Page 8: Relatório Fase 1 Construção da Plataforma e Criação da ...de+dados/M… · Construção da Plataforma e Criação da Coleção Beta de Mapas 2008-2015 AGRICULTURA e FLORESTAS

associado à um ciclo hidrológico completo para um determinado período (ex. 2007 - 2008),

representado por seis valores NDVI bimestrais (i.e. janeiro-fevereiro, março-abril, maio-junho,

julho-agosto, setembro-outubro, novembro-dezembro) de acordo com a Figura 4. Uma vez

definida a data de passagem do satélite que corresponde à melhor observação para cada um

destes seis intervalos, outros dois índices e respectivas séries temporais, para cada período

considerado, foram calculados: índice de stress hídrico da diferença normalizada (NDWI) e

índice de celulose (CI). Ao todo, cada pixel foi associado à um conjunto de 27 variáveis (i.e. 18

variáveis relacionadas às três séries temporais NDVI, NDWI e CI para as seis composições

bimestrais bianuais, além do desvio padrão e duas métricas de contraste sazonal para cada uma

destas séries).

4.2. Classificação supervisionada

Os critérios para decisão sobre uma possível área pertencer à classe Agricultura ou

Floresta plantada foram estabelecidos por meio do algoritmo Random Forest, implementado no

Google Earth Engine, para cada pixel, individualmente e independentemente da sua vizinhança.

Random Forest é um método de aprendizado (machine learning) ensemble, que combina vários

modelos (decision trees) para resolver um problema de predição (neste caso, determinar se um

determinado pixel pode ou não pertencer à classe de Agricultura ou Floresta plantada). Por se

tratar de um método de classificação supervisionada, o Random Forest necessita de amostras

de treinamento, as quais estão sendo coletadas para cada uma das 380 cenas Landsat

separadamente, tendo por referência os dados compilados de agricultura e florestas plantadas,

apresentados na Figura 2.

Para cada uma das cenas Landsat, um conjunto de 20.000 pontos aleatórios foi coletado,

sendo que para cada classe de interesse (i.e. Agricultura e Florestas plantadas), o número de

pontos variou proporcionalmente à respectiva área indicada no mapa de referência da Figura 2.

Com base nestes pontos, selecionados conforme o princípio de probabilidade a priori

(estratificados considerando a proporção de cada classe na cena), o algoritmo Random Forest

(parametrizado para geração de 100 árvores) foi “treinado” e executado. É importante observar

que o treinamento do algoritmo (i.e. definição das árvores) considerou apenas o período de 2013

a 2014, sendo que estas árvores foram também utilizadas para a classificação das imagens dos

outros anos considerados nesta primeira fase do MapBiomas, sendo estes: 2007 a 2008, 2008 a

Page 9: Relatório Fase 1 Construção da Plataforma e Criação da ...de+dados/M… · Construção da Plataforma e Criação da Coleção Beta de Mapas 2008-2015 AGRICULTURA e FLORESTAS

2009, 2009 a 2010, 2010 a 2011, 2011 a 2013 e 2013 a 2014 (devido à disponibilidade limitada

de imagens Landsat para o ano de 2012 e 2015). O resultado deste primeiro exercício de

classificação é apresentado nas figuras a seguir.

Figura 5 - Classificação das áreas de agricultura (verde) e florestas plantadas

(vermelho) para o período de 2007-2008.

Page 10: Relatório Fase 1 Construção da Plataforma e Criação da ...de+dados/M… · Construção da Plataforma e Criação da Coleção Beta de Mapas 2008-2015 AGRICULTURA e FLORESTAS

Figura 6 - Classificação das áreas de agricultura (verde) e florestas plantadas

(vermelho) para o período de 2008-2009.

Figura 7 - Classificação das áreas de agricultura (verde) e florestas plantadas

(vermelho) para o período de 2009-2010.

Page 11: Relatório Fase 1 Construção da Plataforma e Criação da ...de+dados/M… · Construção da Plataforma e Criação da Coleção Beta de Mapas 2008-2015 AGRICULTURA e FLORESTAS

Figura 8 - Classificação das áreas de agricultura (verde) e florestas plantadas

(vermelho) para o período de 2010-2011.

Figura 9 - Classificação das áreas de agricultura (verde) e florestas plantadas

(vermelho) para o período de 2011-2012-2013.

Page 12: Relatório Fase 1 Construção da Plataforma e Criação da ...de+dados/M… · Construção da Plataforma e Criação da Coleção Beta de Mapas 2008-2015 AGRICULTURA e FLORESTAS

Figura 10 - Classificação das áreas de agricultura (verde) e florestas plantadas

(vermelho) para o período de 2013-2014.

4.3. Validação dos dados

O resultado geral da abordagem de classificação empregada, que depende das variáveis

utilizadas, do conjunto de amostras de treinamento e da performance do algoritmo Random

Forest, foi avaliado pontualmente em relação aos mapas gerados.

Para esta avaliação preliminar foram gerados aleatoriamente 10.000 pontos dos quais

foram selecionados 3.756 pontos para as áreas de agricultura e 1.253 para as áreas de florestas

plantadas com base nos mapas de referência. Destes pontos selecionados, 2.666 coincidem com

a classe Agricultura e 976 com a classe Florestas plantadas no mapa resultante da classificação

pelo Randon Forest no período de 2013 a 2014.

A partir desta análise preliminar, foram avaliados os erros de omissão para o

mapeamento do período 2013 a 2014. Estima-se que a probabilidade de um pixel classificado

como agricultura pertencer à esta classe no mapa de referência está em torno de 72% enquanto

que a probabilidade de um pixel classificado como florestas plantadas pertencer à esta classe

Page 13: Relatório Fase 1 Construção da Plataforma e Criação da ...de+dados/M… · Construção da Plataforma e Criação da Coleção Beta de Mapas 2008-2015 AGRICULTURA e FLORESTAS

no mapa de referência está em torno de 77%. Vale ressaltar que estas probabilidades foram

obtidas a partir de uma análise pontual e preliminar, sem considerar a vizinhança do pixel em

análise.

Figura 11 - Classificação das áreas de agricultura (verde) e pontos das classes agricultura

(azul) e não agricultura (vermelho), para o período de 2013-2014.

5- Próximos passos

5.1. Desafios identificados

Os classificadores disponíveis no Google Earth Engine, inclusive o Randon Forest

utilizado neste mapeamento, resultam em mapas “pixelados”, ou seja, compostos por pixels

identificados individualmente com uma determinada classe (i.e. Agricultura, Florestas

plantadas ou outros usos, especificamente neste mapeamento), que podem estar espacialmente

isolados ou agrupados. Este mapa, ainda que apresente uma refinada resolução espacial (i.e. 30

metros, conforme a resolução espacial das bandas multiespectrais das imagens Landsat), é de

Page 14: Relatório Fase 1 Construção da Plataforma e Criação da ...de+dados/M… · Construção da Plataforma e Criação da Coleção Beta de Mapas 2008-2015 AGRICULTURA e FLORESTAS

uso limitado, devido às várias descontinuidades e inconsistências espaciais, como, por exemplo,

os pixels de agricultura entre pixels de floresta plantada ou vice-versa, que podem ser

observados na Figura 12.

Figura 12 - Classificação das áreas de agricultura (verde) e florestas plantadas

(vermelho), para o período de 2013-2014.

Esta descontinuidade espacial, causada por pixels de uma determinada classe isolados

em meio a um conjunto de pixels de outra classe, é menos pronunciada quando maior a

capacidade de diferenciação (espectral) entre as classes de interesse. Este efeito tende a ser

muito pior e resultar em mapas de completa incoerência espacial quando os classificadores,

pixel a pixel, tentam separar alvos com características (espectrais e sazonais) semelhantes,

como no caso de distinção de cultivos agrícolas (i.e. soja, milho e algodão).

Sobre estas descontinuidades e inconsistências, chama atenção o efeito da classificação

por cena, pois o resultado da classificação é demarcado pelos limites entre cenas vizinhas em

Page 15: Relatório Fase 1 Construção da Plataforma e Criação da ...de+dados/M… · Construção da Plataforma e Criação da Coleção Beta de Mapas 2008-2015 AGRICULTURA e FLORESTAS

algumas regiões, conforme ilustrado na Figura 13. Isto certamente ocorre devido às diferenças

de disponibilidade de imagens, diferenças nas proporções das amostras utilizadas, dentre outros

fatores, e que induz a erros de comissão e omissão no processo de classificação.

Visando a correção das transições abruptas entre cenas, resultado em parte devido ao

método de amostragem por cena individual, estão sendo avaliadas alternativas que reduzam

esta descontinuidade espacial, como uma amostragem que considere, além da cena específica,

as cenas imediatamente vizinhas à analisada ou, até mesmo, uma amostragem mais abrangente

e regionalizada que considere os aspectos espectrais e sazonais do alvo em questão.

Figura 13 - Classificação das áreas de agricultura (verde) para o período de 2013-

2014, com destaque para região que apresenta uma transição abrupta das áreas mapeadas em

diferentes cenas Landsat.

Um outro grande desafio a ser enfrentado diz respeito ao ano de 2012, para o qual temos

disponível apenas as imagens do Landsat 7, com o problema conhecido como Scan Line

Corrector off (SLC-off), que resulta em faixas sem dados e reduz a disponibilidade de pixels

úteis para a geração dos mapas de agricultura e florestas plantadas para o Brasil.

Page 16: Relatório Fase 1 Construção da Plataforma e Criação da ...de+dados/M… · Construção da Plataforma e Criação da Coleção Beta de Mapas 2008-2015 AGRICULTURA e FLORESTAS

5.2. Soluções em vias de implementação

Quanto ao efeito de descontinuidade espacial dos mapas, pixel a pixel, uma solução

possível e que já está em vias de implementação pela equipe MapBiomas consiste no

agrupamento espacial de pixels isolados por meio de análises com base na vizinhança imediata

do pixel (i.e. janela móvel) nas etapas de pós-processamento. Se por um lado, teremos um

menor nível de detalhe, por outro lado, a expectativa é de possamos gerar informações

espacialmente mais exatas, precisas e consistentes. Outra melhoria, em via de implementação,

que busca reduzir a descontinuidade espacial entre as cenas classificadas, implica em uma

modificação na lógica como as arvores do classificador Random Forest serão geradas, levando

em consideração amostras de treinamento de cenas vizinhas e múltiplas execuções do algoritmo

para cada tema de interesse. Deste modo, serão gerados mapas de probabilidade de ocorrência

da classe de interesse para cada cena em questão, permitindo trabalhar, na etapa de pós-

processamento, com as probabilidades no domínio espacial e temporal para integrar os diversos

temas classificados

Para o efeito de descontinuidade temporal entre as classes, que resultam em transições

ilógicas entre classes (e.g. agricultura em um determinado ano, floresta no ano seguinte e

novamente agricultura no ano após a floresta), estão sendo avaliadas regras para o controle de

transições, pixel a pixel, com o intuito de realizar uma ‘filtragem temporal’ a fim de melhorar

a capacidade da série de mapas em retratar, com maior confiança, as transições do uso e

cobertura da terra. Estas regras devem ser discutidas e consolidadas com a equipe do

MapBiomas, uma vez que deverão ser consideradas todas as possíveis transições entre os temas

contidos na legenda dos mapas do MapBiomas. Especificamente para os temas Agricultura e

Floresta plantada, que no Brasil e no período analisado tem uma dinâmica de expansão muito

mais característica que o abandono de áreas anteriormente já cultivadas, observamos que os

mapas anteriores somam aos mapas subsequentes algumas áreas que eventualmente foram

‘detectadas’ mas deixaram de ser classificadas nos anos seguinte, muitas vezes devido à

indisponibilidade de imagens Landast livres de nuvens no período mais adequado para a

identificação das áreas agrícolas.

Page 17: Relatório Fase 1 Construção da Plataforma e Criação da ...de+dados/M… · Construção da Plataforma e Criação da Coleção Beta de Mapas 2008-2015 AGRICULTURA e FLORESTAS

ANEXO: Scripts utilizados no processamento

# MapBiomas-agrosatelite.py

#!/usr/bin/python

import math

import time

import json

import ee

import traceback

tiles =

['001057','001058','001059','001060','001061','001062','001063','001064','001065','001066','001067','00

2057','002059','002060','002061','002062','002063','002064','002065','002066','002067','002068','00305

8','003059','003060','003061','003062','003063','003064','003065','003066','003067','003068','004059','

004060','004061','004062','004063','004064','004065','004066','004067','005059','005060','005063','005

064','005065','005066','005067','006063','006064','006065','006066','214064','214065','214066','214067

','215063','215064','215065','215066','215067','215068','215069','215070','215071','215072','215073','2

15074','216063','216064','216065','216066','216067','216068','216069','216070','216071','216072','2160

73','216074','216075','216076','217062','217063','217064','217065','217066','217067','217068','217069',

'217070','217071','217072','217073','217074','217075','217076','218062','218063','218064','218065','21

8066','218067','218068','218069','218070','218071','218072','218073','218074','218075','218076','21807

7','219062','219063','219064','219065','219066','219067','219068','219069','219070','219071','219072','

219073','219074','219075','219076','219077','220062','220063','220064','220065','220066','220067','220

068','220069','220070','220071','220072','220073','220074','220075','220076','220077','220078','220079

','220080','220081','221061','221062','221063','221064','221065','221066','221067','221068','221069','2

21070','221071','221072','221073','221074','221075','221076','221077','221078','221079','221080','2210

81','221082','221083','222061','222062','222063','222064','222065','222066','222067','222068','222069',

'222070','222071','222072','222073','222074','222075','222076','222077','222078','222079','222080','22

2081','222082','222083','223060','223061','223062','223063','223064','223065','223066','223067','22306

8','223069','223070','223071','223072','223073','223074','223075','223076','223077','223078','223079','

223080','223081','223082','224060','224061','224062','224063','224064','224065','224066','224067','224

068','224069','224070','224071','224072','224073','224074','224075','224076','224077','224078','224079

','224080','224081','224082','225058','225059','225060','225061','225062','225063','225064','225065','2

25066','225067','225068','225069','225070','225071','225072','225073','225074','225075','225076','2250

77','225080','225081','226057','226058','226059','226060','226061','226062','226063','226064','226065',

'226066','226067','226068','226069','226070','226071','226072','226073','226074','226075','227058','22

7059','227060','227061','227062','227063','227064','227065','227066','227067','227068','227069','22707

0','227071','227072','227073','227074','227075','228058','228059','228060','228061','228062','228063','

228064','228065','228066','228067','228068','228069','228070','228071','228072','229058','229059','229

060','229061','229062','229063','229064','229065','229066','229067','229068','229069','229070','229071

','230059','230060','230061','230062','230063','230064','230065','230066','230067','230068','230069','2

31057','231058','231059','231060','231061','231062','231063','231064','231065','231066','231067','2310

68','231069','232056','232057','232058','232059','232060','232061','232062','232063','232064','232065',

'232066','232067','232068','232069','233057','233058','233059','233060','233061','233062','233063','23

3064','233065','233066','233067','233068']

Page 18: Relatório Fase 1 Construção da Plataforma e Criação da ...de+dados/M… · Construção da Plataforma e Criação da Coleção Beta de Mapas 2008-2015 AGRICULTURA e FLORESTAS

ee.Initialize()

config = {

"grid": {

"tiles": tiles,

"ftCollection": 'ft:1qNHyIqgUjShP2gQAcfGXw-XoxWwCRn5ZXNVqKIS5'

}

, "download": {

"createTask": True

, "poolSize": 10

, "poolCheckTime": 300

, "taskConfig": { "scale": 30, "maxPixels": 1.0E13, "driveFolder": 'MapBiomas' }

}

, "visualization": {

"addToMap": True

, "addTmpResults": False

, "palette": 'f7c1c2, ec1413'

}

, "mvc": {

"qualityIndex": 'ndvi'

, "series": [

{

"prefix": 'C1314_',

"imgCollection": 'LANDSAT/LC8_L1T_TOA',

"qualityBand": 'BQA',

"visualization": {

"viewComposites": False,

"conf": { "bands": ['B6','B5','B4'] },

},

"indexes": [

{ "id": "ndvi", "expression": "(b('B5') - b('B4')) / (b('B5') + b('B4'))" }

, { "id": "ndwi", "expression": "(b('B5') - b('B6')) / (b('B5') + b('B6'))" }

, { "id": "cai", "expression": "(b('B7') / b('B6'))" }

],

Page 19: Relatório Fase 1 Construção da Plataforma e Criação da ...de+dados/M… · Construção da Plataforma e Criação da Coleção Beta de Mapas 2008-2015 AGRICULTURA e FLORESTAS

"composites": [

{ "id": "0203", "dates": [ { "start": "2014-02-01", "end": "2014-03-31" } ] }

, { "id": "0405", "dates": [ { "start": "2013-04-01", "end": "2013-05-31" }, { "start": "2014-05-

01", "end": "2014-05-31" } ] }

, { "id": "0607", "dates": [ { "start": "2013-06-01", "end": "2013-07-31" }, { "start": "2014-06-

01", "end": "2014-07-31" } ] }

, { "id": "0809", "dates": [ { "start": "2013-08-01", "end": "2013-09-30" }, { "start": "2014-08-

01", "end": "2014-09-30" } ] }

, { "id": "1011", "dates": [ { "start": "2013-10-01", "end": "2013-11-30" }, { "start": "2014-10-

01", "end": "2014-11-30" } ] }

, { "id": "1201", "dates": [ { "start": "2013-12-01", "end": "2014-01-30" }, { "start": "2014-12-

01", "end": "2015-01-31" } ] }

]

},

{

"prefix": 'C111213_',

"imgCollection": 'LANDSAT/LE7_L1T_TOA',

"qualityBand": '',

"visualization": {

"viewComposites": False,

"conf": { "bands": ['B5','B4','B3'] },

},

"indexes": [

{ "id": "ndvi", "expression": "(b('B4') - b('B3')) / (b('B4') + b('B3'))" }

, { "id": "ndwi", "expression": "(b('B4') - b('B5')) / (b('B4') + b('B5'))" }

, { "id": "cai", "expression": "(b('B7') / b('B5'))" }

],

"composites": [

{ "id": "0203", "dates": [ { "start": "2011-02-01", "end": "2011-03-31" }, { "start": "2012-02-

01", "end": "2012-03-31" }, { "start": "2013-02-01", "end": "2013-03-31" } ] }

, { "id": "0405", "dates": [ { "start": "2011-04-01", "end": "2011-05-31" }, { "start": "2012-04-

01", "end": "2012-05-31" }, { "start": "2013-04-01", "end": "2013-05-31" } ] }

, { "id": "0607", "dates": [ { "start": "2011-06-01", "end": "2011-07-31" }, { "start": "2012-06-

01", "end": "2012-07-31" }, { "start": "2013-06-01", "end": "2013-07-31" } ] }

, { "id": "0809", "dates": [ { "start": "2011-08-01", "end": "2011-09-30" }, { "start": "2012-08-

01", "end": "2012-09-30" }, { "start": "2013-08-01", "end": "2013-09-30" } ] }

, { "id": "1011", "dates": [ { "start": "2011-10-01", "end": "2011-11-30" }, { "start": "2012-10-

01", "end": "2012-11-30" }, { "start": "2013-10-01", "end": "2013-11-30" } ] }

, { "id": "1201", "dates": [ { "start": "2011-12-01", "end": "2012-01-30" }, { "start": "2012-12-

01", "end": "2013-01-30" }, { "start": "2013-12-01", "end": "2014-01-31" } ] }

Page 20: Relatório Fase 1 Construção da Plataforma e Criação da ...de+dados/M… · Construção da Plataforma e Criação da Coleção Beta de Mapas 2008-2015 AGRICULTURA e FLORESTAS

]

},

{

"prefix": 'C1011_',

"imgCollection": 'LANDSAT/LT5_L1T_TOA',

"qualityBand": '',

"visualization": {

"viewComposites": False,

"conf": { "bands": ['B5','B4','B3'] },

},

"indexes": [

{ "id": "ndvi", "expression": "(b('B4') - b('B3')) / (b('B4') + b('B3'))" }

, { "id": "ndwi", "expression": "(b('B4') - b('B5')) / (b('B4') + b('B5'))" }

, { "id": "cai", "expression": "(b('B7') / b('B5'))" }

],

"composites": [

{ "id": "0203", "dates": [ { "start": "2010-02-01", "end": "2010-03-31" }, { "start": "2011-02-

01", "end": "2011-03-31" } ] }

, { "id": "0405", "dates": [ { "start": "2010-04-01", "end": "2010-05-31" }, { "start": "2011-05-

01", "end": "2011-05-31" } ] }

, { "id": "0607", "dates": [ { "start": "2010-06-01", "end": "2010-07-31" }, { "start": "2011-06-

01", "end": "2011-07-31" } ] }

, { "id": "0809", "dates": [ { "start": "2010-08-01", "end": "2010-09-30" }, { "start": "2011-08-

01", "end": "2011-09-30" } ] }

, { "id": "1011", "dates": [ { "start": "2010-10-01", "end": "2010-11-30" }, { "start": "2011-10-

01", "end": "2011-11-30" } ] }

, { "id": "1201", "dates": [ { "start": "2010-12-01", "end": "2011-01-30" }, ] }

]

},

{

"prefix": 'C0910_',

"imgCollection": 'LANDSAT/LT5_L1T_TOA',

"qualityBand": '',

"visualization": {

"viewComposites": False,

"conf": { "bands": ['B6','B5','B4'] },

},

"indexes": [

Page 21: Relatório Fase 1 Construção da Plataforma e Criação da ...de+dados/M… · Construção da Plataforma e Criação da Coleção Beta de Mapas 2008-2015 AGRICULTURA e FLORESTAS

{ "id": "ndvi", "expression": "(b('B4') - b('B3')) / (b('B4') + b('B3'))" }

, { "id": "ndwi", "expression": "(b('B4') - b('B5')) / (b('B4') + b('B5'))" }

, { "id": "cai", "expression": "(b('B7') / b('B5'))" }

],

"composites": [

{ "id": "0203", "dates": [ { "start": "2009-02-01", "end": "2009-03-31" }, { "start": "2010-02-

01", "end": "2010-03-31" } ] }

, { "id": "0405", "dates": [ { "start": "2009-04-01", "end": "2009-05-31" }, { "start": "2010-05-

01", "end": "2010-05-31" } ] }

, { "id": "0607", "dates": [ { "start": "2009-06-01", "end": "2009-07-31" }, { "start": "2010-06-

01", "end": "2010-07-31" } ] }

, { "id": "0809", "dates": [ { "start": "2009-08-01", "end": "2009-09-30" }, { "start": "2010-08-

01", "end": "2010-09-30" } ] }

, { "id": "1011", "dates": [ { "start": "2009-10-01", "end": "2009-11-30" }, { "start": "2010-10-

01", "end": "2010-11-30" } ] }

, { "id": "1201", "dates": [ { "start": "2009-12-01", "end": "2010-01-30" }, { "start": "2010-12-

01", "end": "2011-01-31" } ] }

]

},

{

"prefix": 'C0809_',

"imgCollection": 'LANDSAT/LT5_L1T_TOA',

"qualityBand": '',

"visualization": {

"viewComposites": False,

"conf": { "bands": ['B6','B5','B4'] },

},

"indexes": [

{ "id": "ndvi", "expression": "(b('B4') - b('B3')) / (b('B4') + b('B3'))" }

, { "id": "ndwi", "expression": "(b('B4') - b('B5')) / (b('B4') + b('B5'))" }

, { "id": "cai", "expression": "(b('B7') / b('B5'))" }

],

"composites": [

{ "id": "0203", "dates": [ { "start": "2008-02-01", "end": "2008-03-31" }, { "start": "2009-02-

01", "end": "2009-03-31" } ] }

, { "id": "0405", "dates": [ { "start": "2008-04-01", "end": "2008-05-31" }, { "start": "2009-05-

01", "end": "2009-05-31" } ] }

, { "id": "0607", "dates": [ { "start": "2008-06-01", "end": "2008-07-31" }, { "start": "2009-06-

01", "end": "2009-07-31" } ] }

Page 22: Relatório Fase 1 Construção da Plataforma e Criação da ...de+dados/M… · Construção da Plataforma e Criação da Coleção Beta de Mapas 2008-2015 AGRICULTURA e FLORESTAS

, { "id": "0809", "dates": [ { "start": "2008-08-01", "end": "2008-09-30" }, { "start": "2009-08-

01", "end": "2009-09-30" } ] }

, { "id": "1011", "dates": [ { "start": "2008-10-01", "end": "2008-11-30" }, { "start": "2009-10-

01", "end": "2009-11-30" } ] }

, { "id": "1201", "dates": [ { "start": "2008-12-01", "end": "2009-01-30" }, { "start": "2009-12-

01", "end": "2010-01-31" } ] }

]

},

{

"prefix": 'C0708_',

"imgCollection": 'LANDSAT/LT5_L1T_TOA',

"qualityBand": '',

"visualization": {

"viewComposites": False,

"conf": { "bands": ['B6','B5','B4'] },

},

"indexes": [

{ "id": "ndvi", "expression": "(b('B4') - b('B3')) / (b('B4') + b('B3'))" }

, { "id": "ndwi", "expression": "(b('B4') - b('B5')) / (b('B4') + b('B5'))" }

, { "id": "cai", "expression": "(b('B7') / b('B5'))" }

],

"composites": [

{ "id": "0203", "dates": [ { "start": "2007-02-01", "end": "2007-03-31" }, { "start": "2008-02-

01", "end": "2008-03-31" } ] }

, { "id": "0405", "dates": [ { "start": "2007-04-01", "end": "2007-05-31" }, { "start": "2008-05-

01", "end": "2008-05-31" } ] }

, { "id": "0607", "dates": [ { "start": "2007-06-01", "end": "2007-07-31" }, { "start": "2008-06-

01", "end": "2008-07-31" } ] }

, { "id": "0809", "dates": [ { "start": "2007-08-01", "end": "2007-09-30" }, { "start": "2008-08-

01", "end": "2008-09-30" } ] }

, { "id": "1011", "dates": [ { "start": "2007-10-01", "end": "2007-11-30" }, { "start": "2008-10-

01", "end": "2008-11-30" } ] }

, { "id": "1201", "dates": [ { "start": "2007-12-01", "end": "2008-01-30" }, { "start": "2008-12-

01", "end": "2009-01-31" } ] }

]

}

]

}

, "cloud": {

Page 23: Relatório Fase 1 Construção da Plataforma e Criação da ...de+dados/M… · Construção da Plataforma e Criação da Coleção Beta de Mapas 2008-2015 AGRICULTURA e FLORESTAS

"cloudCoverThreshold": 60

, "eeThreshold": 40

, "bqaThreshold": 53248

, "gapfillValue": -1

}

, "classification": {

"nTrees": 100

, "nExecutions": 1

, "threshold": 0

, "variablesPerSplit": 1

}

, "trainning": {

"nPoints": 20000

, "scale": 30

, "strategy": 'percentage'

, "referenceMask": ee.Image('users/lealparente/pasture_crop_mask_v2')

}

}

def getPctPixels(referenceMask, classBand, classValue, gridCell):

total = referenceMask.reduceRegion(reducer=ee.Reducer.count(), geometry=gridCell, scale=30,

maxPixels=1.0E13);

classMask = referenceMask.eq(classValue);

classCount = classMask.mask(classMask).reduceRegion(reducer=ee.Reducer.count(),

geometry=gridCell, scale=30, maxPixels=1.0E13)

nClassCount = ee.Number(ee.Dictionary(classCount).get(classBand));

nTotal = ee.Number(ee.Dictionary(total).get(classBand));

return nClassCount.divide(nTotal).getInfo()

def getTrainningDataset(image, gridCell, seed):

classBand = 'class'

scale = config['trainning']['scale']

Page 24: Relatório Fase 1 Construção da Plataforma e Criação da ...de+dados/M… · Construção da Plataforma e Criação da Coleção Beta de Mapas 2008-2015 AGRICULTURA e FLORESTAS

nPoints = config['trainning']['nPoints']

strategy = config['trainning']['strategy']

referenceMask = config['trainning']['referenceMask']

referenceMask = referenceMask.select([0],[classBand]);

#All class 1=agricultura, 2=cana, 3=floresta plantada, 4=pastagem

#Script class 1=Other, 2=cana, 3=floresta plantada

referenceMask = referenceMask.expression("( b('class') == 255 ) ? 1 : ( b('class') == 4 ? 1 : b('class') )

")

image = image.addBands(referenceMask);

gapfillMask = image.neq(-1);

image = image.mask(gapfillMask);

classValues = [1,2,3]

points = image.sample(numPixels=math.trunc(nPoints * 5), scale=scale, seed=seed, region=gridCell)

result = None;

for classValue in classValues:

if strategy == 'percentage':

classPct = getPctPixels(referenceMask, classBand, classValue, gridCell);

if classPct > 0.1 and classPct < 0.15:

classPct = 0.15

elif classPct > 0.75:

classPct = 0.75

numClassPoints = math.ceil(nPoints * classPct)

else:

numClassPoints = nPoints / len(classValues)

classPoints = points.filter(ee.Filter.eq(classBand, classValue)).limit(numClassPoints)

if result == None:

Page 25: Relatório Fase 1 Construção da Plataforma e Criação da ...de+dados/M… · Construção da Plataforma e Criação da Coleção Beta de Mapas 2008-2015 AGRICULTURA e FLORESTAS

result = classPoints;

else:

result = result.merge(classPoints)

result = result.set('band_order', points.get('band_order'))

return result

def getMVC(serie, gridCell, fakeBands):

mvc = None

indexes = serie['indexes']

composites = serie['composites']

eeThreshold = config['cloud']['eeThreshold']

qualityIndex = config['mvc']['qualityIndex']

bqaThreshold = config['cloud']['bqaThreshold']

gapfillValue = config['cloud']['gapfillValue']

cloudCoverThreshold = config['cloud']['cloudCoverThreshold']

imgCollection = ee.ImageCollection(serie['imgCollection'])

def indexName(name):

return name + '-' + configComposite['id']

def calculateIndexes(image):

scored = ee.Algorithms.Landsat.simpleCloudScore(image)

cloudEE = scored.select('cloud').gte(eeThreshold);

cloudEE = cloudEE.mask(cloudEE)

cloudEE = cloudEE.unmask(0);

cloudMask = None

if serie['qualityBand']:

cloudLT = image.select('BQA').gte(bqaThreshold);

cloudLT = cloudLT.mask(cloudLT).select(['BQA'],['cloud']);

cloudLT = cloudLT.unmask(0);

cloudMask = cloudLT.add(cloudEE).gt(0).Not();

Page 26: Relatório Fase 1 Construção da Plataforma e Criação da ...de+dados/M… · Construção da Plataforma e Criação da Coleção Beta de Mapas 2008-2015 AGRICULTURA e FLORESTAS

else:

cloudMask = cloudEE.gt(0).Not();

resultImage = None

for index in indexes:

indexBand = image.expression(index['expression']).select([0],[indexName(index['id'])]).toFloat()

resultImage = indexBand if resultImage == None else resultImage.addBands(indexBand)

resultImage = resultImage.mask(cloudMask);

resultImage = resultImage.unmask(gapfillValue);

return resultImage;

for i in xrange(0,len(composites)):

configComposite = composites[i]

compositeCol = None

for j in xrange(0, len(configComposite['dates'])):

date = configComposite['dates'][j]

compositePart = imgCollection \

.filterDate(date['start'], date['end']) \

.filterBounds(gridCell.centroid()) \

.filterMetadata('CLOUD_COVER', 'less_than', cloudCoverThreshold) \

.map(calculateIndexes)

compositeCol = compositePart if compositeCol == None else

ee.ImageCollection(compositeCol.merge(compositePart))

composite = compositeCol.qualityMosaic(indexName(qualityIndex))

mvc = composite if mvc == None else mvc.addBands(composite)

bands = [];

Page 27: Relatório Fase 1 Construção da Plataforma e Criação da ...de+dados/M… · Construção da Plataforma e Criação da Coleção Beta de Mapas 2008-2015 AGRICULTURA e FLORESTAS

bandNamesMap = {}

bandNamesList = mvc.bandNames().getInfo()

for bandName in bandNamesList:

bandNamesMap[bandName] = True

bands.append(bandName)

for index in indexes:

indexImages = []

for configComposite in composites:

indexBandname = index['id'] + '-' + configComposite['id']

compositeBandname = 'C' + configComposite['id']

if indexBandname in bandNamesMap:

mask = mvc.select([indexBandname],[index['id']]).neq(gapfillValue);

indexImages.append(mvc.mask(mask).select([indexBandname],[index['id']]))

elif fakeBands:

mvc = mvc.addBands(ee.Image(gapfillValue).select([0],[indexBandname]))

bands.append(indexBandname);

bandNameStdDev = index['id']+'-stddev';

indexCollection = ee.ImageCollection.fromImages(indexImages)

indexStdDev = indexCollection.reduce(ee.Reducer.stdDev()).select([0],

[bandNameStdDev]).toFloat()

mvc = mvc.addBands(indexStdDev)

bands.append(bandNameStdDev)

i1Cs1 = index['id']+'-0405';

i2Cs1 = index['id']+'-0809';

bandNameCs1 = index['id']+'-cs1';

if (i1Cs1 in bandNamesMap) and (i2Cs1 in bandNamesMap):

i1Cs1Img = mvc.select(i1Cs1)

i2Cs1Img = mvc.select(i2Cs1)

i1Mask = i1Cs1Img.neq(gapfillValue);

i2Mask = i2Cs1Img.neq(gapfillValue);

Page 28: Relatório Fase 1 Construção da Plataforma e Criação da ...de+dados/M… · Construção da Plataforma e Criação da Coleção Beta de Mapas 2008-2015 AGRICULTURA e FLORESTAS

i1Cs1Img = i1Cs1Img.mask(i1Mask);

i2Cs1Img = i2Cs1Img.mask(i2Mask);

cs1 = i1Cs1Img.subtract(i2Cs1Img).divide(i2Cs1Img).select([0], [bandNameCs1])

mvc = mvc.addBands(cs1)

bands.append(bandNameCs1)

elif fakeBands:

mvc = mvc.addBands(ee.Image(gapfillValue).select([0],[bandNameCs1]))

bands.append(bandNameCs1);

i1Cs2 = index['id']+'-1201'

i2Cs2 = index['id']+'-1011'

bandNameCs2 = index['id']+'-cs2';

if (i1Cs2 in bandNamesMap) and (i2Cs2 in bandNamesMap):

i1Cs2Img = mvc.select(i1Cs2)

i2Cs2Img = mvc.select(i2Cs2)

i1Mask = i1Cs2Img.neq(gapfillValue);

i2Mask = i2Cs2Img.neq(gapfillValue);

i1Cs2Img = i1Cs2Img.mask(i1Mask);

i2Cs2Img = i2Cs2Img.mask(i2Mask);

cs2 = i1Cs2Img.subtract(i2Cs2Img).divide(i2Cs2Img).select([0], [bandNameCs2])

mvc = mvc.addBands(cs2)

bands.append(bandNameCs2)

elif fakeBands:

mvc = mvc.addBands(ee.Image(gapfillValue).select([0],[bandNameCs2]))

bands.append(bandNameCs2);

return { "mvc": mvc, "bands": bands };

def getClassifiers(mvc, gridCell):

Page 29: Relatório Fase 1 Construção da Plataforma e Criação da ...de+dados/M… · Construção da Plataforma e Criação da Coleção Beta de Mapas 2008-2015 AGRICULTURA e FLORESTAS

nTrees = config['classification']['nTrees'];

nExecutions = config['classification']['nExecutions'];

variablesPerSplit = config['classification']['variablesPerSplit'];

result = [];

for i in xrange(0,nExecutions):

seed = int(time.time())

trainningDataset = getTrainningDataset(mvc, gridCell, i);

classifier = ee.Classifier.randomForest(nTrees, variablesPerSplit, 1, 0.1);

classifier = classifier.train(trainningDataset, 'class');

result.append(classifier);

return result;

def classification(mvc, gridCell, classifiers):

classificationArray = []

threshold = config['classification']['threshold']

clipedMvc = mvc.clip(gridCell)

classifier = classifiers[0];

classificationResult = clipedMvc.classify(classifier);

classificationResult = classificationResult.toInt8()

classificationResult = classificationResult.set('system:footprint', mvc.get('system:footprint'))

return classificationResult

def run(tile, gridCell):

classifiers = None

Page 30: Relatório Fase 1 Construção da Plataforma e Criação da ...de+dados/M… · Construção da Plataforma e Criação da Coleção Beta de Mapas 2008-2015 AGRICULTURA e FLORESTAS

classificationBands = None

result = {};

for serie in config['mvc']['series']:

if classifiers == None:

mvcObj = getMVC(serie, gridCell, False);

mvc = mvcObj['mvc'];

classificationBands = mvcObj['bands'];

classifiers = getClassifiers(mvc, gridCell)

else:

mvcObj = getMVC(serie, gridCell, True);

mvc = mvcObj['mvc'];

mvc = mvc.select(classificationBands)

serieResult = classification(mvc, gridCell, classifiers)

result[serie['prefix'] + tile] = serieResult;

return result

def checkPoolState(config, taskPool):

print(len(taskPool), 'sleep time')

time.sleep(config['download']['poolCheckTime'])

for task in list(taskPool):

status = task.status()

print(status['state'])

if status['state'] in (ee.batch.Task.State.FAILED, ee.batch.Task.State.COMPLETED,

ee.batch.Task.State.CANCELLED):

taskPool.remove(task)

if('error_message' in status):

print(task.config['description'], status['error_message'])

if('error_message' in status and status['error_message'] != 'Error: no valid training data were

found.'):

print(task.config['description'], 'Re-run task')

#reRuntask = ee.batch.Export.image(mapResult[taskId], taskId, taskConfig)

Page 31: Relatório Fase 1 Construção da Plataforma e Criação da ...de+dados/M… · Construção da Plataforma e Criação da Coleção Beta de Mapas 2008-2015 AGRICULTURA e FLORESTAS

#taskPool.append(reRuntask)

center = None

taskPool = []

mapResult = {}

for tile in config['grid']['tiles']:

execFlag = True

gridCell = ee.FeatureCollection(config['grid']['ftCollection']) \

.filter(ee.Filter.eq('TILE_T', 'T'+tile)) \

.first() \

.geometry();

while execFlag:

try:

coordList = gridCell.coordinates().getInfo()

seriesResult = run(tile, gridCell)

while len(taskPool) >= config['download']['poolSize']:

checkPoolState(config,taskPool)

for taskId,serieResult in seriesResult.iteritems():

print(taskId);

taskConfig = config['download']['taskConfig']

taskConfig['region'] = [coordList[0][0], coordList[0][1], coordList[0][2], coordList[0][3]]

print("Starting task " + taskId)

task = ee.batch.Export.image(serieResult, taskId, taskConfig)

mapResult[taskId] = serieResult;

task.start()

taskPool.append(task)

execFlag = False

except:

traceback.print_exc()

Page 32: Relatório Fase 1 Construção da Plataforma e Criação da ...de+dados/M… · Construção da Plataforma e Criação da Coleção Beta de Mapas 2008-2015 AGRICULTURA e FLORESTAS

execFlag = True

while len(taskPool) > 0:

checkPoolState(config,taskPool)

Page 33: Relatório Fase 1 Construção da Plataforma e Criação da ...de+dados/M… · Construção da Plataforma e Criação da Coleção Beta de Mapas 2008-2015 AGRICULTURA e FLORESTAS

ANEXO: Mapas de Referencia

Agricultura

Análise Geoespacial da Dinâmica das Culturas Anuais no Bioma Cerrado: 2000 a 2014 / Rudorff, B.;

Risso, J. et al., 2015 Florianópolis, Santa Catarina, Brasil, 2015.

Máscara de agricultura anual, safra 2011. Instituto Nacional de Pesquisas Espacias (INPE) Divisão de

Sensoriamento Remoto - Laboratório de Agricultura e Floresta em Sensosriamento Remoto - Marcos

Adami, Joel Risso, Moisés Salgado e Bernardo Rudorff. 2012.

RUDORFF, B. F. T.; AGUIAR, D. A.; SILVA, W. F.; SUGAWARA, L. M.; ADAMI, M.; MOREIRA, M.

A. Studies on the Rapid Expansion of Sugarcane for Ethanol Production in São Paulo State (Brazil) Using

Landsat Data. Remote Sensing. 2010; 2(4):1057-1076. doi: <10.3390/rs2041057>

Page 34: Relatório Fase 1 Construção da Plataforma e Criação da ...de+dados/M… · Construção da Plataforma e Criação da Coleção Beta de Mapas 2008-2015 AGRICULTURA e FLORESTAS

ANEXO: Equipe do Projeto

Equipe técnica

Bernardo F. T. Rudorff

Daniel A. Aguiar

Fábio G. Gonçalves

Joel Risso

Moisés P. G. Salgado