TerraRadar Aplicativo para tratamento de imagem de Radar Utilizado através de dois tipos de interface : TerraView - (QT) Browser - (PHP)

Slides:



Advertisements
Apresentações semelhantes
TADs Vector, Lista e Sequência
Advertisements

Soluções Iterativas com Laços
Classes C++ Class nome da classe { private: membros privados
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.
Struct slink { slink* next; slink() { next=0; } slink(slink* p) { next=p; } virtual void print_me() = 0; }; next função virtual pura 1º constructor 2º
LEIC/FEUP Tecnologia de Sistemas de Gestão de Bases de Dados
Manipulação de Arquivos de Dados
Projeto de Sistemas de Software Trabalho de Padrões de Projeto
Projeto de Sistemas de Software Luana Lachtermacher
Kleinner Farias e Raphael do Vale
Padrão de Projeto Iterator
Orientação a Objetos: Modificador Final para Métodos e Classes
Percurso não recursivo e impressão em árvores binárias Drozdek.
Singleton.
A.4. Trabalhando com elementos de biblioteca STL – Standard Template Libraby Disponibiliza um conjunto de classes templates, provendo algoritmos eficientes.
Ronaldo Celso Messias Correia
Orientação a Objetos Classes
Vetores Variável Composta Homogênea Unidimensional
Exemplos de Refactoring Alguns exemplos e considerações sobre Refactoring.
Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Treinamento no GRADEp Framework Master-Worker.
Disciplina: Paradigmas e Ferramentas de Desenvolvimento de Software
Funções definidas pelo usuário STL oferece a possibilidade de que o usuário escreva seus próprios algoritmos para processar os elementos de coleções #include.
Implementação do algoritmo da Máquina de Análise Geográfica (GAM) Equipe:Karla Donato Fook Evaldinolia G. Moreira Pinto Paradigmas e Ferramentas de Desenvolvimento.
Templates e Questões de Design Programas são geralmente construídos segundo um design que é relativamente bem mapeado nos mecanismos oferecidos pela linguagem.
1 Aula 5 Instâncias dinâmicas. 2003/2004 Programação Orientada para Objectos 2 Instâncias… int j = 20; int f() { int const i = 10; // … } Constante automática.
1 Aula 3 Listas e iteradores (cont.). 2003/2004 Programação Orientada para Objectos 2 ListaDeInt : interface class ListaDeInt { public: typedef int Item;
Aula 8 Polimorfismo.
1 Aula 7 Herança. 2003/2004 Programação Orientada para Objectos 2 Conceitos fundamentais: Herança Polimorfismo Ligação dinâmica.
Sobrecarga de nomes de rotinas Rotinas recursivas Invocação de rotinas
2002/2003 Programação Orientada para Objectos 1 Aula 3 Utilização de listas Melhorando a implementação das listas e iteradores Reflexão sobre interfaces.
Paradigmas de Linguagens de Programação Paradima da Programação Orientada à Objetos Professor: Armando Hage Belém-2008.
Usando Java no Oracle Por Edson Almeida Junior
O Mecanismo de Threads em Java 2. Criar uma classe herdeira da super classe Thread public class minhaThread extends Thread{ public class minhaThread extends.
Professor: Hyggo Almeida
Professor: Hyggo Almeida
JAVA Orientação a Objetos
TerraMap – Uma Nova Álgebra de Mapas
Uma classe para vectores
Interfaces.
Atributos, Encapsulamento e Interface em Java
Análise Sintática – Parte 1
JMario Equipe Augusto Cesar Neves Lima Filho. JMario Jogo usando Java2D Fiel ao clássico Mario para snes.
Orientação a Objetos e Java Graduação em Ciência da Computação
Java Generics Adeline de Sousa Silva.
Tipos Especiais de Listas
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Java Kickstart, day 2 Semelhanças com linguagem C.
Prof.: Bruno Rafael de Oliveira Rodrigues. Construtor é bloco declarado que é chamado no momento em que o Objeto é criado (instanciado). Todas as classes.
Implementação Orientada a Objetos – Aula 05 Construtores e sobrecarga de métodos Prof. Danielle Martin Universidade de Mogi das Cruzes
Polimorfismo.
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)
Vendo o código como um bolo... com várias camadas! Interface com o usuário (GUI) Comunicação Negócio Dados.
Aula Prática 5 05/05/2010. //Estrutura do método public int subtrair (int a, int b){ //Calcule a operação desejada. int resultado = a – b; //Retorne o.
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
1 Design Pattern Double Checked Locking. 2 Design Pattern Apresenta soluções para problemas que ocorrem repetidamente em nosso ambiente computacional.
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Aprendendo como funciona o NHibernate Elvis Medeiros Programador .NET
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.
Implementação Orientada a Objetos – Aula 04 Métodos, parâmetros e retorno Prof. Danielle Martin/Marcia Bissaco Universidade de Mogi das Cruzes
Vendo o código como um bolo... com várias camadas! Interface com o usuário (GUI) Comunicação Negócio Dados.
Classes Abstratas e Interface. 2 Classe Abstrata  Uma classe abstrata serve apenas como modelo para uma classe concreta (classe que comumente usamos);
1 Interface (o termo) » Interface (a palavra reservada): Java estendeu o conceito de interfaces à um nível ainda mais flexível que permite construir entidades.
IDENTIFICAÇÃO DOS RELACIONAMENTOS Nesta atividade devem ser definidos os relacionamentos entre as classes Podem ser representados pela: – associação, –
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
PROGRAMAÇÃO ORIENTADA A OBJETOS EM C++ Professor: Dilvan Moreira.
Orientação a Objetos - Programação em C++
Introdução a Programação
Singleton e Template Method
Orientação a Objetos - Programação em C++
Transcrição da apresentação:

TerraRadar Aplicativo para tratamento de imagem de Radar Utilizado através de dois tipos de interface : TerraView - (QT) Browser - (PHP)

TerraRadar Design patterns utilizados : 1.Strategy (para a família de algoritmos que operam sobre as imagens de Radar) 2.Template Method (para definir, através de subclasses, passos de um algoritmo sem mudar a estrutura do mesmo)

TerraRadar Design patterns utilizados : 3.Iterator (para realizar operação de convolução sobre uma imagem) 4.Singleton (garantir que o mapa de estratégias seja instanciado uma única vez)

Strategy class Estrategia { public: virtual void Executa( TeRaster* radar ) = 0; virtual ~Estrategia(){} protected: Estrategia(){} }; class Convolucao { public: Convolucao( const string& name, TeRaster* radar); ~Convolucao(){ if( _estrategia ) delete _estrategia; } void Executar( TeRaster* radar ); private: Estrategia* _estrategia; };

Template Method class CoeficienteVariacao : public Estrategia { public: CoeficienteVariacao(){} ~CoeficienteVariacao(){} virtual void Executa( TeRaster* radar ); private: virtual double needSQRT(double) = 0; double CalcMedia(Vetor& v); }; class CoeficienteVariacao_Amplitude : public CoeficienteVariacao { public: CoeficienteVariacao_Amplitude(){} ~CoeficienteVariacao_Amplitude(){} double needSQRT(double val) { return (val); } private: static RegistraEstrategia _registra; };

Template Method Void CoeficienteVariacao::Executa( TeRaster* radar ) { TeRaster::iterator it(0, 0, params.ncols_-n, params.nlines_-m, 1, radar); for (it = radar->begin(); it != radar->end(); ++it){ v = it.get_vector_mask(m,n); media = CalcMedia(v); cv = 0.; j = 0; cv = needSQRT(cv); }

Singleton class MapEstrategias : public singleton > { }; template class RegistraEstrategia { public: RegistraEstrategia( const string& name, T* estrategia ) { MapEstrategias().instance()[name] = estrategia; } };

Iterator class TeRaster : public TeGeometry { class iterator { vector get_vector_mask(int m, int n) { vector vt; double val; for (int j=linCurrent_; j<linCurrent_+n; ++j) { for (int i=colCurrent_; i<colCurrent_+m; ++i){ raster_->getElement(i,j,val,0); vt.push_back(val); } return vt; } }

Interface TerraView Void TerraView::radarToolsVariation_CoeficientAction_activated() { TeLayer* layer = currentTheme()->layer(); if(!layer) { cout << "Failed to get the current theme." << endl; exit(0); } TeRaster* radar = layer->raster(); Convolucao op("CoeficienteVariacao_Amplitude", radar); delete layer; delete radar; }

Interface PHP int main(int argc, char* argv[]){ // Opens a connection to a database accessible though MySQL string host = argv[1], dbname = argv[2], user = argv[3], layer = argv[4]; TeDatabase* db_ = new TeMySQL(); if (!db_->connect(host,user,"",dbname)) exit(0); // Loads a layer by its name TeLayer *layer = new TeLayer(layer); if (!db_->loadLayer(layer)) {db_->close(); exit(0);} TeRaster* radar = layer->raster(); Convolucao op("CoeficienteVariacao_Amplitude", radar); return 0; }