Aplicativo Integrado a um Sistema CAD para Geração
do Modelo Digital do Terreno
Mário A. Oliveira1, Yury J. M.Camargo1, Antônio C. Baleeiro Alves1,2
Escola de Engenharia Elétrica e de Computação, UFG1, Departamento de Computação,
UCG2
Praça Universitária, Goiânia, Brasil
[email protected], [email protected], [email protected]
Resumo. Os programas de modelamento digital de terreno utilizados na atualidade são elaborados em sistemas CAD próprios e específicos e são orientados a
determinados campos de aplicação. Com o intuito de demonstrar a viabilidade
de elaborar aplicativos portáveis e confiáveis, de fácil manuseio pelo usuário,
este trabalho apresenta os principais passos para a implementação de um programa que permite a análise completa dos elementos topográficos de uma superfície definida por suas coordenadas. A principal vantagem da implementação reside no fato de utilizar o mesmo ambiente de programação do AutoCAD.
Abstract. The programs of digital modeling of land used at the present time are
elaborated in systems own and specific CAD, besides they are guided to certain
application fields. With the aim of showing the feasibility of elaborating applications carried and reliable, of easy handling for the user, this work presents the
principal steps for the implementation of software that allows the complete
analysis of the topographical elements of a land surface defined from its coordinates. The main advantage of this implementation resides in the fact of using
the same programming environment of the AutoCAD system.
1 Introdução
Desde meados da década de sessenta havia uma preocupação em se criar modelos
para representar superfícies através da computação gráfica, objetivando rapidez, precisão e versatilidade. A IBM, por exemplo, em 1965 implementou um algoritmo para
criar mapas de contorno. Entretanto, no Brasil, apenas a partir da década de noventa,
o uso de ferramentas capazes de gerar o modelo digital do terreno (MDT) tornou-se
popular entre os profissionais de engenharia, apesar de existirem no país pesquisas
relacionadas com MDT e representação gráfica de superfícies desde o início dos anos
oitenta. A referência [1], datada de 1983, é um exemplo do esforço acadêmico nessa
área.
Atualmente é difícil se pensar em simular e analisar dados geográficos sem o uso
de ferramentas computacionais, porém, apesar de existirem programas que geram o
MDT, como o Spring, Mapinfo, Topograph, e tantos outros, estes são programas que
não estão difundidos entre os profissionais.
O presente trabalho tem por objetivo apresentar as diretrizes fundamentais para a
criação de um aplicativo integrado a um sistema CAD bastante difundido entre os
profissionais de engenharia e áreas afins, que possibilite a criação do MDT. Com este
aplicativo, pode-se, a partir do modelo digital, gerar curvas de níveis, perfis, superfícies, relatórios de área plana, área de superfície e volume, e também visualizar interativamente o terreno em três dimensões.
O AutoCAD, foi um dos poucos programas CAD encontrados que permite o total
acesso e manipulação a seu banco de dados através de linguagens de programação,
permitindo-se criar interfaces com o usuário usando o próprio sistema CAD. As linguagens que possibilitam a integração com o AutoCAD são três: o AutoLisp, o
ADSRX e o ARX. O AutoLisp é a linguagem mais conhecida e de fácil aprendizagem,
por isso, será objeto desse estudo.
As principais técnicas e conceitos apresentados e discutidos no presente trabalho
são: a aquisição de dados, a criação e extração de dados do MDT.
2 Aquisição de dados
No processo de modelagem digital de terreno, a amostragem é uma das tarefas mais
importantes de todo o processo. A amostragem compreende a aquisição de um conjunto de amostras que representam a variação de um fenômeno espacial de interesse.
Independente dos métodos a serem adotados, as amostras devem passar por transformações matemáticas de modo a serem referidas a um sistema de referência, e projetadas em um sistema de projeção plana em coordenadas cartesianas x, y, z.
Em termos de aquisição de dados espaciais, tem-se hoje uma gama de métodos eficientes e diferenciados, onde se pode citar a obtenção de dados através de receptores
do sistema NAVSTAR-GPS (NAVigattion Satellite with Time And Ranging – Global
Position System), um sistema de posicionamento global confiável e de alta acurácia,
que foi desenvolvido pelo departamento de defesa dos EUA [2].
A escolha do meio de obtenção está relacionada com as características da área a ser
medida e da precisão requerida.
2.1 Tipos de Amostras
Neste texto optou-se em dividir as amostras em dois tipos: as pontuais e as curvas.
Quanto à posição relativa das amostras pontuais, pode-se classificar a amostragem em:
regular, semi-regular e irregular.
A amostragem regular é aquela cuja posição espacial x, y das amostras mantém
uma regularidade de distribuição tanto na direção x e quanto na y . As amostragens
semi-regulares são aquelas onde as amostras então distribuídas em certos caminhos,
como drenagens, estradas e divisores de águas. Na amostragem irregular, a escolha
das amostras é devida a pontos notáveis do terreno, onde o relevo sofre uma mudança
importante. Na maior parte dos casos, as amostras mais representativas de um fenômeno não estão regularmente distribuídas.
As amostras classificadas como curvas são curvas de níveis obtidas a partir do uso
de equipamentos, como stereoplotters, sobre uma base composta de fotografias em
estéreo obtidas por aerolevantamento.
2.2 Aspectos da Estrada de Dados e Implementação
No caso de dados digitais, a importação pode ser feita por: arquivos vetoriais com
extensão dwg ou dxf; arquivos bitmap com extensões suportadas pelo AutoCAD; e
arquivos ASCII com extensão txt.
Como a entrada de arquivos vetoriais e bitmaps já está implementada no próprio
AutoCAD, apenas a entrada através de arquivos txt necessita de uma implementação.
Esta pode ser feita usando-se basicamente as funções AutoLisp [3] de manipulação de
arquivos ASCII (close, open, read-char, read-line), as de transformação de string em
números reais (atof, distof), e a de criação de entidades (entmake).
Em se tratando de arquivos vetoriais compostos de pontos e curvas, estes serão tratados respectivamente como entidades do tipo ponto e “polilinha”, no sistema CAD.
Caso os dados não estejam no R 3 , deverá ser adicionada a coordenada z em cada
entidade.
Com relação aos arquivos bitmaps oriundos de uma digitalização de plantas topográficas com curvas de níveis e pontos cotados, estes serão tratados como imagens
raster pelo programa, assim deverão passar por um processo de vetorização, que pode
ser manual ou semi-automática.
Os dados não digitais devem ser submetidos à digitalização. No caso de plantas
impressas, pode-se o usar o scanner para obtenção de imagens raster, ou a mesa digitalizadora para vetorização direta no sistema. Se os dados estiverem na forma de coordenadas, basta digitá-las via teclado no próprio sistema ou em um arquivo txt.
3 Modelo Digital do Terreno
Tentar expressar o relevo do terreno em termos matemáticos significa modelar sua
superfície através de uma função que forneça a elevação de cada ponto do terreno a
partir de suas coordenadas no plano xy , ou seja, o relevo poderia ser modelado por
uma função matemática na forma da equação 1, em um determinado domínio.
z = f ( x, y )
(1)
Esse tipo de modelamento não é ideal, pois não seria possível descrever certos tipos de acidentes geográficos, como túneis e cavernas apenas por uma equação de
superfície. Nesses casos, o mais adequado seria o uso de modelos sólidos, porém estes
são demasiadamente mais complicados e na maioria dos acidentes geográficos a representação por uma superfície é adequada. Representar o terreno computacionalmente através de uma única função analítica apresenta dificuldades, uma vez que a quantidade de amostras envolvidas no processo é finita e de modo algum seria possível
calcular uma função f que exprimisse o terreno de forma exata. No entanto, podem ser
feitas aproximações valendo-se de métodos numéricos e estatísticos para ajustar uma
superfície de tendência. A essa superfície é dado nome de modelo numérico do terreno (MNT) ou MDT.
O processo para obtenção de um MDT, de um modo simplista, passa por três etapas: (1) obtenção de uma amostra de pontos ( x, y, z ) do terreno; (2) decomposição da
projeção da superfície do terreno em triângulos no plano xy em função das amostras
(3) ajusta-se um plano em cada triângulo com as informações dos três vértices, sendo
o domínio de cada equação do plano restrito ao triângulo, o que significa aproximar o
terreno por uma superfície poliédrica. Como cada uma das faces planares da superfície a ser obtida fica completamente caracterizada a partir de três de seus pontos, o
problema de obter tal superfície pode ser reduzido ao de obter uma triangulação apropriada para os pontos amostrais projetados no plano xy . Os diversos tipos de amostras discutidos na seção 2.1 dão origem a problemas de triangulação com diferentes
graus de estruturação. O problema de construir uma superfície com base numa amostra irregular é o problema clássico de triangulação de um domínio do plano.
3.1 Triangulação de Delaunay
Para a implementação do aplicativo, a parte mais difícil da construção do MDT consiste na programação eficiente do algoritmo de triangulação. A solução deste problema implica em decidir de que maneira proceder à interligação dos pontos amostrados
para se formar uma triangulação. Uma triangulação de um conjunto de pontos consiste
em se encontrar segmentos de reta que conectam estes pontos de tal modo que nenhum desses segmentos cruze com nenhum outro e que cada ponto seja vértice de pelo
menos um triângulo formado por esses segmentos.
A método de triangulação mais utilizado para gerar o MDT é a triangulação de Delaunay (TD) [4]. Dois métodos de triangulação (Delaunay e não Delaunay) sobre
cinco pontos estão ilustrados na Fig. 1(A) e Fig. 1(B), respectivamente.
(A)
(B)
Fig. 1. Interligação dos pontos A, B, C, D, e E, formando uma triangulação Delaunay em (A) e
outra não Delaunay em (B).
Esse tipo de triangulação tende a criar triângulos mais homogêneos o que favorece
uma melhor aproximação com a realidade do terreno amostrado. Qualquer triângulo
em uma TD tem a seguinte propriedade: um círculo criado pelos três pontos dos vértices do triângulo contém apenas esses três pontos, ou seja, nenhum outro ponto da
triangulação pertencerá ao círculo formado pelos três pontos, conforme pode ser visualizado na Fig. 1(A). Quando a amostra é semi-regular, determinadas arestas devem
estar obrigatoriamente presentes e o problema resultante é uma triangulação com
restrições.
3.2 Algoritmo
O algoritmo descrito a seguir pode ser refinado de diversas formas para ser mais eficiente. Uma melhora significativa é alcançada ao ordenar as coordenadas xyz das amostras em x como primeira prioridade e depois em y . Com essa medida evita-se muitos
testes desnecessários, como, por exemplo, o teste para verificar se o ponto corrente
pertence à circunferência circunscrita a um triângulo. Nesse caso, se a componente
x do ponto menos a componente do centro da circunferência for maior que raio da
circunferência, os pontos com componentes maiores à direita não precisarão ser testados, o mesmo pode ser feito para as componentes à esquerda. Com essa melhora e
usando como algoritmo de ordenação o quicksort, consegue-se reduzir a complexidade do algoritmo para O( n1,5 ) . A seguir é apresentado um pseudocódigo da TD, escrito
a partir do algoritmo desenvolvido por Paul Bourke (1989) [4].
{Entrada: lista de vértices (LV)}
{Saída:
lista de triângulos (LT)}
início
Inicialize uma LT;
Crie um super triângulo (ST);
Adicione os vértices do ST no final da LV;
Adicione o ST no final da LT;
para cada ponto na LV faça
Inicialize uma lista de arestas (LA);
para cada triângulo corrente na LT faça
Calcule o centro e o raio da circunferência circunscrita (CC) ao triângulo;
se o ponto estiver dentro de CC
então
Adicione as 3 arestas do triângulo na LA;
Remova o triângulo da LT;
fim se;
fim para;
Apague todas as arestas coincidentes na LA;
Adicione na LT todos os triângulos formados pelas arestas
do polígono fechado e o ponto;
fim para;
Remova da LT todos os triângulos que tiverem algum vértice
comum ao ST;
Remova os vértices do ST da LV;
fim.
Alguns trechos do algoritmo carecem de comentários: um super triângulo (ST) é um
triângulo isósceles projetado de modo que todos os pontos da LV sejam interiores a
ele. A ação de apagar todas as arestas coincidentes na LA faz com que as arestas restantes na lista de arestas formem um polígono fechado.
3.3 Fronteira
Em uma TD são interconectados pontos que não são pertinentes entre si, ou seja, que
não deveriam ser interconectados, pois entre eles podem existir variações no terreno
que não foram consideradas no levantamento. Normalmente isso ocorre entre os limites da área levantada e o fecho convexo criado após a TD.
A impertinência é devida ao fato que, entre o fecho convexo e os limites levantados
poderia existir uma depressão ou elevação, já que não se sabe a priori como é o terreno entre eles, devido ao mesmo não ter sido amostrado nessa região. Neste caso, se
esses pontos forem triangulados estar-se-ia representando o terreno de forma equivocada.
Um método para resolver esse problema consiste em criar um polígono referente à
fronteira do levantamento e usar um algoritmo que teste todos os vértices de cada
triângulo da triangulação, verificando se o vértice é externo ao polígono referente à
fronteira. Se algum vértice de qualquer triângulo não pertencer ao polígono, o triângulo deverá ser excluído da triangulação.
Um algoritmo para verificar se um ponto é interno a um polígono foi desenvolvido
por Hall (1975). Tal algoritmo fundamenta-se na soma dos ângulos formados entre o
ponto dado e todos os vértices do polígono. Se a soma for 360° o ponto está dentro do
polígono.
3.4 Linhas Obrigatórias
Além de definir a fronteira é necessário mudar a triangulação em certos locais. Esses
locais são linhas que representam estradas, córregos, represas, o divisor de águas,
crista de barrancos, e outros tipos de amostras semi-regulares. Essas linhas obrigatoriamente devem pertencer a arestas de triângulos.
Nesses casos, a TD com restrições deveria ser feita, entretanto o algoritmo é um
tanto complicado e não faz diferença fazer essas mudanças depois da TD sem restrições, uma vez que cada aresta obrigatória afetará apenas os triângulos em que suas
arestas se interceptarem com a aresta obrigatória.
As Fig. 2(A) e 2(B) mostram um terreno em R 3 antes do processamento das obrigatórias e depois de processadas, respectivamente. Pode-se observar que alguns triângulos “aterram” o rio na Fig. 2(A), já na Fig. 2(B) o relevo é mais fiel à realidade.
3.5 Implementação do MDT
Depois de executadas a TD e as mudanças feitas pelo processamento da fronteira e
obrigatórias, tem-se como produto final uma lista de triângulos representativa da triangulação. Como a coordenada z não foi excluída nesses processos cada elemento
Tn da lista de triângulos é composto por três vértices (V1n , V2n , V3n ) , sendo que cada
vértice é um terno de coordenadas. Para tanto usaremos a lista de triângulos para formar cada face triangular do MDT.
O AutoCAD possui um entidade denominada de 3DFACE, que pode representar
uma superfície de 3 ou quatro lados. Basta então usar a função AutoLISP de criação
de entidades (entmake) para criar o MDT, usando os elementos Tn , em que n representa o número de triângulos existentes na lista de triângulos.
Fig. 2. MDT antes (A) e depois (B) do processamento das linhas obrigatórias.
3.6 Extraindo Dados do MDT
Com o MDT gerado pode-se extrair uma grande quantidade de dados e informações
para permitir a análise em diversas aplicações. Os cálculos de área e de volume são
normalmente os principais motivadores da criação de um MDT. Em linhas gerais, e
sem se preocupar com detalhes de algumas situações específicas, é mostrado a seguir
como obter o volume entre o MDT e uma superfície plana (SP), bem como a área
plana e a área de superfície.
Para o cálculo de área plana é suficiente calcular a área da projeção de cada elemento de superfície do MDT (3DFACE) e a SP. Esses cálculos se resumem em determinar a área de triângulos em um determinado domínio, e esse domínio pode ser
um polígono pertencente à interseção das duas superfícies, o MDT e a SP, ou os limites da triangulação caso a SP esteja posicionada acima ou abaixo do MDT.
Em se tratando de área de superfície, a diferença está em calcular a área da
3DFACE e não a projeção desta na SP. Se a SP interceptar o MDT, será preciso modificar o MDT criando-se novas 3DFACE. Quando a SP interceptar uma 3DFACE,
esta será dividida em duas na interseção desta com a SP. Desse modo, um domínio
qualquer fica completamente definido por um conjunto de 3DFACE.
Em seguida, é descrito como proceder ao cálculo de volume acima da SP. O cálculo de volume abaixo é feito de maneira análoga.
O cálculo de volume acima da SP é feito determinando-se o volume de cada sólido
( v) encerrado por uma 3DFACE e a SP em um determinado domínio. O cálculo de
v pode ser feito por integração numérica entre duas superfícies, a SP e a 3DFACE,
porém existe uma maneira mais simples de se proceder para o cálculo de v. Criandose um prisma reto entre a SP e o vértice de menor cota da 3DFACE, e subtraindo-se
deste a pirâmide formada entre a 3DFACE e a base inferior do prisma, tem-se o sólido
desejado. O cálculo deste sólido se resume ao cálculo de outros dois sólidos, de um
prisma reto e de uma pirâmide. O volume desejado é a somatória dos v’s.
Os procedimentos descritos nessa secção são verdadeiros se a SP estiver em uma
cota superior a qualquer elemento do MDT. Porém fazendo-se algumas modificações
temporárias no MDT pode-se calcular o volume em situações mais genéricas.
4 Conclusão
A metodologia aplicada é bastante simples em contraste com outros métodos mais
sofisticados de modelamento de superfície, que geram superfícies mais suaves. Para
aplicações, como cálculo de área de superfície, área plana e volume entre superfícies,
este método é aceito. Sua aplicação pode ser feita no projeto de centrais hidroelétricas
e em cálculos referentes a obras civis em aterros.
O aplicativo desenvolvido segundo os conceitos apresentados desse artigo foi comparado com outros programas consagrados, possibilitando a validação da metodologia, tanto nos cálculos de áreas e quanto de volumes. Considerável esforço de pesquisa e
implementação será requerido para aprimorar a performance computacional do algoritmo de Delaunay.
Referências
1. YAMAMOTO, J. K.: Representações Gráficas Espaciais em Geologia; Aplicações no
complexo Alcalino de Anitápolis. São Paulo, Brasil: Instituto de Geociências da USP,
1986. (Dissertação, Mestrado)
2. MÔNICO, J.F.G.: Posicionamento pelo NAVSTAR-GPS, Descrição, Fundamentos e Aplicações. São Paulo, editora UNESP, 2000.
3 GAÁL, J.A.: Curso de AutoLisp. Campinas, 1ª ed. DeseCAD Computação Gráfica, 1999.
4. http://astronomy.swin.edu.au/~pbourke/terrain/triangulate/ Acesso em 10/05/2004.
Download

Aplicativo Integrado a um Sistema CAD para Geração do Modelo