TerraMap – Uma Nova Álgebra de Mapas

Slides:



Advertisements
Apresentações semelhantes
Classes e Funções.
Advertisements

Curso de aprofundamento na linguagem C
Paulo Marques Hernâni Pedroso
List templates Vamos considerar a lista ligada (singly linked list) O objecto da classe slink O objecto da classe slink O objecto da classe slink NULL.
Vamos abordar o exemplo
LEIC/FEUP Tecnologia de Sistemas de Gestão de Bases de Dados
VHDL Linguagem de Descrição e Síntese de Circuitos Digitais
Padrão de Projeto Interpreter
Orientação a Objetos: Modificador Final para Métodos e Classes
Linguagens de Programação Orientadas a Objetos
Prof. Heloise Manica Paris Teixeira
Programação Básica em Java
Listas lineares Listas Lineares Fila Dupla Pilha Fila Saída restrita
LINGUAGEM C.
Modificadores de tipos e Arquivos
FLG Análise Espacial e Geoprocessamento
Wagner Santos C. de Jesus
Orientação a Objetos Classes
LINGUAGEM C Centro Federal de Educação Tecnológica da Paraíba Coordenação de Informática Professor: Lafayette B. Melo.
JAVA ENUMS © 2009 by Jorge L. de Souza Leão março de 2009 PEE - COPPE/UFRJ.
Prof. Msc. Raul Paradeda Aula 3 Fundamentos
Estrutura de Dados em Java
Algoritmos e Programação Thyago Maia Tavares de Farias Aula 25.
CRIANDO OBJETOS EM JAVA
Departamento de Estatística e Informática
Funções Declaração function nomedafunção (arg_1, arg_2,..., arg_n) corpoDaFunção end.
Terceiro Trabalho Prático de GTI
1 Variáveis dimensionadas Uma variável dimensionada corresponde a uma zona da memória contendo várias variáveis do mesmo tipo guardadas contiguamente.
1 Ponteiros Ponteiros são variáveis que guardam localizações em memória. A declaração de uma variável ponteiro x para um dado tipo type é type *x; Essa.
Curso básico de PHP 1 Vantagens: Gratuito Multiplataforma Estável Rapidez Comunicação.
JAVA Orientação a Objetos
Eric, Fabrício, João Vicente
Tópicos avançados em internet A
Linguagem de Programação II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Atributos, Encapsulamento e Interface em Java
Paradigmas e Ferramentas de Desenvolvimento de Software – Revisão da linguagem C++ Lúbia Vinhas DPI - INPE.
Introdução à Programação Orientada a Objetos com Java
Verificação de Tipos e Escopos
Classes, Objetos, Atributos e Métodos JAVA
Algoritmo e Programação
Acessando MySql e Postgre
Lógica Estruturada Aplicada
Programação Orientada a Objetos Curso de Engenharia da Computação Parte 03 – Conceitos Básicos III Prof. Fabricio Mota Oliveira
Wagner Santos C. de Jesus
Tratamento de Exceções
Regras de escopo Escopo: trecho de codificação no qual o identificador possui significado Escopo de função: identificador válido dentro do trecho de uma.
Java Kickstart, day 2 Semelhanças com linguagem C.
Aula Prática 4 Monitoria IP/CC (~if669).
Análise Léxica Prof. Alexandre Monteiro
Melhorias e Mensagens Amigáveis ao Usuário Centro de Informática Universidade Federal de Pernambuco Bruno Felipe Marco André Paulo Fernando Rodolfo Santos.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota (com material da Qualiti Software Process)
Projeto de Sistemas de Informação Prof. Schneider Oracle Object-Relational.
Herança e Arquitetura em camadas
Aula Prática 5 Monitoria IP/CC (~if669). Roteiro 1. 1.Recursão 2. 2.Escopo de Variáveis 3. 3.Arrays 4. 4.Strings.
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Programação orientada a objetos Com Visual Studio.
©Silberschatz, Korth and Sudarshan (modificado)9.2.1Database System Concepts Capítulo 9: BDs Objecto-Relacional Relações imbricadas Tipos complexos e objectos.
Modificadores Programação II.
Conceitos de OO em Java Parte I
Daniel Paulo Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados.
Aprendendo como funciona o NHibernate Elvis Medeiros Programador .NET
Tipos de Dados, Variáveis, Expressões Lógicas e Aritméticas
Associação. 2 Desafio – Aula class Aluno { 2. private String nome; 3. private float nota; 4. public Aluno(String nome, float nota){ 5. this.nome.
Array e ArrayList LPOO – 01/09/14.
Orientação a Objetos com PHP
Implementação Orientada a Objetos – Aula 04 Métodos, parâmetros e retorno Prof. Danielle Martin/Marcia Bissaco Universidade de Mogi das Cruzes
Análise Contextual Tem o objetivo de verificar se o programa está de acordo com as restrições contextuais da linguagem fonte.
Algoritmos de Pesquisa
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
Playframework 2.0. O que veremos hoje Playframework 2.0 Instalação Criação e Execução de uma Aplicação Estrutura de uma Aplicação Exemplos.
Transcrição da apresentação:

TerraMap – Uma Nova Álgebra de Mapas Danilo Palomo Olga Oliveira Gilberto Câmara Ricardo Cartaxo Lúbia Vinhas

TerraMap: divisão lógica da linguagem Declaração das variáveis Declaração das funções Chamada das funções

Tipos de Dados Básicos: Database Representa um banco de dados espacial. Database db1 (“banco01” , “hostname”, “user”, “password”, “type”); Indica que foi criada uma “variável” db1 e que db1 está associada ao banco de dados espacial “banco01”.

Tipos de Dados Básicos: View Representa um conjunto de regiões no espaço associadas a um ou mais atributos. Um Database pode conter várias Views. View estados (db1, “USA_STATES”); Indica que foi criada uma “variável” estados e que ela está associada ao banco db1.

Tipos de Dados Básicos: Map Representa um atributo de uma “view”. Uma View pode conter vários Maps. Map nome (estados, “state_name”); Indica que foi criada uma “variável” nome que está associada ao atributo “state_name” da view estados.

Tabela de Símbolos Programa principal enxerga que existe apenas Símbolo class TmTabelaSimbolos{ map<string,TmSimbolo*> TabelaSimbolos; public: TmTabelaSimbolos(); int put_symbol(const string &name, TmSimbolo *simbolo); TmSimbolo* get_symbol(const string &name); };

Tabela Símbolo: símbolo class TmSimbolo{ protected: int type; public: TmSimbolo(); TmSimbolo(const string& _name, int _type); virtual int connect(const string& path, const TmSimbolo* _symbol) = 0; }; class TmSimbolo_Factory { public: static TmSimbolo* make( const string& type, const string& name ){ if (type == "DATABASE") return new TmSimbolo_Database(name); if (type == "VIEW") return new TmSimbolo_View(name); if (type == "MAP") return new TmSimbolo_Map(name); if (type == "ZFUNCTION") return new TmSimbolo_Function(name,5); } };

TerraMap: Exemplo de Utilização MAP “POP91_NOVA” DATABASE “CDE” VIEW “DISTRITOS” MAP “POP91”

TerraMap: Função Local MAP “POP91_NOVA” DATABASE CDE” VIEW “DISTRITOS” MAP “POP91” FUNÇÃO DECLARAÇÃO FUNÇÃO UTILIZAÇÃO

TerraMap: Exemplo de Execução I

TerraMap: Exemplo de Execução II

TerraMap: Verificação da Execução “pequena” se “POP91” < 100000 “grande” nos demais objetos

TerraMap: Tratamento de Erros

TerraMap: Tratamento de Erros

TerraMap: Exemplo de Utilização

TerraMap: Exemplo da Linguagem CRIAÇÃO DE UM NOVO ATRIBUTO EXPRESSÕES NAS FUNÇÕES

TerraMap: Verificação da Execução Criação do atributo “area_nova” “Area_km2” se area_km2 < 10 0 se 10 <“area_km2”<30 “Area_km2” + 100 se “area_km2” > 30

TerraMap: Função Zonal

TerraMap: Função Zonal “preencher um mapa de polígonos com a média dos pixels de uma imagem e fazer a sua classificação” TerraMap ZONALFUNCTION contido (raster,poligono){ 1 : in(poligono,raster); } FUNCTION media(raster, poligono){ average(contido(raster, poligono)) : otherwise; mediapixels = media(raster, poligono); LOCALFUNCTION classifica(valor){ "baixo" : valor <= 60, "medio" : valor > 60 && valor <= 65, "alto" : OTHERWISE }; classepixels = classifica(media_attrib); avaliação Operação Zonal uso Chamada e atribuição

Função Zonal Zona Operação Zonal Toda geometria que compartilha uma característica Exemplos O polígono de cada distrito Uma célula Distritos com mais de 500 analfabetos Operação Zonal operação sobre os dados de um layer que possuam sobreposição com a ZONA

Função Zonal: definindo a zona TmIterator class TmIteratorPol{ TePolygonSet::iterator it; public: ... void operator ++ (){it++;} void operator -- (){it--;} bool operator == (const TmIteratorPol& other){return (it == other.it); } bool operator != (const TmIteratorPol& other){return (it != other.it);} TePolygon operator * () {return *this;} }; class TmIteratorCell{ TeCellSet::iterator it; public: ... void operator ++ (){it++;} void operator -- (){it--;} bool operator== (const TmIteratorCell& other){return it == other.it; } bool operator!= (const TmIteratorCell& other){return it != other.it;} TePolygon operator * (); // conversao para TePolygon };

Função Zonal: Avaliação A função “in(poligono,raster);” Para cada polígono temos um vetor de double associado, representando os valores de pixels contidos no polígono Funções possíveis entre geometrias dentro, toca, intercepta, externo, vizinhança, ... entre tabelas igual, diferente, menor, maior, ...

Função Zonal: uso A função “average(contido(raster, poligono))” Pega o vetor de double associado ao polígono e faz a média Associa um único valor ao polígono Outras funções Min | Max | Range | Mean | Std | Sum | Variety | Majority | Minority | Median atribuição dos valores gerados à tabela de atributos “mediapixels = media(raster, poligono);”

Função Zonal + Local: resultado LOCALFUNCTION classifica(valor){ "baixo" : valor <= 60, "medio" : valor > 60 && valor <= 65, "alto" : OTHERWISE }; classepixels = classifica(media_attrib);

Conclusões Teste de conceitos e visão dos problemas O uso de padrões ajudará nas implementações futuras Pois, não será necessário mudar o código principal Validação da linguagem Exemplos do Cartaxo e Lúbia Trabalhos Futuros Tratamento dos diversos tipos de dados (polígonos, linhas, pontos, raster) Implementar a Função Focal