bh_aguas_2005_10_06 - TerraLib - DPI
Download
Report
Transcript bh_aguas_2005_10_06 - TerraLib - DPI
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!!!