420 likes | 525 Views
Marisa da Motta Dalton Valeriano INPE – DPI/DSR. Revisão/Padronização PRODES 1997-2003. Motivação: Recuperar Informação. 223 /62- 2000. 223/62-2001. Motivação: Padronizar Legendas. L E G A L. Linguagem Espacial de Geo-Processamento Algébrico
E N D
Marisa da Motta Dalton Valeriano INPE – DPI/DSR Revisão/Padronização PRODES 1997-2003
Motivação: Recuperar Informação 223/62-2000 223/62-2001
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
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 Álgebra de Mapas x Álgebra Matemática
Classes da Categoria “nuvens” 2003 Mapa de cruzamento de nuvens de 1997-2003
Categorias: extensão_NOVO Hidrografia Nao_floresta Desmatamento Mascara a imagem do ano seguinte Máscara Segmentação/Classificação
Fase de Recuperação 1997-2003 • Remapea para o conjunto de classes definidas Legal comando Atribua • Recupera Hidrografia/Não-Floresta/Desmatamento do ano anterior Legal cruza 2 mapas – Atribua • Diferenças evidenciadas – auditor verifica/edita Legal(se expressão true) ? expressao1) : (expressao2) sim não • Geração: Cartatema/nuvens/extensão/mascara Legais padronizados executados na sequência
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
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
PRODES - Regras de Cruzamento A – aceita E – extensão_anterior D - Distribui
Resumo... 1 Classificacao2004_final Classificacao2004_FIM Extensao_2004 3 Extensao_2003 Extensao_2003 4 MASCARA Dematamento_total Hidrografia_total Não_floresta_total 2 nuvens2004 nuvens_2003 nuvens2003 2005
Programas LEGAL -sequencia • CartatemaANO • NuvensANO • extensaoANO • mascaraANO
Legal 1_Cartatema2003 1/3 { Tematico classif,saida ("cartatema"); Tematico nuvens ("nuvens"); Declaração Tematico extn ("extensao"); classif = Recupere (Nome="classificacao_final2004"); nuvens = Recupere (Nome="nuvens2003"); Instanciacão extn = 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") ,
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"),
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")) }; }
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 }; }
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 }; }
3_Padroniza-Extensao2004.alg { 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") }; }
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") }; }
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; } diferenca.alg diferenca_nam.alg { 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; } $0 $1 $2 $3 Cartatema_NOVO Classif_final2000 Classif_final2000_Rios diff_classif2000_Rios
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 Dadosdo SPRING • Programas linguagem Legal – documentação da metodologia - cruzamento
Resultados da Revisão/Padronização • Cenas usadas em 2004 – foram revisadas 118 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