revisão/padronização prodes 1997-2003 marisa da motta dalton valeriano inpe – dpi/dsr
TRANSCRIPT
Revisão/Padronização PRODES 1997-2003
Marisa da Motta
Dalton Valeriano
INPE – DPI/DSR
2
Motivação: Recuperar Informação
223/62-2000 223/62-2001
3
Motivação: Padronizar Legendas
4
L E G A L
Linguagem Espacial de Geo-Processamento Algébrico
Ferramenta para modelagem espacial no ambiente SPRING
Implementada com base na categorização de dados segundo o Modelo de Dados SPRING
Dados Espaciais – associados aos tipos: Temático Numérico Imagem Cadastral/Objetos Rede/Objetos
5
Álgebra de Mapas x Álgebra Matemática
Constantes e Variáveis Mapas Temáticos Grades Numéricas Imagens de Satélite Mapas Cadastrais
Operações e Funções Locais (pixel – valor) Vizinhança (media/maioria...) Zonais (estatísticas – áreas
extensas) Comparação e Lógicos
Expressões Similares
Constantes e Variáveis Representam Números inteiro real float
Operações e Funções Matemáticos +,-,*,/, sen,tan... Comparação <, >,<=, >=, ==, != Lógicos &&,||, !, ~
Expressões Algébricas
Matemáticas
6
Classes da Categoria “nuvens” 2003
nv_01 nuvem2003 (observada em 2003)
nv_02 nuvem2003_nv2002
nv_03 nuvem2003_nv2002_nv2001
nv_04 nuvem2003_nv2002_nv2001_nv2000
nv_05 Não ocorre porque 99/98 não foi processado
nv_06 nuvem2003_nv2002_nv2001_nv2000_(nv99;98)
nv_07 nuvem2003_nv2002_nv2001_nv2000_(nv99;98)_nv1997
Mapa de cruzamento de nuvens de 1997-2003
7
Categoria: Cartatema_NOVO (2004)
floresta Classificacao/mapeamento
nao_floresta Classificacao/mapeamento
nao_floresta2 Classificacao/mapeamento
hidrografia Classificacao/mapeamento
nuvem Classificacao/mapeamento
problema Via legal
desmatamento_total Via legal
desmatamento Classificacao/Mapeamento
dsf_nv_01 Via legal –dsf sobre nuvens por 1 ano (nuvens ano anterior)
dsf_nv_02 Via legal –dsf sobre nuvens por 2 anos (nuvens ano anterior)
dsf_nv_03 Via legal –dsf sobre nuvens por 3 anos (nuvens ano anterior
dsf_nv_04 Via legal –dsf sobre nuvens por 4 anos (nuvens ano anterior)
dsf_nv_05 Via legal –dsf sobre nuvens por 5 anos (nuvens ano anterior)
dsf_nv_06 Via legal –dsf sobre nuvens por 6 anos (nuvens ano anterior)
dsf_nv_07 Via legal –dsf sobre nuvens por 7 anos (nuvens ano anterior)
8
Categorias: extensão_NOVO
Floresta_total Total observado
nao_floresta_total Total observado
nao_floresta2_total Total observado
Hidrografia_total Total observado
Area_nao_sensoriada Total observado
desmatamento_total Total acumulado até o ano
Hidrografia
Nao_floresta
Desmatamento
Máscara Mascara a imagem do ano seguinte
Segmentação/Classificação
9
Fase de Recuperação 1997-2003
1. Remapea para o conjunto de classes definidas
Legal comando Atribua
2. Recupera Hidrografia/Não-Floresta/Desmatamento do ano anterior
Legal cruza 2 mapas – Atribua
3. Diferenças evidenciadas – auditor verifica/edita Legal (se expressão true) ? expressao1) : (expressao2)
sim não
4. Geração: Cartatema/nuvens/extensão/mascara
Legais padronizados executados na sequência
10
Sequencia de PI´s: Recuperação
Classif1997 Classif2000 Classif2001 – ? Classif_2001_Recuperado Diferença – evidenciada p/ auditor Classif2002 - ? Classif_2002_recuperado Diferença – evidenciada p/ auditor
11
1997
12
2000
13
2001
14
2001_recuperado
15
Diferença_2001
16
2002
17
2002_recuperado
18
Diferença_2002
19
Metodologia PRODES
Geo-referenciamento Processamento de Imagens
contraste, Modelo Linear de Mistura Espectral, Segmentação e Classificação
Mapeamento foto-interprete associa classificação às classes temáticas – edição
Cruzamento com ano anterior processo de modelagem baseado em Álgebra de Mapas
Regras de cruzamento são definidas transformadas em programas LEGAL
20
PRODES - Regras de Cruzamento
A – aceita E – extensão_anterior D - Distribui
Resultado do cruzamento do PI classif_final2004 com extensão_2003 e nuvens2003 extensão_2003
classif_final2004
floresta_tot
desmat-total
Area_não_
Sensoriada
Hidrografia_total Não_floresta
_total
Não-floresta2_total
desmatamento A E D (dsf_...) * E E E
desmatamento_total - - - - - -
floresta E E A E E E
não_floresta E E (Problema) E E E
não_floresta2 A E A E E E
hidrografia A A A E A A
nuvem A E D (nv_...)** E E E
Distribui desmatamento sobre nuvens 2003 e acumula nuvem sobre nuvens2003 – gerando nuvens2004
PI= nuvens2003 nv_01 nv_02 nv_03 nv_04 nv_05 nv_06
desmatamento * dsf_nv_01 dsf_nv_02 dsf_nv_03 dsf_nv_04 dsf_nv_05 dsf_nv_06
nuvem ** (2004) nv_01 nv_02 nv_03 nv_04 nv_05 nv_06 nv_07
21
Classif_final2004
22
2004 x Extensao2003 x Nuvens2003
23
Extensao2003
24
Nuvens2003
25
Nuvens2003
26
Nuvens2003 – simuladas
27
Classif_final2004 (com desmat simulado)
28
Nuvens2003- acoplada ao classif_final2004
29
Classif_2004_FIM - pós cruzamento
30
Resumo...
Classificacao2004_FIM
nuvens2003
Classificacao2004_final
nuvens_2003
nuvens2004
Extensao_2003
Extensao_2004
2005
Extensao_2003
MASCARA
Dematamento_total
Hidrografia_total
Não_floresta_total
1
2
3
4
31
Programas LEGAL -sequencia
1. CartatemaANO
2. NuvensANO
3. extensaoANO
4. mascaraANO
32
Legal 1_Cartatema2003 1/3
{Tematico classif,saida ("cartatema");Tematico nuvens ("nuvens"); DeclaraçãoTematico extn ("extensao");
classif = Recupere (Nome="classificacao_final2004");nuvens = Recupere (Nome="nuvens2003"); Instanciacãoextn = Recupere (Nome="extensao_2003");saida = Novo (Nome = "classificacao_final2004_FIM", ResX = 60, ResY=60, Escala =120000);
saida = Atribua (CategoriaFim ="cartatema") Operações{"hidrografia" : (extn.Classe=="hidrografia_total") ,
"hidrografia" : (classif.Classe=="hidrografia"),
"nao_floresta" : (extn.Classe=="nao_floresta_total"),
"nao_floresta2" : (extn.Classe=="nao_floresta2_total") ,
"nao_floresta2" : (classif.Classe=="nao_floresta2") && ((extn.Classe=="area_nao_sensoriada") || (extn.Classe=="floresta_total")),
"desmatamento_total" : (extn.Classe=="desmatamento_total"),
"problema": (classif.Classe=="nao_floresta") && (extn.Classe=="area_nao_sensoriada") ,
33
Legal 1_Cartatema2004 – 2/3
"floresta" : ((extn.Classe=="floresta_total") || (extn.Classe=="area_nao_sensoriada")) && ((classif.Classe!="desmatamento") && ( classif.Classe!="nuvem")),
"dsf_nv_07" : (classif.Classe=="desmatamento") && (nuvens.Classe=="nv_07") &&(extn.Classe!="desmatamento_total"),
"dsf_nv_06" : (classif.Classe=="desmatamento") && (nuvens.Classe=="nv_06") &&(extn.Classe!="desmatamento_total"),
"dsf_nv_05" : (classif.Classe=="desmatamento") && (nuvens.Classe=="nv_05") &&(extn.Classe!="desmatamento_total"),
"dsf_nv_04" : (classif.Classe=="desmatamento") &&
(nuvens.Classe=="nv_04") &&(extn.Classe!="desmatamento_total"),
"dsf_nv_03" : (classif.Classe=="desmatamento") && (nuvens.Classe=="nv_03") &&(extn.Classe!="desmatamento_total"),
"dsf_nv_02" : (classif.Classe=="desmatamento") && (nuvens.Classe=="nv_02") && (extn.Classe!="desmatamento_total"),
"dsf_nv_01" : (classif.Classe=="desmatamento") && (nuvens.Classe=="nv_01") && (extn.Classe!="desmatamento_total"),
34
Legal 1_cartatema2004 – 3/3
"desmatamento" : (classif.Classe=="desmatamento") && (extn.Classe=="floresta_total"),
"nuvem" : (classif.Classe=="nuvem") && ((extn.Classe=="floresta_total") || (extn.Classe=="area_nao_sensoriada"))
};}
35
Cruzamento de nuvens 2004 x 2003 2_NUVEM_2004.alg
{Tematico nuvemAcum, saida("nuvens");Tematico classif (“Cartatema_NOVO");
classif = Recupere (Nome="classificacao_final2004_FIM");nuvemAcum = Recupere (Nome="nuvens2003");
saida = Novo (Nome = "nuvens2004", ResX = 60, ResY=60, Escala =120000);saida = Atribua (CategoriaFim ="nuvens") {
"nv_08" : (classif.Classe =="nuvem") && (nuvemAcum.Classe=="nv_07"), //04/03/02/01/00/(99/98)/97
"nv_07" : (classif.Classe =="nuvem") && (nuvemAcum.Classe=="nv_06"), //04/03/02/01/00/(99/98)
"nv_06" : (classif.Classe =="nuvem") && (nuvemAcum.Classe=="nv_05"), //04/03/02/01/00/(99/??)
"nv_05" : (classif.Classe =="nuvem") && (nuvemAcum.Classe=="nv_04"), //04/03/02/01/00
"nv_04" : (classif.Classe =="nuvem") && (nuvemAcum.Classe=="nv_03"), //04/03/02/01 "nv_03" : (classif.Classe =="nuvem") && (nuvemAcum.Classe=="nv_02"), //04/03/02 “nv_02" : (classif.Classe =="nuvem") && (nuvemAcum.Classe==“nv_01"), //04/03
"nv_01" : (classif.Classe =="nuvem") //04 };}
36
Em 2005: criar a classe nv_09 e inserir a linha em vermelho gera nuvens2005
{Tematico nuvemAcum, saida("nuvens");Tematico classif (“Cartatema_NOVO");
classif = Recupere (Nome="classificacao_final2005_FIM");nuvemAcum = Recupere (Nome="nuvens2004");
saida = Novo (Nome = "nuvens2005", ResX = 60, ResY=60, Escala =120000);saida = Atribua (CategoriaFim ="nuvens") {"nv_09" : (classif.Classe =="nuvem") && (nuvemAcum.Classe=="nv_08"), //05/04/03/02/01/00/(99/98)/97
"nv_08" : (classif.Classe =="nuvem") && (nuvemAcum.Classe=="nv_07"), //05/04/03/02/01/00/(99/98)
"nv_07" : (classif.Classe =="nuvem") && (nuvemAcum.Classe=="nv_06"), //05/04/03/02/01/00/(99/??)
"nv_06" : (classif.Classe =="nuvem") && (nuvemAcum.Classe=="nv_05"), //05/04/03/02/01/00
"nv_05" : (classif.Classe =="nuvem") && (nuvemAcum.Classe=="nv_04"), //05/04/03/02/01
"nv_04" : (classif.Classe =="nuvem") && (nuvemAcum.Classe=="nv_03"), //05/04/03/02 "nv_03" : (classif.Classe =="nuvem") && (nuvemAcum.Classe=="nv_02"), //05/04/03 “nv_02" : (classif.Classe =="nuvem") && (nuvemAcum.Classe==“nv_01"), //05/04
"nv_01" : (classif.Classe =="nuvem") //05 };}
37
{
Tematico classif ("cartatema");Tematico extensao, saida ("extensao");Tematico nuvens ("nuvens");
classif = Recupere (Nome="classificacao_final2004_FIM");nuvens = Recupere (Nome="nuvens2004");extensao = Recupere (Nome="extensao_2003");
saida = Novo (Nome = "extensao_2004", ResX = 60, ResY=60, Escala = 120000);saida = Atribua (CategoriaFim ="extensao")
{"area_nao_sensoriada" : (classif.Classe==“nuvem"),
"desmatamento_total" : (classif.Classe=="desmatamento_total") || (extensao.Classe =="desmatamento_total") || (classif.Classe=="desmatamento") || (classif.Classe=="dsf_nv_01") || (classif.Classe=="dsf_nv_02") || (classif.Classe=="dsf_nv_05") || (classif.Classe=="dsf_nv_06"),
"hidrografia_total" : (classif.Classe =="hidrografia") || (extensao.Classe=="hidrografia_total"),
"nao_floresta2_total" : (classif.Classe =="nao_floresta2") || (extensao.Classe=="nao_floresta2_total”);
"nao_floresta_total" : (classif.Classe =="nao_floresta") || (extensao.Classe=="nao_floresta_total"), "floresta_total" : (classif.Classe =="floresta") || (extensao.Classe=="floresta_total") };
}
3_Padroniza-Extensao2004.alg
38
4_Criar_Mascara2004.alg
{Tematico extn ( "extensao" );Tematico saiMasc ( "extensao" );
extn = Recupere ( Nome = "extensao_2004");
saiMasc = Novo (Nome = "mascara_2004", ResX = 60, ResY=60, Escala = 120000);
saiMasc = Atribua ( CategoriaFim = "extensao" ) {
"mascara" : (extn.Classe == "nao_floresta_total") || (extn.Classe == "nao_floresta2_total") || (extn.Classe == "desmatamento_total") ||
(extn.Classe == "hidrografia_total") };}
39
Exemplo de Scripts em LEGAL
{
Tematico classif, RIOS, differ ("Cartatema_NOVO");
classif = Recupere (Nome = "classif_final2000");
RIOS = Recupere (Nome = "classif_final2000_Rios");
differ = Novo (Nome = "diff_classif2000_Rios", ResX = 60, ResY=60, Escala =120000);
differ = RIOS == classif ? differ: RIOS;
}
{
Tematico classif, RIOS, differ (“$0");
classif = Recupere (Nome = “$1");
RIOS = Recupere (Nome = “$2");
differ = Novo (Nome = “$3“, ResX = 60, ResY=60, Escala =120000);
differ = RIOS == classif ? differ: RIOS;
}
Cartatema_NOVO
Classif_final2000
Classif_final2000_Rios
diff_classif2000_Rios
diferenca.alg diferenca_nam.alg $0
$1
$2
$3
40
Conclusões
Vantagens padronização/roteiro Diminui o número de classes criadas
Nome do mapa carrega o ANO em estudo. Ex: classificacao_final2004, nuvens2003
Nome de classes/categorias mais genéricos - Modelo de Dados do SPRING
Programas linguagem Legal – documentação da metodologia - cruzamento
41
Resultados da Revisão/Padronização
Cenas usadas em 2004 – foram revisadas118 cenas x (1997,2000,2001,2002,2003)
Classes de Desmatamento/Hidrografia/Não-Floresta recuperadas
Metodologia garante que o Desmatamento é computado uma única vez
2004 – usou os dados com o mesmo procedimento Tabelas com cálculo de área geradas
entrada para o cálculo das Taxas de Desmatamento 2004
42
? Depois