Uso de linguagem de script para realizar operações...

19
Uso de linguagem de script para realizar operações de álgebra de mapas da TerraLib5 Luan Gaspar Pinto de Melo

Transcript of Uso de linguagem de script para realizar operações...

Page 1: Uso de linguagem de script para realizar operações …wiki.dpi.inpe.br/lib/exe/fetch.php?media=ser300:apresent...Fonte: Google Earth Rio Paraíba do Sul no Município de Volta Redonda

Uso de linguagem de script para realizar operações de álgebra de mapas da TerraLib5

Luan Gaspar Pinto de Melo

Page 2: Uso de linguagem de script para realizar operações …wiki.dpi.inpe.br/lib/exe/fetch.php?media=ser300:apresent...Fonte: Google Earth Rio Paraíba do Sul no Município de Volta Redonda

Objetivo

Estudar como álgebras de mapas podem se apresentar para o usuário final e discutir quais as implicações das diferentes maneiras existentes.

Page 3: Uso de linguagem de script para realizar operações …wiki.dpi.inpe.br/lib/exe/fetch.php?media=ser300:apresent...Fonte: Google Earth Rio Paraíba do Sul no Município de Volta Redonda

Porque álgebra de mapas?

* Operações fundamentais

* Gerar novas informações

* Exemplo implementado Buffer

Page 4: Uso de linguagem de script para realizar operações …wiki.dpi.inpe.br/lib/exe/fetch.php?media=ser300:apresent...Fonte: Google Earth Rio Paraíba do Sul no Município de Volta Redonda

Exemplo de aplicação de Buffer

Referência: http://www.senado.gov.br/noticias/Jornal/emdiscussao/codigo-florestal/areas-de-preservacao-permanente.aspx

Lei nº12.651/12

Page 5: Uso de linguagem de script para realizar operações …wiki.dpi.inpe.br/lib/exe/fetch.php?media=ser300:apresent...Fonte: Google Earth Rio Paraíba do Sul no Município de Volta Redonda

SIGs (Sistema de Informações Geográficas)

Page 6: Uso de linguagem de script para realizar operações …wiki.dpi.inpe.br/lib/exe/fetch.php?media=ser300:apresent...Fonte: Google Earth Rio Paraíba do Sul no Município de Volta Redonda

Exemplo para aplicação

Fonte: Google Earth

Rio Paraíba do Sul no Município de Volta Redonda - RJ

Page 7: Uso de linguagem de script para realizar operações …wiki.dpi.inpe.br/lib/exe/fetch.php?media=ser300:apresent...Fonte: Google Earth Rio Paraíba do Sul no Município de Volta Redonda

Exemplificação

Shapefile do rio

Margem do rio com buffer de 30 metros

Mapa de APPs

Fluxograma para obter mapa de APPs

Page 8: Uso de linguagem de script para realizar operações …wiki.dpi.inpe.br/lib/exe/fetch.php?media=ser300:apresent...Fonte: Google Earth Rio Paraíba do Sul no Município de Volta Redonda

Shapefile exibido no Spring

Fonte do shapefile: http://www.portalvr.com/geoprocessamento/mod/mapas-georeferenciados/shapefile/

Page 9: Uso de linguagem de script para realizar operações …wiki.dpi.inpe.br/lib/exe/fetch.php?media=ser300:apresent...Fonte: Google Earth Rio Paraíba do Sul no Município de Volta Redonda

Buffer gerado a partir do Spring

Page 10: Uso de linguagem de script para realizar operações …wiki.dpi.inpe.br/lib/exe/fetch.php?media=ser300:apresent...Fonte: Google Earth Rio Paraíba do Sul no Município de Volta Redonda

Buffer gerado a partir do TerraView

Page 11: Uso de linguagem de script para realizar operações …wiki.dpi.inpe.br/lib/exe/fetch.php?media=ser300:apresent...Fonte: Google Earth Rio Paraíba do Sul no Município de Volta Redonda

O que acontece quando o O que acontece quando o usuário clica em um botão usuário clica em um botão para gerar um buffer?para gerar um buffer?

Page 12: Uso de linguagem de script para realizar operações …wiki.dpi.inpe.br/lib/exe/fetch.php?media=ser300:apresent...Fonte: Google Earth Rio Paraíba do Sul no Município de Volta Redonda

Proposta

* Propor uma API Python que obtenha acesso à álgebra de mapas utilizando as funcionalidades fornecidas pela TerraLib5.

Page 13: Uso de linguagem de script para realizar operações …wiki.dpi.inpe.br/lib/exe/fetch.php?media=ser300:apresent...Fonte: Google Earth Rio Paraíba do Sul no Município de Volta Redonda

Vantagem

* Maior flexibilidade e eficiência na implementação de

metodologias que combinam diferentes dados para

obtenção de um resultado específico. Por exemplo,

realizar várias operações de álgebra de mapas com um

único script.

Page 14: Uso de linguagem de script para realizar operações …wiki.dpi.inpe.br/lib/exe/fetch.php?media=ser300:apresent...Fonte: Google Earth Rio Paraíba do Sul no Município de Volta Redonda

Desafios

* Como configurar e aprender sobre a TerraLib?

- Instalar todas as dependências (bibliotecas de terceiros)

- Baixar a TerraLib completa

- Compilar a TerraLib

- Configurar a IDE para fazer o link com a biblioteca TerraLib

- Adicionar os módulos que serão utilizados na aplicação

- Configurar as variáveis de ambiente

- Desenvolver o código para realizar a operação desejada

Page 15: Uso de linguagem de script para realizar operações …wiki.dpi.inpe.br/lib/exe/fetch.php?media=ser300:apresent...Fonte: Google Earth Rio Paraíba do Sul no Município de Volta Redonda

Fluxograma do código para realizar a operação Buffer

Incluir bibliotecas

Inicializar TerraLib

HabilitarMódulo OGR

Informar localizaçãoe o tipo do

arquivo de entradaCriar dataSource

de entradaDeterminar o tamanho

do buffer

Definir em que partedo objeto deseja

criar o buffer

Determinar quantidadede níveis

Criar dataSourcede saída

Configurar parâmetros do Buffer

Executar a operaçãoBufferMapa de APPs

Page 16: Uso de linguagem de script para realizar operações …wiki.dpi.inpe.br/lib/exe/fetch.php?media=ser300:apresent...Fonte: Google Earth Rio Paraíba do Sul no Município de Volta Redonda

Buffer obtido através do programa em C++

Page 17: Uso de linguagem de script para realizar operações …wiki.dpi.inpe.br/lib/exe/fetch.php?media=ser300:apresent...Fonte: Google Earth Rio Paraíba do Sul no Município de Volta Redonda

O que fazer para utilizar a linguagem de script Python?

* Analisar parâmetros de entrada

* Adaptar o código em C++

* Gerar o Bind

Exemplo de como seria um script em Python para executar a operação Buffer

Import buffer

BufferOGRToOGR(arquivo, posicaoBuffer, regraLimite, niveis, arquivoSaida)

arquivo=“caminho do arquivo de entrada”posicaoBuffer= externo, interno ou internoExternoregraLimite= “dissolver” ou “nao dissolver”niveis = 1arquivoSaida= “nome do arquivo de saída”

Page 18: Uso de linguagem de script para realizar operações …wiki.dpi.inpe.br/lib/exe/fetch.php?media=ser300:apresent...Fonte: Google Earth Rio Paraíba do Sul no Município de Volta Redonda

Resultados

* Entendi o C++

* Entendi a TerraLib

* Consigo programar na TerraLib

* Domínio da aplicação

Page 19: Uso de linguagem de script para realizar operações …wiki.dpi.inpe.br/lib/exe/fetch.php?media=ser300:apresent...Fonte: Google Earth Rio Paraíba do Sul no Município de Volta Redonda

Próximos passos

* Criar Módulo em C++ para Python

* Compilar o Módulo

* Instalar o módulo no Python

* Utilizar o módulo criado em um script Python