1 / 60

Introdução a TerraLib II

Agosto, 2005. Introdução a TerraLib II. Karine Reis Ferreira – karine@dpi.inpe.br Gilberto Ribeiro de Queiroz – gribeiro@dpi.inpe.br Gilberto Câmara – gilberto@dpi.inpe.br. Disponível em http://www.dpi.inpe.br/cursos/ser303. Estrutura da TerraLib.

annick
Download Presentation

Introdução a TerraLib II

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Agosto, 2005 Introdução a TerraLib II Karine Reis Ferreira – karine@dpi.inpe.br Gilberto Ribeiro de Queiroz – gribeiro@dpi.inpe.br Gilberto Câmara – gilberto@dpi.inpe.br Disponível em http://www.dpi.inpe.br/cursos/ser303

  2. Estrutura da TerraLib • As principais classes e funções da TerraLib são agrupadas em 5 módulos: • Kernel • Drivers • Funções (Functions) • Algoritmos de Estatística Espaço-Temporal (Stat) • Algoritmos de Processamento de Imagens (PDI)

  3. Kernel • Estruturas de dados • Geometrias vetoriais e raster • Ex.: TeCoord2D, TePoint, TePolygon e TeRaster • Atributos Descritivos • Ex.: TeTable, TeAttribute e TeProperty • Metadados • Ex.: TeLayer, TeTheme, TeProjection e TeLegend • Elementos espaço-temporais (atributos+geometrias+tempo) • Ex.: TeSTInstance, TeSTElement e TeSTElementSet

  4. Kernel • API para acesso a uma base de dados TerraLib • TeDatabase e TeDatabasePortal • Algoritmos geométricos • operadores topológicos, métricos e de conjunto • Controle de visualização OBS: DPI/INPE é responsável por prover um Kernel estável, incorporando modificações e correções recomendadas por seus parceiros e usuários em geral

  5. Kernel - Geometrias • Geometrias vetoriais TeGeometry TeVector TePoint TeLine2D TePolygon TePolygonSet TeLineSet TePointSet TeLinearRing

  6. Kernel - Geometrias • Outras geometrias vetoriais • TeCell e TeCellSet • TeArc e TeArcSet • TeNode e TeNodeSet • TeSample e TeSampleSet • TeContourLine e TeContourLineSet • TeText e TeTextSet

  7. Kernel - Geometrias // Cria um polígono simples TeLine2D line; line.add(TeCoord2D(900,900)); line.add(TeCoord2D(900,1000)); line.add(TeCoord2D(1000,1000)); line.add(TeCoord2D(1000,900)); line.add(TeCoord2D(900,900)) TeLinearRing r1(line); TePolygon poly1; poly1.add(r1); poly1.objectId("spoli");

  8. Kernel - API Raster • A API Raster é formada por 3 classes básicas: • TeRaster • classe genérica • TeRasterParams • Estrutura de dados que representa os parâmetros que caracterizam um dado raster • TeDecoder • Classe genérica de decodificação de formatos e acesso a dispositivos de armazenamento

  9. TeGeometry Kernel - API Raster • TeRaster • Manipula valores de pixel como double • Métodos getElement e setElement dão acesso ao valor escrito em cada pixel, em cada banda, em uma resolução, indexados por: (col, lin, banda,res). TeRaster::getElement(col,lin,band,val) { decoder_->getElement(col,lin,band,val ) } TeRaster::setElement(col,lin,band,val) { decoder_->setElement(col,lin,band val) }

  10. TeGeometry Kernel - API Raster • TeRasterParams • Dimensão • Número linhas, colunas e bandas • Informações geográficas • Projeção, resolução e retângulo envolvente • Características dos elementos • Tamanho digital e interpretação • Armazenamento • Nome do arquivo ou tabela • Forma de decodificação • Mecanismo usado para ler e escrever

  11. Kernel - API Raster • Decoders • Encapsulam o acesso aos elementos de um raster, independentemente do formato e organização • Podem ser instanciados explicitamente ou inferidos a partir de parâmetros (p.ex. extensão de um arquivo) Arquivo JPEG Dados matriciais como uma matriz de valores em memória Arquivo binários raw Dados matriciais armazenados em um banco TerraLib Arquivo TIFF ou GeoTIFF

  12. Kernel - API Raster TeInitRasterDecoders(); // inicializa decodificadores TeRaster rasterTIF("d:/Dados/TIFF/brasM.tif"); TeRaster rasterJPEG("d:/Dados/JPEG/brasilia.jpg"); TeDatum sad69 = TeDatumFactory::make("SAD69"); TeUtm* proj = new TeUtm(sad69,-45.0*TeCDR); TeRasterParams par; par.fileName_ = "D:/Dados/RAW/grade.raw"; par.decoderIdentifier_ = "MEMMAP"; par.nBands(1); par.mode_ = 'r'; par.setDummy(-9999.9); par.setDataType(TeFLOAT); par.topLeftResolutionSize(1850.0,8200.0,10,50,10,1,true); par.projection(proj); TeRaster grade(par);

  13. Aplicação Cache elemento bloco (i,j) ? Kernel - API Raster • Memória Virtual (cache) • Otimiza o acesso a dados raster que podem ser acessados por blocos: • Modelo raster em banco da TerraLib • GeoTIFF usando a libtiff : acesso por linha Bloco X Bloco W Decoder Bloco Y Bloco Z

  14. Kernel - API Raster • Manipulação • ClasseTeRasterRemap: remapeia um raster de entrada para um de saída resolvendo diferenças de geometria: • Diferentes número de linhas ou colunas • Diferentes resoluções • Diferentes retângulos envolventes • Diferentes projeções

  15. Kernel - API Raster • Manipulação • TeRasterRemap usa getElement e setElement para “copiar” um raster para outro. Exemplos: • Passar de um dispositivo para outro • Recortar um pedaço de um raster • Mosaicar vários pedaços em um raster único • Visualização • Reprojetar um raster

  16. Kernel - Metadados • Metadados

  17. Kernel - Metadados

  18. Kernel - Metadados

  19. Kernel – Elementos Espaço-Temporais • Os elementos ou objetos geográficos estão divididos em várias tabelas em um banco de dados TerraLib • Cada representação geométrica está armazenado em uma tabela • Os atributos descritivos podem estar divididos em várias tabelas de atributos • Mecanismo para recuperar de um banco TerraLib todos os elementos espaço-temporais de um layer ou tema • Querier • Estruturas para armazenar esses elementos

  20. Kernel – Elementos Espaço-Temporais • Estruturas • TeSTInstance • representa uma instância temporal de um elemento ou objeto geográfico. Uma instância possui um tempo e um conjunto de atributos e geometrias válido para esse tempo • TeSTElement • representa todas as instâncias temporais de um determinado elemento • TeSTElementSet • representa todas as instâncias temporais de todos os elementos espaciais pertencentes a um tema

  21. Arm1 Arm2 Kernel – Elementos Espaço-Temporais • Estruturas • Ex.: armadilhas TeSTInstance TeSTElement TeSTElementSet

  22. Kernel – Elementos Espaço-Temporais • Estruturas

  23. Kernel – Elementos Espaço-Temporais • Mecanismo de recuperação: TeQuerier • Recupera instâncias espaço-temporais a partir de diferentes fontes (banco TerraLib ou shapefile) • É construído a partir de um conjunto de parâmetro • TeQuerierParams • Pode ser construído usando diferentes estratégias. Uma estratégia é escolhida internamente baseado nos parâmetros de construção • TeQuerierDBStr1 • TeQuerierDBStr2 • TeQuerierDBStr3

  24. Kernel – Elementos Espaço-Temporais

  25. Kernel: Algoritmos geométricos • Operações topológicas • Baseado na Matriz 9-I DE • Ex.: TeEquals, TeDisjoint, TeTouches, TeCrosses • Operações métricas • Ex.: TeDistance, TeLength, TeGeometryArea • Operações de conjunto • Ex.: TeUnion, TeIntersection e TeDifference • Outras operações • Ex.: TeFindCentroid, TeBufferRegion

  26. Kernel - API para acesso a banco TerraLib • Classe abstrataTeDatabase • Interface completa de manipulação do banco TerraLib • Define métodos para inserir, alterar, excluir e recuperar as entidades do modelo conceitual e os dados geográficos • Classe abstrataTeDatabasePortal • Implementa o conceito de portal: submete uma consulta SQL ao banco e disponibiliza os registros resultantes • Um portal e sempre criado a partir de uma instância da classe TeDatabase que possui uma conexão aberta com o banco

  27. Postgre SQL Oracle SqlServer MySQL Oracle Spatial PostGIS Kernel - API para acesso a banco TerraLib • Database e Drivers Kernel Drivers DBMS

  28. Drivers • As classes TeDatabase e TeDatabasePortal são derivadas em classes concretas chamadas drivers • Cada driver implementa os métodos abstratos conforme as características e particularidades de cada SGBD • Os drivers para SGBD-OR com extensão espacial exploram todos os recursos fornecidos para tratar dados geográficos • Tipos de dados espaciais • Indexação espacial • Operadores e funções juntamente com SQl

  29. Drivers • Diferenças no modelo de banco de dados TerraLib Driver Driver Oracle Spatial DBMS Without spatial extent Oracle Spatial

  30. P Drivers • Diferentes implementações dos métodos do Database • Ex.: LocatePolygon  Qual o polígono que contém o ponto P?

  31. Drivers • LocatePolygon: SGBD sem extensão espacial TerraLib Driver SELECT * FROM polygons p WHERE p.lower_x <= P.x() AND p.upper_x >= P.x() AND p.lower_y <= P.y() AND p.upper_y >= P.y() DBMS Without spatial extent

  32. Drivers • LocatePolygon: SGBD sem extensão espacial TerraLib TerraLib functions Driver result SELECT * FROM polygons p WHERE p.lower_x <= P.x() AND p.upper_x >= P.x() AND p.lower_y <= P.y() AND p.upper_y >= P.y() DBMS Without spatial extent

  33. Drivers • LocatePolygon: SGBD com extensão espacial TerraLib Driver Oracle Spatial SELECT * FROM polygons WHERE MDSYS.SDO_RELATE(spatial_data, MDSYS.SDO_GEOMETRY(2001, NULL, MDSYS.SDO_POINT_TYPE(P.x(),P.y(), NULL), NULL, NULL), 'mask=contains querytype = window') = 'TRUE'"; result Oracle Spatial

  34. Functions • Importação de dados vetoriais • MID/MIF, SPRING geo/tab, shapefile, BNA, DBF, CSV • Exportação de dados vetoriais • MID/MIF, ASCII SPRING, shapefile • Geração de um layer de células a partir de um layer ou tema • Cálculo de estatísticas de células • Address Locator • Processamento geográficos entre temas • Agregação, Adição, Interseção, União, Diferença, Associação de atributos (coleta ou distribuição) • Criação de temas ou layers a partir de temas

  35. TeDecoderVirtualMemory TeDecoderVirtualMemory getElement(c,l,b,val,res) setElement(c,l,b,val,res) brasilia.tif -> rIn TeDecoderTiff TeRasterRemap remap(); remap.setInput(rIn); remap.setOutpu(rOut); remap.apply() TeDecoderDatabase getRasterBlock(blockId,...) putRasterBlock(blockId,...) getRasterBlock(blockId,...) rOut Importação de dados matriciais

  36. Stat • Projeto TerraStat: Algoritmos de estatística espaço-temporal • Média Local, Índice de Moran Local e Global, G e GStar • Mapa de Kernel • Semivariograma • Bayes Empírico Local e Global • Skater • Função K e KNox • Sistema de Vigilância • LESTE-UFMG (Laboratório de Estatísticas Espaciais da Universidade Federal de Minas Gerais)

  37. PDI • Algoritmos para processamento de imagens • Funções de contraste • Filtros e filtros de convolução • Algoritmos de classificação • Crescimento de regiões • DPI/INPE

  38. Aplicativos e Projetos • Aplicativos • TerraView • TerraCrime • Sistema do Proarco • SigMun • Projetos • SAUDAVEL • TerraStat • Integração com R (aRT e MyR) • TDK e VIPE

  39. TerraView

  40. TerraCrime

  41. Sistema do PROARCO

  42. SigMun • Funcate • www.funcate.org.br/geoprocessamento.html • Construção de aplicativos para atualização, consulta e navegação na base de dados georeferenciada • Implementações • São Sebastião, Ilhabela, Ubatuba, Caraguatatuba, São José dos Campos • São Bernardo do Campo, Santos, Cachoeiro do Itapemirim • Mirasol, Avaré, Feira de Santana, Estado da Bahia – Geopolis (50)

  43. Projeto SAUDAVEL • Tecnologias da Informação Espacial no Apoio ao Controle Epidêmico • Experimento em andamento em Recife-PE • Alimentando um banco de dados TerraLib • Visualização e consulta via TerraView

  44. Projeto TerraStat • Biblioteca de procedimentos estatísticos espaciais avançados em C++ • Parceria INPE/DPI e UFMG Leste TerraStat: (Algoritmos TerraLib) é um conjunto de algoritmos para clusters espaço-temporais através de métodos estatísticos e outras soluções, implementadas em C++ e a incoporados como algoritmos em TerraLib

  45. Integração com R: GCEA - UFPR • Grupo de Estatística Computacional e Espacial Aplicadas • http://www.est.ufpr.br/GECEA • aRT (API R-TerraLib) : integração entre o software R e TerraLib combinando informações estatísticas e geoespaciais • myR : biblioteca C++ para acessar funcionalidades R

  46. Projeto TDK e VIPE • TecGraf-PUC/Rio • InfoPae (Petrobrás) • Planos de emergência para refinarias • TDK: TerraLib Development Kit • Objetivo: facilitar o desenvolvimento de aplicativos geográficos que utilizem a TerraLib • WMS-TerraLib • VIPE : ferramenta de visualização, impressão, processamento e edição a partir de um banco de dados TerraLib

  47. Programando com TerraLib • Diretório “examples”

  48. Criar um banco TerraLib // Datatabase server parameters string host = "localhost"; string dbname = "TerraTeste"; string user = "root"; string password = ""; // Creates a new database TeDatabase* db = new TeMySQL(); if (!db->newDatabase(dbname, user, password, host)) { return 1; } // Close database db->close(); return 0;

More Related