TerraLib: Tecnologia para
construção de SIGs
Outubro/2005
Gilberto Ribeiro de Queiroz – [email protected]
(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)
SPRING X TerraLib
SPRING
TerraLib
Arquitetura Dual
Arquitetura Integrada
SIG
SIG
atributos
atributos
SGBD
SGBD
Arquivos
Estrutura da TerraLib
Interface PHP
Interface Java
Interface COM
Interface C++
Serviços OGIS
Funções
kernel
Controle de
Visualização
Estruturas de dados
espaço-temporais
Acesso a
arquivos e SGBD
Drivers E/S
Arquivos
Externos
SGBD
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
Palm-top
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)
TerraME
 Ambiente para a construção de modelos
RondôniaModel São Felix Model
Amazon Model
TerraME Language
Hydro Model
TerraME Compiler
TerraME Virtual Machine
TerraLib
TerraME Framework
C++ Signal
C++
Processing Mathematical
librarys
librarys
C++
Statistical
librarys
TerraLib
Fonte: Tiago Senna Carneiro
Deter e Proarco
 Demandas institucionais que o INPE tem que atender
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
TerraView
 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 - Visualização
TerraView - Consulta
TerraView – Consulta Espacial
TerraView - Análise
TerraView - Análise
TerraView – Operações Geográficas
TerraView – Superfície de Kernel
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
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);
?>
TerraPHP
Integração MapServer e TerraLib
- layerObj
- rectObj
- shapeObj
maplayer.c
mapserver.c
main()
mapshape.c
mappostgis.c
mapsde.c
- layerInitItemInfo()
- layerFreeItemInfo()
- msLayerOpen()
- msLayerWhichShapes()
- msLayerNextShape()
- msLayerGetShape()
- msLayerClose()
- msLayerGetItems()
- msLayerGetExtent()
mapterralib.c maporacle.c
Exemplo: MapServer com TerraLib
Exemplo: MapServer com TerraLib
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...
Fim!!!
Download

bh_aguas_2005_10_06