PROJETO DE INTERFACES PARA ÁLGEBRA DE MAPAS EM...
Transcript of PROJETO DE INTERFACES PARA ÁLGEBRA DE MAPAS EM...
MINISTÉRIO DA CIÊNCIA E TECNOLOGIAINSTITUTO NACIONAL DE PESQUISAS ESPACIAIS
INPE-9307-TDI/820
PROJETO DE INTERFACES PARA ÁLGEBRA DE MAPAS EMGEOPROCESSAMENTO NO AMBIENTE SPRING
Ivan Soares de Lucena
Dissertação de Mestrado em Sensoriamento Remoto, orientada pelo Dr. GilbertoCâmara, aprovada em 14 de setembro de 1998.
INPESão José dos Campos
2002
681.322.0 : 528.711.7
LUCENA, I. S. Projeto de interfaces para álgebra de mapas em geopro- cessamento no ambiente SPRING / I. S. Lucena – São José dos Campos: INPE, 1998. 126p. – (INPE-9307-TDI/820).
1.Álgebra. 2.Mapa. 3.Interface usuário/computador. 4.Geoprocessamento. 5.Sistemas de Informação Geográfica. I.Título.
Aprovado pela Banca Examinadora em
cumprimento a requisito exigido para a
obtenção do Título de Mestre em
Computação Aplicada.
Candidato: Ivan Soares de Lucena
São José dos Campos, 14 de setembro de 1998.
"Quem dentre vós é sábio e entendido? Mostrepelo seu bom procedimento as suas obras emmansidão de sabedoria. Mas, se tendesamargo ciúme e sentimento faccioso em vossocoração, não vos glorieis, nem mintais contraa verdade. Essa não é a sabedoria que vem doalto, mas é terrena, animal e diabólica.Porque onde há ciúme e sentimento faccioso,aí há confusão e toda obra má. Mas asabedoria que vem do alto é, primeiramente,pura, depois pacífica, moderada, tratável,cheia de misericórdia e de bons frutos, semparcialidade, e sem hipocrisia."
da Epístola de São Tiago
AGRADECIMENTOS
Primeiramente agradeço a Deus, orientador de minha vida, que me faz vencer
os desafios. Que a Sua referência seja sempre presente eu meu coração.
Ao professor, orientador e amigo Dr. Gilberto Câmara pela orientação neste
trabalho e pelo compartilhar da sua experiência em Geoprocessamento e desenvolvimento
de tecnologia.
Agradeço à toda a chefia do Centro Nacional de Pesquisa Tecnológica em
Informática para Agricultura, CNPTIA, pelo apoio no desenvolvimento deste trabalho.
Aos colegas do CNPTIA e do Divisão de Processamento de Imagens do
INPE pela troca de informações técnicas valiosas, pelo companheirismo, incentivo e
solidariedade.
A compreensão da família, minha esposa e meus dois filhos, que puderam
entender os momentos de ausência, ou mesmo quando presente, diante da fria máquina do
computador, não pude dar-lhes muita atenção.
RESUMO
Os Sistemas de Informação Geográfica (SIG) oferecem procedimentos de
manipulação de mapas para que o usuário possa expressar modelos de análise espacial.
Estes procedimentos, denominados Álgebra de Mapas, usualmente são expressos em
linguagens, que permitem ordenar seqüências de transformações do dados geográficos para
gerar novos mapas a partir dos mapas existentes. O Sistema de Processamento de
Informações Georeferenciadas (SPRING), desenvolvido pelo Instituto Nacional de
Pesquisas Espaciais (INPE), possui uma linguagem para Álgebra de Mapas denominada:
Linguagem Espacial para Geoprocessamento Algébrico (LEGAL). Apesar do grande poder
expressivo de uma linguagens como LEGAL, seu uso requer noções de fundamentos de
programação, competência nem sempre disponível entre os especialistas em
Geoprocessamento. Como alternativa ao uso de LEGAL, este trabalho desenvolve uma
interface amigável para Álgebra de Mapas no ambiente SPRING, denominada Álgebra de
Mapas por Objetos (AMO), que permite a geração de programas em LEGAL através de
diagramas de fluxo. O processo de definição dos requisitos para o desenvolvimento de
AMO inclui uma revisão dos conceitos de Geoprocessamento, modelagem de dados
geográficos, análise espacial, álgebra de mapas em LEGAL e a revisão de interfaces para
álgebra de mapas existentes no mercado ou propostas na literatura. A interface AMO
representa uma contribuição para o uso da tecnologia SPRING em projetos ambientais e
de agropecuária, por fornecer a uma vasta gama de usuários uma ferramenta de fácil
utilização para expressar problemas complexos de análise espacial. Adicionalmente, o
projeto da interface AMO foi concebido com base em noções gerais de
Geoprocessamento, podendo deste modo ser estendido para outros SIG.
DESIGN OF MAP ALGEBRA INTERFACE FORGEOPROCESSING AT SPRING ENVIRONMENT
ABSTRACT
Most implementations of Geographical Information Systems (GIS) include
procedures, which allow the user to express complex spatial analysis models. These
procedures are refereed to as Map Algebra, and are usually expressed by a language, which
provides operations that generate new maps from an existing ones. The GIS system
developed by National Institute of Space Research (INPE), includes the a spatial algebra
language, whose use requires notions of programming languages. Such knowledge is not
always available in the GIS user community. As an alternative to direct programming using
this programming language, we have developed a friendly user interface for expressing Map
Algebra programs, called (AMO) that means Map Algebra with Objects. AMO uses the
flow diagram paradigm, which is a natural way of expressing spatial analysis problems, and
enables the automatic generation of Map Algebra programs. In order to develop AMO, we
have analyzed different alternatives for Map Algebra interfaces, including programming
languages, forms and flow diagrams. AMO is an improvement of INPE´s GIS technology,
as it allows non-expert users a straightforward way of expressing complex spatial analysis
problem. Finally, the AMO design has been based on general principles of GIS, and the
interface can be extended for use with other systems.
SUMÁRIO
LISTA DE FIGURAS Pág.LISTA DE TABELASLISTA DE SIGLAS E ABREVIATURAS
CAPÍTULO 1 – INTRODUÇÃO 191.1 – Objetivos ......................................................................................................................... 201.2 – Organização .................................................................................................................... 211.3 – Contribuições ................................................................................................................. 22
CAPÍTULO 2 - CONCEITOS DE GEOPROCESSAMENTO 232.1 - Modelagem de Dados Geográficos .............................................................................. 232.1.1 - Universo Conceitual .................................................................................................... 232.1.2 - Universo de Representação ........................................................................................ 252.2 - Estrutura de um Banco de Dados Geográficos ......................................................... 282.2.1 - Instanciação do modelo ............................................................................................. 292.3 - Análise Espacial .............................................................................................................. 302.3.1 - Operações sobre Campos .......................................................................................... 302.3.2 - Operações sobre Objetos ........................................................................................... 312.3.3 - Operações entre Campos e Objetos ......................................................................... 322.3.4 - Relações de Operadores ............................................................................................. 33
CAPÍTULO 3 - CONCEITOS DE GEOPROCESSAMENTO 353.1 - Classificação de LEGAL ............................................................................................... 353.2 - Características de LEGAL ............................................................................................ 353.2.1 - Classes do modelo de dados e sua representação em LEGAL ............................ 363.2.2 - Seções de um Programa em LEGAL ....................................................................... 363.3 - Classificação de Operadores em LEGAL ................................................................... 443.3.1 - Operadores entre Geo-campos ................................................................................. 443.4 - Resumo das Operações sobre Geo-campos ............................................................... 54
CAPÍTULO 4 - INTERFACES PARA ÁLGEBRA DE MAPAS 554.1 - Projeto de Interfaces Usuário-Computador ............................................................... 554.2 - Paradigmas de Interfaces para Álgebra de Mapas .................................................... 564.2.1 - Linhas de Comandos e Linguagens de Programação ............................................ 56
4.2.2 - Menus e Formulários .................................................................................................. 604.2.3 - Interfaces por Manipulação Direta ........................................................................... 634.2.4 - Resumo ......................................................................................................................... 704.3 - Requisitos para o projeto de Interface para Álgebra de Mapas .............................. 724.3.1 - Requisitos Gerais ......................................................................................................... 734.3.2 - Requisitos Específicos sobre Álgebra de Mapas .................................................... 744.3.3 - Requisitos Específicos para o SPRING .................................................................. 75
CAPÍTULO 5 - INTERFACES AMO 775.1 - Descrição Geral .............................................................................................................. 775.1.1 - Paradigmas Escolhidos ............................................................................................... 775.1.2 - Material e Método ....................................................................................................... 785.2 - Estrutura de AMO ......................................................................................................... 805.2.1 - Tela Principal ............................................................................................................... 815.2.2 - Região de Seleção ........................................................................................................ 835.2.3 - Região de Edição e Visualização ............................................................................... 855.2.4 - Funções Gerais de AMO (Barra de ferramentas e menus) ................................... 875.3 - Características Visuais .................................................................................................... 915.4 - Modelo de Interação ...................................................................................................... 925.4.1 - Conexão de Comandos e Variáveis .......................................................................... 935.5 - Modelo de Objetos ......................................................................................................... 935.6 - Exemplos ......................................................................................................................... 94
CAPÍTULO 6 – TUTORIAL DE AMO 976.1 - Definição do Problema .................................................................................................. 976.1.1 - Metodologia do ZEE .................................................................................................. 986.2 - Elaboração do Modelo de Análise no SIG ................................................................. 1006.3 - Tutorial de AMO ............................................................................................................ 1016.4 - Resultados ........................................................................................................................ 1136.5 - Análise dos Resultados .................................................................................................. 113
CAPÍTULO - CONCLUSÕES 1157.1 - Melhorias Propostas e Direções Futuras .................................................................... 1157.2 – Contribuições ................................................................................................................. 116
REFERÊCIAS BIBLIOGRÁFICAS 117
APÊNDICE 121
LISTA DE FIGURAS
Pág.2.1 Componentes básicos da representação vetorial: Ponto, Linha e Região ........ 252.2 Estrutura Topológica ............................................................................................... 262.3 Exemplo de Sensoreamento Remoto .................................................................... 272.4 Exemplo de Mapa Temático ................................................................................... 272.5 Exemplo de definição do Esquema Conceitual ................................................... 292.6 Representação ............................................................................................................ 303.1 Três seções de um programa em LEGAL ............................................................ 373.2 Sintaxe da declaração de Planos de Informação .................................................. 383.3 Sintaxe da declaração de tabelas de transformações ............................................ 383.4 Sintaxe da Instanciação de Planos de Informação ............................................... 393.5 Sintaxe da instanciação de Tabelas ......................................................................... 393.6 Sintaxe geral para Operações em LEGAL .............................................................. 413.7 Sintaxe de Operações sobre IMAGEM ................................................................... 413.8 Sintaxe de Operações sobre NUMERICO .............................................................. 423.9 Sintaxe para Operações sobre TEMATICO ............................................................ 423.10 Sintaxe de Expressões Condicional ....................................................................... 433.11 Sintaxe de Expressões Booleana ............................................................................ 443.12 Classes de Operadores ............................................................................................. 453.13 Operação de Fatiamento ......................................................................................... 463.14 Operação de Ponderação ........................................................................................ 473.15 Operação Matamática .............................................................................................. 504.1 Processo de desenvolvimento de Projeto de Interfaces ..................................... 564.2 Exemplo de operação de análise no Arc/Info ..................................................... 584.3 Interface por Linha de Comandos do OSUMAP ................................................ 594.4 Interface de operações aritméticas no SPRING .................................................. 604.5 Formulário do operador “escalar” do IDRISIW ................................................. 624.6 Formulário do MGE Intergraph ............................................................................ 634.7 Avaliação de Interfaces por Manipulação Direta ................................................. 644.8 Diagrama de Fluxo em Análise Espacial ............................................................... 654.9 Interface Baseada em Pilhas .................................................................................... 674.10 Ambiente de Análise Espacial do Grassland ........................................................ 68
4.11 Diagrama de Fluxo do Model Maker .................................................................... 694.12 Operador de Buffer no VFQL ............................................................................... 704.13 Virtual Functional Query Language ...................................................................... 705.1 Exemplo de conexão com ODBC via Tclodbc ................................................... 805.2 Estrutura hierárquica da interface de AMO ......................................................... 815.3 Tela Principal de AMO ............................................................................................ 825.4 Região de Seleção em AMO .................................................................................... 835.5 Seleção de Dados em AMO .................................................................................... 845.6 Região de Seleção de Operadores em AMO ........................................................ 855.7 Funções de encadeamento de conectores ............................................................. 905.8 Janela de Diálogo para Configuração de Variáveis .............................................. 905.9 Janela de Diálogo para Configuração de Comandos ........................................... 915.10 Ícone de uma Variável em AMO ........................................................................... 925.11 Modelo de Objetos de AMO ................................................................................. 945.12 Exemplo de procedimento em AMO .................................................................... 955.13 Exemplo de tabela de ponderação em AMO ....................................................... 956.1 Modelo para estimar a Vulnerabilidade Natural à Erosão ................................. 1006.2 Seleção de Banco de Dados .................................................................................... 1026.3 Seleção de Projeto .................................................................................................... 1026.4 Seleção de Dados ...................................................................................................... 1036.5 Instanciação de Variável .......................................................................................... 1036.6 Lista de Hierárquica de Operadores ...................................................................... 1046.7 Criação de um Comando ......................................................................................... 1056.8 Criação de Conexões ................................................................................................ 1056.9 Fluxo de Dados ......................................................................................................... 1066.10 Criação de Novas Varáveis ...................................................................................... 1066.11 Formulário de Configuração de Variáveis ............................................................ 1076.12 Dados do Novo Plano de Informação .................................................................. 1076.13 Janela de Configuração de Comandos ................................................................... 1086.14 Configuração de Tabelas .......................................................................................... 1086.15 Inclusão da Média Zonal ......................................................................................... 1116.16 Configuração de Expressão Matemática ............................................................... 1116.17 Motodologia ZEE desenvolvido em AMO .......................................................... 113
LISTA DE TABELAS
Pág. 2.1 Operações sobre Campos e Objetos ..................................................................... 33 3.1 Exemplo: “Regras para Aptidão Agrícola” ........................................................... 49 3.2 Relação de Operadores sobre Geo-campos ......................................................... 54 3.2 Resumo de Operadores de álgebra de Mapas ...................................................... 66 6.1 Fatores que influenciam na erosão ........................................................................ 99 6.2 Tabela de Ponderação para Solos .......................................................................... 109 6.3 Tabela de Ponderação para Geologia ................................................................... 109 6.4 Tabela de Ponderação para Vegetação ................................................................. 109 6.5 Tabela de Ponderação para Geomorfologia ........................................................ 110 6.6 Tabela de Fatiamento de Vulnerabilidade ............................................................ 112
LISTA DE SIGLAS E ABREVIATURAS
SIG - Sistema de Informação geográfica
LEGAL - Linguagem Espaço Geográfica baseada em Álgebra
SPRING - Sistema de Processamento de Informações Georeferenciadas
AMO - Ambiente de Álgebra de Mapas Orientada por Objetos
IUC - Interface Usuário Computador
SQL - Structured Query Language
ODBC - Open Data Base Connection
GUI - Graphical User Interface (Interface Gráfica com o Usuário)
ZEE - Zoneamento Ecológico Econômico
19
CAPÍTULO 1
INTRODUÇÃO
A partir do início da década de 90, ocorreu uma grande difusão do Geoprocessamento.
Antes confinada a laboratórios com altos custos de instalação e manutenção, e
necessitando de pessoal altamente especializado e treinado no uso de suas ferramentas, esta
tecnologia hoje está ao alcance de qualquer usuário de computador e vem sendo utilizada
nos mais variados tipos de aplicações.
Na medida em que equipamentos de baixo custo se tornaram suficientemente capazes para
processar e armazenar, com rapidez e eficiência, grandes volumes de dados na forma de
mapas, imagens e bancos de dados censitários, verifica-se uma mudança no perfil do uso de
sistemas informatizados de Geoprocessamento. Ao longo do final da década de 80 e início
da década de 90 estes sistemas, que antes estavam baseados em computadores de grande e
médio porte, e que só podiam ser adquiridos por instituições e empresas com grande
disponibilidade de recursos, foram sendo substituídos por versões para computador
pessoal.
Os custos com mão-de-obra para operação dos sistemas anteriores eram altos, não
somente devido à complexidade dos problemas envolvidos em análise geográfica, mas
também pela dificuldade de interação entre o usuário e o sistema. Este fator influencia
significativamente a exigência de treinamento e especialização, não somente na tecnologia
de Geoprocessamento, mas principalmente na habilitação para operar sistemas específicos.
No contexto do desenvolvimento tecnológico de Geoprocessamento no Brasil, este
trabalho está diretamente ligado ao sistema Sistema de Processamento de Informações
Georeferenciadas (SPRING) (Câmara et al., 1996), um software para Geoprocessamento
que oferece um conjunto integrado de ferramentas para processamento de informações
geográficas, com modelagem digital de terreno, análise espacial e tratamento de imagens de
satélite. Os objetivos do sistema SPRING são (Câmara et al., 1993):
20
• Integrar as tecnologias de Sensoriamento Remoto e Sistemas de Informação
Geográfica.
• Utilizar modelo de dados orientado-por-objetos, que melhor reflete a metodologia de
trabalho de estudos ambientais e cadastrais.
• Fornecer ao usuário um ambiente interativo para visualizar, manipular e editar
imagens e dados geográficos.
O processo de disseminação do SPRING vem se acelerando muito a partir do lançamento
de sua versão para Microsoft Windows e pelo livre acesso através da Internet. Desta forma,
novos usuários, de perfis diversos, passaram a utilizar o sistema para os mais variados fins.
Isto tem exigido que sua interface seja o mais amigável possível, até mesmo nos
procedimentos mais complexos, tais como a manipulação de dados geográficos (álgebra de
mapas) envolvidos em análise espacial.
Neste contexto se insere o presente trabalho, ao auxiliar na disseminação da tecnologia de
Geoprocessamento no ambiente do SPRING, oferecendo uma ferramenta interativa e
amigável para o estabelecimento de metodologias de análise espacial.
1.1 Objetivos
O objetivo deste trabalho é desenvolver um sistema baseado em interface de manipulação
direta, que permita ao usuário do SPRING a fácil expressão de seu conhecimento em
metodologias de análise espacial. Este sistema irá traduzir esta metodologia, ou
conhecimento, para programas na linguagem Linguagem Espaço Geográfica baseada em
Álgebra (LEGAL), utilizada pelo sistema SPRING.
LEGAL é a linguagem proposta por Câmara (1995) com o objetivo de prover um ambiente
geral para análise geográfica, incluindo operações de manipulação, consulta espacial e
apresentação. Para isto vem sendo desenvolvido um interpretador de LEGAL
adicionalmente ao produto SPRING o que já tem mostrado resultados bastante favoráveis
(Barbosa, 1998).
A linguagem de programação é um dos possíveis modos de interação entre o usuário e o
sistema. Utilizando um editor de texto, o usuário escreve os programas seguindo a
21
gramática da linguagem, descrevendo todos os procedimentos para execução de sua
metodologia de análise e, em seguida, este programa é submetido ao interpretador da
linguagem no SIG o qual ira checar a validade das expressões e executar o procedimento.
Como muitos problemas em análise espacial podem ser expressos através de uma
metodologia de trabalho que define procedimentos sucessivos de transformação dos dados,
é natural expressar esta metodologia através de diagramas de fluxos (Maguire e Goodchild,
1991). Deste modo, o desenvolvimento de uma interface gráfica baseada em diagrama de
fluxo, será útil tanto para usuários iniciantes quanto para ilustrar graficamente
procedimentos complexos.
Para atender esta demanda por uma interface amigável para álgebra de mapas no ambiente
SPRING, projetamos e desenvolvemos um sistema denominamos Álgebra de Mapas por
Objetos (AMO). Utilizamos a abordagem orientada por objetos como forma de enriquecer
semanticamente os elementos de um diagramas de fluxo, para melhorar a interação do
usuário experiente com o sistema, aumentar sua produtividade e oferecer recursos de
documentação de seus modelos, bem como aumentar a velocidade de aprendizado de
usuários novatos.
O processo de definição dos requisitos para o desenvolvimento de AMO inclui uma
revisão dos conceitos de Geoprocessamento, modelagem de dados geográficos, análise
espacial, álgebra de mapas em LEGAL e a revisão de interfaces para álgebra de mapas
existentes no mercado ou proposta na literatura, como será apresentado neste trabalho.
1.2 Organização
O trabalho está organizado como segue: O Capítulo 2 apresenta conceitos gerais de
Geoprocessamento, o Capítulo 3 apresenta álgebra de mapas no contexto do software
SPRING na linguagem LEGAL. O Capítulo 4 discute interfaces usuário-computador para
álgebra de mapas, revisa trabalhos existentes e estabelece um conjunto de requisitos para o
desenvolvimento do projeto de interface. O Capítulo 5 apresenta o AMO. O Capítulo 6
apresenta os resultados atingidos com AMO. O Capítulo 7 apresenta as conclusões deste
trabalho.
22
1.3 Contribuições
Este trabalho traz como contribuição um novo sistema (AMO) que gera programas em
LEGAL, baseado no paradigma de interfaces por diagrama de fluxo de dados, com o
objetivo de apoiar a difusão da tecnologia de Geoprocessamento ao atender aos critérios de
qualidade de software: “usabilidade” e “facilidade de aprendizado” (I.S.O., 1991).
Este sistema representa um avanço significativo para o uso da tecnologia SPRING em
projetos ambientais e de agropecuária, por fornecer a uma vasta gama de usuários uma
ferramenta de fácil utilização para expressar problemas complexos de análise espacial.
Adicionalmente, o projeto da interface AMO foi concebido com base em noções gerais de
Geoprocessamento, podendo deste modo ser estendido para outros SIGs.
23
CAPÍTULO 2
CONCEITOS DE GEOPROCESSAMENTO
Para iniciar um projeto de interface é necessário conhecer bem o domínio de sua aplicação.
Neste sentido, este Capítulo revisa alguns conceitos importante de Geoprocessamento no
ambiente do SPRING tais como a modelagem de dados geográficos, estrutura do banco de
dados geográficos e noções de análise espacial em SIG.
2.1 Modelagem de Dados GeográficosUm modelo é uma construção artificial na qual partes de um domínio (domínio origem)
são representadas em outro domínio (domínio destino) (Worboys, 1995). O propósito da
modelagem é simplificar e abstrair o entendimento do domínio, ou universo, de origem e
representá-lo sob a forma de expressão do domínio, ou universo, de destino. No processo
de modelagem de dados geográficos, relacionaremos estes dois universos:
• Universo Conceitual, que contém uma definição matemática formal das entidades do
mundo real, consideradas relevantes para o estudo;
• Universo de Representação, onde as diversas entidades formais são mapeadas para
representações geométricas.
2.1.1 Universo Conceitual
“O dado geográfico pode ser estudado segundo duas visões complementares: o modelo de
campos e o modelo de objetos” Câmara et al. (1996). O modelo de campos enxerga o
mundo como um superfície contínua, sobre a qual os fenômeno geográfico variam
segundo diferentes distribuição. O modelo de objetos representa o mundo como uma
superfície ocupada por objetos identificáveis, com geometria e características próprias.
Compartilhando da mesma visão, Goodchild (1992) cita: “da análise do universo do mundo
real pode-se constatar que as aplicações de Geoprocessamento lidam com dois grandes
tipos de dados:
24
! Campo geográfico (Geo-campos): correspondem a grandezas distribuídas
espacialmente, como tipo de solo, topografia e teor de minerais.
! Objetos geográficos (ou Geo-objetos): individualizáveis e tem identificação com
elementos do mundo real, como lotes num cadastro urbano e postes numa rede
elétrica.”
A identificação de Geo-campos se distingue em muito da identificação de Geo-objetos: p. ex.,
um solo arenoso é um valor para um Geo-campo que pode estar espalhado em manchas
desconexas em mapa de classificação de solo; já a rodovia D. Pedro I é um Geo-objeto único.
No entanto, Geo-objetos podem estar associados a mais de uma representação geométrica, ou
seja, a rodovia D. Pedro I pode ter um mesmo identificador no banco de dados e mais de
uma representação em mapas diferentes em escala e nível de detalhes.
Classes de Dados em SIG:
No modelo de dados do SPRING (Câmara, 1995) o universo conceitual toma como base
as classes Geo-campos e Geo-objetos e as especializam em tipos de dados que suportam os
dados geográficos em conformidade com suas características, as quais seriam:
Temático: É um Geo-campo que caracteriza um mapa temático, onde cada posição
do campo possui uma identificação do tema a que pertence, um
exemplo seria um mapa de vegetação que é caracterizado pelo conjunto
de temas (p. ex.: floresta densa, floresta aberta e cerrado);
Numérico: É um Geo-campo que caracteriza um modelo numérico de terreno, onde
cada posição do campo possui um valor real que descreve a ocorrência
de um fenômeno, p. ex.: mapa de campo magnético ou mapa de
altimetria;
Imagem: É uma especialização da classe Numérico onde os atributos são inteiros
naturais (Ν) que caracteriza um valor de intensidade e cor para dados
de sensoreamento remoto, p. ex.: imagens de satélite, imagens de radar,
fotografia aérea, etc.;
25
Cadastral: É um conjunto de representações de Geo-objetos para uma mesma área
geográfica, projeção cartográfica e escala, p. ex.: Mapa de Lotes de uma
cidade.
Redes: É uma especialização da classe Cadastral que armazena estruturas e
localidades linearmente, p. ex.: rede elétrica.
2.1.2 Universo de Representação
No universo de representação, definimos as representações geométricas que estão
associadas às classes do universo conceitual; Primeiramente, devemos considerar as duas
grandes classes, ou estrutura de dados, para representações geométricas: Representação
Vetorial e Representação Matricial:
A Representação Vetorial:
“Todo fenômeno geográfico em princípio pode ser representado por um ponto, uma linha
ou uma região com um rótulo identificando-o” (Burrough, 1986). A representação vetorial
podem ser resumida neste três conceitos (ponto, linha e região) vide Figura 2.1. Desta
forma, uma antena emissora de TV, p. ex., pode ser representada por um ponto, através do
par de coordenadas XY e seu rótulo “Antena X”. Analogamente o mesmo se dá com
estradas, oleodutos e limites políticos quando representados por linhas. Já uma região é um
conjunto de polígonos identificados por um mesmo rótulo , podendo ser composto por
várias ocorrências discretas (vários polígonos que identificam o mesmo fenômeno) e
podendo conter regiões de rótulo diferente dentro destes polígonos (polígonos com furos).
Figura 2.1 - Componentes básicos de Vetorial: Ponto, Linha e Região
26
Apesar de nossos olhos poderem facilmente distinguir em um mapa os relacionamentos
topológicos, para sua representação computacional é necessário explicitá-los em cada
componente do mapa (ponto, linha e região) em uma estrutura de dados conhecida como
Estrutura arco-nó-polígono (Worboys, 1995), vide Figura 2.2. Esta estrutura de dados visa
manter consistente os relacionamentos topológicos entre todos os elementos do mapa, o
que irá possibilitar a aplicação de operadores de análise e consultas que requerem topologia.
Figura 2.2 - Estrutura Topológica
27
A Representação Matricial:
A mais simples das estruturas de dados matriciais consiste de uma grade de células. Cada
célula é referenciadas pela linha e coluna que a contém e um número que representa o tipo
ou valor de seu atributo, ex. Figura 2.3 e Figura 2.4:
Figura 2.3 – Exemplo de Sensoreamento Remoto (imagem LandSat de Poçosde Caldas-MG)
Figura 2.4 – Exemplo de Mapa Temático (geologia de Poços de Caldas)
28
Classes de Dados e sua Representação:
Neste ponto é necessário estabelecer o relacionamento entre o Universo Conceitual e o
Universo de Representação, ou seja, entre as classes de dados e sua representação:
Temático: A princípio é capturado pelo SIG como dado Vetorial, mas para fins de
cruzamento de informações, em procedimentos de análise, pode
possuir uma representação Matricial produzida através de conversão
Vetorial-Matricial.
Numérico: Pode ser capturado pelo SIG como dado Vetorial, p. ex. curvas de nível,
valores para pontos de amostras regulares ou irregulares, mas para fins
de operações de análise deve possuir uma representação Matricial
produzida através de procedimentos de interpolação dos valores
amostrados.
Imagem: É tipicamente um dado Matricial, .
Cadastral: É representado por uma estrutura topológica arco-nó-poligno, podendo
suportar pontos, linhas e regiões.
Rede: É representado por uma estrutura topológica de arco-nó, podendo
suportar pontos e linhas.
2.2 Estrutura de um Banco de Dados GeográficosAtravés do processo de definir o esquema conceitual de um banco de dados geográficos no
SPRING o usuário estrutura o banco de dados de sua(s) aplicações. Este processo consiste
em definir Categorias, as Categorias estendem as classes de dados do SPRING, criando classes
derivadas de Geo-objeto, Cadastral, Rede, Não-Espacial, Temático, Numérico e Imagem. Os nomes
das Categorias que são fornecidos pelo próprio usuário. O exemplo a seguir define o
esquema conceitual para um banco de dados geográficos para cadastro rural. Na Figura 2.5
é apresentado o modelo de classes deste banco de dados, as setas identificas como “is-a”
indicam especializações.
29
" uma Categoria “Fazendas”, especialização de Geo-objeto
" uma Categoria “Mapa de Propriedades”, especialização de Cadastral, que define um
mapeamento para os objetos da classe fazendas e suas especializações.
" uma Categoria “Mapa de Solos”, especialização de Temático, cujas instâncias
armazenam o tipo de solos para as áreas de estudo;
" as Categoria “Altimetria” e “Declividade”, especializações de Numérico, cujas
instâncias guardam (respectivamente) a topografia e a declividade da área de estudo;
" uma Categoria “Dados LandSat”, especialização de Imagem, cujas instâncias contêm
as imagens do satélite LandSat sobre a região de estudo.
GeoCampo Cadastral
is-a
GeoObjeto
Temático MNT
DadoSens. Rem.
FazendasMapaPropriedades
Mapasolos
Altimetria DeclividadeDados
LANDSAT
is-a
is-a
is-mapped-in
is-a
is-a
is-ais-a
is-ais-a
Figura 2.5 – Exemplo de definição do Esquema Conceitual.Adaptado de Câmara (1995)
2.2.1 Instanciação do modelo
A população do banco de dados geográfico, no exemplo específico do SPRING (Câmara
1995), se dá pela inclusão no sistema de Planos de Informação. Em última análise um Planos de
Informação é um mapa (isto é verdade para as Categorias Imagem, Numérico, Cadastral. Temático e
Redes). Cada Plano de Informação é uma instância direta da Categoria a que pertence, p. ex.:
“MapaBasico” da Categoria “Mapa solos”.
30
Multi-representação e a Instanciação:
No modelo de dados do SPRING, um Plano de Informação pode ter mais de uma
representação. Por exemplo, uma Plano de Informação de um Categoria do tipo Temático pode
ter uma representação Vetorial e outra Matricial (Figura 2.6).
Plano deInformação
Represent.Geom.
Matricial Vetorial
é-um
is-represented-by
é-um
Figura 2.6 - Representação
2.3 Análise EspacialUm sistema de informações geográficas não é apenas um repositório de dados geográficos
que possibilita procedimentos de automatização de desenho. A característica fundamental
de um SIG é sua capacidade de gerar novas informações a partir dos dados disponíveis em
seu repositório. Este processo é denotado por termo “análise espacial” e envolve um
conjunto de operadores sobre campos e objetos geográficos.
Esta seção faz uma apresentação sucinta da hierarquização destes operadores. Sua
utilização prática é discutida no próximo Capítulo.
2.3.1 Operações sobre Campos
Descrevemos nesta seção as operações sobre Geo-campos e suas especializações Temático,
Numérico e Imagem, que podem ser classificados como (Tomlin, 1990):
1) Pontuais: a saída da operação é um Geo-campo cujos valores são função apenas dos
valores dos Geo-campos de entrada em cada localização correspondente. Podem
operar apenas sobre um campo (p. ex. fatiar um modelo numérico de terreno,
classificar uma imagem) ou realizar intercessões entre conjuntos espaciais (p. ex.
operações booleanas entre mapas temáticos).
31
2) Vizinhança: o resultado é um Geo-campo cujos valores dependem da vizinhança da
localização considerada. (p. ex. filtragem espacial de uma imagem, cálculo de
declividade de um Numérico)
3) Zonais: caso especial de (2), estas operações são definidas sobre regiões específicas
de um Geo-campo de entrada, onde as restrições são fornecidas por outro Geo-campo
temático. (p. ex. “dado um mapa de solos e um mapa de declividade da mesma
região, obtenha a declividade média para cada tipo de solo”).
4) Propriedades: operações que devolvem valores (escalares ou vetores) de um Geo-campo
ou um conjunto de Geo-campos. (p. ex. “calcule a altitude média do terreno” e
“obtenha o histograma de uma imagem”).
2.3.2 Operações sobre Objetos
As operações sobre Geo-objetos incluem:
• Restrições sobre atributos: computados em função dos atributos de entidades
espaciais (p. ex. “selecione todas as cidades de Alagoas com mortalidade infantil
maior que 10% ?”).
• Restrições espaciais: derivados a partir dos relacionamentos topológicos das entidades
geográficas (p. ex. “dê-me todos as escolas municipais do bairro Jardim Satélite”),
de direção (“ao norte de”, “acima de”) ou métricos (e.g. “dê-me todas as escolas a
menos de 500 m da Via Dutra”).
• Propriedades de Geo-objetos: os resultados correspondem a predicados de um Geo-objeto
ou de um conjunto de Geo-objetos (p. ex. “calcule a média do valor venal das casas
do bairro Jardim Esplanada” ou “indique o caminho ótimo para o ônibus que vai
do Centro ao Jardim Planalto”).
32
2.3.3 Operações entre Campos e Objetos
As operações que combinam campos e objetos incluem:
• Atualização de atributos de objetos, a partir de Geo-campos: Exemplo: “Dados a altimetria e
o mapa de municípios do Vale do Paraíba, crie um novo mapa aonde cada município
terá o atributo “altitude média” atualizado a partir dos dados numéricos.
• Atualização de atributos de objetos, a partir de restrições booleanas aplicadas a um conjunto de Geo-
campos. Exemplo: “Atualize o mapa de municípios da Amazônia, indicando a área de
cada município onde ocorreu desmatamento em 1996”.
• Geração de objetos e um mapa cadastral associado, a partir de Geo-campos: Exemplo:
“Identifique as áreas homogêneas de uma região a partir da interseção dos mapas de
vegetação, solos e geologia.” ( operação de identificação).
• Operações que geram Geo-campos a partir de atributos de objetos. Exemplo: “Gere um mapa
temático da distribuição de renda no Brasil, a partir do mapa de municípios do IBGE”.
(operação de Reclassificação por Atributos). Pode haver a necessidade de se recalcular
a topologia do mapa resultante pois as regiões serão combinadas.
• Operações que geram Geo-campos a partir de propriedades de objetos: Exemplo: “Determine a
região que dista 50m da rodovia para que não haja queima de cana”. (Mapa de distâncias,
Buffer): gera um Geo-campo contendo as distâncias de cada ponto do mapa a um Geo-
objeto de referência (representado por um ponto, linha ou região).
33
2.3.4 Relações de Operadores
Em Câmara (1995) encontramos a seguinte relação de operadores (Tabela 2.1) indicando,
para cada operação: a classe dos objetos de entrada e de saída, e dos objetos modificadores
(quando cabível) e as restrições de cada operação:
Tabela 2.1 - Operações sobre Campos e Objetos. Fonte: Câmara (1995).
Operação Objeto Entrada Objeto Modificador Objeto Saída RestriçãoPonderação TEMÁTICO NUMÉRICO (função unária)Fatiamento NUMÉRICO TEMÁTICO (função unária)Reclassificação TEMÁTICO TEMÁTICO (função unária)Booleana NUMÉRICO,
TEMÁTICOTEMÁTICO (regras)
Matemática NUMÉRICO NUMÉRICO (fórmula)Vizinhança NUMÉRICO,
TEMÁTICONUMÉRICO,TEMÁTICO
(função local eforma davizinhança)
Zonais NUMÉRICO TEMÁTICO NUMÉRICOSeleçãoEspacial
GEO-OBJETO(conjunto)
CADASTRAL GEO-OBJETO(conjunto)
(predicado espacial)
JunçãoEspacial
GEO-OBJETO(conjuntos)
CADASTRAL GEO-OBJETO eVALORES(conjunto)
(predicado espacial)
Identificação TEMÁTICO GEO-OBJETO(conjunto)CADASTRAL
IntersecçãoEspacial
TEMÁTICO (n) GEO-OBJETO(conjunto)CADASTRAL
MapaDistâncias
GEO-OBJETO CADASTRAL TEMÁTICO (predicado métrico)
ReclassificaçãoAtributos
GEO-OBJETO(conjunto)
CADASTRAL TEMÁTICO (atributo)
Zonal sobreGEO-OBJETOs
TEMÁTICO,NUMÉRICO
GEO-OBJETO,CADASTRAL
TEMÁTICO,NUMÉRICO
Seleçãoespacial (restr=GEO-CAMPO)
GEO-OBJETO(conjunto)
CADASTRAL,TEMÁTICO,NUMÉRICO
GEO-OBJETO(conjunto)
(predicado espacial)
35
CAPÍTULO 3
ÁLGEBRA DE MAPAS EM LEGAL
Neste Capítulo é apresentada uma visão geral de LEGAL, seus objetivos e características.
O enfoque principal será sobre os operadores de álgebra de mapas, restrito a operadores
sobre Geo-campos. Outros operadores, exemplos, extensões e aplicações de LEGAL podem
ser vistos em Barbosa (1998), mecanismos de consulta e recuperação estão descritos em
Câmara (1995). Para facilitar a leitura dos exemplos a seguir, diferenciando os comentários
das palavras reservadas da linguagem, estas últimas aparecem no texto em fonte COURIER
e sem acentuação.
3.1 Classificação de LEGALNo contexto de interfaces usuário-computador, LEGAL é classificada como “interface por
linguagem de programação”, possuindo as características, vantagens e desvantagens inerentes a
este tipo de interface, o que será discutido no próximo capítulo. Para executar um
procedimento de análise espacial em LEGAL, o usuário utiliza um editor de texto para
escrever programas, seguindo a gramática desta linguagem, e submete-os ao interpretador
da linguagem do SIG. No caso de LEGAL o interpretador vem sendo desenvolvido como
um módulo adicional ao SPRING.
3.2 Características de LEGALLEGAL foi proposta por Câmara (1995) com o objetivo de prover um ambiente geral para
análise geográfica, incluindo operações de manipulação, operações de consulta espacial e
operações de apresentação. Enquanto outros sistemas tratam estas classes de operações de
forma separada, obrigando o usuário a mudar de ambiente muitas vezes durante uma seção
de trabalho, em LEGAL o usuário tem todas estas funcionalidades numa mesma
linguagem, podem-se expressar um procedimento completo através de um programa em
LEGAL.
36
3.2.1 Classes do modelo de dados e sua representação em LEGAL.
Como visto no Capítulo anterior o processo de modelagem resulta em classes de dados de
uso específicos para cada finalidade. Na prática estas classes são nomes reservados da
linguagem que permitem ao usuário organizar os dados da sua aplicação. Em LEGAL,
como na maioria das linguagens de programação, os dados são representados por variáveis
e é necessário que a classe da variável seja compatível com a classe de dados que ela
representa. Em LEGAL uma variável representa um dado pertencente ao banco de dados
no ambiente do SPRING, e portanto as tipos de variáveis disponíveis tem relação direta
com o modelo de dados geográfico do SPRING:
! Cadastral para instâncias de cadastral;
! Tematico para instâncias de Temático;
! Imagem para instâncias de Imagem;
! Digital para instâncias de Numérico.
! Objetos para instâncias de Geo-objeto;
! Nao-espacial para instâncias de dado Não-espacial;
! Rede para instâncias de Rede;
3.2.2 Seções de um Programa em LEGAL
O formato geral de um programa escrito em LEGAL deve compreender as seções de
declaração, instanciação e de operações de transformação (Figura 3.1). Cada uma com o
respectivo objetivo:
37
{
declarações ;
instanciações ;
operações ;}
Figura 3.1 - Três seções de um programa em LEGAL. Fonte: (INPE, 1998).
Declaração: nesta seção definem-se variáveis de trabalho. Cada variável deve ser
declarada explicitamente, isto é, deve fornecer um nome e associá-la
a uma categoria no esquema conceitual.
Instanciação: nesta seção recuperam-se os dados já existentes do banco de dados
ou cria-se um novo Plano de Informação. Este novo Plano de Informação
poderá então ser associado ao resultado de operações em Legal.
Operação: nesta seção, realizam-se as operações da álgebra de mapas.
Cada sentença em LEGAL pode envolver símbolos (por exemplo, “{“, “(“, “;”, “,”),
operadores (por exemplo, “+”, “*”, “&&”, “||” , “<”, “<=”, “!=”‘), palavrasreservadas (por exemplo, Novo, Tematico, Nome, ResX), nomes de variáveis e
nomes de dados (Planos de Informações). Os nomes dos Planos de Informações,
categoria e classes temáticas devem ser escritos entre aspas (“”). As palavras reservadas
iniciam com maiúscula e não utilizam acentos (por exemplo, Tematico).
Declaração:
Na seção de declaração define-se o nome de uma ou mais variáveis que poderão ser
utilizadas no decorrer do programa. Toda variável deve ser declarada antes de ser usada por
algum comando da linguagem. É através destes nomes de variáveis que o programa acessa
os dados geográficos disponíveis no sistema. Além de definir o nome de uma variável, a
ação de declaração também determina que categoria de dados geográficos presentes no
banco poderão posteriormente ser associados a este nome (Figuras 3.2, 3.3).
38
Sintaxe:
Imagem , Numerico , Tematico nome_variável ( “nome_categoria”) ; Objetos Cadastral
Figura 3.2 - Sintaxe da declaração de Planos de Informação. Fonte: INPE (1998).
Exemplos de declaração de Planos de Informações:
Imagem banda3, banda4, ivdn ("LANDSAT"); Tematico solo("Tipo_Solo"), geo("geologia"); Digital alti1 ("ALTIMERIA"); Tematico solos("pedologia"); Digital solonumerico("ponderacoes"); Imagem TM5("ancoras");
, ,
Tabela nome_variável ( Reclassificacao ) ; ( Fatiamento ) ( Ponderacao )
Figura 3.3 - Sintaxe da declaração de tabelas de transformações. Fonte: INPE (1998).
Exemplos de declaração de Tabelas:
Tabela pesos(Ponderacao); Tabela faixas(Fatiamento); Tabela classes(Reclassificacao);
Instanciação:
A instanciação é caracterizada pelos comandos Recupere e Novo. O comando
Recupere associa o nome de uma variável a um Plano de Informação existente no banco de
dados geográfico corrente; já o comando Novo cria um novo Plano de Informação (vide
Figuras 3.4 e 3.5)
39
Sintaxe:
variável = Novo ( Nome = “nome_pi”, parâmetros ) ; Recupere ( Nome = “nome_pi” )
onde, parâmetros: resolução , Caso Imagem
escala , representação Caso Temáticolimites , Caso Numérico
onde: resolução : ResX = numero, ResY = numeroescala : Escala = numerolimites : Min = numero, Max = numerorepresentação : Repres = Vetor Caso
TemáticoRepres = Raster Caso Temático
Figura 3.4 - Sintaxe da Instanciação de Planos de Informação. Fonte: INPE (1998).
Exemplos de recuperação de Planos de Informações:
tema = Recupere (Nome = "baciashidrograficas"); alti = Recupere (Nome = "CotasAltimetricas"); ima = Recupere (Nome = "TM4");
variável = Novo ( categorias , entradas );
onde, categorias: CategoriaIni = “categoria”,
CategoriaFim = “categoria” ,
e entradas : lista_de_ponderação lista_de_fatiamento lista_de_reclassificação
,onde, lista_de_ponderação: ,
“classe” : numero ,
lista_de_fatiamento: , [numero, numero] : “classe”
, lista_de_reclassificação: ,
“classe” : “classe”
Figura 3.5 - Sintaxe da instanciação de Tabelas. Fonte: INPE (1998).
40
Exemplos de criação de Planos de Informações:
solo = Novo (Nome = "Solos_A", ResX=50, ResY=50,
Escala=100000, Repres = Vetor);
alti = Novo (Nome = "Altimetria", ResX=50, ResY=50,
Escala=1000, Min=0, Max=100);
Ima = Novo (Nome = "ImagemTM_Res", ResX=30, ResY=30);
Exemplo de tabela de reclassificação: Grupo = Novo(CategoriaIni="Vegeta",
CategoriaFim="Vegeta","Db", "Ds1", "Ds2", "Ds4", "Dm" :"Florestabrofila","Pfm", "Pa", "Pah" : "FmPioneiras", "Ap" :"Floresfila");
Exemplo de tabela de fatiamento:
grupo = Novo(CategoriaFim = "Vegetacao",[0.0, 0.2]: "Floresta",[0.2, 0.45], [0.8, 1.0]: "Mata_galeria",[0.45, 0.8]: "Cerrado");
Exemplo de tabela de ponderação:
ponde1 = Novo(CategoriaIni = "Vegetacao","Floresta": 0.2,"Mata_galeria", "Mata": 0.43"Cerrado"): 0.456);
Operação:
Após a declaração e instanciação de variáveis segue-se a definição das ações, através da
construção de expressões, que em LEGAL são representados por operações. Numa
operação uma variável recebe o resultado do processamento de expressões envolvendo
operadores da linguagem que atuam sobre as variáveis declaradas e instanciadas
previamente no programa. O diagrama abaixo (Figura 3.6) mostra os possíveis
relacionamentos em operações:
41
variável = expressão_realexpressão_imagemexpressão_tematicaexpressão_numéricaexpressão_condicionalexpressão_booleana
Figura 3.6 - Sintaxe geral para Operações em LEGAL. Fonte: INPE (1998).
Os operadores aritméticos “+”, “−”, “*”’, “/”e “^”, assim como funções matemáticas
(seno, tangente, etc.), são entendidos como pontuais ou locais, isto é, atuam sobre cada
elemento de representações matriciais de imagens ou grades numéricas, ou sobre elementos
vizinhos que são localizados relativamente a um elemento de referência.
Expressão Imagem
Expressões Imagem compõem o conjunto das operações possíveis sobre a classe Imagem
(Figura 3.7):
Expressão Imagem op
variável = variável_imagem Imagem ( expressão_real ) Imagem ( expressão_numérica ) - expressão_imagem expressão_real op expressão_imagem expressão_imagem op expressão_real ( expressão_imagem ) expressão_imagem [expressão_real , expressão_real] função_matematica ( expressão_imagem )
Onde: op são operadores como: + - * / ^
Figura 3.7 - Sintaxe de Operações sobre Imagem. Fonte: INPE (1998).
Exemplos de expressões imagem:
ima1 = Imagem(grade1); ima3 = ima2 + 20; res_ima1 = abs(sen(ima1)- 255);
42
Expressão Numérica
Expressões Numéricas compõem o conjunto das operações possíveis sobre a classe
Numérico (Figura 3.8):
Expressão Numérica op
variável = variável_numérica Numerico-’(’-expressão_imagem-) Numerico-’(’-expressão_real ) Pondere-’(’-expressão_tematica , variável_tabela- ) - expressão_numérica expressão_real op expressão_numérica expressão_numérica op expressão_real ( expressão_numérica ) expressão_numérica-[expressão_real , expressão_real] expressão_condicional_numérica função_matematica ( expressão_numérica )
Onde: op são operadores como: + - * / ^
Figura 3.8 - Sintaxe de Operações sobre NUMERICO. Fonte: INPE (1998).
Exemplos de expressões numéricas:
ph_fe1 = Numerico(banda_spot2); soma_grade = (grade_solo + grade_decl)/2; grade_seno = sen(grade1);
Expressão Temática
Expressões Temáticas compõem o conjunto das operações possíveis sobre a classe Temática(Figura 3.9).
Expressão Temática variável = variável_temática ;
variável_temática . Classe Classe (”geoclasse”) Fatie ( expressão_numérica , variável_tabela ) Reclassifique ( expressão_tematica , variavel_tabela ) Atribua ( CategoriaFim = “categoria" ) {lista_de_casos} expressão_numérica-[expressão_real , expressão_real]
, Onde : lista_de_casos : ”geoclasse” : (expressão_booleana)
Figura 3.9 - Sintaxe para Operações sobre Tematico. Fonte: INPE (1998).
43
Exemplos de expressões temáticas:
cl_decliv = Fatie (decliv,tab_decliv);
desmat = Reclassifique (cobertura, tab_recl);
aptidao = Atribua (CategoriaFim = "Aptidao")
{"Boa" : (solo.Classe == "LatosoloRoxo" &&
decliv.Classe == "O-3"),"Inapto" :
(solo.Classe == "AreiaQuat" && decliv.Classe
== ">8") };
Expressão Condicional
Expressões Condicionais atuam sobre classes de dados indistintamente compondo as
expressões já mencionadas (Figura 3.10).
Expressão Condicional : variável = expressão_condicional_imagem
expressão_condicional_digital expressão_condicional_temática
Onde:expressão_condicional_temática:(expressão_booleana) ? expressão_temática : expressão_temática
expressão_condicional_imagem:(expressão_booleana) ? expressão_imagem : expressão_imagem
expressão_condicional_digital:(expressão_booleana) ? expressão_numérica : expressão_numérica
Figura 3.10 - Sintaxe de Expressão Condicional.Fonte: INPE (1998).
Exemplo de expressão condicional:
Imag_out = (ta.Class == "mata") ? Imagem (TM5): 0;
Expressão Booleana
As expressões booleanas envolvem todos os tipos de expressões (Figura 3.11). O valor
resultante de uma tal expressão deve ser verdadeiro (TRUE) ou falso (FALSE), podendo
ser feito da comparação entre pixels de imagens ou valores de grade através dos operadores
“<”, “>”, “<=”, “>=”, “==” e “!=”‘; ou da comparação entre classes de Planos de
Informações temáticos através dos operadores “==” e “!=”. Podendo envolver até 40
Planos de Informações simultaneamente. Expressões booleanas podem ainda ser
44
combinadas a partir dos operadores “&&” (e lógico, intercessão), “||” (ou lógico, união) e
“!” ou “~” (negação, complemento).
|| && ! = = != < > <= >=
expressão_numérica expressão_imagem
expressão_tematica ! expressão_booleana
(expressão_booleana)
Figura 3.11 - Sintaxe de Expressões Booleana.Fonte: INPE (1998).
3.3 Classificação de Operadores em LEGAL
A linguagem LEGAL dispõe de um certo número de operadores sobre Geo-campos, a fim de
desenvolver os modelos de análise geográfica, porém, esta linguagem está em constante
evolução e novos operadores vão sendo acrescentados a cada nova versão. Isto implica no
requisito de extensibilidade para a interface usuário-computador como será visto no
próximo capítulo.
3.3.1 Operadores entre GEO-campos
As operadores entre Geo-campos disponíveis na versão hora em desenvolvimento da
Linguagem LEGAL são melhor apresentadas segundo a seguinte classificação: Operadores
Pontuais e os Operadores Locais e Zonais, a saber:
• Operadores Pontuais : As operações pontuais se distinguem por atuarem em cada
ponto do mapa baseado somente em seu valor não levando em consideração os valores
dos pontos vizinhos.(Figura 3.12a).
• Operadores Pontuais Unários: Os operadores Pontuais Unários requerem que o
usuário defina um tabela de mapeamento entre os Geo-campos de entrada e de saída. O
usuário cria uma instancia da classe Tabela do tipo: Tabela_de_fatiamento,
Tabela_de_ponderacao, Tabela_de_reclassificacao, conforme o
respectivo operador, Fatie, Pondere e Reclassifique.
45
• Operadores Locais: São operações de vizinhança, que levam em consideração os
valores dos pontos próximos na mesma região do Geo-campo de entrada, para
determinarem o valor para a mesma posição do Geo-campo de saída. Em operadores
Locais a região de Vizinhança é definida por uma máscara regular (Figura 3.12b).
• Operadores Zonais Operações zonais são um subconjunto de operações de vizinhança
onde a máscara são substituídas por classes de um Geo-campo temático (figura 3.12c).
Figura 3.12 - Classes de Operadores. Adaptado de Barbosa (1998).
Operador : FATIE (PONTUAL UNÁRIO)
46
O operador Fatie transforma um Numérico ou uma Imagem em um Temático. Sua tabela de
mapeamento estabelece as faixas de valores do Geo-campo que irão compor as Geo-classes do
plano de informação Temático a ser gerado.
Exemplo:
A Figura 3-13 abaixo mostra um exemplo de uma operação de
fatiamento onde um mapa de declividade em graus é convertido para um
mapa de classes de declividade a partir da transformação: {(0-5%)-
"baixa"; (5-15%)-"média"; (acima de 15%)-"alta"}.
Figura 3.13 - Operação de Fatiamento. Fonte: INPE (1998).
Código em LEGAL:
{
// Declaração de Variáveis
Tematico classes_decl ("Declividade");
Numerico decliv_num ("Declividade_Numerica");
Tabela tab_fatia (Fatiamento);
// Definicao da tabela de fatiamento
tab_fatia = Novo ( CategoriaFim = "Declividade",
[0.0, 5.0] : "Baixa",
[5.0, 15.0]: "Media",
[15.0, 45.0]: "Alta");
// Recuperação do PI de Declividade Numérica
decliv_num = Recupere (Nome = "Declive_SJC");
// Geracao do PI de saida
classes_decl = Novo (Nome = "Classes_Decl",
ResX = 50, ResY = 50,
Escala = 100000);
// Operação de Fatiamento
classes_decl = Fatie (decliv_num, tab_fatia);
}
47
Operador : PONDERE (PONTUAL UNÁRIO)
O operador Pondere transforma um Temático em um Numérico através da uma tabela de
ponderação. Sua tabela de mapeamento estabelece valores para o Geo-campo de saída
conforme as Geo-classes de entrada.
Exemplo:
A Figura 3.14 mostra um exemplo do operador de ponderação (conversão de
um mapa de solos em um mapa de solos ponderado). Neste caso, o Plano de
Informação de entrada é Temático, um mapa de solos com as classes { Le, Li, Ls,
Aq } e o Plano de Informação de saída é Numérico cujos valores estão entre 0.0 e 1.0
e a operação de ponderação consiste na associação {(Le-0.60), (Li-0.20), (Ls-
0.35), (Aq-0.10)}.
Figura 3.14 - Operação de Ponderação. Fonte: INPE (1998).
Código em LEGAL:
{
// Parte 1- Declaracao
Tematico SOLOS ("Solos");
Tabela ponderaSOLO (Ponderacao);
Numerico SOLOpond ("SoloPonderado");
// Definicao da Tabela de Pesos
ponderaSOLO = Novo (CategoriaIni = "Solos",
Le : 0.60,
Li : 0.2,
Ls : 0.35,
Aq : 0.1);
// Parte 2 – Instanciacao do mapa de solos
SOLOS = Recupere (Nome = "SoloCE");
// Criacao do novo mapa de solos ponderado
SOLOpond = Novo (Nome = "solop",
ResX = 30, ResY = 30,
Escala = 100000, Min = 0, Max = 1);
// Parte 3 – Operacao de Ponderacao
SOLOpond = Pondera (SOLOS, ponderaSOLO);}
48
Operador : RECLASSIFIQUE (PONTUAL UNÁRIO)
O operador RECLASSIQUE transforma um mapa Temático em outro Temático de classe
distinta. Sua tabela de mapeamento estabelece quais as Geo-classes do Temático de entrada
que irão compor as Geo-classes do Temático de saída.
Exemplo:
Como exemplo, temos um mapa de cobertura do solo na Amazônia com
diferentes classes {"Floresta Densa", "Floresta Várzea", "Rebrota", "Área
Desmatada", "Cerrado"}. Este mapa Temático será reclassificado para um novo
mapa apenas com as classes {"Floresta", "Desmatamento", "Cerrado"}.
Código em LEGAL:
{
// Parte 1 – Declaração
Tematico cobertura ("Floresta");
Tematico desmat ("Desmatamento");
Tabela tab_recl (Reclassificacao);
tab_recl= Novo(CategoriaIni = "Floresta",
CategoriaFim = "Desmatamento",
"FlorestaDensa" : "Floresta",
"FlorestaVarzea" : "Floresta",
"Rebrota" : "Desmatamento",
"AreaDesmatada" : "Desmatamento",
"Cerrado" : "Cerrado");
// Parte 2 – Instanciação- Recuperação da variável
cobertura = Recupere (Nome = "Uso_JiParana");
// Criação do novo PI
desmat = Novo (Nome = "Desmat_JiParana", ResX= 30,
ResY = 30, Escala = 100000);
// Parte 3 – Operação Reclassificação
desmat= Reclassifique (cobertura, tab_recl);
}
49
Operador : ATRIBUA (Operações Booleanas entre GEO-CAMPOS)
Trata-se de uma operação pontual unária que realiza transformações baseado no valor de
cada posição de mais de um Geo-campos de entrada através de álgebra booleana.
Este tipo de operação recebe como entrada um Imagem, Numérico ou Temático e retorna um
dado Temático. É necessário informar um conjunto de regras booleanas para determinar
quais condições dos dados de entrada irão satisfazer às classes dos dados de saída.
Exemplo:
A Tabela 3.1 a seguir exemplifica o uso de operação booleana aplicado a
classificação de aptidão agrícola:
Tabela 3.1 - Exemplo: “Regras para Aptidão Agrícola” Fonte: INPE (1998)
Aptidão Solos Declividade
Boa Latossolo Roxo 0-3%
Média Latossolo Vermelho-Amarelo 3-8%
Inapto Areia Quartzosa >8%
Código em LEGAL:
{
// Parte 1 – Declaração
Tematico solos ("Solos"), aptidao ("Aptidao"),
decliv ("Declividade");
// Parte 2 – Instanciação
decliv = Recupere(Nome = "Decliv94");
solos = Recupere (Nome = "Solos94");
aptidao = Novo (Nome = "apt94", ResX=50, ResY=50,
Escala = 50000);
// Parte 3 – Operacao
aptidao= Atribua (CategoriaFim = "Aptidao")
{ "Boa" : (solo.Classe == "LatosoloRoxo" &&
decliv.Classe == "O-3"),
"Media" : (solo.Classe == "LatosolVeAm" &&
decliv.Classe == "3-8"),
"Inapto" : (solo.Classe == "AreiaQuat" &&
decliv.Classe == ">8")};
}
50
Operações Matemáticas (Pontuais)
São operações matemáticas pontuais as expressões matemáticas que atuam sobre Planos de
Informação da Categoria Numérico e Imagem onde as expressões válidas são:
operações aritméticas: soma (+), subtração (-), multiplicação (*) e divisão (/);
funções matemáticas: seno (sin), cosseno (cos), tangente (tan), arcoseno (asin), arco-
cosseno (acos), arco-tangente (atan), logaritmo (log),
logaritimo base 10 (log10), exponencial (exp), raiz quadrada
(sqrt), inteiro (int), valor absoluto (abs);
relações: menor que (<), maior que (>), menor ou igual (<=), maior ou
igual (>=), igual (==), diferente (!=).
Exemplo:
Como exemplo de operação matemática, tome-se a figura a seguir, onde o Plano de
Informação da esquerda é um mapa de solos ponderado e Plano de Informação da direita
é um mapa de declividade. Consideremos que desejamos computar um indicador de
adequação de solos como a soma do valor atribuído ao solo com o inverso da
declividade. A operação a seguir poderia ser utilizada como passo intermediário ao
calcular um mapa de adequação de solos (quanto maior o valor, mais adequado),
veja Figura 3.15.
Figura 3.15 - Operação Matemática. Fonte: INPE (1998).
51
Código em LEGAL:
{
// Parte 1 - Declaração
Numerico solo_pond ("Solo_ponderado"),
Decliv ("Declividade"),
aptidao ("AdequacaoNumerico");
// Parte 2 - Instanciação
decliv = Recupere (Nome = "Decliv94");
solo_pond = Recupere (Nome = "Solos94");
aptidao = Novo (Nome = "adequcao94",
ResX=50, ResY=50,
Min=0, Max=2, Escala = 50000);
// Parte 3 - Operacao
aptidao = solo_pond + 1/decliv;}
Operador: RECLATRIB (Reclassificação por Atributos).
São operações pontuais que reclassificam, reagrupam, classes baseadas em seus valores, ou
operações que nos permitem gerar Geo-campos a partir de Geo-objetos.
Sintaxe:
<Geo-campo> = Reclatrib (<Cadastral>, <Atributo>) ON
MAP <Cadastral>;
Exemplo:
Para ilustrar estas operações, consideremos o caso onde um mapa de distribuição
da pobreza do Brasil será obtido a partir dos dados do IBGE, agregados por estado.
Suporemos que um dos atributos é a renda per capita. Para isto é necessário uma
composição de operações: primeiramente é gerado um modelo de terreno com a
distribuição da váriavel renda per capita, que será em seguida fatiado.
52
Código em LEGAL:
{
Colecao estados Estado_Brasil;Tematico mapa_estados Mapa_IBGE;
Tematico campo_renda Campo_Renda;Tematico tab_fatia Slice_Table;
Atributo renda_per_capita FLOAT;Mapa_renda = Novo (nome = "Mapa Riqueza Brasil")
(RES_X = 1000m, RES_Y = 1000m);tab_fatia = Novo ( CLASS_OUT = RENDA,
([0-500] : "Miseravel",
(500-1000] : "Pobre",(1000-2000] : "Remediado",
>2000 : "Rico"));
mapa_renda = Fatie(Reclatrib(estados,renda_per_capita)
ON MAP mapa_estados), tab_fatia);}
Vizinhança:
As operações de vizinhança levam em consideração os valores dos pontos próximos na
mesma região do Geo-campo de entrada para determinarem o valor para uma posição do
Geo-campo de saída.
O processamento de um operador de vizinhança se dá pela definição de uma máscara que
se desloca a sobre o Geo-campo de origem e a cada passo deste deslocamento aplica uma
operação que se baseia nos valores das posições compreendidas pela máscara.
Operadores locais:
SomaL Calcula a soma local dos pontos do Geo-campo para uma vizinhança;
MédiaL Calcula a média local dos pontos para uma vizinhança especificada;
MaxL Determina o máximo local dos pontos do Geo-campo, dada uma
vizinhança;
MinL Determina o mínimo local dos pontos do Geo-campo, dada uma
vizinhança;
53
StdevL Calcula o desvio padrão dos pontos do Geo-campo, dada uma
vizinhança;
VarL Determina o número de valores distintos do Geo-campo, para uma
vizinhança em torno de cada ponto.
Sintaxe:
A sintaxe geral dos operadores locais é
<Geo-campo> = <operador_local> (<Geo-campo>,
<Local_region>);
onde a definição LOCALREGION pode ser implementada como um retângulo ou
um círculo. No primeiro caso, teremos:
<Geo-campo> = <operador_local> (<Geo-campo>,
<Retangulo>, <dim_h>,<dim_v>);
e no segundo:
<Geo-campo> = <operador_local> (<Geo-campo>,
<Circulo>, <raio>);
Parâmetros e Opções:
dim_h e dim_v - Dimensão da máscara vertical em número de células
raio - Dimensão do raio em número de células
Operadores zonais entre GEO-campos
Operações zonais são um subconjunto de operações de vizinhança onde a máscara são
substituídas por classes de um Geo-campo temático. O valor de cada posição do Geo-campo
gerado por uma operação depende do valor do atributo em todas as posições geográficas
que compõem a região no Geo-campo de origem.
54
Operadores Zonais:
MaxZ Determina o máximo zonal dos pontos do Geo-campo.
MinZ Determina o mínimo zonal dos pontos do Geo-campo.
MedZ Determina o médio zonal dos pontos do Geo-campo.
MaiZ Determina o maioria zonal dos pontos do Geo-campo.
MinoZ Determina o minoria zonal dos pontos do Geo-campo.
SomZ Determina o soma zonal dos pontos do Geo-campo.
VarZ (ou variabilidade), Determina a diversidade zonal dos pontos do Geo-
campo.
Sintaxe:
<campo> = <operador_zonal> (<Numerico>,
<Tematico>."Classe *");
3.4 Resumo das Operações sobre Geo-camposA Tabela 3.2 apresenta o resumo e a hierarquia das operações sobre Geo-campos
disponíveis em LEGAL:
Tabela 3.2 - Relação de Operadores sobre Geo-campos
CLASSIFICAÇÃO OPERADOR
Operadores Pontuais sobre Geo-ca mpos:
Operadores Unários:
Pondere Pondere
Fatie Fatie
Reclassifique Reclassifique
Operações Booleanas sobre Geo-ca mpos Atribua
Operações Matemáticas sobre Geo-c a mpos = <expressões matemáticas>
Operações Fuzzy sobre Geo-campo s Fuzzy, FuzzyR, FuzzyL
Operações de Vizinhança sobre Ge o -campos MaxZ, MinZ, MedZ, StdevL, SomZ, VarZ
Operações Zonais sobre Geo-camp o s MaxZ, MinZ, MedZ, MaiZ, MinoZ, SomZ, VarZ
55
CAPÍTULO 4
INTERFACES PARA ÁLGEBRA DE MAPAS
Segundo Oliveira (1996), "em Sistemas de Informações Geográficas (SIG), o modelo
conceitual não pode ser usado como modelo de representação para a interface (como
ocorre, por exemplo, com interfaces de bancos de dados relacionais). A modelagem de
dados em um SIG envolve conceitos espaciais usualmente expressos em estruturas de
baixo nível, que não são adequadas para a cognição espacial humana”. Mesmo assim, os
SIGs devem oferecer ao usuário as funcionalidades necessárias para que este possa
expressar seus modelos, fórmulas e procedimentos da maneira mais próxima possível da
sua percepção dos fenômenos espaciais.
O objetivo deste Capítulo é estabelecer os requisitos para o projeto de interface para
Álgebra de Mapas para o SPRING, serão revisados alguns conceitos de projetos de interface
usuário-computador, serão apresentados os paradigmas de interface e sua aplicação em álgebra
de mapas e serão revisadas algumas interfaces para álgebra de mapas existentes no mercado
ou propostas na literatura.
4.1 Projeto de Interfaces Usuário-ComputadorNo entender de Eberts(1994), “o projetista de interface deve conhecer a atividade cognitiva
do usuário a fim de projetar interfaces efetivas e fáceis de usar” Aspectos psicológicos da
teoria de cognição humana devem ser aplicados em Interfaces Usuário Computador (IUC)
para fazer com que o processamento das informações por parte do usuário seja rápido e
eficiente, reduzindo dúvidas e ambigüidades. O Projeto de Interface deve se basear no
Modelo Conceitual do sistema, concebido em uma fase anterior no processo de engenharia do
software, e no Modelo Mental do usuário, que é a forma como o usuário irá conceber o
funcionamento do sistema, como é ilustrado na Figura 4.1:
56
Projeto de InterfaceModelo Metal
Modelo Conceitual
Figura 4.1 - Processo de desenvolvimento de Projeto de Interfaces. Fonte: Adaptado de Eberts (1994).
O modelo conceitual deve estar o mais próximo possível do modelo mental, cabe ao projeto de
interface ajudar o usuário a formar um modelo mental conciso e coerente com o sistema. Uma
forma de fazer com que o modelo mental do usuário seja conciso é utilizando-se de
analogias e metáforas. O uso eficiente deste recurso visa minimizar o processo de
familiarização com o sistema. Para isto são escolhidos comandos, figuras e relacionamentos
semelhantes a situações rotineiras da atividade do usuário, para representar dados,
operadores, opções e relacionamentos no sistema informatizado.
4.2 Paradigmas de Interfaces para Álgebra de MapasNesta seção analisaremos paradigmas de interfaces aplicáveis a álgebra de mapas, os quais
são: interfaces por linha de comando ou linguagem de programação; interface por menus e formulários
e interfaces de manipulação direta. Foge ao escopo deste trabalho interfaces por linguagem
natural e comandos de voz e demais inovações que envolvem outra linha de pesquisa que
não a de interface gráficas com o usuário, ou Graphical User Interface (GUI).
4.2.1 Linhas de Comandos e Linguagens de Programação
Visão Geral
Neste categoria de interface, os sistemas oferecem uma ou mais linhas em branco onde o
usuário pode digitar uma expressão (no caso de linguagens de programação) ou comando
(no caso de interfaces por linha de comandos), informando ao sistema aquilo que pretende
que se faça. Para preencher estas linhas em branco, o usuário deve conhecer a sintaxe dos
comandos e expressões da linguagem.
Neste paradigma de interface, seu projetista tenta estabelecer metáforas através do uso de
expressões do jargão do usuário, com a finalidade de aproximar-se da sua linguagem
natural. "Na prática de SIGs este processo é prejudicado, muitas vezes, porque a estrutura
de dados acaba por influenciar na definição da linguagem, tornando necessário o uso de
termos como vector ou grid" (Lucena et al., 1997).
57
É necessário também que esta linguagem seja abrangente o suficiente para oferecer ao
usuário a facilidade de expressão de conceitos complexos na construção de modelos
espaciais com todos os operadores, parâmetros e tipos de dados necessários. Por este
motivo, a álgebra de mapas de Tomlin (1990) tem servido de referência para os projetistas
de SIG, no desenvolvimento de várias implementações.
Apesar da grande maioria do SIGs de mercado possuir interfaces gráficas baseadas em
ícones, menus e botões, o uso de linguagens de comando e linguagens de programação
continua sendo necessário para a realização de projetos complexos, que envolvem
procedimentos de modelagem. Entre as abordagens possíveis, podemos citar:
• Macro-comandos interpretados que operam através de através de
procedimentos atômicos (como o AML do ARC/INFO e os arquivos
“batch” do IDRISI e do GRASS). Cada comando tem de ser auto-contido
e fornecer todos os parâmetros necessários para sua operação.
• Linguagens de programação de propósito geral, às quais são acrescentados
operadores específicos de análise espacial e tipos de dados gráficos e
tabulares básicos (como o AVENUE do Arc/View ou o MapBasic do
Map/Info). Cabe ao usuário a responsabilidade de definir a semântica das
operações de análise espacial a partir dos tipos de dados básicos.
• Linguagens de programação específicas para geoprocessamento, com tipos
de dados de alto conteúdo semântico, como LEGAL, MAP e GRID. Os
programas são menores e mais legíveis, mas o usuário tem de seguir uma
seqüência estabelecida de organização de programa (como foi mostrado no
Capítulo 3), incluindo necessidades típicas de programação, tais como
declaração e instanciação.
O formalismo inerente às linguagens de programação, aliado à expressividade da linguagem
são pontos fortes para a defesa deste tipo de interação. Programadores de computador
trabalham a décadas e com sucesso documentando e desenvolvendo procedimentos
complexos desta maneira. Adicionalmente, uma vez desenvolvido e testado um modelo de
análise, na forma de um programa, o procedimento fica estabelecido, podendo ser
analisado, disseminado e reaproveitado.
58
As dificuldades do usuário com interface baseadas em linha de comandos e linguagem de
programação são (Bruns e Egenhofer 1997) :
! Memorizar um número grande de nomes de operadores;
! Escrever a sintaxe dos comando corretamente;
! Selecionar o operador apropriado para cada tarefa.
A prática mostra que aprender uma linguagem de comandos ou linguagem de programação
demanda uma certa quantidade de tempo, que irá depender de quão complexo são os
comandos e que experiência o usuário tem na aplicação em outras linguagens de
programação. Adicionalmente, um programa que descreva um modelo de análise só é
compreendido por pessoas que conhecem a mesma linguagem, limitando assim, sua
capacidade de disseminar de informações.
Exemplo - Arc/ Info:
O sistema Arc/Info (ESRI, 1992) possui vários modos de operação, como será vistos nos
exemplos. Na sua forma básica a interação se baseia em chamada de programas e passagem
de parâmetros, onde os dados são arquivos de entrada e saída para os comandos,
caracterizado portanto como Interface por Linguagem de Comandos (Figura 4.2).
Objetivo: determinar as regiões que distam 5 km das estradas em uma área dereflorestamento
1. Criar mapa de distância (arquivo roadbuffer) a partirdo mapa de estradas (arquivo roadlines), utilizar o módulo “arc”:Arc: buffer roadline roadbuf # # 5000 # line
2. Visualizar o resultado utilizar o módulo “arcplot”e informar os parâmetros:Arcplot: mapex roadbufArcplot: linecolor 2Arcplot: arcs roadlineArcplot: linecolor 5Arcplot: arcs roadbuf
Figura 4.2 - Exemplo de operação de análise no Arc/Info. Fonte: Tutorial do Arc/Info (Murmion, 1997)
Alguns módulos podem ser acrescentados ao mesmo sistemas conferindo-lhe outras
formas de interação. O módulo GRID (ESRI, 1992), por exemplo, adiciona ao sistema
uma linguagem de programação para álgebra de mapas, baseada nos trabalho de Tomlin
(1990).
OUTGRID = INGRID1 + INGRID2
59
OUTGRID = INGRID1 XOR 5
OUTGRID = SIN(INGRID1)*4/LOG(INGRID2)
Exemplo - OSUMAP:
O sistema OSUMAP (OSU, 1997) baseado na linguagem MAP (Tomlin, 1990)é um
exemplo clássico de interface por linha de comando em álgebra de mapas. Toda interação
se dá pela digitação de comandos no sinal de prontidão do sistemas: “>”, o que pode ser
observado na linha de baixo da tela do computador representada pela Figura 4-3. O usuário
pode solicitar ajuda ao sistema (comando “help”) e obter uma lista dos comandos
disponíveis (Figura 4.3), pode ainda solicitar a instruções sobre cada comando, p. ex.: o
comando “help expose” trás a sintaxe completa do comando “expose”.
Figura 4.3 – Interface por Linha de Comandos do OSUMAP.
60
4.2.2 Menus e Formulários
Visão Geral
O princípio básico deste paradigma é a existência de um questionário eletrônico, baseado
em campos texto, listas de opções, botões de múltipla escolha e outros recursos de
interface gráfica (GUI), onde o sistema pode auxiliar o usuário no preenchimento correto
dos campos, ex.: Figura 4.4.
Figura 4.4 – Interface de operações aritméticas no SPRING.
Em interface por menus existe um conjunto hierarquizado de opções para facilitar ao usuário a
busca por um operador apropriado. Se o sistema puder determinar qual o tipo de resultado
que o usuário pretende obter então ele desabilitar ou deixa de apresentar as opções
inconsistentes, o que facilitaria a construção de comandos corretos. Este procedimento é
chamado “seleção baseada em contexto” onde o contexto pode ser determinado, p. ex.,
pelo último dado selecionado.
Menus e formulários é o paradigma de interface utilizado nos SIG atuais para a maioria das
tarefas. Como as operações de álgebra de mapas requerem um conjunto amplo de
61
informações, alguns sistemas utilizam janelas de diálogo baseadas em formulário para que o
usuário estabeleça os parâmetros para a execução da operação.
Interfaces por formulários auxiliam o usuário na construção de comandos corretos. Uma vez
que todas as opções são apresentadas sob a forma de listas e botões de escolha, o comando
construído através de formulários fica livre de erros de sintaxe.
Os principais inconvenientes do uso de menus e formulários para operações de Álgebra de
Mapas são:
• Menus e janelas de diálogo com formulários costumam apresentar
sobreposições inconvenientes, escondendo partes da janela que deveriam
estar expostas no momento da definição dos parâmetros.
• Este paradigma não permite uma visão global da seqüência dos comandos
e do modelo de Análise Espacial.
• Normalmente, os formulários são preenchidos, executados e desaparecem
da tela, nem sempre sendo armazenados nem organizados como
procedimentos para ser reutilizados, e não ficam documentados como em
uma linguagem de programação. A menos que o sistema mantenha um
registro do que esta sendo executado não é possível recuperar a história
dos comandos e opções executados, para recuperar o modelo de análise
desenvolvido.
Em resumo, o uso de menus e formulários para álgebra de mapas só pode ser
recomendado para operações atômicas, que tenham grande significado independente e não
necessitem fazer parte de um procedimento mais elaborado. Os exemplos seriam
operações de declividade e fatiamento em modelos numéricos de terreno, mapas de
distância, geração de legendas.
Exemplo - IDRISI Windows:
O sistemas IDRISI Windows 1.0 (IDRISI, 1996), Figura 4-5, faz uso de janelas de diálogos
do MS_Windows com formulários para que o usuário especifique operações de análise
espacial. O usuário escolhe o operador adequado a sua tarefa em um sistema hierárquico de
62
menus, onde as opções estão agrupadas em subníveis, por tipo do operador, o que facilita
a localização do operador desejado.
Em alguns SIGs, cada operador de análise espacial tem um formulário próprio que solicita
ao usuários o preenchimentos dos campos referentes aos parâmetros que são necessário
para a sua execução.
Figura 4.5 - Formulário do operador “escalar” do IDRISIW.
Exemplo - MGE Intergraph
No sistema MGE Intergraph existe um único formulário para geração de comandos para
vários operadores. O usuários selecionar os operadores, operandos e opções através de
listas de opções. Conforme isto é feito o sistema responde ao usuário apresentando na
linha inferior do formulário o texto completo do comando, dá como está sendo
“montado”, o que pode ser observado na parte inferior da Figura 4.6:
63
Figura 4.6 - Formulário do MGE Intergraph.
Nota-se que neste tipo de interface o contexto é definido pelos valores preenchidos pelo
usuário, de forma que os campos que ainda não foram preenchidos listam somente opções
compatíveis com o contexto.
4.2.3 Interfaces por Manipulação Direta
Visão Geral
Interface gráfica baseadas em manipulação direta permitem a interação do usuário com o
sistema mediante o ato de apontar, mover ou conectar representações de objetos do
sistema na tela do computador. “A idéia central está em visualizar e identificar rapidamente
os objetos e operadores de interesse, substituindo os comandos de sintaxe complexas pela
manipulação direta de seus ícones.” (Adaptado de Shineidermann, 1992)
Alguns ensaios tem analisado a eficiência e a deficiência de interfaces por manipulação
direta. O trabalho de Eberts (1994) mostrou que, tomando-se uma interface baseada em
comandos e uma interface baseada em manipulação direta, o desempenho dos usuários
experientes tende a diminuir quando estes migram de sistemas baseados em comandos para
sistemas baseados em manipulação direta; usuários novatos tendem a apresentar melhor
desempenho se iniciam sua atividades em sistemas baseados em manipulação direta do que
em sistemas baseados em comandos, como indicado na Figura 4.7.
64
Figura 4.7 - Avaliação de Interfaces por Manipulação Direta. Fonte: Eberts (1994).
Interface Baseada em Diagrama de Fluxo
Diagramas são bastante empregados em ambientes CASE (Computer Aided Software
Engineering) e sistemas industriais. Neste tipo de interface, ícones são dispostos sobre a
tela de forma que o usuário possa fazer conexões entre eles estabelecendo uma seqüência,
da mesma forma como faria se estive simplesmente editando um diagrama estático.
Este paradigma oferece uma visão global e gráfica do procedimento em desenvolvimento.
A linguagem metafórica se restringe ao ícones e suas conexões e não à manipulação
propriamente dita (como no ato de arrastar um arquivo para a lixeira). Mas, na vida real, o
usuário não arrasta um mapa para sua prancheta de desenho, a fim de construir um
diagrama de fluxo com este mapa.
A metáfora principal não tem relação com a tarefa física desenvolvida pelo usuário, mas
sim com a forma de expressão de um problema através do encadeamento de tarefas em um
diagrama, técnica que é largamente utilizada em várias áreas do conhecimento e utilizada
em muitas publicações sobre aplicações de análise espacial (MacGuire e GodChild, 1992)
(Figura 4.8).
65
Engineering:gentle slopeclose to roads
Elevation
Roads
Slope
Coast
Slope
Coast
Elevation
Elevation
Coast
Slope
Elevation
Prox-R
Prox-C
Views
Aspect
Constraints
S-Pref
R-Pref
C-Pref
V-Pref
A-Pref
Development
Aesthetics:gentle slopegood viewwest aspect
Constraints:100m sefback<50% slope
Primarymaps
Derivedmaps
Interpretedmaps
Prescriptivemaps
Figura 4.8 – Diagrama de Fluxo em Análise Espacial. Fonte Berry (1991).
Interfaces de Manipulação Direta em Álgebra de Mapas
No caso de SIG, as interfaces de manipulação direta estão, na maior parte dos casos, ligadas
às interfaces por linguagens de programação, pois geram programas que podem ser
posteriormente executados.
As interfaces de manipulação direta dão uma visão global e gráfica do procedimento em
desenvolvimento, os modelos de análise ficam documentados de forma gráfica e bastante
expressiva. Ao contrário de programas em linguagem de programação não é necessário ser
especialista no software para se ter um entendimento mínimo do que faz o modelo.
No entanto, administrar diagramas muito complexos pode se tornar uma atividade extra
para usuário e tomar mais tempo do que o necessário. Em alguns casos o sistema precisará
de janelas de diálogo com alguns formulários para que o usuário informe parâmetros de
operadores ou expressões complexas que não podem ser expressas graficamente de forma
simples, tais como expressões matemáticas.
A aplicabilidade deste paradigma de interface, manipulação direta, para Geoprocessamento é
funcionar como suporte ao desenvolvimento de modelos de análise espacial de forma mais
cognitiva do que na própria linguagem de manipulação do SIG. Sua principal vantagem é
66
dar ao usuários uma visão global do procedimento de análise. Entre os principais exemplos
de interfaces de manipulação direta para álgebra de mapas, podemos citar:
• Geographer’s DeskTop ( citado por Bruns e Egenhofer, 1996);
• Grassland (LAS, 1997);
• Model Maker (ERDAS, 1993);
• VFQL (Standing, 1995).
Exemplo – Geographer´s Desktop
No Geographer’s Desktop (citado por Bruns e Egenhofer, 1996) como pode ser observado
na Figura 4.9, os objetos são apresentados em projeção perspectiva, um armário de mapas e
uma mesa de luz. As gavetas são abertas através de um “clique” do “mouse”, quanto então
os mapas aparecem flutuando sob o armário, também em projeção perspectiva, com seus
nomes ao lado. O usuário pode arrasta os mapas para mesa de luz na ordem que lhe
convier e estabelecer operações na pilha de mapas que se forma sobre a mesa de luz. Os
operadores apresentam uma outra metáfora, a de operações matemáticas sobre colunas de
valores.
A expressividade desta interface é grande. É praticamente um ambiente virtual onde os
mapas podem ser arrastados e sobrepostos. No entando, devemos observar que, sendo
agora um tecnologia mais acessível, os sistemas informatizados para Geoprocessamento
acabaram por abolir o uso de mesas de luz e sistemas manuais, o que prejudica esta
metáfora como forma de aproximação à rotina do atual usuário de SIG.
67
Figura 4.9 - Interface Baseada em Pilhas. Fonte: Bruns (1996) .
Este paradigma de interface baseada em Manipulação Direta resgata a metáfora da
manipulação, ou seja, o ato de arrastar e dispor dos ícones semelhantemente ao que é feito
na prática. Tal qual a operação em um ambiente “DeskTop” os ícones dos documentos são
arrastados e empilhados sobre os operadores que irão processá-los.
Exemplo - Grassland
Desenvolvido a partir do GRASS, o Grassland 1.1 (LAS, 1997) implementa sua interface
para análise geográfica baseada em fluxograma como pode ser visto na Figura 4.10. Os
dados e operadores são selecionados em janelas auxiliares e arrastados para a janela do
“Procedure Workbench”.
No “Procedure Workbench” o usuário pode fazer conexão entre dados e operadores para a
montagar diagramas de fluxo de dados. Tanto os dados quanto os operadores tem
terminais para as conexão, como “plugs” de tomadas. O formato e a cor do “plug”
identificam o tipo do dado, se é vetorial ou matricial, por exemplo. Isto para impedir que as
conexões sejam feita erroneamente. Selecionando-se o ícone do operador, uma janela com
formulário pede os parâmetros necessários. Estabelecida uma conexão de entra ou saída de
dado, automaticamente o campo apropriado do formulário, “mapa de entrada” ou “mapa
de saída”, é preenchido.
68
Figura 4.10 - Ambiente de Análise Espacial do Grassland. Fonte: Bruns e Egenhofer (1996).
Exemplo - Model Maker
Baseado na “Spatial Modeler Language” (SML) e fazendo parte do conjunto de módulos
do sistema IMAGINE (ERDAS, 1993), o Model Maker é um editor de diagramas de fluxo
aplicado a álgebra de mapas. Seu desenho é bastante simples é limpo, facilitando a leitura
do modelo. Existem ícones para cada tipo de dado, um único ícone para operador
(representado por um círculo) e as setas indicam a direção do fluxo de dados.
No procedimento de criação de um modelo o usuário seleciona em uma janela a parte, qual
o tipo de ícone ele deseja incluir no diagrama: grade, imagem, mapa temático ou um
operador. Neste ponto as conexões já podem ser feitas, mesmo sem terem sido definidos
que mapas e que operadores são aqueles representados pelos ícones. Portanto, o diagrama
é montado sem que o usuário tenha a certeza da disponibilidade do dado ou se o operador
é adequado para processá-lo, já que o sistema só pode checar a consistência das conexões
após obter do usuário estas informações.
69
Figura 4.11 – Diagrama de Fluxo do Model Maker. Fonte: Bruns e Egenhofer (1996).
Exemplo – VFQL
Visual Funcition Query Language (Standing, 1995) é uma ferramenta de interface por
manipulação direta que permiti a construção de operações de consulta e análise espacial,
através da geração de macros em linguagem AML (Arc/Info). A metáfora deste modelo de
interface se restringe aos ícones dos dados que representam mapas em papel semi
desenrolados (somente a parte escura da Figura 4.12). A indicação de que tipo de dado é
representado pelo ícone se dá pelo desenho este que contém, como por exemplo o
polígono (vide Figura 4-12) indica um dado temático. Cada um deste ícones escuros, na
forma de mapas semi desenrolados, aparecem desordenadamente em uma janela onde o
usuário pode arrastá-los para um outra região da interface onde serão conectados dados e
operadores.
70
Figura 4.12 – Operador de Buffer atuando sobre mapa temático “Lakes” noVFQL (Standing, 1995).
Um exemplo completo usando o VFQL (Figura 4.13) apresenta a sobreposição de
comandos, onde resultados intermediário são dados de entrada para o comando seguinte
construindo a expressão apresentada logo abaixo da figura:
Showattribs(Vegsite(Identify(Erase(Buffer(Roads,300),Buffer(Lakes,20)),Vegcn),VEGCN-ID=14 and INSIDE=1 and AREA=>2000))
Figura 4.13 – Virtual Functional Query Language.Fonte Standing (1995).
A proposta de VFQL se baseia em programação funcional, ou seja, seu objetivo é que o
usuário construa expressões de manipulação espacial, semelhante ao exemplo da Figura
4.13, e armazene-as no sistema como uma função. Então, cada função pode ser executada
independente de uma seqüência de operações. Isto difere de diagrama de fluxo de dados,
que se baseiam em programação procedural, caracterizada por registrar e seguir uma
seqüência ordenada de procedimentos.
4.2.4 Resumo
A revisão dos paradigmas de interface e sua implementação, feita na seção anterior, indica
que para álgebra de mapas em Geoprocessamento é interessante que o usuário possua, ao
mesmo tempo, uma linguagem de programação de grande poder expressivo, um sistema de
menus e formulários para executar operações atômicas e uma interface de manipulação direta
71
para expressar graficamente seqüência de procedimentos baseados em metodologias de
análise espacial. Neste sentido, o paradigma de diagrama de fluxos seria empregado com o
objetivo de auxiliar o usuário a compor seus modelo diretamente em um diagrama de fluxo
e gerar programas executáveis no SIG.
Um fator que determina de forma bastante decisiva o projeto de interface é o modelo de
dados do SIG sobre o qual a interface é desenvolvida. Se o modelo de dados é capaz de
representar a informação geográfica em níveis de abstração de mais alto nível, da mesma
forma a linguagem de programação e a interface de manipulação direta poderão representar
melhor o conhecimento do usuário em um nível mais elevado, ao construir o modelo de
análise espacial.
Por exemplo: na Figura 4.9, no Geographer’s Desktop, o operador "add" atua sobre o dado
solos (soil) e vegetação (veg), somando indistintamente os valores encontrados nos dois
mapas e criando como resultado o mapa "solos+vegetação" (veg+soil). Este comando não
explicita quais as classes de solos e vegetação serão combinadas no mapa resultante como
ocorre em uma expressão em LEGAL (vide Capítulo 3).
Outro problema nas interfaces analisadas: no Model Maker, baseado no sistema ERDAS,
os dados são armazenados diretamente pelo sistema de arquivo, não existe um modelo
conceitual que organize um banco de dados geográficos como no SPRING (vide Capítulo
2), já no Grassland, o modelo conceitual se restringe a separar os mapas de acordo com
suas estruturas de armazenamento de baixo nível, tais como raster, vector, line, point e
region. Além de impactar na qualidade da representação do conhecimento, a conseqüência
prática é que o usuário certamente terá dificuldade em encontrar o dado caso ele se
encontre em uma estrutura desordenada de arquivos e diretórios.
A partir da análise aqui apresentada, podemos concluir que:
• Dada a complexidade das aplicações de Geoprocessamento e a diversidade
de capacitação dos usuários, um SIG de propósito geral não pode estar
limitado a um único paradigma de interface, devendo idealmente combinar
as três alternativas: linguagens de comando ou linguagens programação; menus e
formulários; e interfaces de manipulação direta.
72
• Para usuários experiente, a metáfora de diagrama de fluxo traz a vantagem de
apresentar e documentar bem o modelo da análise espacial.
• Considerando o problema de aprendizado, diagramas de fluxo se baseiam em
programação procedural o que corresponde ao apelo mais didático,
expressivo e intuitivos deste paradigma.
Neste contexto, optou-se por desenvolver uma interface de Álgebra de Mapas baseada no
paradigma de diagramas de fluxo, que tenha como saída um programa na linguagem LEGAL.
Deste modo, pode-se estabelecer uma combinação ótima para satisfazer tanto usuários
experientes (que preferem a expressão direta do programa em linguagem) como iniciantes
(que terão uma ferramenta de fácil compreensão).
4.3 Requisitos para o projeto de Interface para Álgebra de MapasPara o desenvolvimento de um projeto de interface para álgebra de mapas, é necessário em
primeiro lugar o conhecimento do domínio do problema análise espacial e
geoprocessamento, como visto no Capítulo 2, e o conhecimento de uma descrição formal
para operações sobre dados espaciais tal qual o apresentado pela linguagem LEGAL
(Capítulo 3). Feita estas duas revisão é importante também analisar as alternativas existentes
no mercado e na literatura verificando as soluções adotadas e suas justificativas. Como
resultado deste processo de analise é possível então, elaborar uma lista com os requisitos
para a interface a ser proposta.
A lista de requisitos a seguir está dividida em: requisitos gerais de interface por
manipulação direta, requisitos específicos para álgebra de mapas e requisitos específicos
para o SPRING. As fontes bibliográficas das quais foram extraídos os requisitos são:
" dos critérios utilizados no trabalho de Bruns e Egenhofer (1996), que analisa
interfaces para álgebra de mapas em vários sistemas SIG comerciais: requisitos
1, 3, 4, 7, 8, 9;
" discussões sobre a tendência das interfaces (Halfhill, 1997): requisito 6;
" observações sobre personalização de interface para SIG, em Câmara e
Medeiros (1996) e Worboys (1996): requisitos 10 e 11;
73
" tópicos de projetos de interfaces em Sheniderrman (1993) e Eberts (1994):
requisitos 2 e 5;
" dos Capítulos 2 e 3 deste trabalho: requisitos 12 e 13.
4.3.1 Requisitos Gerais
1. Utilizar metáforas adequadas com o domínio da aplicação;
A escolha de metáforas irá agilizar o processo mental do usuário de
relacionar o símbolo com o seu conteúdo semântico. Interfaces baseadas
em comandos costumam adotar como comandos termos do jargão do
usuário o que é preferível a se adorar termos computacionais ou
matemáticos. Semelhantemente, interfaces baseadas em manipulação direta
necessitam relacionar seus ícones e a maneira de trata-los dentro de um
ambiente gráfico, com os elementos do cotidiano das tarefas executadas
pelo usuário.
2. Não trazer uma metáfora estranha ao domínio da aplicação;
Evitar apresentar uma outra metáfora que não seja aquela relacionada
diretamente com o contexto da aplicação pois pode causar ambigüidade.
3. Facilitar a construção de comandos corretos;
Apresentar formas assistidas de edição dos comandos e impedir que se
estabeleçam conexões incorretas.
4. Auxiliar na escolha do operador certo para a tarefa;
O sistema deve basear-se no contexto para listar e sugerir operadores
apropriados, oferecendo recursos de busca e seleção tanto de dados como
de operadores;
5. Ambiente dinâmico e interativo;
Oferecer ao usuário a sensação de controle sobre os elementos do sistema
através de um ambiente de trabalho dinâmico e interativo, onde o sistema
poça responder imediatamente aos atos do usuário.
74
6. Evitar a sobreposição de janelas;
O excesso de janelas se sobrepondo dificultam o diálogo entre o usuário e o
sistema, escondendo parte da informação justamente no momento de tomar
a decisão sobre a ação a ser executada.
7. Reduzir complexidades
Reduzir complexidades, sejam elas sintáticas ou gráficais. Oferecer uma
interação com os elementos da interface com regras simples e intuitivas e
dar suporte a administração de diagramas muito extensos.
4.3.2 Requisitos Específicos sobre Álgebra de Mapas
8. Expressar bem o modelo de análise espacial;
Facilitar a compreensão da lógica do modelo independentemente dos
rudimentos da linguagem e do sistema utilizado;
9. Documentar o modelo de análise;
Para seu uso posterior, difusão ou publicação dos resultados e da
metodologia.
10. Permitir a personalização de aplicações de SIG;
Segundo Câmara et. al. (1996), Sistemas de Informação Geográfica, de uma
maneira geral, têm aplicações tão diversificadas que seria necessário a
construção de uma interface para cada aplicação, e por este motivo é
importante que os SIGs permitam que o usuário configure e personalize a
interface da sua aplicação. Este não é um requisito específico de álgebra de
mapas mas de todo o conjunto de funcionalidade que o SIG pode oferecer
e que portanto influencia nas operações de álgebra de mapas. No entanto na
medida em que o usuário possa incluir seus modelos de análise no banco de
dados e possa reutiliza-lo, pode-se considerar que ele esteja personalizando
ama aplicação.
11. Extensiblidade
75
O sistema de interface deve ser extensível. Conforme os novos operadores
de são desenvolvidos, no decorrer da evolução do software, é necessário
incluí-los na interface, através de recursos que não impliquem em
reprogramar seu código mas sim reconfigurar o software, informando as
características de cada novo operador.
4.3.3 Requisitos Específicos para o SPRING
12. Gera programas em LEGAL
O sistema deve ser capaz de gerar código em LEGAL livre de erros.
13. Representar o modelo conceitual do SPRING
O sistema deverá se basear no modelo de dados do SPRING tanto no
acesso ao dados quanto na construção de expressões de análise.
14. Salvar e recuperar modelos no banco de dados do SPRING
O sistema deverá salvar os modelos de análise na mesma estrutura de
armazenamento do banco de dados do SPRING.
77
CAPÍTULO 5
INTERFACE AMO
Baseado na análise dos problemas envolvidos em interface para álgebra de mapas
apresentada no Capítulo anterior, neste Capítulo propomos uma interface que objetiva
atender aos requisitos levantados. A esta interface demos o nome de AMO, que significa:
Ambiente de Álgebra de Mapas Orientado por Objetos, ou simplesmente Álgebra de
Mapas por Objetos. Sua contribuição é utilizar a abordagem orientada por objetos como
forma de enriquecer semanticamente os elementos de um diagramas de fluxo a fim de
melhorar a interação do usuário experiente com o sistema, aumentar sua produtividade e
oferecer recursos de documentação de sues modelos, bem como aumentar a velocidade de
aprendizado de usuários novatos e facilitando a disseminação da tecnologia de
Geoprocessamento.
Este Capítulo apresenta e descreve AMO, justifica a escolha dos paradigmas de interface
utilizados em seu projeto, relacionando-os com os requisitos levantados no Capítulo
anterior. Apresenta também seu modelo de objetos e exemplos de sua utilização.
5.1 Descrição GeralPorque Álgebra de Mapas por Objetos? Os operadores de Álgebra de Mapas atuam sobre
os tipos de dados de maneira distinta, isto é, nem todos operadores são válidos para todos
tipos de dados; Em uma interface baseada em manipulação direta é importante que os mapas
expressem quais são os operadores válidos para seu tipo de dado como forma de reduzir o
esforço do usuário em selecionar operadores. Os conceitos básicos de orientação por
objetos, classe, métodos e instâncias, (Coad 1991) são empregados aqui de forma a suportar o
relacionamento dos dados como os operadores. Mapas são instâncias das classes a que
pertencem, p. ex.: Numérico, Temático, etc. Operadores podem ser entendidos como métodos
destas classes. Desta forma, selecionado um mapa de uma determinado classe, só são
apresentados os operadores válidos para esta classe, facilitando assim a escolha do
operador certo para a tarefa.
78
AMO apresenta um editor de diagramas de fluxo no qual o usuário pode desenvolver,
graficamente, algoritmos de Álgebra de Mapas. Estes algoritmos podem ser executados no
SIG, impressos como documentação de seus procedimentos e reaproveitados no
desenvolvimento de novos algoritmos.
5.1.1 Paradigmas Escolhidos
Em AMO adotamos o paradigma de manipulação direta baseado em diagrama de fluxos para
representar o encadeamento de procedimentos necessário à realização de um modelo de
análise espacial. “O diagrama de fluxo é uma forma eficiente de apresentar um modelo de
análise mostrando os dados envolvidos e a seqüência de transformação para atingir um
objetivo” (Lucena et al. 1998). Esta opção está fortemente relacionada com os requisitos
nº8 e nº9, “expressar bem o modelo de análise espacial” e “documentar o modelo de
análise”, da lista de requisitos do Capítulo anterior. Adicionalmente, o ambiente AMO irá
oferecer recursos específicos para a manutenção de diagramas extensos e complexos,
atendendo ao requisito nº7, “reduzir complexidades”.
AMO baseia-se também em outros aspectos do paradigma de manipulação direta como
arrastar-e-soltar (do termo em inglês: “drag-and-drop”), apresentando um “ambiente”
virtual onde o usuário navega (do termo em inglês: “browse”) em seus bancos de dados e
seleciona o mapa que será inserido no diagrama de análise, levando-o ao editor de
diagramas.
Outro paradigma implicitamente já mencionado é o de Interface Orientada por Objetos
onde “Para cada objeto, pode ser mostrado um menu de possíveis ações” (LabIUtil, 1998).
Mais especificamente: quando o usuário houver selecionado um dado na interface somente
as operações válidas para este tipo de dado estarão disponíveis. Por exemplo, o método
Fatie é um método válido para um plano de informação da categoria numérico, portanto
ele é apresentado como disponível e pode ser conectado com o ícone do dado e assim
encadear um procedimento. O objetivo é garantir a consistência semântica e simplificar a
construção do modelo de análise; reduzindo o risco de erros do usuário no momento da
escolha dos operadores e da montagem do procedimento de análise e assim atender ao
requisito nº3, “facilitar a construção de comandos corretos”.
79
Tendo em vista o proposto pelo requisito nº6 “Evitar a sobreposição de janelas”, optou-se
por um único documento e uma única janela para a interface de AMO. Além de evitar
sobreposições é uma tendência em sistemas de GUI em ambientes distribuídos ou NUI
(Network User Interface – Interface para usuários de rede). Para isto foram empregados os
objetos de interface gráficas notebook e pages, conforme será apresentado
posteriormente.
5.1.2 Material e Método
Como sistemas de suporte ao desenvolvimento de interface gráficas, AMO utiliza o Tcl/Tk
(tool command language e Toolkit de interface gráfica) (Ousterhout, 1994) originário da
universidade de Berkley (E.U.A.). Este ambiente de desenvolvimento de softwares bem
com suas extensões, foi escolhido devido a:
1. Portabilidade (funciona em ambiente Windows, UNIX e Macintosh);
2. Permite alta produtividade no desenvolvimento de interfaces gráficas interativas;
3. Oferece facilidade na integração de software;
4. Disponível gratuitamente na internet, tanto o Tcl/Tk quanto a maioria de suas
extensões.
5. Conta com o suporte de um grande número de usuários no mundo todo que
trocam informação constantemente através de lista de discussão na Internet.
Para suprir um deficiente da linguagem Tcl no manuseio de estruturas de dados complexas
e para dar suporte a programação orientada-a-objetos (POO), AMO utiliza a extensão [Incr
Tcl] (MacLennan, 1996). Que além de suportar POO ainda oferece um conjunto de
Widgets (Objetos de Interface Gráfica) em extensão aos do TK.
Para o acesso ao sistema de gerenciamento de dados do SPRING, AMO utiliza a extensão
TclOdbc, que adciona à linguagem Tcl, comandos de manipulação de bancos de dados em
Open Data Base Connection (ODBC), tais como linguagem SQL.
80
Como exemplo, na Figura 5-1 são apresentados os procedimentos para conexão com
ODBC; exemplo de consulta em SQL para acessar a lista de categorias do banco de dados
de nome ZEE; e a apresentação do resultado da consulta em um objeto de interface do
[incr Tcl], o scrolledlistbox.
Figura 5-1 – Exemplo de conexão com ODBC via Tclodbc.
A versão do SPRING utilizada é a disponível na internet em
www.inpe.br/spring. O banco de dados nos quais os testes foram desenvolvidos é o
Zoneamento Econômico Ecológico (ZEE), disponível também no mesmo endereço.
81
5.2 Estrutura de AMOA seguir descreveremos AMO através da sua estrutura de componentes e funções (vide
Figura 5.2):
S. Operadores S. Dados
Região de Seleção
E. Diagrama V . Código
Região de Edição
Tela Principal
Componentes Funções
AMO
Figura 5.2 – Estrutura hierárquica da interface de AMO.
Cada um dos componentes desta hierarquia será descrito de acordo com os itens abaixo:
! Componentes – Os objetos de interface gráficas (Widgets) que o compõe;
! Funções – Qual sua funcionalidade na interface de AMO;
! Justificativas – Qual sua relação com o requisitos de interface para Álgebra de
Mapas.
5.2.1 Tela Principal
Componentes:
A janela principal de AMO (vide Figura 5.3) é composta por uma barra de
menus, uma barra de ferramentas (conjunto de ícones) e um painel, construído
com o widget paned, que pode ser ajustado deslocando-o horizontalmente a
fim de conferir maior ou menos espaço para as duas regiões principais da
interface, a região de seleção” e a região de edição e visualização.
82
Figura 5.3 - Tela Principal de AMO.
Na parte inferior da tela encontra-se a barra de “status” que dá ao usuário
informações adicionais sobre o funcionamento do sistema, como por exemplo
qual o dado ou operador correntemente selecionado.
Função:
As funções disponíveis nos menus também são acessíveis através dos ícones na
barra de ferramentas, de maneira que o usuário tenha a opção de não ser
prejudicado pela sobreposição do menu. Ao posicionar o cursor sobre este
ícones, mesmo sem acioná-los o programa apresenta um texto que descreve
brevemente a função relacionada com o ícone, este recurso é conhecido com
balloon, em uma analogia a diálogos de histórias em quadrinho.
Justificativa:
Este desenho de interface tem por objetivo oferecer boa visualização tanto do
esquema do banco de dados quanto do diagrama do modelo de análise. Os
requisitos diretamente atendidos são “evitar a sobreposição de janelas”
(requisito nº6) e “auxiliar na escolha do operador certo para a tarefa” (requisito
nº 4).
83
5.2.2 Região de Seleção
Componentes:
O componente principal da região de seleção é o widget notebook que permite
compartilhar uma mesma região da janela com várias páginas de informação de
conteúdo distinto. A seleção entre as páginas se dá clicando os rótulos “Data”
e “Operator” na parte superior do objeto, conforme indicado na Figura 5.4:
Figura 5.4 - Região de Seleção em AMO.
Função:
A finalidade da região de seleção é permitir ao usuário consultar o sistema SIG,
seu esquema de banco de dados, suas instância de dados e os operadores.
Justificativa:
Atende ao requisito requisito nº6, “Evitar a sobreposição de janelas”.
5.2.2.1 Seleção de Dados
Componentes:
Dentro das páginas do notebook existe um widget do tipo hierarchy
que permite a criação de uma lista hierarquicamente organizada. N a região de
seleção de dados este widget é utilizado para mostrar o esquema conceitual do
banco de dados e sua instâncias (Figura 5.5).
Função:
84
A finalidade da região de seleção de dados é permitir ao usuário a consulta
hierárquica do seu dados no banco de dados do SPRING e a fazer a seleção
deste dados que comporão seu modelo de análise espacial.
Figura 5.5 - Seleção de Dados em AMO.
Justificativa:
Atende ao requisito: “ambiente dinâmico e interativo” (requisito nº5), devido a
possibilidade de navegar no modelo conceitual do banco de dados e por
permitir a manipulação direta dos planos de informação, arrastando-os para o
diagrama. Atende também ao requisito: “representar o modelo conceitual do
SPRING” (requisito nº13).
5.2.2.2 Seleção de Operadores
Componentes:
De forma semelhante a região de seleção de dados, a região de seleção de operadores os
operadores ficam dispostos em uma hierarquia que pode ser explorada
abrindo-se os itens nó da árvore nas caixas assinaladas com “+” e “−” (Figura
5.6).
Função:
Quando é selecionado um plano de informações de uma determinada categoria
somente os operadores que se relacionam com esta categoria ficam expostos na
85
hierarquia. Neste ponto, selecionando-se um operador o sistema instancia um
comando no diagrama com o referido operador.
Figura 5.6 - Região de Seleção de Operadores em AMO.
Justificativa:
Atende ao requisito (requisito nº4): “auxilia na escolha do operador certo para
a tarefa”. Seguindo a os conceitos de orientação por objeto já mencionados.
5.2.3 Região de Edição e Visualização
Componentes:
A finalidade região de edição e visualização é gerencia a construção de modelo de
análise. Sua descrição física se assemelha ao da região de seleção, ou seja, também
é composta por um notebook sendo que seus rótulos são: “Diagrama” e
“Code” indicando a edição de diagramas e a visualização do Código em
LEGAL respectivamente.
Função:
A finalidade é permitir ao usuário construir seu modelo de análise espacial.
Justificativa:
Atende ao requisito (requisito nº6) “evitar a sobreposição de janelas”.
86
5.2.3.1 Edição de Diagrama
Componentes:
É composta pelo widget scrolledcanvas, que implementa um região de
janela para manipulação gráfica, com controle de eventos de mouse e
apresentação de primitivas de interação gráficas. Este objeto de interface tem a
capacidade de se auto-ajustar em tamanho a medida que o diagrama cresce em
complexidade e espaço ocupado. Para isto o usuário pode utilizar as barras de
rolagem vertical e horizontal, encontradas à direita e a baixo respectivamente.
Função:
A finalidade da região de edição de diagramas é apresentar o diagrama de Álgebra
de Mapas e permitir sua edição.
Justificativa:
O requisitos atendido é (requisito nº1): “utilizar metáfora adequada como o
domínio da aplicação”, ou seja, AMO se baseia no tarefa do usuário em
elaborar modelos de análise espacial em diagrama de fluxo;
Atende ao requisito nº2, “não trazer metáfora estranha ao domínio da
aplicação”, como no caso de mesa de luz que já é uma tecnologia ultrapassada;
Atende ao requisito nº3, “ambiente dinâmico e interativo”, o usuário tem total
liberdade de fazer o desenho de seu diagrama;
Atende ao requisito nº7, “reduz complexidades”, é muito mais fácil de
aprender do que linguagens de programação;
Atende ao requisito nº8, “expressar bem o modelo de análise” porque permite
a fácil interpretação do procedimento e;
Requisito nº9: “documentar o modelo de análise” que é uma característica
própria de um diagrama.
87
5.2.3.2 Visualização de Código
Componentes:
O objeto de interface utilizado aqui é o scrolledtext que permite a
visualização e edição de textos com várias linhas.
Função:
Visualizar o código gerado em legal.
Justificativa:
Atende ao requisito “gera programas em LEGAL” (resuisito nº12). Outro
requisitos atendido é “evitar a sobreposição de janelas” (requisito nº6), já que
não é necessário que o usuário utilize um outro editor de texto apenas para ler
o programa gerado em LEGAL.
5.2.4 Funções Gerais de AMO (Barra de ferramentas e menus)
Componentes:
As funções de AMO tanto podem ser acessadas através do sistema de menus
como através dos ícones na barra de ferramenta (Figura 5.3).
Função:
Estas opções do menu e ícones da barra de ferramenta ativam as funções que
serão apresentadas nos itens a seguir, com as respectivas justificativas.
Justificativa:
A vantagem da barra de ferramentas é oferecer um acesso imediato, sem
percorrer a hierarquia do menu, e diminuir a sobreposição de janelas (resquisito
nº6).
5.2.4.1 Manutenção de modelos
Função:
88
Permitir gerenciar os arquivos que descrevem os modelos, podendo “salvar”
modelo, “abrir” modelo e criar um novo modelo, gravando-os no sistema de
arquivos com extensões “.amo” na estrutura de diretórios do banco de dados
do SPRING, atendendo ao requisito: “salvar e recuperar modelos no banco de
dados do SPRING” (requisito nº14).
Justificativa:
Documentar o modelo de análise. Atende parcialmente ao requisito nº10,
“permitir a personalização de aplicações de SIG”. Na verdade a interface do
SPRING não será personalizada por AMO mas o usuário poderá guardar seu
modelo no banco de dados do SPRING, com um procedimento de análise
criado por ele mesmo e disponível para quem desenvolver outros projetos no
mesmo banco, p. ex.: banco de dados: RIMA, projeto: “bacia do rio Madeira”,
modelo de análise: “metodologia de avaliação de impacto ambiental”.
5.2.4.2 Geração de Código em LEGAL
Função:
Gerar um arquivo com o programa fonte em LEGAL (requisito nº12) com
extensão “.alg”. Este arquivo poderá então ser submetido ao SPRING para
que sejam executados os procedimentos tal qual foram descrito pelo diagrama
do modelo.
Justificativa:
Esta é a função básica de AMO gerar código em LEGAL evitando a
complexidade de se escrever código em linguagem de programação, Requisito
nº 7).
5.2.4.3 Impressão de Modelos e Código em LEGAL
Função:
A função de impressão de modelo em AMO gera arquivos em “Postscript”,
um formato reconhecido e suportado por um bom número de dispositivos de
89
impressão tais como impressoras e plotadoras, e conta também com uma
janela de “preview” onde o usuário pode observar como será a disposição do
diagrama na folha antes que seja impressa.
Justificativa:
Atende ao requisito nº9, “documentar o modelo de análise”, além da impressão
propriamente dita, arquivo em “Postscript” pode ser anexado a trabalhos
técnico-científicos em editores de texto.
5.2.4.4 Configuração de Operadores
Função:
Para que AMO possa ser atualizado com novos operadores de LEGAL, é
necessário informar ao sistemas através de arquivos de configuração, sem que
seja necessário modificar seu código fonte a cada evolução de LEGAL.
Através dos comandos disponíveis no arquivo de configuração o usuário
projetista de LEGAL inclui novos operadores, identifica seu ícone, sua categoria
de saída e entrada, sejam elas mapas, tabelas, parâmetros, campos numéricos.
O projetista informa também a máscara da linha de comando a ser gerada em
LEGAL. Vide apêndice I.
Justificativa:
Isto confere a característica “Extensibilidade” observada no requisito nº11. O
projetista pode inclusive escolher um novo ícone para cada operador do
sistema.
5.2.4.5 Encadeamento
Função:
Esta função, ativada pelos ícones da Figura 5.7, permitem ao usuário definir os
encadeamento de dados e comandos:
90
Figura 5.7 - Funções de encadeamento de conectores.
Justificativa:
Atende ao requisito nº3, “facilitar a construção de comandos corretos”,
conforme já foi apresentado neste Capítulo. Atende também ao requisito nº4,
“Auxiliar na escolha do operador certo para a tarefa”, pois o usuário poderá, p.
ex., saber que o dado selecionado pode sofrer “ponderação” mas não
“fatiamento”. O ícone escolhido para identificar o operador poderá informa ao
usuário, qual o efeito da operação.
5.2.4.6 Configuração de dados e comandos:
Função:
A função de configuração faz com que AMO apresente uma janelas de diálogo
(Figura 5.8) de configuração, para dados e para operadores.
Figura 5.7 - Janela de Diálogo para Configuração de Variáveis.
Na configuração de variáveis o usuário deve modificar o nome de variável e
definir parâmetros para criação de novos planos de informações, tais como
resolução X, resolução Y, escala e valores mínimos e valores máximos. O
leiaute ira depender do tipo de dado selecionado, omitindo os parâmetros que
não pertencem ao contexto.
91
O mesmo procedimento se aplica a janela de configuração de comandos,
conforme a contexto a interface apresenta somente os campos que são
necessários (ex.: Figura 5.9):
Figura 5.9 - Janela de Diálogo para Configuração de Comandos.
Na configuração de comandos AMO oferece uma interface dinâmica, com
leiaute variável, dependendo da configuração do operador associado ao
comando, podendo configurar o comando de acordo os parâmetros
necessários.
Justificativa:
Atende ao requisito º3, “facilitar a construção de comandos corretos”, através
do uso de interface baseada em formulários.
5.3 Características VisuaisAs variáveis são representadas por uma cor associada a sua classe, as variáveis temáticas são
vermelhas, as variáveis numéricas são verdes e as variáveis imagem são azuis (Figura 5.10).
Esta cor aparece no contorno interno do ícone de variável e nos ícones de operadores.
Sendo que em se tratando de comandos está cor representa o tipo de dado que o operador
retorna.
92
Figura 5.10 - Ícone de uma Variável em AMO.
5.4 Modelo de InteraçãoAo iniciar o programa, o usuário procurar seu bancos de dados no sistema de arquivo de
seu computador ou na sua rede local; Abre o banco de dados e selecionar um projeto. A
partir deste ponto, a árvore de hierarquia passa a apresentar os níveis de abstração do
banco de dados segundo o esquema definido pelo próprio usuário no SPRING, como na
Figura 5.5. No primeiro nível está o nome do banco de dados como raiz de uma árvore
vista de cabeça para baixo; em seguida está o nome do projeto; o próximo nível são as
Categorias, identificadas pelo ícone das classes básicas que elas representam (imagem,
numérico, temático, cadastral e redes). As folhas desta árvore são os planos de informação. Os
símbolos “+” e “−” permitem “abrir” e “fechar” o nível hierárquico, escondendo ou não
seus níveis inferiores.
A seleção dos dados se dá por apontar o cursor sobre o ícone do dado e clicar o botão da
esquerda do mouse. Mantendo este botão pressionado e arrastando o cursos, o nome do
Plano de Informação acompanha o curso dando a impressão de estar-se arrastado do
banco de dados para a Região de Edição de Diagrama. Na Região de Edição de Diagrama
este dado passa se chamar variável é recebe um nome seqüêncial “variable0”, “variable1”, o
usuário de trocar este nome na função de configuração de elementos do diagrama (será
apresentada a seguir).
Quando um plano de informações é arrastado para esta região, ele passa a ter um ícone
próprio, composto do nome do plano de Informações, o ícone correspondente, e o nome
da variável no programa LEGAL a ser gerado. Em uma segunda página da Região de Edição
93
pode ser visto o código gerado em linguagem LEGAL. Quando um ícone de uma Categoria
é arrastado da Região de Edição de Diagrama, significa que será instanciado um novo Plano de
Informações daquela Categoria. O ícone que o irá representar tenho o nome de “*NOVO*” até
que o usuário o reconfigure.
Inicialmente a Região de Seleção de Operadores apresenta toda a lista hierárquica
conforme a classificação definida em arquivo de configuração de operadores, mas
selecionando-se um dado no diagrama faz com que a Região de Seleção de Operadores
apresente somente os operadores cuja conexão com este dado seja possível. Seleciona-se
um operador simplesmente clicando-se sobre seu nome da lista de operadores ou sobre o
seu ícone no diagrama, caso ele já esteva presente no modelo, como no caso de operadores
que tem mais de uma entrada.
5.4.1 Conexão de Comandos e Variáveis
A conexão se estabelece quando o usuário seleciona dois elementos do diagrama. Ao
apontar sobre o primeiro elemento e fazer um clique-duplo a borda externa do ícone deste
elemento, variável ou comando, fica amarela indicando que ele está selecionado. Após
selecionar o próximo elemento o programa pergunta ao usuário se ele deseja fazer uma
conexão entre os dois elementos selecionados, sendo que o sentido do fluxo de dado é
sempre do primeiro elemento selecionado para o segundo elemento selecionado.
5.5 Modelo de ObjetosNa figura Figura 5.11 temos o modelo de objetos que compõem o software AMO, tal qual
foi implementado em [incr Tcl] (MacLennan, 1996).
94
Figura 5.11 - Modelo de Objetos de AMO.
Observações: os objetos da classe Operator são instanciados quando o sistema lê o arquivo
de configuração. Os objetos da classe Infolayer e Category são carregados lendo-se o banco
de dados do SPRING. A cada operação seleção de dado e operador o sistema instancia um
“variavel” ou “commando” respectivamente.
5.6 ExemplosO procedimento a seguir é a ponderação de um mapa temático de vegetação, segundo um
tabela de ponderação. O algoritmo em AMO é representado pelo diagrama (Figura 5.12),
onde o plano de informação temático de nome “atualizado” é entrada para o operador
Pondere e cria um novo plano de informação do tipo Numérico.
95
Figura 5.12 - Exemplo de procedimento em AMO.
Para compor uma expressão completa de ponderação é necessário informar uma tabela de
ponderação. O que é feito apontando-se o operador e dando um clique-duplo sobre ele.
Isto faz com que apareça a janela de configuração de comandos, onde a tabela de
ponderação é informa conforme a Figura 5.13:
Figura 5.13 – Exemplo de tabela de ponderação em AMO.
96
O código gerado por AMO será processado pelo SPRING:
// Seção de Declaração
Tematico variavel0 ("vegetacao");
Digital variavel1 ("Numerico");
Tabela TbNotasVegetacao (Ponderacao);
// Seção de Instanciação
variavel0 = Recupere (Nome= "atualizado");
variavel1 = Novo (Nome="veget_ponderado", ResX=60, ResY=60 Escala=100000, Min=0,Max=3);
TbNotasVegetacao = Novo ( CategoriaIni="vegetacao",
"Fdt" : 1.0,
"arFdt" : 3.0,
"Fam" : 1.3,
"Fal" : 1.2,
"Sc" : 1.7,
"Scmd" : 1.8,
"Srmd" : 2.2,
"Sr" : 2.0 );
// Seção de Operação
variavel1 = Pondere (variavel0, TbNotasVegetacao);
Maiores detalhes e conclusões sobre a aplicação efetiva de AMO em Álgebra de Mapas será
apresentado no Capítulo seguinte.
97
CAPÍTULO 6
TUTORIAL DE AMO
Para exercitar os conceitos abordados por AMO e provar sua utilidade é necessário
apresenta-lo em aplicação completa e efetiva de álgebra de mapas no ambiente do
SPRING. Para isto, foi escolhida a metodologia do “Zoneamento Ecológico Econômico”
(Barbosa, 1998) por representar um conjunto de problemas comuns em análise espacial, em
aplicações ambientais, e por oferecer a complexidade necessária para comprovar as
vantagens de se utilizar AMO como gerador de programa em LEGAL. Os dados do
problema foram adquiridos através da página do SPRING na Internet (INPE, 1998), a
descrição do problema provem dos trabalhos de Barbosa (1998) e Barbosa et al. (1998).
O objetivo deste Capítulo é apresentar esta aplicação na foram de um tutorial,
apresentando passo a passo como ela foi desenvolvida em AMO.
6.1 Definição do ProblemaO objetivo desta aplicação é fazer um mapeamento do grau de resistência ao processo
natural de erosão de uma determinada região geográfica, estabelecendo os níveis de
vulnerabilidade conforme a metodologia que será apresentada.
Como a maioria das aplicações ambientais de Geoprocessamento, nesta aplicação são
utilizadas técnicas de integração de dados básicos de várias fontes. Segundo o
procedimentos metodológicos propostos pelo INPE e LAGET/UFRJ para ZEE
(Zoneamento Ecológico-Econômico) (Crepani et al., 1996) serão utilizados como fontes
primárias de dados: imagens de satélite e mapas temáticos pedológicos, geológicos, de
geomorfologia e de vegetação. O produto final é o mapa temático de vulnerabilidade à
erosão integrando dados do meio físico-biótico e dados sócio-econômicos.
Na metodologia para Zoneamento Ecológico-Econômico o uso de imagens de satélite
serve como base para definição de unidades de paisagem (chamadas unidades territoriais
básicas). Uma unidade territorial básica (UTB) exprime o conceito geográfico de zonalidade
98
através de atributos ambientais que permitem diferenciá-la de outras unidades vizinhas, ao
mesmo tempo em que possui vínculos dinâmicos que a articulam a uma complexa rede
integrada por outras unidades territoriais. Estas UTBs são definidas por foto-interpretação,
num processo manual de observação e identificação de regiões em imagens de satélite.
6.1.1 Metodologia do ZEE
A descrição sucinta desta metodologia adaptada de Barbosa et al. (1998) apresenta o
seguinte roteiro:
1. Levantamento e aquisição de material cartográfico e de imagens de satélite
! Adquirir imagens do sensor Thematic Mapper (TM) do satélite LANDSAT, bandas
3,4,5;
! Levantar dados bibliográficos da região;
! Adquirir mapas temáticos do RADAMBRASIL ( geológico, geomorfológico, solos,
fitoecológico) na escala 1:1.000.000;
! Adquirir carta topográfica da área de estudo na escala 1:250.000.
2. Preparação de “overlay” de interpretação
! Compilação cartográfica de pontos de referência, tais como drenagem, estradas,
cidades, etc., obtidos diretamente sobre a carta topográfica do IBGE, na escala
1:250.000.
3. Elaboração de mapa preliminar de Unidades Homogêneas
! Consiste na elaboração de um mapa preliminar de unidades homogêneas de
paisagem obtidas a partir da análise e interpretação das imagens do sensor
Thematic Mapper (TM) do satélite LANDSAT. Estas unidades homogêneas são
classificadas como unidades territoriais básicas (utbs).
4. Associação de mapa Unidades Homogêneas com dados auxiliares
! Consiste na associação de dados auxiliares temáticos preexistentes tais como,
mapas geológicos, geomorfológicos, mapas de solos e de cobertura vegetal, com o
99
mapa preliminar de unidades homogêneas obtido na etapa “C”. Esta associação
permite caracterizar tematicamente cada unidade homogênea.
5. Avaliação da vulnerabilidade de Unidades Homogêneas
! Estabelecer a vulnerabilidade natural de cada unidade homogênea considerando
a integrada da rocha, do solo, do relevo e da vegetação. Informações
complementares dos efeitos do clima e de uso da terra são também considerados.
! A estabilidade ou vulnerabilidade, resistência ao processo natural à erosão, são
utilizados para caracterizar uma unidade homogênea conforme os seguintes
aspectos de influência:
Tabela 6.1 - Fatores que influenciam na erosão. Adaptado de Barbosa (1998)
Geologia O grau coesão das rochas determinado pelaintensidade da ligação entre os minerais ou partículasque as constituem
Pedologia Atributos do solo: textura, estrutura, porosidade,permeabilidade, profundidade, e pedregosidade.
Geomorfologia Descrição do relevo: altitude, amplitude altimétrica,declividade e intensidade de dissecação peladrenagem.
Vegetação A vegetação evita o impacto direto contra o terrenodas gotas de chuva que promovem a desagregaçãodas partículas; impede a compactação do solo quediminui a capacidade de absorção de água; aumentaa capacidade de infiltração do solo pela difusão dofluxo de água.
! Para cada tema, repete-se o mesmo processo: para geologia, se o tipo de rocha
presente na unidade apresenta alto grau de coesão, atribui-se à unidade nota
próxima à estabilidade (1,0); se o tipo de rocha presente na unidade apresenta
valores intermediários no seu grau de coesão, atribui-se nota ao redor de 2,0 à
unidade; se o tipo de rocha presente na unidade apresenta baixa resistência à
erosão, pequeno grau de coesão, atribue-se nota próximo à vulnerabilidade
(3,0). Para determinação a classe de vulnerabilidade resultante de uma unidade
territorial básica é considerando simultaneamente a contribuição de todos os
temas, ou seja, a nota final de cada unidade pode ser obtida por uma média
100
entre as notas individuais de cada tema para cada unidade ambiental, como é
ilustrado na A Figura 6.1.
Figura 6.1 - Modelo para estimar a Vulnerabilidade Natural à Erosão de umaUnidade Territorial Básica.Fonte: Barbosa (1998).
6. Elaboração de carta de vulnerabilidade
! Gerar o mapa temático de vulnerabilidade a partir dos resultados numéricos
alcançados até então.
6.2 Elaboração do Modelo de Análise no SIGDe posse do mapa preliminar de unidades homogêneas de paisagem obtida a partir da
análise e interpretação visual de LANDSAT/TM e dos mapas temáticos de Geologia,
Geomorfologia, Pedologia e Cobertura Vegetal inseridos no banco de dados do SPRING
executar as seguintes operações de transformações nos dados (Barbosa, 1998):
1. Associar a cada um dos mapas base de Geologia, Geomorfologia, Pedologia e
Cobertura Vegetal os pesos que indicam a contribuição relativa de cada tema. A partir
de cada mapa temático, serão gerados modelos numéricos de terreno nos quais os
valores estarão entre o mínimo de 1 (estabilidade) e 3 (instabilidade).
101
2. Gerar os mapas derivados, através de uma operação zonal entre o mapa de unidades
territoriais básicas (UTB), obtido na etapa (1) com o modelo numérico de terreno
resultante da ponderação de cada mapa temático, obtido na etapa (2). Esta etapa deverá
produzir novos modelos numéricos, com a distribuição das contribuições da cada
componente do meio físico esteja homogeneizada pela zonalidade das UTBs.
3. Realizar uma operação de média ponderada entre os mapas gerados na etapa (3), o que
permitirá integrar a contribuição de cada componente do meio físico para as diferentes
UTBs. O dado resultante será um único modelo numérico, com valores entre 1 e 3.
4. Por fim, o proceder o fatiamento do modelo resultante, gerando assim uma carta
temática de vulnerabilidade natural a erosão.
6.3 Tutorial de AMOEntendido o problema e o modelo de análise é possível então iniciar a construção do
diagrama solução em AMO. As palavras que fazem parte da interface são apresentadas em
fonte ARIAL, para facilitar a indetificação. O primeiro passo se refere ao conexão aos banco
de dados no SPRING:
1º. Passo: Selecionar Banco de Dados e Projeto
Para iniciar um diagrama novo, após acionar o programa AMO, é necessário selecionar o
banco de dados e o projeto onde estão os dados da aplicação ZEE, no SPRING. Na região
de seleção, da janela principal de AMO, pode-se navegar pelo sistema de arquivo, a fim de
procurar o banco de dados desejado. (Figura 6.2).
102
Figura 6.2 – Seleção de Banco de Dados.
Um clique duplo sobre o nome do diretório, que neste tutorial é o ZEE, faz com que
AMO verifique se o mesmo é ou não um banco de dados do SPRING. No caso afirmativo,
AMO automaticamente conecta-se a este banco, e apresenta ao usuário a lista de seus
projetos, para o usuário seleciono o projeto desejado (também através de um clique-duplo
sobre o projeto desejado) (Figura 6.3). Neste tutorial o projeto escolhido é o “224”.
Figura 6.3 – Seleção de Projeto.
2º. Passo: Selecionar os Dados
Após a escolha do projeto, AMO apresenta a hierarquia do modelo conceitual do banco de
dados geográfico, conforme foi definida pelo usuário (Figura 6.4). Cada Categoria é
identificada por um ícone, tal qual um pasta, com um desenho que a destingue de acordo
com o modelo de dados que pertence (Temático, Numérico, Imagem, Rede, Cadastral, Não-
espacial, Objeto) e seu nome à direita. Um clique sobre os sinais “+” faz com que AMO
apresente a lista de Planos de Informações desta Categoria.
103
Figura 6.4 – Seleção de Dados.
Os Planos de Informação são identificados por um ícone, tal qual uma folha de papel, com o
mesmo desenho da sua Categoria e seu nome à direita. Um clique-duplo sobre o Plano de
Informação faz com que AMO instancie uma variável deste dado, criando um ícone na Região
de Edição de Diagramas. (Figura 6.5):
Figura 6.5 – Instanciação de Variável.
A qualquer momento, o usuário pode verificar o código gerado por AMO. Neste ponto é
possível verifiar a declação e instanção desta variável. Para isto, basta clicar sobre o nome
da pasta “Code” na Região de Edição. Neste exemplo, o código gerado até o momento é:
{//// Declaracao das Variaveis//Tematico variable0 ("pedologia");
//// Instanciacao das Variaveis//variable0 = Recupere (Nome="solo_atualizado");
//// Fim//}
Repete-se o mesmo procedimento para todos os dados de entrado do problema, ou seja, os
Planos de Informação: go_atualizado, gm_atualizado, solo_atualizado, veget_atualizado e utbas.
104
Para melhor posicionar os elementos no diagrama, basta apontar o cursor sobre eles,
pressionar e manter pressionado o botão esquerdo do mouse, enquanto se desloca a figura.
Quando a figura estiver no local desejado solta-se o botão do mouse.
3º. Passo: Seleção de Operadores
Seleciona-se a pastar “Operator” na Região de Seleção, o que faz com que AMO apresente
todos os operadores de análise geográfica do sistema (Figura 6.6). Navegando-se por esta
hierarquia é possível identificar quais os operadores que irão compor as expressões
desejadas (conforme apresentado no Capítulo 3), ou seja, para compor uma expressão que
resulte em um dado do tipo Númérico procura-se o operador apropriado na pasta
identificada por Numérico:
Figura 6.6 - Lista de Hierárquica de Operadores.
Um clique-duplo sobre o nome do operador faz com que AMO instancie um comando
com este operador no diagrama em edição (Figura 6.7).
105
Figura 6.7 - Criação de um Comando.
No caso do problema apresentado serão necessário quatro operações de ponderação, uma
para cada um dos temas, geologia, geomorfologia, pedologia e vegetação. Portanto, é
necessário instanciar mais três comandos de ponderação.
4º. Passo: Conectar Elementos
Para estabelecer uma conexão entre os dados e operadores basta selecionar o ícone destes
dois elementos, na ordem em que se deseja que o fluxo de dados ocorra. Por exemplo, para
conectar o dado “solo_atualizado” identificado pela variavel0 e o comando de ponderação,
é necessário dar um clique-duplo sobre a variavel0, o que faz com que a sua moldura fique
amarela, e em seguida dar um clique-duplo sobre o comando Ponderação. Aparece um
menu onde o usuário deve confirmar ou cancelar esta conexão.
Figura 6.8 – Criação de Conexões.
Confirmando a conexão é estabelecido um fluxo de dado entre os dois elementos do
diagrama conforme pode ser observado na Figura 6.9:
106
Figura 6.9 – Fluxo de Dados.
Para se cancelar um fluxo incorreto basta dar um clique-duplo sobre o linha do fluxo de
dados e escolher a opção “Remove” no menu que aparecerá em seguida.
5º. Passo: Criar Variáveis Novas
Os quatro comandos de ponderação que foram instanciados no diagrama irão produzir
resultados do tipo Numérico como saída, portanto é necessário criar variáveis novas do tipo
Numérico para serem conectas na saída, no lado direito, dos comandos. Para criar uma
variável quando ainda não existe seu Plano de Informações, basta selecionar a sua Categoria com
um clique-duplo. Selecione a pasta “Data” na Região de Seleção e de um clique duplo sobre a
Categoria identificada como: Numérico. desta forma, AMO irá criar uma nova variável da
mesma Categoria. Repetir o processo para cada um dos quatro comandos de ponderação e
estabelecer as conexões entre o comando e a nova variável (Figura 6.10).
Figura 6.10 – Criação de Novas Varáveis.
107
6º. Passo: Configurar Variáveis
No nome “*NOVO*” indica para o usuário que ele ainda não forneceu os dados para a
configuração de uma nova variável. Para fazer isto basta apontar o cursor para os ícones e
dar um clique-simples com o botão esquerdo do mouse. Aparecerá um menu com as
opções “Config”,“Remove” e “Cancel”, selecionando-se a primeira opção AMO irá
apresentar uma janela com um formulário para a configuração desta variável (Figura 6.11).
Observe que estas informações serão utilizadas para a criação de um novo Plano de
Informação, como poderá ser observado clicando-se sobre a pasta “Code” na Região de Edição.
Figura 6.11 – Formulário de Configuração de Variáveis.
O Usuário deve preencher os dados conforme as característica que se deseja para o novo
Plano de Informação. No caso desta aplicação os dados são os seguinte (Figura 6.12):
Figura 6.12 – Dados do Novo Plano de Informação.
Repetir o mesmo processo para os outros três resultados intermediários dos demais
comandos de ponderação.
7º. Passo: Configurar Comandos
108
Para configurar os comandos do diagrama, procede-se da mesma forma como foi feito para
ativada a janela de configuração de variáveis: Clicar com o botão da direita e escolher
“Config” (Figura 6.13):
Figura 6.13 – Janela de Configuração de Comandos.
O preenchimento do campo “comment” não é obrigatório mas é útil para documentar o
procedimento. Este comentário fará parte do código a ser gerado em LEGAL. Para
configurar o comando de ponderação é necessário criar um tabela de ponderação,
atribuindo valores numéricos às classes do tema do dado de entrada. É necessário dar um
nome a esta tabela, no campo “Table Name” e em seguida clicar no botão “Edit Table”.
Neste ponto AMO irá incluir nesta janela os campos necessário a inclusão dos elementos
da nova tabela (Figura 6.14). Para selecionar uma classe clique no ícone representado por
um triângulo e selecione um dos nomes que aparecem na lista.
Figura 6.14 - Configuração de Tabelas.
Deve-se repetir o mesmo procedimento para as todas as tabelas de ponderação com os
seguintes dados (Tabelas 6.2, 6.3, 6.4 e 6.5):
109
Tabela 6.2 – Tabela de Ponderação para Solos. Adaptado de Barbosa et al. (1998)
Classe ValorPB1 2.0PB5 2.0HG 3.0R1 3.0TR 2.0R2 3.0LV7 1.0LV8 1.0ar 3.0A 3.0
Tabela 6.3 – Tabela de Ponderação para Geologia. Adaptado de Barbosa et al.(1998)
Classe ValorpEx_c_xingu 1.5pEgp_g_grao_para 1.4pErn_f_rio_fresco 2.7pEac_gran_s_carajas 1.3pEse_f_sobrei 1.9pEia_form_Iriri 1.0pEav_gran_v_guilher 1.2pEgo_f_gorotire 2.6Qa_Qc_aluviao 3.0
Tabela 6.4 – Tabela de ponderação de Vegetação. Adaptado de Barbosa et al.(1998)
Classe ValorFdt 1.0ArFdt 3.0Fam 1.3Fal 1.2Sc 1.7Scmd 1.8Srmd 2.2Sr 2.0
110
Tabela 6.5 – Tabela de Ponderação de Geomorfologia. Adaptado de Barbosaet al. (1998)
Classe ValorSept 1.2Estb 1.3Espp 1.1Ei 1.9Egi 2.2dr 2.3drv 2.7dk 2.4dkr 2.6dke 2.5drt 2.1dkit 2.0dm 1.2dmit 1.4dcta 1.6dci 2.0atf 1.0apf 3.0dit 1.4dc 1.6
8º. Passo: Adicionar Operação de Média Zonal
Seguindo o proposto na seção 6.2, item 2, o próximo passo é executar operações de Média
Zonal tendo como referencia as UTBs. Para isto, deve-se repetir o mesmo procedimento
do Passo nº 3 para instanciar comandos, mas desta o operador será Média Zonal. Repetir
os Passos nº 5, 6 e 7, ou seja, Criar novas variáveis, configurar variáveis e configurar
comandos. Os parâmetros de configuração de variáveis sãos os mesmo Figura 6.12 (exceto
o nome do campo “infolayer name” que é único para cada Plano de Informação). A operação
de Média Zonal não necessita de nenhum parâmetro mas é possível inserir comentários.
111
Figura 6.15 – Inclusão da Média Zonal.
9º. Passo: Calcular Média
O próximo passo é fazer o cálculo da média dos valores resultantes das médias zonal de
cada tema; Instanciar um comando a partir de “Expressão Numérica” na hierarquia de
operadores; conectar as variáveis que contém os valores resultantes de Média Zonal e
Configurar o a expressão numérica (Figura 6.16):
Figura 6.16 - Configuração de Expressão Matemática.
10º. Passo: Criar Mapa de Vulnerabilidade
O resultado da expressão numérica anterior é um mapa de vulnerabilidade numérico, para a
gerar o resultado final é necessário fazer um fatiamento transformando as faixas de valores
112
em classes da Categoria Vulnerabilidade. É necessário construir um tabela de fatiamento,
informando as faixas de valores e as respectivas classes (Tebela 6.6):
Tabela 6.6 – Tabela de Fatiamento de Vulnerabilidade. Adaptado de Barbosa etal. (1998)
Faixas Classes
[1.0,1.0999] estavel
[1.0999,1.1999] estavel1
[1.1999,1.2999] estavel2
[1.2999,1.3999] estavel3
[1.3999,1.4999] moderadamente_estavel
[1.4999,1.5999] moderadamente_estavel1
[1.5999,1.6999] moderadamente_estavel2
[1.6999,1.7999] moderadamente_estavel3
[1.7999,1.8999] medianamente_estavel
[1.8999,1.9999] medianamente_est_vul
[1.9999,2.0999] medianamente_est_e_ou_vul
[2.0999,2.1999] Medianamente_vul_est
[2.1999,2.2999] Medianamente_vulneravel
[2.2999,2.3999] Moderadamente_vul1
[2.3999,2.4999] Moderadamente_vul2
[2.4999,2.5999] Moderadamente_vul3
[2.5999,2.6999] Moderadamente_vul
[2.6999,2.7999] Vulneravel1
[2.7999,2.8999] Vulneravel2
[2.8999,2.9999] Vulneravel3
[2.9999,3.0] Vulneravel
Para informa esta tabela o procedimento é o mesmo da edição de tabelas da Figura 6.14, ou
seja, configurar o comando Fatiamento, dar um nome para a tabela e editar as valores
mínimo e máximo da faixa e as classes correspondentes.
113
6.4 ResultadosO diagrama da solução desenvolvida em AMO pode ser observado na Figura 6.8.
Tomando-o como um programa, é possível observar perfeitamente as entradas de dados e
as transformações ocorridas ao longo de todo o procedimento:
Figure 6.17 - Motodologia ZEE desenvolvido em AMO.
6.5 Análise dos ResultadosO Programa gerado pelo AMO é funcionalmente idêntico ao código fonte digitado
diretamente em LEGAL e apresentado no trabalho de Barbosa et al. (1998). Portanto, não
cabe analisar os resultados dos mapas gerados.
Como citou Eberts (1994), os usuários “experts” tendem a preferir linguagens de
comandos e linguagens de programação, enquanto que interfaces por manipulação direta
são melhores aceitas por usuário novatos. Um dos objetivo de AMO é atingir ao público
114
iniciante em Geoprocessamento facilitando sua iniciação no uso de procedimentos
complexos de álgebra de mapas sem, ao mesmo tempo sobrecarrega-lo com o aprendizado
de linguagem de programação. Programando em AMO, o usuário fica desobrigado de lidar
com conceitos de programação tais como variáveis, declaração e instanciação de variáveis,
chamada de funções e formato de parâmetros.
A programação de álgebra de mapas em AMO é feita de forma linear. Os procedimentos
são estabelecidos e detalhados em uma única seqüência e o usuário faz todas as conexões
para depois preencher as janelas de configuração. Ao escrever código em LEGAL, o
usuário trabalha de forma não linear, p. ex.: define as tabelas antes de definir o operador.
Neste sentido, uma interface AMO apresenta um resumo da parte operacional do
procedimento, permitindo ao usuário uma apreensão cognitiva imediata da metodologia
adotada. Consideramos assim que o AMO, uma vez tornado operacional, provavelmente
será mais utilizado que a programação direta em LEGAL.
115
CAPÍTULO 7
CONCLUSÕES
Este trabalho apresenta um protótipo de interface para Álgebra de Mapas que gera código
de programas em linguagem LEGAL. Com base na revisões das interfaces para Álgebra de
Mapas da literatura, no modelo de dados geográficos do SPRING e na definição da
linguagem LEGAL, propomos e implementamos uma interface para Álgebra de Mapas,
baseada em conceitos de orientação-por-objetos.
As principais vantagens do programa AMO são:
• Permitir a expressão, sob forma de diagrama de procedimento, de uma metodologia
complexa para Análise Espacial;
• Representar de forma cognitiva o modelo de análise espacial utilizado pelo usuário;
• Realizar a tradução automática dos diagramas para a linguagem LEGAL.
• Compõe um ambiente de rápido desenvolvimento de programas de Álgebra de
Mapas.
7.1 Melhorias Propostas e Direções FuturasPodemos apontar algumas melhorias e direções futuras para este trabalho:
• O uso de AMO como executor de programas em LEGAL e não simplesmente um
gerador de código. Para isto seria necessário uma integração mais forte com o
SPRING.
• A extensão do AMO para ler programas escritos em LEGAL, permitindo
apresentar graficamente o modelo de aplicação utilizado. Um programa escrito em
LEGAL tem todos os atributos necessários à criação de um diagrama a não ser a
posição de seus elementos. Para tanto é necessário dotar AMO de um interpretador
de LEGAL e um algoritmo de construção de diagramas.
116
• A extensão de AMO para gerar programas de Álgebra de Mapas em diferentes
sistemas (como ARC/INFO, IDRISI e GRASS), tornando-se uma poderosa
ferramenta de interoperabilidade, permitindo a rápida expressão de um mesmo
modelo em ambientes distintos;
• A realização de ensaios de usabilidade (LabIUtil, 1998) com usuários experientes em
análise geográfica e com novatos, pedindo que reportem a experiência a fim de
validarmos a interface e recolher-mos críticas e sugestões de melhoria;
• Dotar AMO da funcionalidade de visualização dos dados geográficos e tabelas do
sistema para facilitar o processo de análise do usuário.
7.2 ContribuiçõesTrata-se de um trabalho de pesquisa tecnológica, que apresenta como resultado principal a
interface AMO para desenvolvimento de programas em LEGAL. As contribuições que
este trabalhos oferece são:
• O AMO, como gerador de código em LEGAL poderá vir a se tornar um produto
de distribuição através da Internet, da mesma forma que o SPRING.
• O produto desenvolvido é uma ferramenta bastante útil na disseminação de
tecnologia de Geoprocessamento.
• A lista de requisitos, e toda a análise desenvolvida neste trabalho tem aplicação em
outros trabalhos relacionados com o tema.
117
REFERÊNCIAS BIBLIOGRÁFICAS
Barbosa, C. C., Álgebra de Mapas e suas aplicações em Sensoriamento Remoto eGeoprocessamento. São José dos Campos, Dissertação (Mestrado em Computação
Aplicada) - Instituto Nacional de Pesquisas Espaciais, 1998.
Barbosa, C. C.,Câmara, G.,Medeiros J. S., Crepani,E., Novo, E., Cordeiro, J. P. C.,
Operadores Zonais em Álgebra de Mapas e Sua Aplicação a Zoneamento Ecológico-
Econômico, Simpósio Brasileiro de Sensoriamento Remoto, Santos, 1998. Anais.
Berry, J. K. in: Maguire,D., Goodchild, M., Rhind, D. ed. Geographical InformationSystems: Principles and Applications. New York: John Wiley and Sons, 1991.
Bruns, T. e Egenhofer, M., Web-Top Interfaces for GIS Map Algebra. [online].
<http://www.cs.umd.edu/projects/hcil/People/tbruns/gisjournal/webalgebra.html>.
Fev. 1997.
Burrough, P. A., Principles of Geographical Information Systems for Land ResourcesAssesment, Oxford Science Publications, 1986.
Câmara, G. e Medeiros S., Geoprocessamento para Projetos Ambientais, VIII Simpósio
Brasileiro de Sensoriamento Remoto, Salvador-BA, 1996. Anais.
Câmara, G., Casanova, M., Hemerly, A.., Magalhães, G., Medeiros C. Anatomia deSistemas de Informação Geográficas, Campinas: UNICAMP, 1996. (Série X-Escola
Brasileira da Computação)
Câmara, G., Modelos, Linguagens e Arquiteturas para Bancos de Dados Geográficos.
São José dos Campos, Dissertação (Doutorado em Computação Aplicada) - Instituto
Nacional de Pesquisas Espaciais, 1995.
Câmara, G.; Souza, R. C. M.; Freitas, U. M. Paiva, J. A. C. SPRING: Concepção, Evolução,
Perspectivas. In: VII Simpósio Brasileiro de Sensoriamento Remoto, Curitiba-PA, 1993.
Anais, São José dos Campos: INPE, 1993.
Coad, P. e Yourdon E., Projeto Baseado em Objetos, Editora Campus, 1991.
118
Crepani. E., Medeiros, J. S., Azevedo, L. G.; Hernandez, P.; Florenzano, T. G., Duarte, V.
Curso de Sensoriamento Remoto Aplicado ao Zoneamento Ecológico-Econômico. São José dos Campos: INPE. 1996.
Eberts, Ray E., User Interface Design, Prentice Hall, 1994.
Egenhofer, M. and Richards, J. in McMaster, R. and Armstrong, M., ed. The Geographer’sDesktop: A Direct-Manipulation User Interface for Map Overlay. Minneapolis:
Auto-Carto 11, 1993. p. 63-71.
ERDAS, Model Maker Tour Guide, Atlanta: ERDAS Inc. 1993.
ESRI, GRID User's Guide. Redlands: Environmental Systems Research Institute, Inc.
1992.
Goodchild, M., Haining, R.P., Wise, S. Integrating GIS and spatial data analysis: problems
and possibilities. International Journal of Geographical Information Systems, 1992.
p. 407-423
Halfhil, Good By GUI, Hello NUI, Byte Magazine, p. 32-33 Set. 1997
I.S.O. International organization for Standardization / International Electrotechanical
Commission. Information Technology - Software Product evaluation - Qualitycharacteristics and guidelines for use. - ISO/IEC 9126, Genève: ISO, 1991.
IDRISI, IDRISI Project at Clark University, [online]. <http://www.idrisi.clarku.edu>.
Mar, 1996
INPE, Home Page do SPRING , [online]. <http://www.dpi.inpe.br/spring>. Mar. 1998.
LabIUtil, Ergonomia de Interfaces Homem-Computador, [online]. <ftp://ftp.ctai.rct-
sc.br/pub/labutil/apost4-2.zip>. Mar 1998.
LAS, Grassland, The land of Geographic Resources Analysis Support System, [online].
<http://www.las.com/grassland>. Mar. 1997.
Lucena, I., Câmara., G., Nascimento, M., AMO – Algebra de Mapas Orientada por Objetos,
IV Congresso e Feira para Usuários de Geoprocessamento da Amárica Latina [CD-
ROM]. In: GIS Brasil 98, Curitiba, 1998. Anais., Curitiba: Sagres, 1998. Seção de
Comunicação Técnico-Científica.
119
Lucena, I., Câmara., G., Nascimento, M., Interfaces para Algebra de Mapas, III Congresso e
Feira para Usuários de Geoprocessamento da Amárica Latina [CD-ROM]. In: GIS Brasil
98, Curitiba, 1997. Anais., Curitiba: Sagres, 1997. Seção de Comunicação Técnico-
Científica.
MacLennan, M. Object-Oriented Programing with [incr Tcl], Bell Labs Innovations for
Lucent Techologies, 1994.
Maguire,D.; Goodchild, M.; Rhind, D. Geographical Information Systems: Principlesand Applications. New York: John Wiley and Sons, 1991.
Murnion, S., ARC/INFO tutorial Home Page [online]. < http://boris.qub.ac.uk/shane/
arc/ARChome.html >. Fev. 1997.
Oliveira J. L. e Medeiros, C. B., Tutorial: User Interface Architecture, Languages, and Models
in Geographic DataBases, XI - Simpósio Brasileiro de Banco de Dados, São Carlos:
1996.
OSU, OSUMAP, Ohio State University Map Analysis Package for the PC, [online].
<http://thoth.sbs.ohio-state.edu>. Mar 1997.
Ousterhout, J. k., Tcl and the Tk Toolkit, Adison Wesley, 1994. (professional Computing
Series)
Shineiderman, B. Designing the User Interface, Stratgies for Effecitive Human-Computer Interaction. Addison Wesley. 1992.
Standing, C., Roy, G. G., Functional visual programming interface to geographical
information systems, Interacting with Computers, v. 7, n. 3, p. 82, Jan 1995.
Tomlin, D. Geographic information systems and Cartographic Modeling. New York:
Prentice Hall, 1990.
Worboys, M., GIS - A Computing Perspective, United Kingdown: Taylor & Francis, 1995.
121
APENDICE A
CONFIGURAÇÃO DE OPERADORES DE ÁLGEBRA DE MAPAS
Arquivo D:/amo/class/Operator.tcl
## [incr TCL] Class Operator of AMO#
class Operator {
inherit Tree
public variable Model ""public variable Label ""public variable Name ""public variable Icon ""public variable LIcon ""public variable Color "Gray3"public variable Inputs ""public variable Table falsepublic variable TabLabels ""public variable Mask ""public variable Token ""public variable Expression falsepublic variable Description "Descricao nao
fornecida"
constructor {name label model} {global icon;
set Name $nameset Label $labelswitch [string tolower $model] {
root {set Model 0}imagem {set Model 1}numerico {set Model 2}tematico {set Model 4}redes {set Model 8}nespacial {set Model 16}cadastral {set Model 64}objeto {set Model 128}
}if {$Model != 0} {
if {$Name == "group"} {set LIcon $icon(cat,$Model)
} else {set LIcon $icon(pi,$Model)
}
122
}}public method set_table {true_or_false} {set Table[string tolower $true_or_false]}public method set_expression {true_or_false} \
{set Expression [string tolower $true_or_false]}public method set_description {text}{set Description$text}
public method set_icon {file} {set icon $file}public method add_tablabel {label} {lappend TabLabels
$label}public method set_mask {args}public method add_input {indice times name type}
}
body Operator::add_input {indice times name type} {lappend temp $indicelappend temp $timeslappend temp $nameset type [string tolower $type]if {$name == "infolayer"} {
switch $type {imagem {set aux 1}numerico {set aux 2}tematico {set aux 4}redes {set aux 8}nespacial {set aux 16}cadastral {set aux 64}objeto {set aux 128}
}lappend temp $aux
} else {lappend temp $type
}lappend Imputs $temp
}
body Operator::set_mask {mask token} {set Mask $maskset Token $token
}
## ###################################################################
123
Arquivo D:/amo/etc/operators.cfg
## This file configure the Map Algebra Operators#
## Group and Operators:#
#Class Id {Name,form,group) LabelModel(output)#-------.----------.-----------------.---------------------.---------.Operator root group "Operadores" rootOperator img group "Imagem" imagemOperator num group "Numéricos" numericoOperator tem group "Temáticos" tematicoOperator red group "Redes" redesOperator cad group "Cadastrais" cadastral
Operator temclas Class "Classe" numericoOperator temfatie Fatie "Fatiamento" numericoOperator temrecla Reclassifique "Reclassificação" numericoOperator tematrib Atribua "Expressão Booleana" numericoOperator temexpr "= expr num" "Expressão Numérica" numerico
Operator imgexpr "= expr img" "Expressão Imagem" imagemOperator imgmat "= expr mat" "Função Matemática" imagemOperator imgreal "= real" "Real" imagemOperator imgbool "= expr bool" "Booleanos" imagem
Operator numexpr "= expr num" "Expressão Numérica" numericoOperator nummat "= mat func" "Função Matemática" numericoOperator numpond Pondere "Ponderação" numericoOperator numzons group "Zonais" numericoOperator numbool "= expr bool" "Booleanos" numerico
Operator nz_min MinimoZonal "Mínimo zonal" numericoOperator nz_max MaximoZonal "Máximo zonal" numericoOperator nz_med MediaZonal "Média zonal" numericoOperator nz_mai MairiaZonal "Maioria" numericoOperator nz_mino MinoriaZonal "Minoria" numericoOperator nz_sun SomaZonal "Soma" numericoOperator nz_over Overlay "Overlay" numericoOperator nz_buf Bufffer "Buffer" numerico
Operator numlocs group "locais" numerico
Operator nl_min MinimoLocal "Mínimo local" numericoOperator nl_max MaximoLocal "Máximo local" numericoOperator nl_med MediaLocal "Média local" numericoOperator nl_sun SomaLoca "Soma local" numericoOperator nl_dvp DesvPadrao "Desvio Padrão" numerico
125
## Hierarqy of Operators:##parent-ID add child-ID#----------.---.------------.root add imgroot add numroot add temroot add redroot add cad
img add imgexprimg add imgmatimg add imgrealimg add imgbool
num add numexprnum add nummatnum add numpondnum add numlocsnum add numzonsnum add numbool
numlocs add nl_minnumlocs add nl_maxnumlocs add nl_mednumlocs add nl_sunnumlocs add nl_dvpnumlocs add nl_vari
numzons add nz_minnumzons add nz_maxnumzons add nz_mednumzons add nz_mainumzons add nz_minonumzons add nz_sunnumzons add nz_overnumzons add nz_buf
tem add temclastem add temfatietem add temreclatem add tematribtem add temexpr
## Configure Operators here:##
#ID instruction values#----------.---------------.-----------------------------------------.numpond set_table truenumpond add_tablabel "classe"numpond add_tablabel "valor"numpond add_input A: 1 infolayer tematico
126
numpond set_mask "%s = Pondere(%s,%s);" "output,A,table"
nz_med add_input A: 1 infolayer numericonz_med add_input B: 1 infolayer tematiconz_med set_mask "%s = MediaZonal(%s.Class *);""output,A,B"
temfatie set_table truetemfatie add_tablabel "mínimo"temfatie add_tablabel "máximo"temfatie add_tablabel "classe"temfatie add_input A: 1 infolayer numericotemfatie set_mask "%s = Fatie(%s,%s);" "output,A,table"
numexpr set_expression truenumexpr add_input A: N infolayer numericonumexpr set_mask "%s = %s" "output,expression"
## Return de zero level of Operators hierarqy## It most be the last line code:
return root