A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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.

Apresentações semelhantes


Apresentação em tema: "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."— Transcrição da apresentação:

1 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 de Software Prof. Dr. Gilberto Câmara

2 Roteiro GAM Descrição Interface Padrões implementados Strategy Singleton Iterator Contextualização GAM x Padrões Diagramas Codificação Conclusões

3 GAM – Geographical Analysis Machine Ferramenta para análise exploratória de dados espaciais aplicada a pontos ou pequenas áreas Os setores de Saúde Pública e Criminal utilizam a Máquina de Análise Geográfica para indicar áreas com altas incidências de doenças ou crimes de naturezas diversas Desenvolvida por Stan Openshaw e Ian Turton - University of Leeds, UK

4 GAM – Geographical Analysis Machine A partir de dados de interesse, gera um grande número de círculos de vários tamanhos que cobrem completamente uma determinada região Os círculos se sobrepõem permitindo o efeito de bordas e fornecendo um grau de análise sensitiva Os dados de cada círculo são armazenados e uma avaliação estatística é feita para saber se a taxa de incidência do dado em cada círculo é alta A análise estatística é realizada através do Teste de Significância

5 GAM – Interface Mean Bootstrap Monte Carlo Significance Poisson Probability

6 GAM – Interface

7 GAM - Programa Frmgam.ui.h Interface desenvolvida no QT Designer TeGam.h Classe gam TeSignificanceTest.h Classes significanceTest e cDivisor

8 Padrões Implementados Strategy Singleton Iterator

9 Strategy GAM isSignificant( )... gridGenerate( ) significanceTest sigTest( ) bootstrapTest sigTest( ) monteCarloTest sigTest( ) poissonTest sigTest( ) Implementa o Teste de Significância no GAM O algoritmo possui comportamento diferente, conforme seleção do usuário

10 Strategy // TeSignificanceTest.h class significanceTest { public: virtual double sigTest(const double & sumIncidence, const double & incidenceExpected, const vector & idsInterestDataCircle ) = 0; protected: significanceTest(){} }; class poissonTest : public significanceTest{ public: poissonTest(){} virtual double sigTest(const double & sumIncidence, const double & incidenceExpected, const vector & idsInterestDataCircle); };

11 Strategy class monteCarloTest : public significanceTest{ public: monteCarloTest(){} virtual double sigTest(const double & sumIncidence, const double & incidenceExpected, const vector & idsInterestDataCircle); }; class bootstrapTest : public significanceTest{ public: bootstrapTest(){} virtual double sigTest(const double & sumIncidence, const double & incidenceExpected, const vector & idsInterestDataCircle); };

12 Strategy // TeGam.h class gam{ public: gam(significanceTest* = NULL); virtual ~gam();... protected: significanceTest* sig; bool sCreated; };

13 Strategy gam::gam(significanceTest* p_sig) { if (p_sig == NULL){ sig = new bootstrapTest; sCreated = true; } else{ sig = p_sig; sCreated = false; } gam::~gam() { if (sCreated == true) delete sig; }

14 Strategy // call bool gam::isSignificant( const double & sumIncidence, const double & incidenceExpected, const vector & idsInterestDataCircle ) { ASSERT(sig !=NULL);... double prob = sig->sigTest(sumIncidence, incidenceExpected, idsInterestDataCircle );... }

15 Implementa divisor que promove a geração do grid Singleton cDivisor static int getDivisor( ) static int divisor return divisor

16 // TeSignificanceTest.h class cDivisor { public : static int getDivisor(); protected : cDivisor(){} virtual ~cDivisor(){} static int divisor; // Static instance }; int cDivisor::divisor=100; int cDivisor::getDivisor() { return divisor; } Singleton

17 // TeGam.h void gam::gridGenerate( double & xmin, double & xmax, double & ymin, double & ymax ) {... int div = cDivisor::getDivisor();... dx = (xmax - xmin) / div; dy = (ymax - ymin) / div;... } Singleton

18 Iterator Utilizado no decorrer do programa para acesso a elementos pertencentes a diferentes tipos de conteiners interestData begin() end()... int id double incidence double popRisk it first() second() currentItem()

19 Iterator // TeGam.h void gam::computeIncidenceRate ( ) { map ::iterator it = interestData.begin();... while (it != interestData.end()) { p = it->second; sumIncidence += p.first; sumRiskPop += p.second; ++it; }

20 Iterator // TeSignificanceTest.h double monteCarloTest::sigTest(const double & mean, const double & x, const vector & idsInterestDataCircle ) { typedef vector ::const_iterator itVector; for( itVector itVec = idsInterestDataCircle.begin(); itVec != idsInterestDataCircle.end(); ++itVec) {... idValue = * itVec;... }

21 Conclusões Padrões de Projeto propiciam um alto nível de programação, tornando o código mais prático e elegante A implementação dos padrões proporcionou maior robustez ao código da Máquina de Análise Geográfica O trabalho sedimentou o que foi abordado na disciplina A visualização da superfície de densidade encontra-se em fase de implementação

22 Referências BAILEY, T.; GATRELL, A. Interactive Spatial Data Analysis. Longman Scientific and Technical, London, 1995. DRUCK, S.; CARVALHO, M. S.; CÂMARA, G.; MONTEIRO, A.V.M. (eds) "Análise Espacial de Dados Geográficos". Brasília, EMBRAPA, 2004. GAMA, E.; HELM, R.; JOHNSON, R.; VLISSIDES, J. Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley, 1994. G. Câmara, A.Monteiro, Geocomputation Techniques for Spatial Analysis: Is it the Case for Health data Sets?. Revista Nacional de Saúde Pública, 2001. OPENSHAW, S.; TURTON I.; MaCGill, J.; DAVY, J. Putting Geographical Analysis Machine on the Internet. University of Leeds, Leeds. STROUSTRUP, B. A Linguagem de Programação C++ - 3. ed. Bookman, 2000. http://www.ccg.leeds.ac.uk/smart/gam/gam1.html http://www.codeproject.com/cpp/#Design+and+Strategy

23 Obrigada pela Atenção !!!


Carregar ppt "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."

Apresentações semelhantes


Anúncios Google