Upload
doananh
View
229
Download
4
Embed Size (px)
Citation preview
MINISTÉRIO DA DEFESAEXÉRCITO BRASILEIRO
DEPARTAMENTO DE CIÊNCIA E TECNOLOGIAINSTITUTO MILITAR DE ENGENHARIA
(Real Academia de Artilharia, Fortificação e Desenho, 1792)
SEÇÃO DE ENGENHARIA CARTOGRÁFICA - SE/6
AL FELIPE DE CARVALHO DINIZAL EURICO LOURENÇO NICACIO JUNIOR
DETERMINAÇÃO DA INTERSEÇÃO DE LINHAS GEODÉSICAS
Rio de Janeiro2009
INSTITUTO MILITAR DE ENGENHARIA
AL FELIPE DE CARVALHO DINIZ
AL EURICO LOURENÇO NICACIO JUNIOR
DETERMINAÇÃO DA INTERSEÇÃO DE LINHAS GEODÉSICAS
Iniciação à Pesquisa apresentada ao Curso de Graduação em
Engenharia Cartográfica do Instituto Militar de Engenharia.
Orientador: Cap QEM Francisco Roberto da Rocha Gomes
Rio de Janeiro
2009
SUMÁRIO
LISTA DE ILUSTRAÇÕES · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 3
LISTA DE TABELAS · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 4
1 INTRODUÇÃO · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 7
1.1 Contextualização · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 7
1.2 Objetivo · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 8
1.3 O problema · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 8
2 CONCEITOS BÁSICOS · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 10
2.1 Geometria do elipsóide · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 10
2.2 A linha geodésica · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 11
2.2.1 Teorema de Clairaut · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 12
2.3 Problema direto de coordenadas · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 16
2.4 Problema inverso de coordenadas · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 16
2.5 Fórmulas de Vincenty · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 17
2.6 Linhas geodésicas na esfera · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 19
2.6.1 O problema da interseção na esfera · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 22
3 SOLUÇÕES NO ELIPSÓIDE · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 23
3.1 Solução Analítica · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 23
3.2 Solução computacional · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 24
3.2.1 Transformada discreta de Fourier · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 28
3.2.2 Solução por transformada discreta de Fourier · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 29
3.2.3 Solução pelo primeiro método de busca · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 31
3.2.4 Solução pelo segundo método de busca · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 33
3.2.5 Solução por ajuste por polinômios · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 34
3.2.6 Solução por aproximação da integral principal · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 35
3.3 Influência de erros · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 36
4 CONCLUSÃO · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 38
5 REFERÊNCIAS BIBLIOGRÁFICAS · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 39
1
6 APÊNDICES · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 40
6.1 Apêndice 1: Problema Direto · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 41
6.2 Apêndice 2: Mudança de coordenadas · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 43
6.3 Apêndice 3: Gráfico da linha geodésica na esfera · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 44
6.4 Apêndice 4: Diferenças de latitude entre linha geodésicas na esfera e no elipsóide · · 45
6.5 Apêndice 5: Interseção na esfera · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 46
6.6 Apêndice 6: Interseção por Fourier · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 47
6.7 Apêndice 7: Problema inverso · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 49
6.8 Apêndice 8: Primeiro método do cálculo da interseção por busca · · · · · · · · · · · · · · · · · · · 51
6.9 Apêndice 9: Segundo método do cálculo da interseção por busca· · · · · · · · · · · · · · · · · · · · 52
6.10 Apêndice 10: Método do cálculo da interseção por ajuste polinomial· · · · · · · · · · · · · · · · 54
2
LISTA DE ILUSTRAÇÕES
FIG.1.1 Aplicação da interseção de linhas geodésicas em demarcação territorial · · · · · · 7
FIG.1.2 Interseção de linhas geodésicas em distribuição de royalties de petróleo · · · · · · 8
FIG.2.1 Coordenadas Geodésicas sobre o elipsóide · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 10
FIG.2.2 Elemento de linha de uma curva sobre a superfície do elipsóide · · · · · · · · · · · · · · · 11
FIG.2.3 Problemas de coordenadas Direto e Inverso · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 16
FIG.2.4 Elemento de linha de uma curva sobre a superfície da esfera · · · · · · · · · · · · · · · · · · 20
FIG.3.1 Gráficos em latitude-longitude e coordenadas cartesianas · · · · · · · · · · · · · · · · · · · · · 24
FIG.3.2 Gráficos ampliados em latitude-longitude e coordenadas cartesianas · · · · · · · · · · 25
FIG.3.3 Comparação da linha geodésica em um elipsóide com e=0.6 e na esfera · · · · · · 25
FIG.3.4 Linhas geodésicas na esfera e no elipsóide WGS84 · · · · · · · · · · · · · · · · · · · · · · · · · · · 26
FIG.3.5 Interseção de duas linhas geodésicas na esfera. · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 27
FIG.3.6 Saída Matlab · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 31
FIG.3.7 Interseção no elipsóide · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 31
FIG.3.8 Esquema algoritmo de busca · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 32
FIG.3.9 Interseção no elipsóide · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 33
3
LISTA DE TABELAS
TAB.3.1 Estatísticas para variações em azimute · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 26
TAB.3.2 Estatísticas para variações em latitude · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 26
TAB.3.3 Estatísticas para variações em longitude · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 27
TAB.3.4 Exemplos de interseção· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 34
TAB.3.5 Comparação método por ajuste e segundo método de busca · · · · · · · · · · · · · · · · · · 34
TAB.3.6 Influência em azimute · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 37
TAB.3.7 Influência em latitude· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 37
TAB.3.8 Influência em longitude· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 37
4
RESUMO
Esta pesquisa trata da solução do problema de interseção de linhas geodésicas, realizando
abordagens tanto por métodos computacionais quanto por um método analítico. Buscou-se ini-
cialmente realizar uma revisão de conceitos básicos de Geodésia, enfatizando alguns teoremas e
corolários necessários ao desenvolvimento matemático dos métodos. Em seguida, revisou-se os
conceitos de problema direto e inverso de coordenadas e, finalmente, avançou-se na implemen-
tação de métodos computacionais para a solução do problema. Para a solução computacional,
obteve-se sucesso com o uso de dois métodos por busca, um método por transformada discreta
de Fourier e um método por ajuste de polinômios. O primeiro método por busca e o método por
transformada de Fourier não se mostraram aplicáveis, o primeiro por nem sempre convergir e
o segundo por exigir uma aproximação inicial para resolver um sistema não-linear, retornando
um resultado não condizente caso tal aproximação não fosse próxima do resultado verdadeiro.
O segundo método por busca e o método por ajuste de polinômios foram considerados bons, o
primeiro por possuir erro menor que um metro, ainda podendo ser refinado, e o segundo por dar
a opção ao usuário de escolher a qualidade dos resultados, podendo obter precisão submétrica.
Para o método analítico, realizou-se apenas uma discussão sobre possíveis abordagens para o
mesmo. Outro ponto abordado na pesquisa é o modo como um erro em um dado inicial in-
fluencia a interseção entre linhas geodésicas, mostrando que uma pequena variação nos dados
iniciais pode gerar uma alteração de ordem maior que a variação inicial na interseção de linhas.
Por fim, é apresentada uma conclusão, com propostas para trabalhos futuros.
5
ABSTRACT
This research deals with the solution of the problem of intersection of geodesic lines, mak-
ing approaches through both computational methods as through analytical method. Initially, a
review of basic concepts of Geodesy was conducted, emphasizing some theorems and corol-
laries necessary for the development of mathematical methods. Then the concepts of direct
and inverse problem of coordinates were reviewed, and finally, moved to the implementation
of computational methods for solution of the problem. For the computational solution, it was
obtained success using two search methods, a method through Discrete Fourier Transform and
a method through polynomials adjustment. The first search method and the Fourier transform
method were not applicable, the first one by not always converging and the second by requiring
an initial approximation for solving a non-linear system, yielding a result not consistent if this
approximation was not close to the real result. The second search method and the method for
polynomials adjustment were considered good, the first one by having error fewer than one me-
ter, which can still be refined, and the second one by giving the user the option of choosing the
quality of the results, being able to obtain submetric accuracy. For the analytical method it was
only held a discussion of some possible approaches. Another point addressed in the research
is how an error in a given initial influences the intersection lines between geodesics, showing
that a small disturbance can generate a change of order greater than the initial change in the
intersection of lines. Finally, a conclusion is presented, with proposals for future works.
6
1 INTRODUÇÃO
1.1 Contextualização
A interseção de linhas geodésicas constitui um problema de relevância da Geodésia. Tal
assunto é utilizado, na atualidade, com diversas finalidades, dentre as quais podem ser citadas:
• Demarcação territorial: diversas fronteiras são geradas entre pontos que representam o
cruzamento de linhas geodésicas. Como exemplo, pode ser citado um trecho da fronteira
Brasil-Colômbia, o qual segue da cabeceira do Igarapé Santo Antônio até o talvegue do
rio Japurá. Este trecho, no sentido Tabatinga-Apapóris, é descrito por uma grande linha
geodésica de comprimento aproximado de 300 quilômetros, de acordo com o Laboratório
Nacional de Computação Científica.
FIG. 1.1: Aplicação da interseção de linhas geodésicas em demarcação territorial
FONTE: LABORATÓRIO NACIONAL DE COMPUTAÇÃO CIENTÍFICA.
• Distribuição de royalties sobre a obtenção de petróleo em plataformas no mar: de acordo
com o art.9o da Lei no 7.525, de 22 de julho de 1986, fica atribuído ao IBGE “traçar
as linhas de projeção dos limites territoriais dos Estados, Territórios e Municípios con-
frontantes, segundo a linha geodésica ortogonal à costa ou segundo o paralelo até o ponto
de sua interseção com os limites da plataforma continental”. Dessa forma, a distribuição
7
de direitos referentes à extração do petróleo em zonas econômicas exclusivas será coorde-
nada pelo IBGE e poderá ser realizada tendo como base as linhas geodésicas ortogonais
à costa.
FIG. 1.2: Interseção de linhas geodésicas em distribuição de royalties de petróleo
FONTE: SECRETARIA DE MEIO AMBIENTE E RECURSOS HÍDRICOS DO
ESTADO DO PARANÁ.
Além dos exemplos citados anteriormente, certamente há outras aplicações para o pro-
blema.
1.2 Objetivo
A presente pesquisa tem como objetivo propor métodos para a resolução do problema da
interseção de duas linhas geodésicas no elipsóide de revolução.
1.3 O problema
Uma das aproximações para a superfície da Terra utilizada para estudos da mesma é o
elipsóide de revolução, assim o cálculo de distâncias entre dois pontos no elipsóide é de extrema
importância para a Engenharia Cartográfica. A linha geodésica para cada superfície é uma
função unicamente obtida por dois pontos ou um ponto e um azimute. Possui como principal
propriedade determinar a menor distância entre dois pontos pertencentes a uma mesma linha
geodésica, sendo tal distância medida ao longo de seu arco.
8
O problema da interseção de duas linhas geodésicas consiste em encontrar as interseções
entre linhas geodésicas geradas por dois pontos e dois azimutes iniciais no elipsóide de revolu-
ção.
9
2 CONCEITOS BÁSICOS
2.1 Geometria do elipsóide
A título de evidenciar alguns conceitos básicos, a seguir segue um conjunto de algumas das
variáveis importantes e que merecem uma atenção especial nessa parte inicial, para que possa
haver o entendimento de todo o trabalho. Para maiores informações acerca das mesmas, ou para
informações sobre qualquer outro fator que o leitor julgue relevante e que não se encontra no
texto, sugere-se consulta à bibliografia, principalmente (BOMFORD,1971), (TORGE,2001) e
(VANICEK,1986).
O primeiro conceito que será utilizado é o sistema de Coordenadas Geodésicas, que é
definido pela orientação de seus eixos e determinação da origem. O eixo Z coincide com o
eixo de rotação médio da Terra, o eixo X definido pelo meridiano de Greenwich e o eixo Y é
definido de forma a tornar o sistema dextrógiro. A origem coincide com o centro de massa da
Terra.
Um ponto sobre o elipsóide é definido pelo ângulo que a normal ao elipsóide no ponto faz
com o plano XY, e pelo ângulo horário a partir do eixo X até o plano que contém o ponto e é
perpendicular ao plano XY como pode ser visto na FIG.2.1.
FIG. 2.1: Coordenadas Geodésicas sobre o elipsóide
10
Chama-se Seção Meridiana o plano que contêm o eixo de rotação do elipsóide de revolução,
é perpendicular ao plano XY e passa pelo ponto. O raio de Curvatura da Seção Meridiana é
dado por (BOMFORD,1971):
M =a(1− e2)(√1− e2 senϕ
)3
Chama-se Seção 1a Vertical o plano que contém o ponto e é perpendicular à Seção Meridiana
que passa pelo ponto. O raio de Curvatura da Seção 1a Vertical é dado por (BOMFORD,1971):
N =a√
1− e2 senϕ
Construindo os triângulos infinitesimais, mostrados na FIG.2.2, podemos obter as equações
diferenciais para uma curva sobre o elipsóide.
(a) Paralelo. (b) Meridiano. (c) Arco de curva.
FIG. 2.2: Elemento de linha de uma curva sobre a superfície do elipsóide
dϕ
ds=
cosα
M
dλ
ds=
sinα
N cosϕ
A partir desse conceito temos base para tratar de linhas geodésicas.
2.2 A linha geodésica
A linha geodésica será inicialmente definida nesse texto como a curva, na superfície dada,
que dá a menor distância entre dois pontos. Se a superfície é o plano, a linha geodésica é a reta.
11
No caso da superfície ser a esfera a linha geodésica é o circulo máximo.
Existem outras definições para a linha geodésica como, por exemplo, a curva cuja normal
principal coincide com a normal à superfície. Mas nesse texto, de modo a ter uma abordagem
utilizando cálculo variacional, será adotada a definição de distância mínima entre dois pontos.
No decorrer da seção poderá ser notado que a definição pode ser extendida para a menor ou
maior distância entre dois pontos e além de ser unicamente obtida por dois pontos ela também
pode ser obtida por um ponto e um azimute.
Teorema 2.1. Os meridianos são linhas geodésicas.
Demonstração. Para o meridiano, utilizando as equações diferenciais de uma curva no elip-
sóide:
dλ
ds≡ 0→ α ≡ 0 ou π
sm =
ϕ2∫ϕ1
M dϕ
Para outra curva entre os pontos ϕ1 e ϕ2 utilizando as equações diferenciais de uma curva
no elipsóide e utilizando o teorema do valor médio com pesos:
s =
ϕ2∫ϕ1
M
cosαdϕ =
1
cosα′
ϕ2∫ϕ1
M dϕ ≥ϕ2∫ϕ1
M dϕ = sm
onde cosα obrigatoriamente troca de sinal pois como ∆λ = 0 o azimute em algum momento
atinge o valor π2.
Logo a curva meridiana tem o menor comprimento de arco, portanto é uma linha geodésica.
2.2.1 Teorema de Clairaut
Nesta seção será demonstrada uma importante relação para a linha geodésica, mas para isso
será utilizada uma das equações fundamentais do cálculo variacional. Sua demonstração pode
ser encontrada em (WEINSTOCK, 1974).
Teorema 2.2 (Equação Diferencial de Euler-Lagrange). Seja
I =
∫f
t, y, dy
dt
dt
12
Se f satisfaz
∂f
∂y−
d
dt
(∂f
∂y
)= 0
onde y = dydt
, então I possui um ponto estacionário.
Com o uso da equação diferencial de Euler-Lagrange pode-se obter o Teorema de Clairaut:
Teorema 2.3 (Teorema de Clairaut). A linha geodésica no elipsóide de revolução satisfaz
N cosϕ sinα = cte.
Demonstração. O comprimento de arco é dado por:
s =
∫ √dx2 + dy2 + dz2
mas
dx =∂x
∂udu+
∂x
∂vdv
dx2 =
(∂x
∂u
)2
du2 + 2∂x
∂u
∂x
∂vdu dv +
(∂x
∂v
)2
dv2
Analogamente para y e z. Substituindo:
s =
∫ (((∂x
∂u
)2
+
(∂y
∂u
)2
+
(∂z
∂u
)2)
du2 + 2
(∂x
∂u
∂x
∂v+∂y
∂u
∂y
∂v+
+∂z
∂u
∂z
∂v
)du dv +
((∂x
∂v
)2
+
(∂y
∂v
)2
+
(∂z
∂v
)2)
dv2
)12
(2.1)
Para o elipsóide de revolução
x = N cosϕ cosλ
y = N cosϕ senλ
z = N (1− e2) senϕ
(2.2)
Fazendo u = ϕ, v = λ e substituindo x, y e z em EQ.2.1
13
(∂x
∂ϕ
)2
+
(∂y
∂ϕ
)2
+
(∂z
∂ϕ
)2
= M2
∂x
∂ϕ
∂x
∂λ+∂y
∂ϕ
∂y
∂λ+∂z
∂ϕ
∂z
∂λ= 0(
∂x
∂λ
)2
+
(∂y
∂λ
)2
+
(∂z
∂λ
)2
= N2 cos2 ϕ
s =
∫ √M2 dϕ2 +N2 cos2 ϕ dλ2
ou
s =
∫ M2
dϕ
dλ
2
+N2 cos2 ϕ
12
dλ
Como a linha geodésica é a curva com s mínimo, fazendo R = M2 , P = N2 cos2 ϕ,
v = dϕdλ
, f =(M2
(dϕdλ
)2+N2 cos2 ϕ
)12 e utilizando a equação diferencial de Euler-Lagrange
∂f
∂ϕ=
∂P∂ϕ
+ v2 ∂R∂ϕ
2√P +Rv2
∂f
∂v=
Rv√P +Rv2
d
dλ
(∂f
∂v
)= R
dvdλ√
P +Rv2+(−1
2
) v (2Rv dvdλ
)(P +Rv2)
32
∂f
∂ϕ−
d
dλ
(∂f
∂v
)=
1
2√P +Rv2
∂P∂λ
+ v2∂R
∂λ− 2R
dv
dλ+
2Rv2 dvdλ
P +Rv2
= 0
∂P
∂λ+ v2∂R
∂λ− 2R
dv
dλ+
2Rv2 dvdλ
P +Rv2= 0
Rv2
√P +Rv2
−√P +Rv2 = cte
v2 =P (P − cte2)
cte2R
dϕ
dλ
2
=N2 cos2 ϕ (N2 cos2 ϕ− cte2)
cte2M2(2.3)
14
Das equações diferenciais de uma curva no elipsóide
dϕ
dλ=N cosϕ cotgα
M(2.4)
Elevando ao quadrado EQ.2.4 e igualando a EQ.2.3
N2 cos2 ϕ cotg2 α
M2=N2 cos2 ϕ (N2 cos2 ϕ− cte2)
cte2M2
N2 cos2 ϕ = cte2(cotg2 α + 1
)N2 cos2 ϕ sin2 α = cte2
E assim N cosϕ sinα = cte′.
Note que, pelo fato da equação diferencial de Euler-Lagrange apenas garantir um ponto
estacionário, o Teorema de Clairaut é válido tambem para a linha de comprimento máximo
entre dois pontos.
Corolário 2.1. A equação diferencial dαds
= sinϕ dλds
é satisfeita pela linha geodésica.
Demonstração. Derivando N cosϕ sinα = cte em relação a s
N cosϕ cosα dαds
+ senα d(N cosϕ)ds
= 0 (2.5)
d (N cosϕ)
ds= −M senϕ
dϕ
ds∗1= −M senϕ
cosα
M(2.6)
Substituindo EQ.2.6 em EQ.2.5:
N cosϕ cosα dαds− senα senϕ cosα = 0
dα
ds=
tgϕ senα
N∗2= senϕ
dλ
ds
onde as passagens ∗1 e ∗2 são válidas pelas equações diferenciais de uma curva no elipsóide.
Corolário 2.2. O único paralelo que é uma linha geodésica é ϕ ≡ 0.
15
Demonstração. Suponha que algum paralelo seja uma linha geodésica. Como para o paralelodαds≡ 0 e como dα
ds= senϕ dλ
dsé válido para linha geodésica então senϕ dλ
ds≡ 0. Mas para o
paralelo dλds6= 0, assim sinϕ ≡ 0, então ϕ ≡ 0.
Corolário 2.3. A constante de Clairaut pode ser definida por um ponto e um azimute, conse-
quentemente, a linha geodésica pode ser definida por um ponto e um azimute.
Na próxima seção serão apresentados os principais problemas relacionados a linha geodésica.
2.3 Problema direto de coordenadas
O problema direto da geodésia assume que dadas as coordenadas do ponto inicial, o azimute
e a distância para um segundo ponto, é desejado encontrar as coordenadas do segundo ponto,
assim como o azimute do segundo para o primeiro ponto após percorrer uma distância s pela
linha geodésica definida pelo ponto inicial e pelo azimute.
2.4 Problema inverso de coordenadas
O problema inverso assume que dadas as coordenadas dos pontos inicial e final é desejado
encontrar o azimute do primeiro para o segundo ponto, o azimute do segundo para o primeiro
ponto e a distância entre eles.
(a) Problema Direto (b) Problema Inverso
FIG. 2.3: Problemas de coordenadas Direto e Inverso
16
2.5 Fórmulas de Vincenty
Um dos métodos para resolver o Problema Direto e Inverso de coordenadas na Geodésia
são as fórmulas de Vincenty descritas a seguir (VINCENTY, 1975). Ambas as fórmulas são
baseadas em métodos iterativos.
Primeiro serão apresentadas as fórmulas para o problema direto.
Dado o ponto inicial (ϕ1, λ1), azimute inicial α1, distância s em metros e os parâmetros
do elipsóide de referência b, f, e′ (semi-eixo menor, achatamento, segunda excentricidade) são
calculados:
tgU1 = (1− f) tgϕ1
u2 = e′2 cos2 α1
tg σ1 =tgU1
cosα1
senα = cosU1 senα1
A = 1 +u2
16384
(4096 + u2
(−798 + u2
(320− 175u2
)))(2.7)
B =u2
1024
(256 + u2
(−128 + u2
(74− 47u2
)))(2.8)
σ =s
bA
2σm = 2σ1 + σ (2.9)
∆σ = B senσ(
cos 2σm + 14B(
cosσ(−1 + 2 cos2 2σm
)−
− 16B cos 2σm
(−3 + 4 sen2 σ
) (−3 + 4 cos2 2σm
) ))(2.10)
σ =s
bA+ ∆σ (2.11)
As EQ.2.9, EQ.2.10 e EQ.2.11 são iteradas até que a variação em σ seja desprezível.
17
tgϕ2 =senU1 cosσ + cosU1 senσ cosσ1
(1− f)√
sen2 α + (senU1 senσ − cosU1 cosσ cosα1)2(2.12)
tg λ =senσ senα1
cosU1 cosσ − senU1 senσ cosα1
C =f
16cos2 α
(4 + f
(4− 3 cos2 α
))(2.13)
λ2−λ1 = λ− (1− C) f senα(σ+C senσ
(cos 2σm + C cosσ
(−1 + 2 cos2 2σm
)) )(2.14)
Das EQ.2.12 e EQ.2.14 é obtido o ponto final (ϕ2, λ2).
A seguir estão as fórmulas para o problema inverso.
λ = λ2 − λ1 (primeira aproximação)
sen2 σ = (cosU2 senλ)2 + (cosU1 senU2 − senU1 cosU2 cosλ)2 (2.15)
cosσ = senU1 senU2 + cosU1 cosU2 cosλ
senα =cosU1 cosU2 senλ
senσ
cos 2σm = cosσ −2 senU1 senU2
cos2 α
A variável λ é obtida pelas EQ.2.13 e EQ.2.14. As equações são iteradas começando por
EQ.2.15 até que a mudança em λ seja negligível. Após λ convergir pode-se calcular:
tgα1 =cosU2 senλ
cosU1 senU2 − senU1 cosU2 cosλ
tgα2 =cosU1 senλ
− sinU1 cosU2 − cosU1 sinU2 cosλ
s = bA(σ −∆σ)
onde ∆σ é obtido pelas EQ.2.7, EQ.2.8 e EQ.2.10.
18
As expressões foram validadas por (THOMAS e FEATHERSTONE, 2005) considerando
distâncias de até 18.000km, com erros em distância menores que 0, 115mm em todos os casos
testados. Este método será utilizado para o desenho de uma linha geodésica tendo em vista o
estudo de seu comportamento.
2.6 Linhas geodésicas na esfera
Nesta seção será deduzida a equação de uma linha geodésica na esfera utilizando métodos
similares a dedução do Teorema de Clairaut. A solução na esfera é de grande importância,
pois servirá como primeira aproximação para o cálculo computacional da interseção de linhas
geodésicas no elipsóide.
Parametrizando a esfera em coordenadas esféricas e calculando sua métrica:
x = a cosϕ cosλ
y = a cosϕ senλ
z = a senϕ
(∂x
∂ϕ
)2
+
(∂y
∂ϕ
)2
+
(∂z
∂ϕ
)2
= a2
∂x
∂ϕ
∂x
∂λ+∂y
∂ϕ
∂y
∂λ+∂z
∂ϕ
∂z
∂λ= 0(
∂x
∂λ
)2
+
(∂y
∂λ
)2
+
(∂z
∂λ
)2
= a2 cos2 ϕ
s =
∫ a2
dϕ
dλ
2
+ a2 cos2 ϕ
12
dλ
Resolvendo analogamente ao elipsóide, mas com R = a2 e P = a2 cos2 ϕ, tem:se
v2 =P (P − c2
1)
c21R
dϕ
dλ
2
=a2 cos2 ϕ (a2 cos2 ϕ− c2
1)
c21 a
2(2.16)
Note que um outro método para se obter a EQ.2.16 seria fazer e = 0 na EQ.2.3.
19
FIG. 2.4: Elemento de linha de uma curva sobre a superfície da esfera
Pode-se deduzir também o análogo do teorema de Clairaut, adaptando-o para a esfera. Da
FIG.2.4 tem-se:
dϕ
ds=
cosα
a
dλ
ds=
sinα
a cosϕ
dϕ
dλ= cosϕ cotgα (2.17)
Elevando a EQ.2.17 ao quadrado e igualando a EQ.2.16 tem-se:
cos2 ϕ cotg2 α =a2 cos2 ϕ (a2 cos2 ϕ− c2
1)
c21 a
2
a2 cos2 ϕ = c21
(cotg2 α + 1
)
a cosϕ senα = c1 (2.18)
onde c1 pode ser calculado a partir da equação:
c1 = a cosϕ1 senα1
Reescrevendo a EQ.2.16:
20
λ =
∫ dϕ
cosϕ
√(ac1
)2
cos2 ϕ− 1
λ = arctg
senϕ√(ac1
)2
cos2 ϕ− 1
+ c2
λ = arcsen
tgϕ√(ac1
)2
− 1
+ c2 (2.19)
onde c2 pode ser calculado a partir da equação:
c2 = λ1 − arcsen
tgϕ1√(ac1
)2
− 1
Note que a/c1 não depende de a, assim c2 e λ não dependem do raio da esfera.
Será demonstrada uma importante propriedade da linha geodésica na esfera: todas as linha
geodésicas são circulos máximos. Reorganizando a EQ.2.19:
sen (λ− c2) = cosλ sen (−c2) + senλ cos (−c2) =tgϕ√(ac1
)2
− 1
a cosϕ cosλ sen (−c2) + a cosϕ senλ cos (−c2)−a senϕ√(ac1
)2
− 1
= 0
x sen (−c2) + y cos (−c2)−z√(
ac1
)2
− 1
= 0
Logo a linha geodésica na esfera pertence a um plano que passa pela origem, assim ela é
um circulo máximo.
21
2.6.1 O problema da interseção na esfera
Seja (λ, ϕ) a interseção entre duas linhas geodésicas na esfera. Igualando as longitudes
dadas pela EQ.2.19 tem-se:
arcsen
tgϕ√(acA1
)2
− 1
+ cA2 = arcsen
tgϕ√(acB1
)2
− 1
+ cB2
Sejam A1 = 1√(acA1
)2
−1
, B1 = 1√(acB1
)2
−1
, u = tgϕ, cA2 = A2 e cB2 = B2
Dessa forma tem-se:
arcsenA1u+ A2 = arcsenB1u+B2
A1u = B1u cos (B2 − A2) + sen (B2 − A2)√
1−B21u
2
(A1 −B1 cos (B2 − A2))2 u2 = sen2 (B2 − A2)− sen2 (B2 − A2)B21u
2
u2 =sen2 (B2 − A2)
(A1 −B1 cos (B2 − A2))2 +B21 sen2 (B2 − A2)
tgϕ = u =± | sen (B2 − A2) |√
A21 +B2
1 − 2A1B1 cos (B2 − A2)
ϕ = arctg
± | sen (B2 − A2) |√A2
1 +B21 − 2A1B1 cos (B2 − A2)
(2.20)
Portanto existem duas interseções e elas são dadas pelas EQ.2.20 e EQ.2.19.
Seja (ϕ0, λ0) uma interseção, utilizando propriedades trigonométricas pode-se deduzir que
ϕ2 = −ϕ1 e λ2 = π + λ1.
Na próxima seção serão abordados métodos para a solução analítica no elipsóide de revolu-
ção.
22
3 SOLUÇÕES NO ELIPSÓIDE
Nesta seção serão abordados métodos analíticos e computacionais para a interseção de lin-
has geodésicas no elipsóide além de uma análise na influência de erros em dados iniciais na
interseção de linhas geodésicas.
3.1 Solução Analítica
Da EQ.2.3 pode-se chegar a
λ2 − λ1 =
ϕ2∫ϕ1
cM dϕ
N cosϕ√N2 cos2 ϕ− c2
(3.1)
Assim para a interseção
ϕi∫ϕ1
c1M dϕ
N cosϕ√N2 cos2 ϕ− c2
1
+ λ1 =
ϕi∫ϕ2
c2M dϕ
N cosϕ√N2 cos2 ϕ− c2
2
+ λ2 (3.2)
Há diversas formas de abordar o problema de forma puramente analítica, sendo a mais
natural resolver a EQ.3.2. Essa integral não pode ser resolvida através de funções usuais, assim
são necessários outros métodos. Como, pode-se citar:
• expansão das integrais por séries de Taylor;
• utilização de funções Theta de Jacobi (já que a integral da EQ.3.2 é uma função elíptica
de Jacobi de primeiro tipo);
• mudança para o dominínio complexo para utilizar ferramentas como Teorema de Cauchy
e Teorema dos Resíduos;
• expansão das funções em séries trigonométricas.
Mas todos esses métodos falharam em encontrar tal solução, então outra forma de resolver
é necessária. Utilizando artifícios de análise númerica, interpolação e ajuste pode-se chegar a
soluções aproximadas para o problema. Na próxima seção tais métodos serão abordados.
23
3.2 Solução computacional
Com a inviabilidade de uma solução inteiramente analítica foram feitas tentativas de méto-
dos utilizando auxílio computacional ,algumas soluções já foram propostas, como em (SJOBERG,
2008). Nesta seção será apresentado cinco propostas para solução. Primeiramente será abor-
dado o comportamento de linhas geodésicas no elipsóide.
Com o auxílio do algoritmo de Vincenty foi desenvolvido um algoritmo para plotar a linha
geodésica desenvolvida no elipsóide de revolução, tanto em coordenadas geodésicas (APÊNDICE
1) quanto em coordenadas cartesianas (APÊNDICE 2).
Na FIG.3.1 foram utilizados os algoritmos apresentados nos APÊNDICES 1 e 2 para gerar
um gráfico das linhas geodésicas definidas pelo ponto ϕ1 = 0◦, λ1 = 0◦, α1 = 20◦(representado
em azul no gráfico) e ϕ2 = 0◦, λ2 = 0◦, α2 = 30◦(representado em verde no gráfico).
FIG. 3.1: Gráficos em latitude-longitude e coordenadas cartesianas
Na FIG.3.1 a linha horizontal é somente para representar que a linha geodésica chegou a
360 graus e retornou para 0. Como pode-se ver na FIG.3.2 a linha geodéscia no elipsóide de
revolução não é fechada.
Verificando diversos gráficos podemos notar que a linha geodésica somente possui um
máximo e um mínimo no intervalo [0◦,360◦], e que esses pontos de inflexão estão afastados
por aproximadamente 180◦. Como consequência dessas propriedades tem-se que duas linhas
geodésicas não coincidentes se intersectam em dois pontos no intervalo [0◦,360◦] afastados de
aproximadamente 180◦.
Essa forma bem comportada da linha geodésica se deve ao valor da excentricidade ser
próximo de 0, assim se assemelhando à linha geodésica na esfera. A FIG.3.3 é o gráfico da
24
FIG. 3.2: Gráficos ampliados em latitude-longitude e coordenadas cartesianas
linha geodésica definida pelo ponto ϕ1 = 0◦, λ1 = 0◦, α1 = 20◦ no elipsóide (represen-
tado em azul no gráfico) de mesmos semi-eixos que o elipsóide WGS84 (a = 6378137m,
b = 6356752.31424518m), mas com uma excentricidade 0.6, que é bem maior que a excentri-
cidade original do WGS84, e a linha geodésica na esfera de raio igual ao semi-eixo maior do
WGS84 (a = 6378137m) representada em verde no gráfico.
FIG. 3.3: Comparação da linha geodésica em um elipsóide com e=0.6 e na esfera
Na FIG.3.4 é apresentado o gráfico da linha geodésica no elipsóide WGS84 e na esfera de
raio igual ao semi-eixo maior do elipsóide WGS84 (a = 6378137m).
Com o algoritmo apresentado no APÊNDICE 4 foi calculada a média dos módulos da di-
ferença entre as latitudes da linha geodésica no elipsóide e na esfera e sua variância para uma
dada longitude.
Os resultados apresentados nas TAB.3.1, TAB.3.2 e TAB.3.3 foram obtidos utilizando 400.000
pontos com afastamento de 10 metros entre eles.
25
FIG. 3.4: Linhas geodésicas na esfera e no elipsóide WGS84
TAB. 3.1: Estatísticas para variações em azimute
Azimute Média Desvio Padrão
15◦ 0.09976537500086◦ 0.00254528960485◦
30◦ 0.09123232611095◦ 0.00220389789808◦
45◦ 0.07642084479034◦ 0.00161585032946◦
60◦ 0.05535771499617◦ 8.826355521288976e-004◦
75◦ 0.02914223499899◦ 2.513685748803767e-004◦
TAB. 3.2: Estatísticas para variações em latitude
Latitude Média Desvio Padrão
0◦ 0.09976537500086◦ 0.00254528960485◦
15◦ 0.07798635865684◦ 0.00125797374877◦
30◦ 0.05029078955766◦ 3.932253610996046e-004◦
45◦ 0.02419933598908◦ 6.443057293959272e-005◦
60◦ 0.00728774848705◦ 4.799677271970695e-006◦
75◦ 0.00126335658284◦ 9.723945487448426e-007◦
89◦ 0.00972544893910◦ 1.218057715836067e-004◦
Na TAB.3.1 foi utilizado ϕ = 0, λ = 0 e variações de azimute, enquanto na TAB.3.2 foi
utilizado λ = 0, α = 15 e variações em latitude e finalmente na TAB.3.3 ϕ = 0, α = 15 e
variações em longitude.
Pode-se notar que variar os dados iniciais somente em longitude não altera o valor da estatís-
tica e que quanto, mais próximo do equador, mais a linha geodésica no elipsóide se aproxima da
linha geodésica na esfera. Em todos os casos a média foi menor que 0, 1, fazendo 1◦≈ 110km
na superfície do elipsóide, tem-se que 0.1◦≈ 11, 0km.
26
TAB. 3.3: Estatísticas para variações em longitude
Longitude Média Desvio Padrão
0◦ 0.09976537500084◦ 0.00254528960485◦
15◦ 0.09976537500084◦ 0.00254528960485◦
30◦ 0.09976537500084◦ 0.00254528960485◦
45◦ 0.09976537500084◦ 0.00254528960485◦
60◦ 0.09976537500084◦ 0.00254528960485◦
75◦ 0.09976537500084◦ 0.00254528960485◦
90◦ 0.09976537500084◦ 0.00254528960485◦
180◦ 0.09976537500084◦ 0.00254528960485◦
270◦ 0.09976537500084◦ 0.00254528960485◦
Vale notar que o raio da esfera não altera o valor das estatísticas, pois a latitude é somente
função da longitude e não do raio como pode ser visto na EQ.2.19 após substituir o valor de c1
e que um erro no algoritmo que traça a linha geodésica impediu testes de mais casos (o erro faz
com que a função plote o gráfico errado para certos azimutes e latitudes inicias).
A FIG.3.5 foi gerada a partir do algoritmo apresentado no APÊNDICE 3, são os gráficos da
linha geodésica gerada pelo ponto ϕ1 = 50◦, λ1 = 50◦, α1 = 100◦(representada em azul no
gráfico) e pelo ponto ϕ2 = 52◦, λ1 = 45 ◦, α1 = 110◦(representada em verde no gráfico).
FIG. 3.5: Interseção de duas linhas geodésicas na esfera.
Utilizando o algoritmo de interseção do APÊNDICE 5 chega-se aos resultados para inter-
seção λi1 = 196, 4144◦ e ϕi1 = −40, 0657◦ que é condizente com o gráfico. O algoritmo
também retorna a solução λi2 = 16, 4144◦ e ϕi2 = 40, 0657◦, que não aparece no gráfico.
27
3.2.1 Transformada discreta de Fourier
Dado um conjunto de N dados X[k], k = 1, 2, 3,...,N a transformada discreta de Fourier é
definida por:
Y (j) =N∑k=1
X(k)w−(x−1)(k−1)N
e sua transformada inversa por:
X(j) =1
N
N∑k=1
Y (k)w(x−1)(k−1)N
onde
wN = e2πiN
A transformada discreta de Fourier é extremamente útil, pois ela revela periodicidades nos
dados e também destaca componentes periódicos.
Pode-se notar que a transformada discreta é periódica:
XN+k = Xk
e para dados reais:
XN−k = Xk
onde Xk é o conjugado complexo de Xk.
Com essas duas propriedades pode-se diminuir o tempo de processamento, mas o método que
garante maior eficiência é a chamada transformada rápida de Fourier. A transformada rápida
de Fourier é um algoritmo baseado na transformada discreta de Fourier que reduz o número
de cálculos necessários para N pontos de 2N2 para 2NlgN onde lg é o logarítmo na base 2.
Através do lema de Danielson-Lanczos, demonstrado em (BRIGHAM, 2002), pode-se utilizar
o algoritmo da transformada rápida de Fourier para calcular a transformada discreta quando o
número de pontos é uma potência de 2.
O MATLAB já possui esse algoritmo implementado, e ele será base para o cálculo da inter-
seção como será demonstrado na próxima Seção.
28
3.2.2 Solução por transformada discreta de Fourier
Nesta seção será utilizada a Transformada Discreta de Fourier para interpolar a linha geodésica
no elipsóide e para o cálculo da interseção.
A partir de valores da latitude e longitude pode-se gerar a sequência U(j) e V (j) a partir dos
dados de λ e ϕ respectivamente. Quanto maior o número de dados melhor será a interpolação.
U(j) =N∑k=1
λ(k)w−(j−1)(k−1)N
V (j) =N∑k=1
ϕ(k)w−(j−1)(k−1)N
λ(k) =1
N
N∑k=1
U(k)w(j−1)(k−1)N
ϕ(k) =1
N
N∑k=1
V (k)w(j−1)(k−1)N
FazendoU(k) = A(k)+B(k)i e V (k) = C(k)+D(k)i, comow(j−1)(k−1)N = cos(2π(j−1)(k−1)
N)+
i sin(2π(j−1)(k−1)N
), tem-se que:
λ(j) =1
N
N∑k=1
A(k) cos(2π(j−1)(k−1)N
)−B(k) sin(2π(j−1)(k−1)N
)+
i1
N
N∑k=1
B(k) cos(2π(j−1)(k−1)N
) + A(k) sin(2π(j−1)(k−1)N
)
ϕ(j) =1
N
N∑k=1
C(k) cos(2π(j−1)(k−1)N
)−D(k) sin(2π(j−1)(k−1)N
)+
i1
N
N∑k=1
D(k) cos(2π(j−1)(k−1)N
) + C(k) sin(2π(j−1)(k−1)N
)
Como λ e ϕ são números reais temos que =λ = =ϕ = 0
λ(j) =1
N
N∑k=1
A(k) cos(2π(j−1)(k−1)N
)−B(k) sin(2π(j−1)(k−1)N
)
29
ϕ(j) =1
N
N∑k=1
C(k) cos(2π(j−1)(k−1)N
)−D(k) sin(2π(j−1)(k−1)N
)
Sejam ϕ∗(x) e λ∗(x) a função contínua que se sobrepõe a ϕ e λ para valores inteiros de
x respectivamente. Serão utilizadas estas funções como aproximação das funções latitude e
longitude.
λ∗(x) ≈1
N
N∑k=1
A(k) cos(2π(j−1)(k−1)N
)−B(k) sin(2π(j−1)(k−1)N
) (3.3)
ϕ∗(x) ≈1
N
N∑k=1
C(k) cos(2π(j−1)(k−1)N
)−D(k) sin(2π(j−1)(k−1)N
) (3.4)
Sejamϕ∗1 , ϕ∗2 e λ∗1 , λ∗2 duas aproximações das funções latitude e longitude. Assim igualando-
as para encontrar a interseção:
ϕ∗1(x) = ϕ∗2(y)
λ∗1(x) = λ∗2(y)
Este é um sistema de equações não linear, que pode ser resolvido utilizando a função fsolve
do Matlab. Tal função necessita de uma aproximação inicial que pode ser obtida resolvendo as
equações
λ∗1(x0) = λ0
λ∗2(y0) = λ0
onde λ0 é a longitude da solução na esfera.
Essas equações são não-lineares, então elas necessitam de uma aproximação inicial. Tal
método para se obter essa segunda aproximação inicial não pode ser obtido, isso compromete o
método, já que sem uma boa aproximação inicial o método pode levar a falsos resultados.
Como exemplo, utilizando a linha geodésica gerada por ϕ1 = 0◦, λ1 = 0◦, α1 = 75◦, e
a linha geodésica gerada por ϕ2 = 10◦, λ2 = 30◦, α2 = 300◦, 400.000 pontos com saltos de
100m e aproximação inicial x0 = 0 e y0 = 0 a saída do Matlab é apresentada na FIG.3.6.
30
FIG. 3.6: Saída Matlab
Os valores ϕi = 35, 6574◦e λi = 47.8347◦obtidos pelo método não são condizente com o
gráfico na FIG.3.7.
FIG. 3.7: Interseção no elipsóide
No APÊNDICE 6 se encontra o método de interseção por Fourier em função da aproximação
inicial.
3.2.3 Solução pelo primeiro método de busca
Nesta seção será apresentado o método por busca para o cálculo da interseção de linhas
geodésicas no elipsóide de revolução.
O método se baseia na proximidade da solução na esfera da solução no elipsóide. Sejam A
e B os pontos de entrada e P0 a solução da interseção na esfera. O primeiro passo do algoritmo
31
é a solução do problema inverso de A e P0, assim obtendo s0. A segunda etapa é a solução
do problema direto para o ponto A e distância s0, assim obtendo o ponto P1 que é a projeção
métrica de P0 sobre a linha geodésica que passa por A com o azimute azA.
A seguir se resolve o problema inverso para P1 e B, obtendo-se α1. Se α1 − azB > 0 então
P1 encontra-se após a interseção assim é calculado o problema direto para o ponto A e distância
s0 − d, onde d é um valor predefinido, obtendo-se P2. Se α1 − azB < 0 então P1 encontra-se
anterior a interseção assim é calculado o problema direto para o ponto A e distância s0 + d. O
processo se repete com a sequencia Pk até que a diferença αk − azB seja desprezível. Quando
isso ocorrer tem-se que Pk é a interseção.
O esquema do algoritmo se encontra apresentado na FIG.3.8, sendo que o mesmo não fun-
ciona em todos os casos. Em diversos casos testados ocorre a divergência do algoritmo devido
a oscilação da distância entre αk − azB.
FIG. 3.8: Esquema algoritmo de busca
O algoritmo se encontra no APÊNDICE 8.
32
3.2.4 Solução pelo segundo método de busca
O segundo método por busca se baseia em discretizar ambas as linhas geodésicas e encontrar
pontos onde a diferença de latitude e longitude sejam os menores possíveis.
O algoritmo se divide em dois programas a fim de diminuir o tempo de execução do al-
goritmo. O primeiro discretiza ambas as linhas geodésicas em 8.000 pontos com saltos de
5.000m. O número de pontos foi escolhido de tal forma que a discretização abrangesse toda
a linha geodésica no intervalo [0◦,360◦]. Dentre esses pontos são escolhidos dois pontos Pk e
Qj(um de cada linha geodésica) tal que√
(∆ϕ)2 + (∆λ)2 entre esses pontos fosse mínimo.
O processo então se repete discretizando os arcos de linha geodésica Pk−1Pk+1 e Qj−1Qj+1
em 10.000 pontos com salto de 1m e encontrando dois pontos Pk′ e Qj′(um de cada arco de
linha geodésica) tal que√
(∆ϕ)2 + (∆λ)2 entre esses pontos fosse mínimo. Tais pontos são
quase coincidentes e são considerados a interseção.
O programa poderia repetir o processo pela terceira vez, mas somente com 2 processos o
programa ja atinge precisão sub-métrica.
Como exemplo, seja a linha geodésica gerada por ϕ1 = 0◦, λ1 = 0◦e α1 = 75◦e a linha
geodésica gerada por ϕ2 = 10◦, λ2 = 30◦e α2 = 300◦. A interseção encontrada foi ϕi =
−8.50490394146717 e λi = 213.0990367794438 sendo a distância de 4.542203101802x10−6◦≈
0, 4m, que é condizente com a FIG.3.9.
FIG. 3.9: Interseção no elipsóide
O método tem a vantagem de não utilizar uma aproximação inical. O exemplo anterior foi
calculado em 120 segundos em um AMD Turion 64 X2 mobile, TL-60 2,01GHz com 1,93GB
de RAM.
33
Na TAB.3.4 encontram-se alguns outros exemplos.
TAB. 3.4: Exemplos de interseção
Pontos Interseção diferença Tempo
ϕ1 λ1 α1 ϕ2 λ2 α2 ϕi λi
0◦ 0◦ 20◦ 5◦ 30◦ 330◦ 31,18699406◦ 12,64593314◦ 2,07x10−6◦ 113s
0◦ 30◦ 120◦ 0◦ 0◦ 95◦ -2,889554307◦ 34,98190102◦ 1,01x10−6◦ 96s
30◦ 0◦ 120◦ 40◦ 0◦ 20◦ 31,45301998◦ 356,0895787◦ 4,42x10−6◦ 97s
O algoritmo se encontra no APÊNDICE 9.
3.2.5 Solução por ajuste por polinômios
Devido ao grande número de pontos que deve ser utilizado para garantir a representação de
linhas geodésicas, uma interpolação polinomial leva a um polinômio interpolador de grau ele-
vado, assim um método de interseção utilizando interpolação polinomial se consistiria em gerar
e encontrar a raiz de um polinômio de grau 400.000, o que, com testes, se mostrou inviável.
Este método consiste em ajustar ambas as linhas geodésicas em um polinômio de grau baixo,
no caso do programa são utilizados os graus 5,7,9 e 50, e calcular as raízes da diferença dos
polinômios. Tais raízes são as longitudes das interseções entre as linhas geodésicas, e utilizando
o polinômio novamente pode-se calcular a latitude da interseção.
Na TAB.3.5 se encontra a comparação entre as interseções encontradas nos ajustes e a in-
terseção encontrada pelo segundo método de busca utilizando a linha geodésica gerada por
ϕ1 = 0◦, λ1 = 0◦, α1 = 75◦e a linha geodésica gerada por ϕ2 = 10◦, λ2 = 30◦, α2 = 300◦.
TAB. 3.5: Comparação método por ajuste e segundo método de busca
Grau
5 7 9 50
∆ϕi ∆λi ∆ϕi ∆λi ∆ϕi ∆λi ∆ϕi ∆λi
0,366739475 0,008728007 0,131412204 0,00371969 0,021780792 0,000478133 0,000762565 3,47818E-05
Para o ajuste utilizando polinômio de grau 50 encontramos um erro em λ de 3, 47818x10−5◦≈
3, 825998m e erro em ϕ de 0, 000762565◦≈ 83, 88215m.
O algoritmo da interseção encontra-se no APÊNDICE 10.
34
3.2.6 Solução por aproximação da integral principal
Expandindo a integral da EQ.3.2 em série de Taylor em torno de zero para e tem-se
∫ca(1− e2)
a cosϕ√
1− e2 senϕ√a2cosϕ2 − c2
dϕ =
=
∫c
cosϕ√a2cosϕ2 − c2
dϕ+
∫c(senϕ− 2)e2
2√a2cosϕ2 − c2
dϕ+ . . . (3.5)
Aproximando a série para a ordem de e2 e substituindo na EQ.3.2
arcsen
tgϕi√(ac1
)2
− 1
+ d1 +
ϕi∫ϕ1
c1(senϕ− 2)e2
2√a2cosϕ2 − c2
1
dϕ =
arcsen
tgϕi√(ac2
)2
− 1
+ d2 +
ϕi∫ϕ2
c2(senϕ− 2)e2
2√a2cosϕ2 − c2
2
(3.6)
onde
d1 = λ1 − arcsen
tgϕ1√(ac1
)2
− 1
d2 = λ2 − arcsen
tgϕ2√(ac2
)2
− 1
Fazendo A1 = 1√(
acA1
)2
−1
, B1 = 1√(acB1
)2
−1
, u = tgϕi, A2 = d2 +∫ ϕi
ϕ2
c2(senϕ−2)e2
2√a2cosϕ2−c22
dϕ e
B2 = d2 +∫ ϕi
ϕ1
c1(senϕ−2)e2
2√a2cosϕ2−c21
dϕ tem-se:
arcsenA1u+ A2 = arcsenB1u+B2
Que como na seção 2.6.1 pode ser resolvida, obtendo-se
35
ϕi = arctg
± | sen (B2 − A2) |√A2
1 +B21 − 2A1B1 cos (B2 − A2)
=
arctg
± | sen
(d2 +
∫ ϕi
ϕ2
c2(senϕ−2)e2 dϕ
2√a2cosϕ2−c22
− d1 −∫ ϕi
ϕ1
c1(senϕ−2)e2 dϕ
2√a2cosϕ2−c21
)|√
A21 +B2
1 − 2A1B1 cos
(d2 +
∫ ϕi
ϕ2
c2(senϕ−2)e2 dϕ
2√a2cosϕ2−c22
− d1 −∫ ϕi
ϕ1
c1(senϕ−2)e2 dϕ
2√a2cosϕ2−c21
)(3.7)
O valor de ϕi pode ser obtido resolvendo recursivamente a EQ.3.7, tomando como aproxi-
mação inicial a interseção na esfera.
Analogamente a solução pode ser refinada para ordem e4 obtendo-se
ϕi = arctg
± | sen (d2 − d1 + I(ϕi)) |√A2
1 +B21 − 2A1B1 cos (d2 − d1 + I(ϕi))
onde
I(ϕi) =
ϕi∫ϕ2
c2(senϕ− 2)e2 dϕ
2√a2cosϕ2 − c2
2
−ϕi∫
ϕ1
c1(senϕ− 2)e2 dϕ
2√a2cosϕ2 − c2
1
+
+
ϕi∫ϕ2
c2(3senϕ2 − 4 senϕ)e4 dϕ
8 cosϕ√a2cosϕ2 − c2
2
−ϕi∫
ϕ1
c1(3senϕ2 − 4 senϕ)e4 dϕ
8 cosϕ√a2cosϕ2 − c2
1
A longitude da interseção pode ser obtida utilizando a EQ.3.1.
3.3 Influência de erros
Utilizando a solução computacional para o problema pode-se verificar como erros nos dados
iniciais influênciam a interseção. Nas TAB.3.6, TAB.3.7 e TAB.3.8 é calculado o erro inserido
por uma variação de 0,1 segundos e 0,01 segundos em latitude, longitude e azimute em um dos
pontos iniciais. Nas tabelas é mantida a linha geodésica ϕ1 = 0◦, λ1 = 0◦, α1 = 20◦.
A partir desses dados pode se constatar que a influência de erro é maior quando o erro é
em longitude. Para erros desse tipo a influência é da ordem de 50 vezes maior que a variação
inicial. Para variações de 0,01” em azimute o erro gerado foi, em geral, menor que a precisão
do segundo algoritmo de busca.
36
TAB. 3.6: Influência em azimute
Ponto diferença
∆α = 0.1′′ ∆α = 0.01′′
ϕ2 λ2 α2 ∆ϕ ∆λ ∆ϕ ∆λ
5◦ 30◦ 330◦ 0,0595” 0,0302” 3,6E-11” 3,6x10−11”
0◦ 10◦ 10◦ -0,2586” 0,1823” -0,0287” 0,0203”
10◦ 50◦ 340◦ 0,0541” 0,0568” 3,6E-11” 3,6x10−11”
TAB. 3.7: Influência em latitude
Ponto diferença
∆ϕ = 0.1′′ ∆ϕ = 0.01′′
ϕ2 λ2 α2 ∆ϕ ∆λ ∆ϕ ∆λ
5◦ 30◦ 330◦ 2,7386” 1,3879” 0,2679” 0,1358”
0◦ 10◦ 10◦ 2,7579” -1,9444” 0,2586” -0,1823”
10◦ 50◦ 340◦ 1,2991” 1,3631” 0,1353” 0,1420”
TAB. 3.8: Influência em longitude
Ponto diferença
∆λ = 0.1′′ ∆λ = 0.01′′
ϕ2 λ2 α2 ∆ϕ ∆λ ∆ϕ ∆λ
5◦ 30◦ 330◦ 4,4650” 2,2630” 0,4465” 0,2263”
0◦ 10◦ 10◦ -15,8580” 11,1810” -1,6088” 1,1342”
10◦ 50◦ 340◦ 2,8960” 3,0387” 0,2977” 0,3124”
37
4 CONCLUSÃO
De fato, o problema de interseção de linhas geodésicas constitui um tema de complexidade
avançada, com alguns aspectos pouco abordados, bem como suas soluções computacional e
analítica. Como foi visto na introdução, trata-se de um problema com aplicações variadas, as
quais exigem que se prime por uma solução viável, apropriada e vantajosa.
Durante o desenvolvimento desta pesquisa, notou-se a maior viabilidade de implementar
uma solução computacional em detrimento à analítica. Dentre os métodos computacionais
propostos o que obtve melhor resultados foi o segundo método de busca, pois obtém precisão
submétrica e pode ser refinado utilizando uma nova discretização.
Além disso, a análise da influência de erros em dados inicais na interseção de linhas geodési-
cas, verificando a maneira como ele se propaga tendo como entrada um dado inicial incorreto,
pôde mostrar que erros em latitude e longitude variam mais que a perturbação inserida, fazendo
com que uma pequena perturbação pode gerar uma alteração de ordem maior que a perturbação
inicial na interseção de linhas.
Como proposta para trabalhos futuros, sugere-se:
• modelagem da influência de erros em dados inicais na interseção de linhas geodésicas;
• busca de avanços na solução analítica para o problema de interseção de linhas geodésicas;
• desenvolvimento de um método para se obter uma boa aproximação inicial do sistema
não-linear do método de fourier aplicado na solução do problema;
• correção do erro no algoritmo que traça a linha geodésica na esfera;
• realização de modificações que garantam a convergência do primeiro método por busca
para solução do problema de interseção de linhas geodésicas;
• implementação e análise dos dados para o método por aproximação da integral principal.
38
5 REFERÊNCIAS BIBLIOGRÁFICAS
BOMFORD, G. (1971). Geodesy. 3th ed. Oxford: Oxford University Press.
BRIGHAM, E. 0. (2002). The Fast Fourier Transform. 2th ed. New York: Prentice-Hall.
LABORATÓRIO NACIONAL DE COMPUTAÇÃO CIENTÍFICA. Fronteiras e limites do
Brasil. Disponível em: http://info.lncc.br/. Acesso em: 1 de jun. 2009.
SECRETARIA DE MEIO AMBIENTE E RECURSOS HÍDRICOS DO ESTADO DO PARANÁ.
Mar territorial e os royalties do petróleo no Paraná.Disponível em:
http://www.recursoshidricos.pr.gov.br/arquivos/File/anexo2-2007marter.pdf. Acesso em: 1 de
jun. 2009.
SJOBERG, L.E. Geodetic intersection on the ellipsoid. J Geod, n. 82, p. 565-567, 2008.
THOMAS, C. M., FEATHERSTONE, W. E. Validation of Vincenty’s Formulas for the
Geodesic Using a New Fourth-Order Extension of Kivioja’s Formula. Journal of Surveying
Enginnering, p 20-26, fevereiro 2005.
TORGE, W. Geodesy. Berlin, Walter Gruyter, 2001.
VANICEK, P., KRAKIWSKI, E. Geodesy: the concepts. Amsterdam, North Holland Pub-
lishing Co., 1986.
VINCENTY, T. Direct and inverse solutions of geodesics on the ellipsoid with application
of nested equations. Survey Review , v. XXIII, n. 176, p. 88-93, abril 1975.
WEINSTOCK, R. (1974). Calculus of Variations: With Applications to Physics and
Engineering. Courier Dover Publications.
39
6.1 Apêndice 1: Problema Direto
O programa resolve o problema direto n vezes para um ponto inicial (lon,lat),azimute az,
com a distância variando de s ate n*s utilizando a função direto2 e armazenando os pontos nos
vetores X e Y, onde X armazena longitude e Y latitude. A principal utilidade da função direto1
é gerar dados de tal forma que se possa plotar a linha geodésica. Entrada: Latitude,Longitude
e Azimute em (graus minutos segundos), s em metros. A função direto 2 resolve o problema
direto utilizando o algoritmo de Vincenty.
function [X,Y] = direto1(lat,lon,s,az,n)
lat1 = lat(3)/3600 + lat(2)/60 +lat(1);
lon1 = lon(3)/3600 + lon(2)/60 +lon(1);
a12 = az(3)/3600 + az(2)/60 +az(1);
X= zeros(1,n+1);
Y= zeros(1,n+1);
X(1)=lon1;
Y(1)=lat1;
for k=1:n,
s2=s*k;
[Y(k+1) X(k+1)]=direto2(lat1,lon1,s2,a12);
end
return
function [lat2,lon2] = direto2(lat1,lon1,s,a12)
a = 6378137;
b = 6356752.31424518;
f = 1/298.257223563;
lat1 = lat1*0.017453292519943295769236907684886;
lon1 = lon1*0.017453292519943295769236907684886;
a12 = a12*0.017453292519943295769236907684886;
e2=1-(1-f)^2;
if abs(pi/2-abs(lat1)) < 1e-10;
lat1 = sign(lat1)*(pi/2-(1e-10));
end
Sa12 = sin(a12);
Ca12 = cos(a12);
41
TU1 = (1-f)*tan(lat1);
CU1 = 1/sqrt(1+(TU1)^2);
SU1 = TU1*CU1;
sgm1 = atan2(TU1,Ca12);
Sa = CU1*Sa12;
Casq = 1 - (Sa)^2;
usq = Casq*(1/(1-e2)-1);
A = 1 + usq/16384*(4096+usq*(-768+usq*(320-175*usq)));
B = usq/1024 * (256+usq*(-128+usq*(74-47*usq)));
sgm = s/(b*A);
sgmp = 2*pi;
while abs(sgm-sgmp) > 1e-12,
M = cos(2*sgm1 + sgm);
Ssgm = sin(sgm);
Csgm = cos(sgm);
Dsgm = B*Ssgm*(M+B/4*(Csgm*(-1+ 2*(M^2))-B/6*M*(-3+4*(Ssgm^2))*(-3+4*(M^2))));
sgmp = sgm;
sgm = s/(b*A) + Dsgm;
end
T = SU1*Ssgm - CU1*Csgm*Ca12;
lat2 = atan2(SU1*Csgm + CU1*Ssgm*Ca12,(1-f)*sqrt((Sa)^2 + (T)^2));
lbd = atan2(Ssgm*Sa12, CU1*Csgm - SU1*Ssgm*Ca12);
C = f/16*Casq*(4+f*(4-3*Casq));
L = lbd - (1-C) * f * Sa * (sgm + C*Ssgm*(M+C*Csgm*(-1+2*(M^2))));
lon2 = lon1 + L;
lat2=lat2*57.295779513082320876798154814105;
lon2=lon2*57.295779513082320876798154814105;
lon2 = mod(lon2,360);
return
42
6.2 Apêndice 2: Mudança de coordenadas
Essa função faz a mudança de coordenadas geodésicas para cartesianas utilizando as equações:
x = N cos[lat] cos[long], y = N cos[lat] sin[long] ez = N(1−e2) sin[lat]. Entradas: A=longitude,
B=latitude
function [] = coord(A,B)
A=A*(0.017453292519943295769236907684886);
B=B*(0.017453292519943295769236907684886);
a = 6378137;
f = 1/298.257223563;
e2 =(1-(1-f)^2);
N= a./sqrt(1-e2*(sin(B).^2));
u1= N.*cos(B).*cos(A);
v1= N.*cos(B).*sin(A);
w1= N.*(((1-f)^2)*sin(B));
plot3(u1,v1,w1)
return
43
6.3 Apêndice 3: Gráfico da linha geodésica na esfera
Esta função plota úma linha geodésica desenvolvida na esfera como um gráfico.
function[] = esfera2(lat,lon,az,d,a)
lat1 = lat(3)/3600 + lat(2)/60 +lat(1);
lon1 = lon(3)/3600 + lon(2)/60 +lon(1);
a12 = az(3)/3600 + az(2)/60 +az(1);
sent=1;
if mod(a12,360) > 180
sent=-1;
end
lat1 = lat1*0.01745329251994;
lon1 = lon1*0.01745329251994;
a12 = a12*0.01745329251994;
n=round(3000);
X= zeros(1,n);
Y= zeros(1,n);
d=d*0.01745329251994;
X(1)=lon1;
Y(1)=lat1;
C1= a*cos(lat1)*sin(a12);
C2= lon1 - asin(tan(lat1)/sqrt((a/C1)^2 -1));
if(a12 >pi/2 && a12<3*pi/2 && lat1==0) t1=-1;
else t1=1;
end
for k=2:n,
X(k)=X(1)+(k-1)*sent*d;
Y(k)=t1*atan((sqrt((a/C1)^2 -1))*sin(X(k)-C2));
end
X=X*57.295779513082320876798154814105;
X=mod(X,360);
Y=Y*57.295779513082320876798154814105;
plot(X,Y)
grid
clear
return
44
6.4 Apêndice 4: diferenças de latitude entre linha geodésicas na esfera e no elipsóide
Esta função retorna a média e a variância das diferenças de latitute entre a linha geodésica
no elipsóide de revolução e na esfera para uma mesma longitute. As entradas da função são as
coordenadas do ponto e o azimute em grau, minuto, segundo, a distância entre pontos, o raio da
esfera e o número de pontos. Esta função faz uso da função direto2 descrita no APÊNDICE 1.
function [M Sd] = estatisticas(latA,lonA,azA,s,a,n)
lat1 = latA(3)/3600 + latA(2)/60 +latA(1);
lon1 = lonA(3)/3600 + lonA(2)/60 +lonA(1);
a12 = azA(3)/3600 + azA(2)/60 +azA(1);
lat11 = lat1*0.01745329251994;
lon11 = lon1*0.01745329251994;
a121 = a12*0.01745329251994;
M1= zeros(1,n+1);
Sd1= zeros(1,n+1);
M1(1)=0;
M=0;
Sd=0;
C1= a*cos(lat11)*sin(a121);
C2= lon11 - asin(tan(lat11)/sqrt((a/C1)^2 -1));
for k=1:n
s2=s*k;
[A B C] = direto2(lat1,lon1,s2,a12);
B=B * .1745329251994329577e-1;
aux=atan((sqrt((a/C1)^2 -1))*sin(B-C2));
aux=aux*57.29577951308232;
M1(k+1)=abs(aux-A);
end
for k=1:(n+1)
M=M+M1(k);
end
M=M/(n+1);
for k=1:(n+1)
Sd=Sd+(M1(k)-M)^2;
end
Sd=Sd/(n+1);
return
45
6.5 Apêndice 5: Interseção na esfera
A função calcula a interseção de duas linhas geodésicas na esfera. As entradas da função
são as coordenadas e azimutes em grau, minuto e segundo de cada ponto e o raio da esfera.
function[inter1lat,inter1lon] = intersecaoesfera(latA,lonA,azA,latB,lonB,azB,a)
lat1 = latA(3)/3600 + latA(2)/60 +latA(1);
lon1 = lonA(3)/3600 + lonA(2)/60 +lonA(1);
a1 = azA(3)/3600 + azA(2)/60 +azA(1);
lat2 = latB(3)/3600 + latB(2)/60 +latB(1);
lon2 = lonB(3)/3600 + lonB(2)/60 +lonB(1);
a2 = azB(3)/3600 + azB(2)/60 +azB(1);
lat1 = lat1*0.01745329251994;
lon1 = lon1*0.01745329251994;
a1 = a1*0.01745329251994;
lat2 = lat2*0.01745329251994;
lon2 = lon2*0.01745329251994;
a2 = a2*0.01745329251994;
C1A= a*cos(lat1)*sin(a1);
C2A= lon1 - asin(tan(lat1)/sqrt((a/C1A)^2 -1));
C1B= a*cos(lat2)*sin(a2);
C2B= lon2 - asin(tan(lat2)/sqrt((a/C1B)^2 -1));
A1=1/(sqrt((a/C1A)^2-1));
B1=1/(sqrt((a/C1B)^2-1));
A2=C2A;
B2=C2B;
inter1lat=atan2(abs(sin(B2-A2)),(sqrt(A1^2 + B1^2 -2*A1*B1*cos(B2-A2))));
inter2lat=atan2(-abs(sin(B2-A2)),(sqrt(A1^2 + B1^2 -2*A1*B1*cos(B2-A2))));
inter1lon=asin(tan(inter1lat)/(sqrt((a/C1A)^2 -1))) +A2;
inter2lon=inter1lon+3.1415926535897932384626433832795;
inter1lat=inter1lat*57.29577951308232;
inter2lat=inter2lat*57.29577951308232;
inter1lon=mod(inter1lon*57.29577951308232,360);
inter2lon=mod(inter2lon*57.29577951308232,360);
return
46
6.6 Apêndice 6: Interseção por Fourier
Calcula a latitude e longitude da interseção de duas linhas geodésicas no elipsóide de revo-
lução utilizando o método de interpolação de Fourier descrito na seção 3. As entradas são as
coordenadas dos pontos, seus azimutes, e a aproximação inicial t1,t2.
function [latinter,loninter] = fourier(latA,lonA,azA,latB,lonB,azB,t1,t2)
s=100;
n=400000;
lat1 = latA(3)/3600 + latA(2)/60 +latA(1);
lon1 = lonA(3)/3600 + lonA(2)/60 +lonA(1);
az1 = azA(3)/3600 + azA(2)/60 +azA(1);
lat2 = latB(3)/3600 + latB(2)/60 +latB(1);
lon2 = lonB(3)/3600 + lonB(2)/60 +lonB(1);
az2 = azB(3)/3600 + azB(2)/60 +azB(1);
X1= zeros(1,n+1);
X2= zeros(1,n+1);
X3= zeros(1,n+1);
X4= zeros(1,n+1);
X1(1)=lat1;
X2(1)=lon1;
X3(1)=lat2;
X4(1)=lon2;
for k=1:n,
s2=s*k;
[A B]=direto2(lat1,lon1,s2,az1);
X1(k+1)=A;
X2(k+1)=B;
end
for k=1:n,
s2=s*k;
[A B]=direto2(lat2,lon2,s2,az2);
X3(k+1)=A;
X4(k+1)=B;
end
Y1 = fft(X1);
Y2 = fft(X2);
Y3 = fft(X3);
Y4 = fft(X4);
47
%%%%
x0 = [t1; t2];
options=optimset(’Display’,’iter’);
j=n;
T4=Y4;
T3=Y3;
T2=Y2;
T1=Y1;
lon0=213;
[x1,fval] = fsolve(@(x) myfun2(x,T2,lon0,j),x0,options)
[x2,fval] = fsolve(@(x) myfun2(x,T4,lon0,j),x0,options)
x0 = [x1(1); x2(1)];
[x,fval] = fsolve(@(x) myfun(x,T1,T2,T3,T4,j),x0,options)
latinter=somalat(x(1),T1,n+1);
loninter=somalon(x(1),T2,n+1);
return
function F = myfun(x,T1,T2,T3,T4,j)
F = [somalat(x(1),T1,j+1)-somalat(x(2),T3,j+1);
somalon(x(1),T2,j+1)-somalon(x(2),T4,j+1)];
return
function [R1] = somalon(x,T1,n)
R1=0;
for k=1:n
R1=R1+real(T1(k))*cos(2*pi*(x-1)*(k-1)/n)-imag(T1(k))*sin(2*pi*(x-1)*(k-1)/n);
end
R1=R1/n;
return
function [R1] = somalat(x,T1,n)
R1=0;
for k=1:n
R1=R1+real(T1(k))*cos(2*pi*(x-1)*(k-1)/n)-imag(T1(k))*sin(2*pi*(x-1)*(k-1)/n);
end
R1=R1/n;
return
function F = myfun2(x,T2,lon0,j)
F = somalon(x(1),T2,j+1)-lon0;
return
48
6.7 Apêndice 7: Problema inverso
A função resolve o problema inverso de coordenadas na geodésia utilizando o algoritmo de
Vincenty.
function [s,a12,a21] = inverso(lat1,lon1,lat2,lon2)
a = 6378137;
b = 6356752.31424518;
f = 1/298.257223563;
e2=1-(1-f)^2;
lat1 = lat1*0.017453292519943295769236907684886;
lon1 = lon1*0.017453292519943295769236907684886;
lat2 = lat2*0.017453292519943295769236907684886;
lon2 = lon2*0.017453292519943295769236907684886;
if abs(pi/2-abs(lat1)) < 1e-10;
lat1 = sign(lat1)*(pi/2-(1e-10));
end
if abs(pi/2-abs(lat2)) < 1e-10;
lat2 = sign(lat2)*(pi/2-(1e-10));
end
L = abs(lon2-lon1);
if L > pi
L = 2*pi - L;
end
lbd = L;
lbd0 = 0;
U1 = atan((1-f)*tan(lat1));
U2 = atan((1-f)*tan(lat2));
while abs(lbd-lbd0) > 1e-12
lbd0 = lbd;
Ssgm = sqrt((cos(U2)*sin(lbd))^2+(cos(U1)*sin(U2)-
sin(U1)*cos(U2)*cos(lbd))^2);
Csgm = sin(U1)*sin(U2)+cos(U1)*cos(U2)*cos(lbd);
sgm = atan2(Ssgm,Csgm);
a12 = asin(cos(U1)*cos(U2)*sin(lbd)/sin(sgm));
M = cos(sgm)-2*sin(U1)*sin(U2)/cos(a12)^2;
C = f/16*cos(a12)^2*(4+f*(4-3*cos(a12)^2));
lbd = L+(1-C)*f*sin(a12)*(sgm+C*sin(sgm)*
(M+C*cos(sgm)*(-1+2*M^2)));
end
usq = cos(a12)^2*(1/(1-e2)-1);
49
A = 1 + usq/16384*(4096+usq*(-768+usq*(320-175*usq)));
B = usq/1024 * (256+usq*(-128+usq*(74-47*usq)));
Dsgm = B*sin(sgm)*(M+B/4*(cos(sgm)*(-1+2*M^2)-B/6*M*
(-3+4*sin(sgm)^2)*(-3+4*M^2)));
s = b*A*(sgm-Dsgm);
a12 = atan(cos(U2)*sin(lbd)/(cos(U1)*sin(U2)
-sin(U1)*cos(U2)*cos(lbd)));
a21 = atan(cos(U1)*sin(lbd)/(-sin(U1)*cos(U2)
+cos(U1)*sin(U2)*cos(lbd)));
if a12 < 0
a12 = a12+2*pi;
end
if a21 < 0
a21 = a21+2*pi;
end
a12=a12*57.295779513082320876798154814105;
a21=a21*57.295779513082320876798154814105;
return
50
6.8 Apêndice 8: Primeiro método do cálculo da interseção por busca
Calcula a interseção de duas linhas geodésicas no elipsóide de revolução utilizando o método
por busca descrito na seção 3.
function [Lat,Lon] = intersecao(LatA,LonA,AzA,LatB,LonB,AzB,Lat0,Lon0)
Lat0 = Lat0(3)/3600 + Lat0(2)/60 +Lat0(1);
Lon0 = Lon0(3)/3600 + Lon0(2)/60 +Lon0(1);
LatA = LatA(3)/3600 + LatA(2)/60 +LatA(1);
LonA = LonA(3)/3600 + LonA(2)/60 +LonA(1);
AzA = AzA(3)/3600 + AzA(2)/60 +AzA(1);
LatB = LatB(3)/3600 + LatB(2)/60 +LatB(1);
LonB = LonB(3)/3600 + LonB(2)/60 +LonB(1);
AzB = AzB(3)/3600 + AzB(2)/60 +AzB(1);
[s0 A B] = inverso1(LatA,LonA,Lat0,Lon0)
[Lat Lon] = direto2(LatA,LonA,s0,AzA)
d=1;
Ds=10;
n=0;
while abs(d)>=0.01 & n<10000,
[S A1 A] = inverso1(LatB,LonB,Lat,Lon);
d = AzB-A1;
s = s0 + sign(d)*Ds;
[Lat Lon] = direto2(LatA,LonA,s,AzA);
s0=s;
n=n+1;
end
return
51
6.9 Apêndice 9: Segundo método do cálculo da interseção por busca
Calcula a interseção de duas linhas geodésicas no elipsóide de revolução utilizando o se-
gundo método por busca descrito na seção 3.
function [latinter,loninter,Least,t] = recursao(latA,lonA,azA,latB,lonB,azB)
tic
n=8000
s=5000
lat1 = latA(3)/3600 + latA(2)/60 +latA(1);
lon1 = lonA(3)/3600 + lonA(2)/60 +lonA(1);
az1 = azA(3)/3600 + azA(2)/60 +azA(1);
lat2 = latB(3)/3600 + latB(2)/60 +latB(1);
lon2 = lonB(3)/3600 + lonB(2)/60 +lonB(1);
az2 = azB(3)/3600 + azB(2)/60 +azB(1);
X1= zeros(1,n+1);
X2= zeros(1,n+1);
i=sqrt(-1);
X1(1)=lon1 + lat1*i;
X2(1)=lon2 + lat2*i;
for k=1:n,
s2=k*s;
[A B]=direto2(lat1,lon1,s2,az1);
X1(k+1)= B+A*i;
end
for k=1:n,
s2=s*k;
[A B]=direto2(lat2,lon2,s2,az2);
X2(k+1)= B+A*i;
end
Least0=10;
for j=1:n+1
for i=1:n+1
Least = sqrt((real(X2(i))-real(X1(j)))^2+ (imag(X2(i))-imag(X1(j)))^2);
if Least<Least0
Least0=Least;
il=i;
jl=j;
end
end
end
52
[latinter loninter Least] = recursao2(latA,lonA,azA,latB,lonB,azB,il,jl);
toc
t = toc
return
function [latinter,loninter,Least0] = recursao2(latA,lonA,azA,latB,lonB,azB,il,jl)
s=1;
n=round(10000/s);
lat1 = latA(3)/3600 + latA(2)/60 +latA(1);
lon1 = lonA(3)/3600 + lonA(2)/60 +lonA(1);
az1 = azA(3)/3600 + azA(2)/60 +azA(1);
lat2 = latB(3)/3600 + latB(2)/60 +latB(1);
lon2 = lonB(3)/3600 + lonB(2)/60 +lonB(1);
az2 = azB(3)/3600 + azB(2)/60 +azB(1);
X1= zeros(1,n+1);
X2= zeros(1,n+1);
i=sqrt(-1);
for k=1:n,
s2=5000*max((jl-2),0)+k*s;
[A B]=direto2(lat1,lon1,s2,az1);
X1(k)= B+A*i;
end
for k=1:n,
s2=5000*max((il-2),0)+s*k;
[A B]=direto2(lat2,lon2,s2,az2);
X2(k)= B+A*i;
end
Least0=5;
for j=1:n
for i=1:n
Least = sqrt((real(X2(i))-real(X1(j)))^2 + (imag(X2(i))-imag(X1(j)))^2);
if Least<Least0
Least0=Least;
il2=i;
jl2=j;
end
end
end
latinter=imag(X1(jl2));
loninter=real(X1(jl2));
return
53
6.10 Apêndice 10: Método do cálculo da interseção por ajuste polinomial
Calcula a interseção de duas linhas geodésicas no elipsóide de revolução utilizando o método
de ajuste por polinômios descrito na seção 3.
function [longinter,latinter,t] = ajuste(latA,lonA,azA,latB,lonB,azB)
tic
n=40000
s=1000
lat1 = latA(3)/3600 + latA(2)/60 +latA(1);
lon1 = lonA(3)/3600 + lonA(2)/60 +lonA(1);
az1 = azA(3)/3600 + azA(2)/60 +azA(1);
lat2 = latB(3)/3600 + latB(2)/60 +latB(1);
lon2 = lonB(3)/3600 + lonB(2)/60 +lonB(1);
az2 = azB(3)/3600 + azB(2)/60 +azB(1);
X1= zeros(1,n+1);
X2= zeros(1,n+1);
i=sqrt(-1);
X1(1)=lon1 + lat1*i;
X2(1)=lon2 + lat2*i;
for k=1:n,
s2=k*s;
[A B]=direto2(lat1,lon1,s2,az1);
X1(k+1)= B+A*i;
end
for k=1:n,
s2=s*k;
[A B]=direto2(lat2,lon2,s2,az2);
X2(k+1)= B+A*i;
end
longinter=zeros(9,4);
latinter=zeros(9,4);
s15=polyfit(real(X1),imag(X1),5);
s25=polyfit(real(X2),imag(X2),5);
U5=roots(s25-s15);
dU5=size(U5);
j=1;
i=1;
for k=1:dU5
if imag(U5(k))==0 & U5(k)>0 & U5(k)<360
longinter(j,i)=U5(k);
latinter(j,i)=polyval(s15,U5(k));
j=j+1;
end
54
end
s17=polyfit(real(X1),imag(X1),7);
s27=polyfit(real(X2),imag(X2),7);
U7=roots(s27-s17);
dU7=size(U7);
j=1;
i=2;
for k=1:dU7
if imag(U7(k))==0 & U7(k)>0 & U7(k)<360
longinter(j,i)=U7(k);
latinter(j,i)=polyval(s17,U7(k));
j=j+1;
end
end
s19=polyfit(real(X1),imag(X1),9);
s29=polyfit(real(X2),imag(X2),9);
U9=roots(s29-s19);
dU9=size(U9);
j=1;
i=3;
for k=1:dU9
if imag(U9(k))==0 & U9(k)>0 & U9(k)<360
longinter(j,i)=U9(k);
latinter(j,i)=polyval(s19,U9(k));
j=j+1;
end
end
s150=polyfit(real(X1),imag(X1),50);
s250=polyfit(real(X2),imag(X2),50);
U50=roots(s250-s150);
dU50=size(U50);
j=1;
i=4;
for k=1:dU50
if imag(U50(k))==0 & U50(k)>0 & U50(k)<360
longinter(j,i)=U50(k);
latinter(j,i)=polyval(s150,U50(k));
j=j+1;
end
end
toc
t = toc;
return
55