470 likes | 581 Views
TerraLib: Tecnologia para construção de SIGs. Outubro/2005. Gilberto Ribeiro de Queiroz – gribeiro@dpi.inpe.br. (Time TerraLib). Divisão de Processamento de Imagens (www.dpi.inpe.br). Existe desde 1984 com uma equipe multi-disciplinar Linhas de atuação: Geoinformação
E N D
TerraLib: Tecnologia para construção de SIGs Outubro/2005 Gilberto Ribeiro de Queiroz – gribeiro@dpi.inpe.br (Time TerraLib)
Divisão de Processamento de Imagens (www.dpi.inpe.br) • Existe desde 1984 com uma equipe multi-disciplinar • Linhas de atuação: • Geoinformação • Processamento de Imagens • Uso da Terra na Amazônia • GEOMA - Modelagem Amazônia • História em desenvolvimento de sistemas para geoinformação • SITIM, SGI, SPRING e atualmente TerraLib e TerraView
Geotecnologia na DPI: A Experiência SPRING • SISTEMA DE PROCESSAMENTO DE INFORMAÇÕES GEOREFERENCIADAS: • Sistema nacional, desenvolvido pelo INPE, disponível na Internet como “freeware” (www.dpi.inpe.br/spring); • GIS monolítico: • Funções de entrada de dados • análise espacial • processamento de imagens • modelagem numérica de terreno • consulta/manipulação de dados cadastrais • geração de documentos cartográficos; • Arquitetura dual • Público alvo: Usuários de GIS
TerraLib (www.terralib.org) • É uma biblioteca de classes escritas em C++ para o desenvolvimento de aplicativos geográficos de arquitetura integrada. • Busca atender aos usuários desktop, usuários coorporativos e centros de dados geográficos. • Código fonte aberto, distribuído via Web. • Permite construir aplicativos customizados de acordo com o interesse do usuário
TerraLib: Motivação • Novas tendências no desenvolvimento de GIS • Aplicativos Geográficos • transição dos atuais sistemas monolíticos para sistemas dedicados • Arquitetura Integrada • uso de Sistemas de Banco de Dados (SGBDs) extensíveis para armazenar, manipular e gerenciar os dados geográficos • A falta de tecnologias “free” na área de Sistemas Geográficos (GIS)
SIG SIG SGBD SGBD Arquivos atributos atributos SPRING X TerraLib SPRING Arquitetura Dual TerraLib Arquitetura Integrada
Estrutura da TerraLib Interface PHP Interface Java Interface COM Interface C++ Serviços OGIS Funções kernel Estruturas de dados espaço-temporais Acesso a arquivos e SGBD Controle de Visualização Drivers E/S SGBD Arquivos Externos
Estrutura da TerraLib • Kernel • Estruturas de dados vetoriais e matriciais • Containeres de dados geográficos (geometrias + atributos) • Tratamento de sistemas de referência espacial • Interface genérica de acesso a SGBD’s • Operações topológicas (a matriz 9-I) • Drivers SGBD • ADO (Access, SQLServer) • MySQL • Oracle e Oracle Spatial • PostgreSQL e PostGIS
Estrutura da TerraLib • Controle de Visualização e Processamento • Vista: definir uma projeção comum • Tema: seleção sobre os objetos a serem visualizados. Visual de apresentação e Agrupamento de objetos • Conversão de Dados • MID/MIF, Shapefile, SPRING, BNA para dados vetoriais • GeoTIFF (TIFF + tfw), JPEG (+jgw) e raw para dados matriciais
Estrutura da TerraLib • Funções • Biblioteca de funções de estatística espacial • Funções de análise espaço-temporal • Álgebra de Mapas • Biblioteca de algoritmos de processamento de imagens • Geocodificação de endereços • Modelagem dinâmica
TerraLib – Parceiros e Usuários • TerraLib tem usuários em diferentes áreas de atuação: • Meio Acadêmico • Corporativo • TerraLib tem também uma rede de parcerias que trabalha junto no desenvolvimento da biblioteca: • TecGraf-RJ • FUNCATE
Prefeitura de Santos FUNCATE, www.funcate.org.br, 2004
Nexus www.nexusbr.com.br
Enalta • SIG para as usinas de cana-de-açúcar de São Paulo
EcosConsult • Coleta de lixo em Angola • Distribuição de produtos de geoprocessamento para Linux
InfoPae • Sistema de tratamento de emergências em dutos de óleo para Petrobras
TerraStat • LESTE – UFMG: construção de uma biblioteca de algoritmos de estatística espacial
aRT • ESTE – UFPR: Integração entre o R e TerraLib
Fluxos e Redes: DPI-INPE/IBGE/SUS/FIOCRUZ Classificação da rede baseado na metodologia de Rabino e Occelli (1997)
RondôniaModel São Felix Model Amazon Model Hydro Model TerraME Language TerraME Compiler TerraME Virtual Machine TerraLib TerraME Framework C++ Signal Processing librarys C++ Mathematicallibrarys C++ Statisticallibrarys TerraLib TerraME • Ambiente para a construção de modelos Fonte: Tiago Senna Carneiro
Demandas institucionais que o INPE tem que atender Deter e Proarco
TerraView (www.dpi.inpe.br/terraview) • É um aplicativo construído sobre a biblioteca TerraLib: • Visualizador de dados geográficos com recursos de consulta a análise destes dados • Exemplifica a utilização da biblioteca TerraLib • O TerraView manipula dados vetoriais (pontos, linhas e polígonos) e matriciais (grades e imagens) • Armazenados em SGBD relacionais ou geo-relacionais como o ACCESS, PostgreSQL, MySQL e Oracle e OracleSpatial • Versão 3.0.3
Cada seção de TerraView trabalha em um banco de dados TerraLib Importa dados vetoriais em formato Shapefile, MID/MIF, SPRING e BNA (TabWin) Importa dados matriciais em formato GeoTIFF, Tiff+twf, JPEG (+jgw), raw TerraView
Disseminação Web • TerraLib está criando alternativas para a disseminação de um banco na Web
Disseminação Web • Servidor WMS para bancos TerraLib
TerraPHP + • Extensão da Linguagem PHP: • Habilita desenvolvedores PHP a usarem recursos da TerraLib: • Visualização e consultas a bancos de dados geográficos • Extensão escrita em C++ • Código fonte aberto e gratuito como tudo na TerraLib • Uso de diversas bibliotecas open-source: • FreeType, IJG JPEG, GD, lib PNG, zlib • Exemplo de aplicação: • TerraWeb
TerraPHP – Como fica o script PHP <?/* Conecta com um banco de dados MySQL e exibe o mapa do Brasil agrupado por algum atributo */ $t = TerraWeb(); // Conecta-se a um banco MySQL if(!$t->connect("localhost", "root", "", "terraweb", 3306, 1)) { echo("Nao foi possivel conectar-se ao banco de dados<BR>"); echo($t->errorMessage()); exit(); } // Torna a vista BRASIL a vista corrente if($t->setCurrentView("BRASIL") == false) { echo($t->errorMessage() . "<BR>"); exit(); }
TerraPHP – Como fica o script PHP ? ... // Pega o retângulo envolvente de todos os temas da vista $box = $t->getCurrentViewBox(); // Ajusta a visão do canvas onde os dados geográficos serão // desenhados: PNG de 800x600 $t->setWorld($box[0], $box[1], $box[2], $box[3], 800, 600); // Seta o tema corrente $result = $t->setTheme("municipios", 0); $rampColors = array("RED", "GREEN", "BLUE"); // Plota o tema corrente, sem restrições de atributo, agrupando // o mapa pelo atributo LATITUDE em 5 classes usando quantil // e com os tons de cores RED/GREEN/BLUE $result = $t->plotVector("", "LATITUDESE", "", 5, 0, $rampColors);
TerraPHP – Como fica o script PHP ? ... $imagemSaida = $t->getPNG(); if($imagemSaida == false) { echo($t->errorMessage() . "<BR>"); exit(); } header("Content-type: image/png"); echo($imagemSaida); ?>
Integração MapServer e TerraLib - layerInitItemInfo() - layerFreeItemInfo() - msLayerOpen() - msLayerWhichShapes() - msLayerNextShape() - msLayerGetShape() - msLayerClose() - msLayerGetItems() - msLayerGetExtent() • layerObj • rectObj • shapeObj maplayer.c mapserver.c main() mapshape.c mappostgis.c mapsde.c mapterralib.c maporacle.c
TerraHidro • Framework para Modelagem de recursos hídricos • Funcionalidades básicas: • Delimitação de Bacias • Extração automática de drenagem • Morfometria • Estudos de inundação • Estudos de dinâmica de água no solo
Conclusões • DPI /INPE apoiamos e fazemos software livre • Sustentamos o desenvolvimento da TerraLib e do TerraView • Promovemos o desenvolvimento de recursos humanos • Promovemos treinamento em geoinformação • Incentivamos empresas na área de desenvolvimento de software para geoinformação
Conclusões • Buscamos uma rede de parcerias • E é o que pretendemos continuar fazendo...