Uploaded by roseanesalvio

2007-2 - Cаlculo da direção e distância entre dois pontos quaisquer da superfície terrestre

advertisement
UNIVERSIDADE FEDERAL FLUMINENSE
Fabrício Xavier Alves
Cálculo da direção e distância entre dois pontos quaisquer
da superfície terrestre e declinação magnética
a partir de suas coordenadas geográficas
Niterói
2007
Fabrício Xavier Alves
Cálculo da direção e distância entre dois pontos quaisquer
da superfície terrestre e declinação magnética
a partir de suas coordenadas geográficas
Trabalho de Conclusão de Curso submetido ao Curso de Tecnologia em Sistemas de Computação da Universidade
Federal Fluminense como requisito parcial para obtenção do Tecnólogo em Sistemas de Computação.
Orientador:
Leandro Soares de Sousa
NITERÓI
2007
Fabrício Xavier Alves
Cálculo da direção e distância entre dois pontos quaisquer
da superfície terrestre e declinação magnética
a partir de suas coordenadas geográficas
Trabalho de Conclusão de Curso submetido ao Curso de Tecnologia em Sistemas de Computação da Universidade
Federal Fluminense como requisito parcial para obtenção do Tecnólogo em Sistemas de Computação.
Niterói, 13 de novembro de 2007.
Banca Examinadora:
•
Prof . Anna Dolejsi Santos, Dr.Sc. - Universidade Federal Fluminense
•
Prof. Leandro Soares de Sousa, Msc. - Universidade Federal Fluminense
•
Prof . Aline Marins Paes, Msc. - Universidade Federal do Rio de Janeiro
a
a
Dedico este trabalho aos gigantes nos ombros dos quais me apoiei para chegar até
aqui.
AGRADECIMENTOS
A Deus, que sempre iluminou a minha caminhada.
A meu orientador Leandro Soares de Sousa
pelo estímulo e atenção que me concedeu
durante a elaboração desse trabalho.
Aos professores que acreditaram no projeto
de educação à distância ajudando a escrever
a história da educação no Brasil
A todos os meus familiares e amigos pelo
apoio e colaboração.
“Há Um que mora acima do círculo da terra”.
Isaías 40:22, c. 732 A.C.
RESUMO
Esse trabalho descreve um método que permite, a partir de duas coordenadas quaisquer na superfície terrestre, determinar a distância e direção a ser seguida para ir de um ponto a outro. Adicionalmente, descreve como determinar a declinação magnética prevista para a origem.
Os cálculos da distância e da direção baseiam-se no trabalho publicado
pelo geógrafo polonês Thaddeus Vincenty no número 176 da revista Survey Review,
páginas 88-93 sob o título "Direct and Inverse solutions of geodesics on the ellipsoid
with application of nested equations".
O cálculo da declinação magnética utiliza o World Magnetic Model, produzido pelo U.S. National Geophysical Data Center (NGDC) e a British Geological Survey (BGS). Esse modelo é utilizado como padrão pelo Departamento de Defesa
Americano, o Ministério da Defesa britânico, a OTAN e o World Hydrographic Office
e é descrito no documento “The US/UK World Magnetic Model” publicado pela National Geophysical Data Center e British geological Survey Geomagnetism Group.
É sugerida uma implementação usando a Web, como plataforma. Usando
essa implementação nós podemos ver os mapas e fotografias de satélite dos pontos
de origem e destino bem como os resultados dos cálculos.
Palavras-chaves: geodésica, declinação, magnetismo, gps, google maps, direção, distância, latitude, longitude, ortodromia, loxodromia.
ABSTRACT
This work describes how to compute the distance and direction between
two points at Earth surface using latitude and longitude of origin and destination.
Also, describes how to compute the origin’s magnetic declination.
The computation of the distance and direction comes from Vincenty’s
equation, published on Survey Review magazine, number 176, pages 88-93, “Direct
and inverse solutions of geodesics on the ellipsoid with application of nested equations” .
Magnetic declination comes from World Magnetic Model, produced by
U.S. National Geophysical Data Center (NGDC) and British Geological Survey
(BGS). This is the standard model of the US Department of Defense, the IK Ministry
of Defense, the North Atlantic Treaty Organization (NATO), and the World Hydrographic Office (WHO) and is described at “The US/UK World Magnetic Model” document published by National Geophysical Data Center and British geological Survey
Geomagnetism Group.
We suggest an implementation using Web architecture. Using this implementation we can see the maps and satellite photography of origin and destination
and the results of computation.
Key words: geodesy, declination, magnetism, gps, google maps, direction, distance, latitude, longitude, orthodromy, loxodromy.
LISTA DE ILUSTRAÇÕES
1 Otodrómicas traçadas sobre uma esfera...............................................................35
2 Loxodrómia na esfera............................................................................................36
3 O campo magnético terrestre................................................................................37
4 Declinação magnética............................................................................................64
LISTA DE TABELAS
Tabela 1 – Tabela de coeficientes............................................................................43
Tabela 2 – Coordenadas utilizadas nos testes de distância....................................54
Tabela 3 – Resultados esperados e obtidos para a distância..................................55
Tabela 4 – Resultados esperados e obtidos para a declinação...............................63
LISTA DE ABREVIATURAS E SIGLAS
GPS – Geographic Positioning System
NMEA – National Marine Electronics Association
NOAA – National Oceanic and Atmospheric Administration
NGDC – National Geophisical Data Center
BGS – British Geographic Survey
OTAN – Organização do Tratatado do Atlântico Norte
ASP – Active Server Pages
API – Application Programming Interface
SUMÁRIO
RESUMO.....................................................................................................7
ABSTRACT................................................................................................. 8
LISTA DE ILUSTRAÇÕES..........................................................................9
LISTA DE TABELAS................................................................................. 10
LISTA DE ABREVIATURAS E SIGLAS....................................................11
1 INTRODUÇÃO........................................................................................ 13
2 METODOLOGIA......................................................................................15
3 metodologia de cálculo.......................................................................... 18
4 implementação........................................................................................48
CONCLUSÕES......................................................................................... 64
RefERÊNCIAS BIBLIOGRÁFICAS........................................................... 66
RefERÊNCIAS BIBLIOGRÁFICAS........................................................... 66
13
1 INTRODUÇÃO
O objetivo desse trabalho é desenvolver um sistema que permita a seleção de dois pontos quaisquer da superfície da Terra, A e B, e calcule a distância a
ser percorrida e a direção a ser seguida para ir de A até B. Adicionalmente, para per mitir uma correta orientação, o sistema deverá informar a declinação magnética do
local, a saber: a diferença angular entre a direção apontada pela agulha de uma bús sola magnética e o norte. O sistema deverá permitir a escolha do par origem e destino em um mapa e, preferencialmente, sugerir o local de origem detectando o local
em que está sendo feita a localização.
São várias as aplicações para esse tipo de sistema:
•
Dimensionamento de cabos e dutos submarinos
•
Alinhamento de antenas de rádio transmissão
•
Navegação em pequenos barcos ou aviões particulares.
•
Grupos que têm interesse em saber a direção de um local específico, como os muçulmanos que precisam orar voltados para Meca.
•
Logística de produtos e pessoas
•
Cálculo de rotas e direções
O principal problema enfrentado na determinação da distância entre dois
pontos é o modelo matemático utilizado. Na maioria dos casos os modelos utilizam
simplificações que aceleram os cálculos, mas reduzem sua precisão, especialmente
para grandes distâncias.
Outro problema diz respeito à direção a ser seguida para ir de um ponto a
outro. Se o referencial utilizado for uma bússola magnética, haverá diferenças devi do à mudança secular na declinação magnética. Especialmente no Brasil, cujo terri-
14
tório apresenta uma das maiores variações na declinação magnética, tais diferenças
podem acarretar desvios consideráveis.
Esse trabalho foi organizado da seguinte forma:
•
Inicialmente apresentamos os principais desafios da determinação
precisa da distância e direção entre dois pontos e a da declinação
magnética.
•
A seguir apresentamos a metodologia descrita no trabalho de Vincenty [1] para o cálculo da distância e direção entre dois pontos.
•
Apresentamos um exemplo detalhado de cálculo.
•
Explicamos a metodologia utilizada na determinação da declinação
magnética.
•
Apresentamos uma proposta computacional para os cálculos e visualização dos dados.
•
E finalmente, na conclusão, fazemos sugestões para novos trabalhos.
15
2 METODOLOGIA
A solução do problema proposto apresenta uma série de desafios:
•
A forma da Terra, que não é perfeitamente esférica, mas apresenta-se ligeiramente achatada nos pólos. O cálculo da distância e direção entre
dois pontos deve levar esse fato em consideração.
•
Uma solução matemática como a apresentada acima deve ser de fácil implementação em dispositivos móveis, tais como celulares equipados com
GPS. Alguns desses aparelhos não possuem primitivas para cálculos trigonométricos. O sistema deve implementar esse tipo de cálculo.
•
A declinação magnética não é homogênea sobre a superfície da Terra,
apresentando áreas de anomalia. Além disso, essa declinação varia com o
tempo. Para que o sistema seja viável, faz-se necessária especial atenção
a esse fato.
Para solucionar os problemas apresentados, foi feito um esforço de seleci-
onar as mais avançadas metodologias em uso no mundo. Procurou-se descrever em
detalhes os cálculos matemáticos utilizados, apresentando exemplos de cálculos.
Além disso, é apresentado um sistema que foi desenvolvido utilizando-se a Web,
como plataforma, que permite visualizar a solução do problema proposto.
16
2.1
CÁLCULO DA DISTÂNCIA E DIREÇÃO
O cálculo da distância e direção entre dois pontos da superfície terrestre
baseou-se no trabalho realizado pelo geógrafo polonês Thaddeus Vincenty, particularmente no artigo intitulado “Direct and Inverse solutions of geodesics on the ellipsoid with application of nested equations.” [1]. Nesse artigo ele detalha um método
interativo utilizando aproximações algébricas sucessivas para o cálculo da distância
entre dois pontos. Esse cálculo foi utilizado por sua extrema precisão e facilidade de
implementação.
2.2
CÁLCULO DA DECLINAÇÃO MAGNÉTICA
O cálculo da declinação magnética baseou-se no trabalho “The US/UK
World magnetic Model for 2005-2010” publicado pela National Geophysical Data
Center e British Geological Survey Geomagnetism Group [3]. Esse documento descreve um modelo matemático, que permite determinar a declinação magnética de
um local, ou seja, a diferença entre a direção apontada por uma agulha magnética e
a direção norte. Esse é o método padrão utilizado pelo Departamento de Defesa dos
Estados Unidos, pelo Ministério da Defesa da Grã-Bretanha, pela OTAN e pelo Word
Hydrographic Office na determinação da declinação magnética.
2.3
IMPLEMENTAÇÃO
Para a implementação utilizamos as linguagens HTML, JavaScript e ASP,
com banco de dados Access e arquitetura AJAX 1 no desenvolvimento de um sistema
1
Consiste em um estilo baseado na utilização de scripts de cliente de forma asíncrona, permitindo a
carga parcial de páginas. Algumas de suas características são: (i) permite a carga parcial de dados
em uma página e (ii) combina JavaScript e XML.
17
que permitiu implementar os cálculos descritos. Além disso, foi utilizada a interface
com o Google Maps para visualização das informações geográficas.
18
3
METODOLOGIA DE CÁLCULO
Duas importantes variáveis de entrada em nosso sistema são a latitude e
longitude, tanto da origem como do destino. Os dados precisos do local de origem
podem ser obtidos com o auxílio de um GPS. GPS é a sigla para Global Positioning
System ou Sistema de Posicionamento Global, que é omposto por uma constelação
de 28 satélites em órbita ao redor da Terra, que permanentemente enviam dados
que podem ser captados por um receptor para calcular sua posição precisa. Parti mos do princípio de que o usuário do sistema sabe onde está e para onde deseja ir.
Como forma de se localizar ele deve usar as coordenadas do local ou então tentar
localizar, através da ferramenta de pesquisa e visualização oferecida pelo Google
Maps, o local onde está e para onde deseja ir.
3.1
CÁLCULO DA DISTÂNCIA E DIREÇÃO
Há muitas maneiras de se calcular a distância entre dois pontos na superfície da Terra a partir de sua latitude e longitude. Os métodos variam em complexidade e precisão. Geralmente, quanto mais simples o método menos preciso ele é.
Os métodos mais utilizados são:
•
Método do Grande Círculo (ou Círculo Máximo), baseado na trigonometria
esférica [5];
•
Fórmula de Vincenty, que utiliza o método de aproximações sucessivas
[1].
Para a maioria dos propósitos, o método do grande círculo é satisfatório,
especialmente para distâncias pequenas.
Já a fórmula de Vincenty oferece precisão de meio milímetro para distâncias transcontinentais, de acordo com o número de interações e os parâmetros utili-
19
zados nos cálculos, que são: o número de casas decimais utilizados para Pi; diâmetro da Terra nos pólos; diâmetro da Terra no Equador e o número de casas decimais
utilizados nos cálculos trigonométricos.
3.1.1 MÉTODO DO GRANDE CÍRCULO
O grande círculo (ou círculo máximo) é a seção da esfera que contém o
seu diâmetro [5]. Seções da esfera que não contêm o diâmetro são chamadas pequenos círculos. O menor caminho entre dois pontos em uma esfera, também conhecido como ortodrómia é um segmento de círculo máximo.
O método do grande círculo assume a terra como uma esfera, ignorando
seu achatamento. Trata-se de um método bastante preciso para pequenas distâncias. Seu cálculo baseia-se na lei dos cossenos. [7]
Fórmula:
R é o raio da terra (6371 km)
∆ lat = lat2 − lat1
∆ long = long 2 − long1
a = sin 2 (∆ lat / 2) + cos(lat1 ) ⋅ cos(lat2 ) ⋅ sin 2 ( ∆ long / 2)

c = 2 ⋅ arctan


d = R⋅ c
a 
(1 − a) 
Por exemplo, a distância entre o Pólo Universitário da UFF em Rio das
Ostras (latitude: -22,5037, longitude: - 41,9242) e a Kaaba, em Meca, na Arábia Sau dita (latitude: 21,4225, longitude: 39,8261), utilizando pela fórmula acima é de 10110
km.
20
3.1.2 FÓRMULA DE VINCENTY
No número 176 da revista Survey Review, páginas 88-93 o geógrafo polonês Thaddeus Vincenty publicou o artigo intitulado "Direct and Inverse solutions of
geodesics on the ellipsoid with application of nested equations" [1]. Nesse artigo ele
detalha um método interativo e compacto, para o cálculo da distância entre dois pon tos. Nas seções 3.1.2.1, 3.1.2.2. e 3.1.2.3 apresentamos as equações como aparecem em Vincenty, 1975 [1]. Nas seções 3.1.3.4 e 3.2.1.5, explicamos as fórmulas
utilizadas na solução do problema e apresentamos um exemplo de cálculo.
3.1.2.1 Notação utilizada nas fórmulas
a,b, maior e menor semieixos do elipsóide.
f , achatamento = (a − b) / a .
φ , latitude geodética, positiva ao norte do equador.
L, diferença na longitude, positiva ao leste.
s, comprimento da geodésica
α 1 , α 2 , azimutes da geodésica, no sentido horário a partir do norte;
α , azimute da geodésica no equador
u 2 = cos 2 α (a 2 − b 2 ) / b 2 .
U , latitude reduzida, definida por tan U = (1 − f ) tan φ
λ , diferença na longitude de uma esfera auxiliar.
σ , distância angular P1 P2 na esfera.
σ 1 , distância angular na esfera do equador a P1
σ m , distância angular na esfera do equador à metade da linha.
21
3.1.2.2 Fórmula direta
tan σ 1 = tan U 1 / cos α
sin α = cos U 1 sin α
2σ
m
[
{
(
[
{
(
u2
256 + u 2 − 128 + u 2 74 − 47u 2
1024
)]}
(3)
)]}
(4)
= 2σ 1 + σ

∆ σ = B sin σ  cos 2σ

σ =
(2)
1
u2
4096 + u 2 − 768 + u 2 320 − 175u 2
16384
A = 1+
B=
(1)
1
(5)
m
+
(
1 
B  cos σ − 1 + 2 cos 2 2σ
4 
m
) − 16 B cos 2σ (− 3 + 4 sin σ )(− 3 + 4 cos
2
m
2
2σ
s
+ ∆σ
bA
m
) 

(6)
(7)
As equações (5), (6) e (7) são repetidas até que a mudança no valor de σ
seja desprezível. A primeira aproximação de σ é o primeiro termo de (7)
tan φ 2 =
(1 − f ) [sin 2 α + ( sin U 1 sin σ
− cos U 1 cos σ cos α 1 )
[
(
f
cos 2 α 4 + f 4 − 3 cos 2 α
16
{
2
(8)
]
1
2 2
=
(9)
)]
[
L = λ + (1 − C ) f sin α σ + C sin σ cos 2σ
tan α
1
sin σ sin α 1
cos U 1 cos σ − sin U 1 sin σ cos α 1
tan λ =
C=
sin U 1 cos σ + cos U 1 sin σ cos α
(10)
m
sin α
− sin U 1 sin σ + cos U 1 cos σ cos α
(
+ C cos σ − 1 + 2 cos 2 2σ
m
)]}
(11)
(12)
1
Se os termos em u 8 e B 3 forem omitidos ∆ σ (da onde vem isto?) teremos
um erro máximo de menos de 1,5 milímetro. Portanto as seguintes equações simplificadas poderão ser usadas caso não seja necessária maior precisão:
22
[
B=
(
)]
(3a)
)]
(4a)
u2
64 + u 2 − 12 + 5u 2
256
A = 1+
[
(
u2
128 + u 2 − 64 + 37u 2
512

∆ σ = B sin σ  cos 2σ

m
+
(
1
B cos σ − 1 + 2 cos 2 2σ
4
m
)

(6a)
3.1.2.3 Fórmula inversa
Escreva algo sobre a fórmula inversa- por que e para que?)
λ = L (primeira aproximação)
(13)
sin 2 σ = ( cos U 2 sin λ
(14)
) 2 + ( cos U 1 sin U 2 − sin U 1 cosU 2 cos λ ) 2
cos σ = sin U 1 sin U 2 + cos U 1 cos U 2 cos λ
sin σ
cos σ
tan σ =
(16)
sin α = cos U 1 cos U 2
cos 2σ
m
(15)
= cos σ −
sin λ
sin σ
2 sin U 1 sin U 2
cos 2 α
(17)
(18)
λ é obtido pelas equações (10) e (11). Esse procedimento é iterado começando com a equação (14) até que a mudança no valor de λ seja desprezível,
segundo os parâmetros estabelecidos.
s = bA( σ − ∆ σ
)
(19)
onde ∆ σ vem das equações (3), (4) e (6)
tan α 1 =
cos U 2 sin λ
cos U 1 sin U 2 − sin U 1 cos U 2 cos λ
(20)
tan α
cos U 1 sin λ
− sin U 1 cos U 2 + cos U 1 sin U 2 cos λ
(21)
2
=
23
Assim como na solução direta, as equações simplificadas (3a), (4a) e (6a)
podem ser usadas quando um erro máximo de menos de 1,5 milímetro é aceitável.
3.1.2.4 Algoritmo para o cálculo da distância e da direção
(A numeração das fórmulas está fora de ordem, se tem um porque explique, também coloque um fim-enquanto)
a, b raio da terra no equador e nos pólos respectivamente.
f é o achatamento da terra.
φ 1 , φ 2 são as latitudes da origem e do destino.
L é a diferença entre as duas longitudes.
U 1 = arctan((1 − f ) ⋅ tan φ 1 ) é a latitude reduzida.
λ = L, λ ′ = 2π
Enquanto módulo ( λ − λ ′ ) > 10 − 12 (ou seja, 0,06 mm)
sin 2 σ = ( cos U 2 sin λ
) 2 + ( cos U 1 sin U 2 − sin U 1 cos U 2 cos λ ) 2
(c14)
cos σ = sin U 1 sin U 2 + cos U 1 cos U 2 cos λ
sin σ
cos σ
tan σ =
(c16)
sin α = cos U 1 cos U 2
cos 2σ
C=
m
= cos σ −
[
sin λ
sin σ
(c17)
2 sin U 1 sin U 2
cos 2 α
(
f
cos 2 α 4 + f 4 − 3 cos 2 α
16
λ′= λ
{
(c18)
)]
[
L = λ + (1 − C ) f sin α σ + C sin σ cos 2σ
[
{
(
A = 1 + u 2 / 16384 ⋅ 4096 + u 2 − 768 + u 2 320 − 175u 2
{
[
(c15)
(
u2
B=
256 + u 2 − 128 + u 2 74 − 47u 2
1024
)]}
)]}
(c10)
m
(
+ C cos σ − 1 + 2 cos 2 2σ
m
)]} (c11)
(c3)
(c4)
24

∆ σ = B sin σ  cos 2σ

s = bA( σ − ∆ σ
m
+
(
1 
B  cos σ − 1 + 2 cos 2 2σ
4 
m
) − 16 B cos 2σ (− 3 + 4 sin σ )(− 3 + 4 cos
m
2
)
2
2σ
m
) 

(c6)
(c19)
tan α 1 =
cos U 2 sin λ
cos U 1 sin U 2 − sin U 1 cos U 2 cos λ
(c20)
tan α
cos U 1 sin λ
− sin U 1 cos U 2 + cos U 1 sin U 2 cos λ
(c21)
2
=
Onde
s é a distância (na mesma unidade utilizada em a e b)
a1 é a direção inicial, no sentido horário a partir do norte.
a 2 é a direção final. Obs.: numa ortodrómia o sentido a ser seguido muda durante o
trajeto.
Vincenty observou que a equação (c18) se torna indeterminada quando
os pontos de origem e destino se encontram sobre a linha do equador (já que
cos 2 α = 0 ); nesse caso basta atribuirmos o valor 0 a cos 2σ
m
e o resultado será cal-
culado corretamente. Ele também observou que a fórmula talvez não consiga chegar
a um resultado para dois pontos antípodas (Explique este termo). Por isso devemos
utilizar uma limitação no número de iterações.
Decidimos utilizar o datum WGS-84 (coloque referência ou explique), para os valores de a, b e f.
Os valores utilizados são os seguintes:
Raio da terra no equador (a): 6.378.137,0 m
Raio da terra nos pólos (b): 6.356.752,314245 m
Achatamento da terra (f): 0,0033528106647474807198455286185206
Achatamento inverso (1/f): 298,257223563
No Brasil, segundo as Especificações e Normas Gerais para Levantamentos Geodésicos em Território Brasileiro, utiliza-se o elipsóide SGR-67 cujos parâme-
25
tros são:
Raio da terra no equador (a): 6.378.160 m
Raio da terra nos pólos (b): 6.356.774,719 m
Achatamento inverso (1/f): 298,25
3.1.2.5 Exemplo de cálculo da distância e direção
Nesta subseção, como um exemplo, calculamos, através do algoritmo
apresentado anteriormente, a direção e a distância entre o Pólo Universitário da UFF
em Rio das Ostras (PURO) e a Kaaba, em Meca, na Arábia Saudita utilizando a fór mula inversa.
Localização do Pólo Universitário de Rio das Ostras (Fonte: Google Maps [referencia])
Latitude: 22,5037 sul
Longitude: 41,9242 oeste
Localização da Kaaba em Meca na Arábia Saudita (Fonte: Google Maps [referencia])
Latitude: 21,4225 norte
Longitude: 39,8261 leste
Em primeiro lugar, os valores precisam ser convertidos para radianos.
Para a latitude, os valores são positivos ao norte e negativos ao sul. Para a longitude, os valores são positivos a leste e negativos a oeste.
Obs.: Utilizamos valores com apenas 4 casas decimais para simplificar os cálculos.
π = 3.1416
Lat1 = − 22,5037 ⋅ π / 180 = − 0,3928
Lon1 = − 41,9242 ⋅ π / 180 = − 0,7317
26
Lat 2 = 21,4225 ⋅ π / 180 = 0,3739
Lon 2 = 39,8261 ⋅ π / 180 = 0,6951
a, raio da Terra no equador (6.378.137 metros [WGS 1984])
b, raio da Terra nos pólos (6.356.752,3142 [WGS 1984])
f , achatamento da Terra, dado pela fórmula (a − b) / a . Fazendo o cálculo encontramos f = 0,00335281067
φ , latitude geodética, positiva ao norte do equador.
Portanto:
φ 1 = − 0,3928
φ 2 = 0,3739
L, é a diferença entre as duas longitudes
L = Lon 2 − Lon1 = 0,6951 − (− 0,7317) = 1,4268
U , latitude reduzida, definida por tan U = (1 − f ) tan φ
U 1 = arctan[(1 − f ) ⋅ tan(φ 1 )] = arctan[0,9966 ⋅ − 0,4143] = − 0,3916
U 2 = arctan[(1 − f ) ⋅ tan(φ 2 )] = arctan[0,9966 ⋅ 0,3923] = − 0,3728
Calculamos, também, o valor do seno e cosseno de U1 e U2:
sin U 1 = sin(− 0,3916) = − 0,3816
cos U 1 = cos(− 0,3916) = 0,9243
sin U 2 = sin( − 0,3728) = 0,3642
cos U 2 = cos( − 0,3728) = 0,9313
λ = L (primeira aproximação)
λ = 1,4268
Utilizaremos um valor auxiliar λ ′
λ ′ = 2 ⋅ π = 6,2832
27
Enquanto a diferença entre os valores de λ e λ ′ for maior que 0,0001 repetiremos os cálculos que seguem. Para facilitar os cálculos, criamos algumas variáveis intermediárias auxiliares que serão úteis na implementação do código, melho rando sua legibilidade.
sin λ = sin(λ ) = 0,9897
cos λ = cos(λ ) = 0,1435
Pela equação (c14) temos que
sin 2 σ = ( cos U 2 sin λ
) 2 + ( cos U 1 sin U 2 − sin U 1 cosU 2 cos λ ) 2
Para facilitar os cálculos futuros, faremos o seguinte:
sin σ =
[(cos U 2 ⋅ sin λ ) 2 + (cos U 1 ⋅ sin U 2 − sin U 1 ⋅ cos U 2 ⋅ cos λ ) 2 ]
sin σ =
[(0,9313 ⋅ 0,9897) 2 + (0,9243 ⋅ 0,3642 − (− 0,3816) ⋅ 0,9313 ⋅ 0,1435) 2 ]
sin σ =
(0,9217) 2 + (0,3366 + 0,0510) 2 =
0,8495 + 0,1502 = 0,9999
Pela equação (c15) temos que
cos σ = sin U 1 sin U 2 + cos U 1 cos U 2 cos λ
cos σ = − 0,3816 ⋅ 0,3642 + 0,9243 ⋅ 0,9313 ⋅ 0,1435
cos σ = − 0,1390 + 0,1235 = − 0,0155
Pela equação (c16) temos que
sin σ
0,9999
=
= − 64,5097
cos σ
− 0,0155
σ = arctan(− 64,5097) = 1,5863
tan σ =
Pela equação (c17) temos que
sin α = cos U 1 cos U 2
sin λ
0,9897
= 0,9243 ⋅ 0,9313 ⋅
= 0,8520
sin σ
0,9999
Pela equação (c18) temos que
28
cos 2σ
m
= cos σ −
2 sin U 1 sin U 2
cos 2 α
Para facilitar os cálculos, acharemos primeiro o valor de cos 2 α
cos 2 α = 1 − (sin α ) 2 = 1 − 0,7259 = 0,2741
Substituindo o valor encontrado na equação (c18):
cos 2σ
m
= − 0,0155 −
2 ⋅ − 0,3816 ⋅ 0,3642
= 0,9989
0,2741
Pela equação (c10) temos que
[
(
)]
f
cos 2 α 4 + f 4 − 3 cos 2 α
16
0,0034
C=
⋅ 0,2741[4 + 0,0034(4 − 3 ⋅ 0,2741)] = 0,0002 ⋅ 0,2741[4,0034(4 − 0,8223)]
16
C = 0,0002
C=
Nesse ponto, armazenamos o novo valor de λ ′ : λ ′ = λ = 1,4268
Pela equação (c11) temos que
[
{
+ C cos σ ( − 1 + 2 cos 2σ ) ]}
λ + (1 − C ) f sin α {1,5863 + 0,0002 ⋅ 0,9999[0,9989 + 0,0002 ⋅ − 0,0155( − 1 + 2 ⋅ 0,9989 ) ]}
L = λ + (1 − C ) f sin α σ + C sin σ cos 2σ
L=
L=
L=
L=
L=
L=
L=
L=
L=
L=
2
m
m
2
1,4268 +
1,4268 +
1,4268 +
1,4268 +
1,4268 +
1,4268 +
1,4268 +
1,4268 +
1,4314
(1 − 0,0002) ⋅ 0,0034 ⋅ 0,8520 ⋅ {1,5863 + 0,0002[ 0,9989 − 0,000003(− 1 + 2 ⋅ 0,9978)]}
(0,9998) ⋅ 0,0029 ⋅ {1,5863 + 0,0002[ 0,9989 − 0,000003(− 1 + 2 ⋅ 0,9978)]}
0,0029 ⋅ {1,5863 + 0,0002[ 0,9989 − 0,000003(2,9912)]}
0,0029{1,5863 + 0,0002[0,9989 − 0,000009]}
0,0029{1,5863 + 0,0002 ⋅ 0,9989}
0,0029{1,5863 + 0,0002}
0,0029 ⋅ 1,5865
0,0046
λ = L = 1,4314 (segunda aproximação)
Como a diferença entre os valores de λ e λ ′ é maior que 0,0001, repetimos novamente os cálculos. Nessa segunda iteração encontramos os seguintes va -
29
lores:
sin σ = 0,9998
cos σ = − 0,0193
σ = 1,5901
sin α = 0,8526
cos 2 α = 0,2730
cos 2σ
m
= 0,9989
C = 0,0002
λ ′ = 1,4314
λ = 1,4314
Como, dessa vez, a diferença entre os valores de λ e λ ′ é menor que
0,0001, a parte iterativa está concluída. A seguir, devemos realizar os cálculos finais
utilizando as equações [3], [4] e [6].
Da notação, temos que
u 2 = cos 2 α (a 2 − b 2 ) / b 2
u 2 = 0,2730(6378137 2 − 6356752,31422 ) / 6356752,31422
u 2 = 0,2730(40680631590769 − 40408299984087,1) / 40408299984087,1
u 2 = 0,2730(272331606681,945) / 40408299984087,1
u 2 = 0,2730(0,00674) = 0,00184
Pela equação [3] temos que:
A = 1+
A = 1+
A=
A=
A=
A=
A=
A=
A=
1+
1+
1+
1+
1+
1+
1+
{
[
(
)]}
u2
4096 + u 2 − 768 + u 2 320 − 175u 2
16384
0,00184
{ 4096 + 0,00184[ − 768 + 0,00184( 320 − 175 ⋅ 0,00184) ]}
16384
0,000000112{ 4096 + 0,00184[ − 768 + 0,00184(320 − 0,322)]}
0,000000112{ 4096 + 0,00184[ − 768 + 0,00184 ⋅ 319,68]}
0,000000112{ 4096 + 0,00184[ − 768 + 0,59]}
0,000000112{ 4096 + 0,00184[ − 767,41]}
0,000000112{ 4096 + (− 1,41)}
0,000000112{4094,59}
0,000459 = 1,000459
30
Pela equação [4] temos que:
B=
B=
B=
B=
B=
B=
B=
B=
B=
[
{
)]}
(
u2
256 + u 2 − 128 + u 2 74 − 47u 2
1024
0,00184
{ 256 + 0,00184[ − 128 + 0,00184( 74 − 47 ⋅ 0,00184) ]}
1024
0,00000180{ 256 + 0,00184[ − 128 + 0,00184( 74 − 0,087 ) ]}
0,00000180{ 256 + 0,00184[ − 128 + 0,00184(73,913)]}
0,00000180{256 + 0,00184[ − 128 + 0,136]}
0,00000180{ 256 + 0,00184[ − 127,864]}
0,00000180{ 256 + ( − 0,235)}
0,00000180{ 255,765}
0,000460
Pela equação [6] temos que:

∆ σ = B sin σ  cos 2σ

m
(
1 
B cos σ − 1 + 2 ⋅ cos 2 2σ
4 
+
m
) − 16 B cos 2σ
(
m (−

3 + 4 sin 2 σ )(− 3 + 4 cos 2 2σ m )  

)

1 
1

∆ σ = 0,00046 ⋅ 0,9998 cos 2σ m + B  cos σ − 1 + 2 ⋅ cos 2 2σ m − B cos 2σ m ( − 3 + 4 sin 2 σ )(− 3 + 4 cos 2 2σ m )  
4 
6



1 
1

∆ σ = 0,00046 cos 2σ m + B  cos σ − 1 + 2 ⋅ cos 2 2σ m − B cos 2σ m ( − 3 + 4 ⋅ 0,9998 2 )(− 3 + 4 ⋅ 0,9989 2 )  
4 
6


(

∆ σ = 0,00046 cos 2σ


∆ σ = 0,00046 cos 2σ

)
(
m
)−
1

B cos 2σ m ( − 3 + 4 ⋅ 0,9996)(− 3 + 4 ⋅ 0,9978) 
6

(
m
)−
1

B cos 2σ m ( − 3 + 4 ⋅ 0,9996)(− 3 + 4 ⋅ 0,9978) 
6

m
+
1 
B cos σ − 1 + 2 ⋅ cos 2 2σ
4 
m
+
1 
B cos σ − 1 + 2 ⋅ cos 2 2σ
4 
31

∆ σ = 0,00046 0,9989 +


∆ σ = 0,00046 0,9989 +


∆ σ = 0,00046 0,9989 +


∆ σ = 0,00046 0,9989 +


∆ σ = 0,00046 0,9989 +


∆ σ = 0,00046 0,9989 +

∆σ
∆σ
∆σ
∆σ
∆σ
=
=
=
=
=
(
)
1
1


0,00046  − 0,0193 − 1 + 2 ⋅ 0,9989 2 − 0,00046 ⋅ 0,9989(− 3 + 3,9984)(− 3 + 3,9912) 
4
6


1
1


0,00046  − 0,0193( − 1 + 2 ⋅ 0,9978) − 0,00046 ⋅ 0,9989(0,9984)(0,9912) 
4
6


1
1


0,00046  − 0,0193( − 1 + 2 ⋅ 0,9978) − 0,00046(0,9984)(0,9912) 
4
6


1
1


0,00046  − 0,0193( − 1 + 1,9956 ) − 0,00046(0,9984)(0,9912) 
4
6


1
1


0,00046  − 0,0193( 0,9956 ) − 0,00046 ⋅ (0,9896) 
4
6


1
1


0,00046  − 0,01155 − ⋅ 0,000455 
4
6


0,00046{ 0,9989 + 0,000115[ − 0,01155 − 0,0000076]}
0,00046{ 0,9989 + 0,000115[ − 0,0116]}
0,00046{ 0,9989 + ( − 0,00000134)}
0,00046{ 0,99889866}
0,0004595
Finalmente, a distância em metros é dada pela equação [19]
s=
s=
s=
s=
s=
bA( σ − ∆ σ )
6356752,3142 ⋅ 1,000459(1,5901 − 0,0004595)
6356752,3142 ⋅ 1,000459(1,5896405)
6356752,3142(1,590370145)
10109589
Em outras palavras, a distância entre o Pólo Universitário da UFF em Rio
das Ostras (PURO) e a Kaaba, em Meca, na Arábia Saudita é de 10.109.589 metros, ou pouco mais de 10.109 quilômetros, uma diferença de cerca de 1 km se comparada com a encontrada na seção 3.1.1 utilizando o método do Grande Círculo.
A direção é dada pela equação (20)
32
tan α 1 =
cos U 2 sin λ
cos U1 sin U 2 − sin U1 cos U 2 cos λ
0,9313 ⋅ sin(1,4314)
0,9243 ⋅ 0,3642 − ( − 0,3816) ⋅ 0,9313 ⋅ cos(1,4314)
0,9313 ⋅ 0,9903
tan α 1 =
0,3366 − ( − 0,3554) ⋅ 0,1389
0,9223
0,9223
tan α 1 =
=
= 2,3894
0,3366 − ( − 0,0494) 0,3860
α 1 = 1,174
tan α 1 =
Convertendo agora o resultado de radianos para graus temos:
α 1 g = α 1 ⋅ 180 / π = 67,3
Essa é a direção loxodrómica (veja discussão sobre ortodrómia e loxodrómia nas próximas subseções) a ser seguida inicialmente para, partindo do Pólo Uni versitário da UFF em Rio das Ostras, chegarmos à Kaaba, em Meca, na Arábia Sau dita, pelo caminho mais curto possível.
3.1.3 ORTODRÓMIA
É a linha que une dois pontos da superfície da Terra, que corresponde ao
caminho mais curto entre eles. Este é o sentido normalmente atribuído no âmbito da
navegação marítima ou aérea. Formalmente, uma ortodrómia é uma linha geodésica
definida sobre um modelo esférico ou elipsoidal da Terra [5]. Numa superfície esférica, a ortodrómia é um arco de círculo máximo.
Entre dois pontos quaisquer da superfície terrestre podem traçar-se dois
tipos distintos de rotas: a ortodrómia, que minimiza a distância entre eles e a loxo drómia que mantém constante o rumo, isto é, o ângulo entre o caminho seguido e os
meridianos. Caso os pontos estejam separados por um arco de 180º, isto é, sejam
antípodas, existe uma infinidade de rotas ortodrómicas que os ligam, pelo que, esquecendo outras considerações, em qualquer direção que se parta, se a rota for
mantida, chega-se igualmente ao outro ponto. A ortodrómia pura tem o inconvenien-
33
te de necessitar de correções constantes de rumo, já que o ângulo com cada meridi ano é sempre diferente, exceto quando a viagem se faz sobre o equador ou ao longo
de um meridiano.
Em navegação marítima, a ortodrómia só é utilizada em circunstâncias
especiais e em trajetos muito longos, quando o fator tempo é decisivo, o que não
acontece na navegação área. Em qualquer dos casos, a sua aplicação prática é concretizada através de um conjunto de loxodrómias, isto é, de rumos constantes entre
pontos intermediários escolhidos ao longo da rota. Outro inconveniente desse tipo
de trajeto reside no fato de as ortodrómias entre pontos distantes atingirem muitas
vezes latitudes elevadas, onde a ocorrência de gelo e de condições atmosféricas adversas é freqüente. Nesses casos é sempre possível optar-se por uma rota mista,
constituída por duas ortodrómias que ligam pontos de partida e de chegada a um
certo paralelo limite e uma ortodrómia intermediária de rumo leste-oeste ao longo
desse paralelo. [4]. Como exemplo, observamos na figura 1 ortodrómias traçadas
sobre uma esfera.
Figura 1: Ortodrómias traçadas sobre uma esfera
3.1.4 LOXODRÓMIA
É a linha sobre a superfície da Terra que faz ângulo constante com todos
34
os meridianos. Em outras palavras, é a linha cuja direção geográfica, ou azimute, é
constante. Trata-se, em geral, de uma linha espiralada em direção a um dos pólos
sem nunca o alcançar. Este fato foi reconhecido pela primeira vez pelo matemático
português Pedro Nunes no Tratado em Defesa da Carta de Marear, incluído na obra
o Tratado da Esfera de 1537.
É o tipo de trajeto normalmente utilizado em navegação marítima, muito
embora não constitua o caminho mais curto entre dois pontos. A razão está no fato
de a orientação dos navios e aeronaves se realizar com base em direções geográficas fornecidas por bússolas magnéticas e girobússolas. Na navegação marítima, o
acréscimo à distância decorrente do emprego da loxodrómia, em vez da ortodrómia,
é normalmente desprezível, exceto em longos trajetos oceânicos. Nestes casos, o
trajeto planejado segundo a ortodrómia é decomposto em pequenos trajetos loxodrómicos, cada um dos quais com rumo constante.
Na projeção de Mercator (referência ou explicação) as loxodrómias são
representadas por segmentos de reta. Na figura 2, vemos um exemplo de uma loxodrómia. Observe que ela cruza todos os meridianos com ângulo constante.
Figura 2: Loxodrómia na esfera
35
3.2
CÁLCULO DA DECLINAÇÃO MAGNÉTICA
A declinação magnética é a diferença angular entre a direção apontada
por uma agulha magnética e a direção norte. O valor dessa declinação está intimamente relacionado ao campo magnético da Terra explanado na seção anterior. Para
sabermos o valor da declinação, utilizaremos o World Magnetic Model, produzido
pelo U.S. National Geophysical Data Center (NGDC) e a British Geological Survey
(BGS).
Esse modelo é utilizado como padrão pelo Departamento de Defesa Americano, o Ministério da Defesa britânico, a OTAN (Organização do Tratado do Atlântico Norte) e o World Hydrographic Office. Na próxima seção, descrevemos os principais pontos abrangidos no documento “The US/UK World Magnetic Model” publicado
pela National Geophysical Data Center e British geological Survey Geomagnetism
Group. [3]
3.2.1 O CAMPO MAGNÉTICO DA TERRA
O movimento do magma no interior da Terra, junto com outros fatores, induz um potente campo magnético ao redor do nosso planeta. Esse campo magnético, que varia no espaço (r) e no tempo (t), é o responsável pelo alinhamento das
bússolas magnéticas aproximadamente no sentido norte-sul.
As principais fontes responsáveis pelo campo magnético terrestre (B),
mostrados na Figura 3, são:
•
•
•
O campo principal, apresentado na Figura 3, gerado no núcleo fluido externo
da Terra (Bm).
O campo crustal do manto superior (Bc).
A combinação de distúrbios provocados por correntes elétricas na alta atmosfera e na magnetosfera que também induzem correntes elétricas no mar e no
36
solo ( B d ).
Figura 3: O campo magnético observado é a soma das contribuições de cada fonte
B (r , t ) = B m ( r , t ) + Bc ( r ) + B d (r , t )
(m1)
Bm é a parte dominante do campo, respondendo por 95% do magnetismo
na superfície da Terra. A variação no tempo muda lentamente Bm . Bc , que é o campo gerado por rochas magnéticas na crosta da Terra, varia no espaço, mas pode ser
considerado constante no tempo para os propósitos considerados aqui. Bc é geralmente muito menor em magnitude que Bm . O campo gerado por correntes elétricas
na ionosfera e na magnetosfera e as resultantes correntes induzidas no manto e
crosta terrestre, Bd , variam tanto no espaço como no tempo. [3]
Para criar um modelo preciso, é necessário haver uma medição com boa
cobertura global e o menor nível de ruído possível. O satélite dinamarquês Orsted e
o alemão CHAMP provêm dados que satisfazem a esses requisitos. Ambos oferecem dados escalares e vetoriais de alta qualidade para todas as latitudes e longitudes, mas não para todo o período necessário para a modelagem. Porém há vários
observatórios no solo que oferecem dados quase contínuos para o período de interesse, porém com uma baixa cobertura especial. Se usados em conjunto, as infor-
37
mações dos satélites e dos observatórios provêm dados de excepcional qualidade,
que permitem modelar o comportamento do campo magnético no espaço e tempo.
Bc possui variações espaciais que vão de metros a milhares de quilômetros e que não podem ser completamente descritos num modelo esférico harmônico
de baixo grau. Portanto o modelo magnético não inclui contribuições de distúrbios da
crosta terrestre, exceto os de grande comprimento. Bc é, normalmente, menor no
mar do que em terra e diminui com o aumento a altitude.
O campo resultante de correntes na ionosfera e na magnetosfera e suas
correntes induzidas na Terra Bd , variam tanto no espaço como no tempo. O campo
magnético induzido pode variar em períodos de um dia e um ano, bem como irregularmente em escalas de tempo que variam de segundos a dias. As variações regulares diárias e anuais são essencialmente geradas pela luminosidade atmosférica em
altitudes de 100-130 km, ionizadas pela radiação do Sol, movendo-se sobre o campo terrestre sob a ação dos ventos e marés. As variações diárias e anuais são causadas pela rotação da Terra na magnotosfera externa que tem seu ciclo organizado
em sincronia com o sol. As variações irregulares se devem a tempestades magnéticas e subtempestades.
O campo geomagnético B é descrito por 7 elementos, que são:
(nos elementos abaixo os coloque em negrito e no início, logo após o número)
1. Componentes ortogonais X (intensidade no sentido norte),
2. Y (intensidade no sentido leste)
3. Z (intensidade vertical, positiva para baixo),
4. intensidade total F,
5. intensidade horizontal H,
6. inclinação I (o ângulo entre o plano horizontal e o vetor do campo, positiva para
baixo)
7. declinação (ou variação magnética) D (o ângulo horizontal entre o norte verdadei -
38
ro e o campo magnético, positivo a leste.
A declinação, inclinação e intensidade total podem ser calculadas a partir
dos componentes ortogonais usando as seguintes equações:
H=
X 2 + Y2 ,F =
H 2 + Z 2 , D = arctan(Y , X ) , I = arctan(Z , H )
(m2)
O campo geomagnético medido na superfície da Terra ou em um satélite
é a soma dos campos gerados por fontes internas e externas à Terra. Além dessas
fontes o campo magnético interno B (se é o B de m3 coloque a referência à fórmula)
e o campo potencial que podem ser descritos como uma graduação negativa de um
escalar potencial.
B (ϕ ′ , λ , r , t ) = − ∇ V (ϕ ′ , λ , r , t )
(m3)
Esse potencial pode ser expandido em termos harmônicos esféricos:
n+ 1
 n m m
a  m

m
V (ϕ ′ , λ , r , t ) = a  ∑ ∑ g n ( t ) cos( mλ ) + hn ( t ) sin ( mλ )   Pn ( sin ϕ
 n = 1 m = 0
 r
(
)

′ )

(m4)
onde a (6371,2 km) é o raio da Terra, (ϕ ′ , λ , r ) são a latitude, longitude e raio em
(
)
m
( ) m( )
uma referência esférica geocêntrica e g n t , hn t são os coeficientes de Gauss da
dependência temporal de grau n e ordem m descrevendo fontes internas.

Pnm (sin ϕ ′ ) são as Funções de Legendre Associadas semi-normalizadas de Schimidt
[6] definidas como:

Pnm (sin ϕ ′ ) =
2
(n − m)!  m
Pn (sin ϕ ′ )
(n + m)!
se m > 0


Pnm (sin ϕ ′ ) = Pnm (sin ϕ ′ ) se m = 0
(m5)
39
O valor da expansão interna N foi truncado em 36 (porque?). O coeficientes de Gauss de graus 1 a 8 assumem uma variação quadrática no tempo.
1 m
gn (t − t 0 ) 2
2
1
hnm (t ) = hnm + hnm (t − t 0 ) + hnm (t − t 0 ) 2
2
g nm (t ) = g nm + g nm (t − t 0 ) +
(m6)
m
m
Onde, no lado esquerdo, g n e hn são funções que variam com o tempo,
m
m
m
 m m  m
enquanto g n , hn , g n , hn , g n e hn no lado direito da equação (6) (m6?) denotam
constantes. O tempo é fornecido como um ano decimal e t0 é a data de referência do
modelo.
O modelo fornecido na equação (4) (m4?) é válido apenas para forças internas à Terra, como o campo principal e o campo crustal. Para campos externos,
causados por correntes na ionosfera e magnetosfera, uma representação esférica
harmônica, similar à equação (4) (m4?) pode ser usada.
Os dados contendo as medições de hora em hora realizadas nos observatórios (as variações em cada observatório) foram introduzidas para levar em conta
o campo local, gerado principalmente na crosta, o qual não pode ser descrito pelo
modelo. Sendo assim, num observatório, o campo magnético B é dado por:
B (ϕ ′ , λ , r , t ) = − ∇ V (ϕ ′ , λ , r , t ) + O(ϕ ′ , λ , r )
(m7)
Onde o vetor de deslocamento O(ϕ ′ , λ , r ) , também conhecido como componente crustal, é constante no tempo.
As equações para as componentes internas do campo são (defina XYZ –
são as coordenadas..., é isto?):
N
1∂ V
 a
X ′ (ϕ ′ , λ , r ) = −
= −∑  
r∂ ϕ ′
n= 1  r 
n+ 2 n
∑(
m= 0

dPnm (sin ϕ ′ )
g (t ) cos mλ + h (t ) sin mλ
dϕ ′
m
n
m
n
)
(m8)
40
1 ∂V
1 N  a
Y ′ (ϕ ′ , λ , r ) = −
=
∑ 
r cos ϕ ′ ∂ λ
cos ϕ ′ n = 1  r 
Z ′ (ϕ ′ , λ , r ) =
N
∂V
 a
= − ∑ (n + 1) 
∂r
 r
n= 1
n+ 2 n
∑
m= 0
n+ 2 n
∑
m= 0

m( g nm (t ) sin mλ − hnm (t ) cos mλ )Pnm (sin ϕ ′ ) (m9)

( g nm (t ) cos mλ + hnm (t ) sin mλ ) Pnm (sin ϕ ′ )
(m10)
As equações acima, junto com o vetor do campo magnético são a base
para a determinação do modelo matemático. Assim, se houverem d dados, há d
equações lineares com p parâmetros do modelo principal:
y = Am
(m11)
Onde, y é o vetor coluna (d x 1) das observações, A é a matriz (d x p) dos
coeficientes desconhecidos em função da posição e m é o vetor coluna (p x 1) dos
valores desconhecidos, para determinação dos coeficientes de Gauss do modelo.
Como há mais observações do que valores desconhecidos, isto é, d > p, o sistema é
~é
parcialmente determinado e não possui uma solução exata. Suponhamos que m
uma estimativa de m (o que é m defina ou diga a fórmula onde é calculado). Então:
~
~
y = Am
(m12)
~ é encontrada através de:
Uma estimativa dos valores desconhecidos m
~ = ( AT WA) − 1 AT Wy
m
(m13)
Onde W é o tamanho da matriz (d x d) dos dados.
Os dados dos satélites utilizam coordenadas geocêntricas, mas os dados
de superfície utilizam coordenadas geodéticas. Assim precisamos padronizar os dados convertendo de coordenadas geodéticas para geocêntricas antes de proceder a
modelagem harmônica esférica. Ao calcular o modelo, as localizações (h, ϕ , λ ), onde
41
h é a altitude geodética e ϕ é a latitude geodética, são transformados em (r , ϕ ′ , λ )
usando
tan ϕ ′ =
( A 2 cos 2 ϕ + B 2 sin 2 ϕ )1 / 2 h + B 2
tan ϕ
( A 2 cos 2 ϕ + B 2 sin 2 ϕ )1 / 2 h + A 2
r 2 = h 2 + 2h( A 2 cos 2 ϕ + B 2 sin 2 ϕ )1 / 2 +
(m14)
A 4 cos 2 ϕ + B 4 sin 2 ϕ
A 2 cos 2 ϕ + B 2 sin 2 ϕ
(m15)
Onde A é o raio da terra no equador e B é o raio da terra nos pólos. Usa mos o elipsóide WGS-84 (referência) também neste caso.
As observações das intensidades norte, oeste e vertical X, Y e Z, relativas
a um elipsóide são transformadas em intensidades verticais relativas à esfera X’, Y’
e Z’:
X ′ = X cosψ + Z sinψ
Y′ = Y
Z ′ = − X sinψ + Z cosψ
Onde ψ
é a diferença entre as latitudes geocêntrica e geodética
ψ = ϕ′−ϕ
Para criar um modelo que incorporasse predições de mudanças futuras
no campo magnético, utilizaram-se dados de observatórios, que são colhidos de
hora em hora.
É apresentada, a seguir, na Tabela 1 com os coeficientes para o período
de 2005 – 2010. As unidades são em NT? para o campo principal e NT? por ano
para a variação secular. (não entendi – coloque de forma mais clara)
Tabela 1: coeficientes para o período de 2005 a 2010
n
m
g nm
hnm
g nm
hnm
42
1
1
2
2
2
3
3
3
3
4
4
4
4
4
5
5
5
5
5
5
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
9
9
9
0
1
0
1
2
0
1
2
3
0
1
2
3
4
0
1
2
3
4
5
0
1
2
3
4
5
6
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
8
0
1
2
-29556.8
-1671.7
-2340.6
3046.9
1657.0
1335.4
-2305.1
1246.7
674.0
919.8
798.1
211.3
-379.4
100.0
-227.4
354.6
208.7
-136.5
-168.3
-14.1
73.2
69.7
76.7
-151.2
-14.9
14.6
-86.3
80.1
-74.5
-1.4
38.5
12.4
9.5
5.7
1.8
24.9
7.7
-11.6
-6.9
-18.2
10.0
9.2
-11.6
-5.2
5.6
9.9
3.5
0.0
5079.8
0.0
-2594.7
-516.7
0.0
-199.9
269.3
-524.2
0.0
281.5
-226.0
145.8
-304.7
0.0
42.4
179.8
-123.0
-19.5
103.6
0.0
-20.3
54.7
63.6
-63.4
-0.1
50.4
0.0
-61.5
-22.4
7.2
25.4
11.0
-26.4
-5.1
0.0
11.2
-21.0
9.6
-19.8
16.1
7.7
-12.9
-0.2
0.0
-20.1
12.9
8.0
10.6
-15.1
-7.8
-0.8
0.4
-2.6
-1.2
-6.5
-2.5
2.8
-7.0
6.2
-3.8
-2.8
0.7
-3.2
-1.1
0.1
-0.8
-0.7
0.4
-0.3
2.3
-2.1
-0.6
1.4
0.2
-0.1
-0.3
1.1
0.6
0.5
-0.4
0.6
0.1
0.3
-0.4
0.3
-0.3
0.2
0.4
-0.7
0.4
0.0
0.0
0.0
0.0
-20.9
0.0
-23.2
-14.6
0.0
5.0
-7.0
-0.6
0.0
2.2
1.6
5.8
0.1
0.0
0.0
1.7
2.1
4.8
-1.1
0.0
-0.6
-1.9
-0.4
-0.5
-0.3
0.7
0.0
0.6
0.4
0.2
0.3
-0.8
-0.2
0.1
0.0
-0.2
0.1
0.3
0.4
0.1
-0.2
0.4
0.4
0.0
0.0
0.0
43
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
10
0
1
2
3
4
5
6
7
8
9
10
11
0
1
2
3
4
5
6
7
8
9
10
11
12
-7.0
5.1
-10.8
-1.3
8.8
-6.7
-9.1
-2.3
-6.3
1.6
-2.6
0.0
3.1
0.4
2.1
3.9
-0.1
-2.3
2.8
-1.6
-1.7
1.7
-0.1
0.1
-0.7
0.7
1.8
0.0
1.1
4.1
-2.4
-0.4
0.2
0.8
-0.3
1.1
-0.5
0.4
-0.3
-0.3
-0.1
-0.3
-0.1
12.6
-6.7
-8.1
8.0
2.9
-7.9
6.0
0.0
2.4
0.2
4.4
4.8
-6.5
-1.1
-3.4
-0.8
-2.3
-7.9
0.0
0.3
1.2
-0.8
-2.5
0.9
-0.6
-2.7
-0.9
-1.3
-2.0
-1.2
0.0
-0.4
0.3
2.4
-2.6
0.6
0.3
0.0
0.0
0.3
-0.9
-0.4
0.8
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
44
3.2.1.1 Algoritmo para o cálculo da declinação magnética
O procedimento passo a passo para o cálculo dos elementos do campo
magnético para uma determina localidade e tempo (h, ϕ , λ , t ) , onde h é a altitude geodética, ϕ e λ são a latitude e longitude e t é o tempo dado em anos decimais é:
No primeiro passo, as coordenadas geodéticas elipsoidais (h, ϕ , λ ) são
transformadas em coordenadas esféricas geocêntricas (r , ϕ ′ , λ ) usando
tan ϕ ′ =
( A 2 cos 2 ϕ + B 2 sin 2 ϕ )1 / 2 h + B 2
tan ϕ
( A 2 cos 2 ϕ + B 2 sin 2 ϕ )1 / 2 h + A 2
r 2 = h 2 + 2h( A 2 cos 2 ϕ + B 2 sin 2 ϕ )1 / 2 +
A 4 cos 2 ϕ + B 4 sin 2 ϕ
A 2 cos 2 ϕ + B 2 sin 2 ϕ
(m17)
(m18)
Onde A é o raio da terra no equador e B é o raio da terra nos pólos, ou
seja A=6378,137 km e B = 6356,7523142 km, segundo o datum WGS-84.
m
m
No segundo passo, os coeficientes de Gauss ( g n (t ), hn (t )) de grau n e or-
dem m são determinados para o tempo desejado. Isso é feito ajustando os coeficien m
m
tes ( g n , hn ) do campo em t 0 = 2005,0 para a variação secular linear ( g nm , hnm ) , usan-
do
g nm (t ) = g nm + g nm (t − t 0 )
h m (t ) = h m + h m (t − t )
n
n
n
(m19)
0
Onde o tempo é dado em anos decimais e t 0 = 2005,0 é a data de referência do modelo.
45
No terceiro passo, o vetor dos componentes X’, Y’ e Z’ em coordenadas
geocêntricas é computado usando:
12
1∂ V
 a
X ′ (ϕ ′ , λ , r ) = −
= −∑  
r∂ ϕ ′
n= 1  r 
Y ′ (ϕ ′ , λ , r ) = −
n+ 2 n
∑(
m= 0

dPnm (sin ϕ ′ )
g (t ) cos mλ + h (t ) sin mλ
dϕ ′
m
n
m
n
1 ∂V
1 12  a 
=
∑ 
r cos ϕ ′ ∂ λ
cos ϕ ′ n = 1  r 
12
∂V
 a
Z ′ (ϕ ′ , λ , r ) =
= − ∑ (n + 1) 
∂r
 r
n= 1
n+ 2 n
∑
m= 0
n+ 2 n
∑
m= 0
)
(m20)

m( g nm (t ) sin mλ − hnm (t ) cos mλ )Pnm (sin ϕ ′ ) (m21)

( g nm (t ) cos mλ + hnm (t ) sin mλ ) Pnm (sin ϕ ′ )
(m22)
Nesse ponto, podemos também calcular a variação secular dos componentes do campo usando:
m
n+ 2 n
12

′
d
P
1
∂
V
a


m
m
n (sin ϕ )
X ′ (ϕ ′ , λ , r ) = −
= − ∑   ∑ g n (t ) cos mλ + hn (t ) sin mλ
r∂ ϕ ′
dϕ ′
n= 1  r 
m= 0
(
Y ′ (ϕ ′ , λ , r ) = −
)
(m23)
n+ 2 n
m
1 ∂ V
1 12  a 
m
m
=
  ∑ m( g n (t ) sin mλ − hn (t ) cos mλ )Pn (sin ϕ ′ ) (m24)
∑
r cos ϕ ′ ∂ λ
cos ϕ ′ n = 1  r  m = 0
12
∂ V
 a
Z ′ (ϕ ′ , λ , r ) =
= − ∑ (n + 1) 
∂r
 r
n= 1
n+ 2 n
∑
m= 0

( g nm (t ) cos mλ + hnm (t ) sin mλ ) Pnm (sin ϕ ′ )
(m25)
No quarto passo, os componentes geocêntricos são novamente transformados em geodéticos, usando
X ′ = X cosψ + Z sinψ
Y′ = Y
Z ′ = − X sinψ + Z cosψ
Onde ψ
(m26)
é a diferença entre as latitudes geocêntrica e geodética
ψ = ϕ ′ − ϕ e ϕ ′ foi calculado no passo 1. De modo similar, as derivadas temporais
46
do vetor são transformadas usando
X ′ = X cosψ + Z sin ψ
Y ′ = Y
(m27)
Z ′ = − X sinψ + Z cosψ
No último passo, os elementos magnéticos H, F, D, I é a grade de variação, GV, são computados a partir dos componentes vetoriais usando
H=
X2 + Y2
F = H2 + Z2
D = arctan(Y , X )
I = arctan(Z , H )
(m28)
GV = D − λ para ϕ > 55°
GV = D + λ para ϕ < − 55°
Onde arctan(a, b) é tan − 1 (a / b) , levando em conta o quadrante angular,
evitando a divisão por zero, e resultando numa declinação entre -180º e 180º e
numa inclinação de -90º a 90º. Para H=0 a declinação é indefinida.
A variação secular desses elementos é calculada usando:
X ⋅ X + Y ⋅ Y
H =
H
X ⋅ X + Y ⋅ Y + Z ⋅ Z
F =
F

180 X ⋅ Y − Y ⋅ X
D =
π
H2
180 H ⋅ Z − Z ⋅ H
I =
π
F2
GV = D
(m29)
47
Onde D , I e GV são dados em graus por ano. Aqui, o fator 180 / π converte de radianos para graus. Este fator de conversão não é apresentado na equação (m28), assumindo que a função arctan fornece o resultado em graus.
48
4 IMPLEMENTAÇÃO
O primeiro grande desafio ao se desenvolver a implementação foi a escolha de uma aplicação prática que se beneficiasse das informações descritas. A tradição muçulmana exige orações em horários específicos feitas em direção à Kaaba 2
em Meca. O número de muçulmanos hoje no mundo excede a marca de 1 bilhão de
pessoas, de modo que haveria uma grande quantidade pessoas beneficiadas pela
implementação do código.
Tradicionalmente é utilizado o método do Grande Círculo ao se calcular a
direção de Meca, mas, conforme explanação na seção 3.1 desse trabalho, esse método não é tão preciso quanto o método de Vincenty. Por isso optou-se por utlizá-lo
no cálculo da distância e direção.
Uma vez calculada a direção de Meca, essa deve ser localizada girandose no sentido horário a partir do Norte. Mas, qual é a direção Norte? Normalmente,
utiliza-se uma bússola magnética para indicar o Norte, mas a direção apontada pela
agulha não corresponde, para a maior parte da superfície terrestre, à direção real
do norte. Por isso, há a necessidade do cálculo da declinação magnética.
Por fim, precisávamos desenvolver uma interface simples de se utilizar,
que permitisse ao visitante verificar a sua localização atual, selecionar para onde deseja ir e verificar, da forma mais simples possível, a direção e a distância entre a origem e o destino, bem como a declinação magnética de onde está, ou seja, para qual
direção aponta sua bússola.
Apresentamos, a seguir, o código que implementa os cálculos vistos até
2
Kaaba é uma construção que é reverenciada pelos muçulmanos, na mesquita sagrada de Al Masjid
AL-Haram em Meca, e é considerada pelos devotos do Islã como o lugar mais sagrado do mundo, localizada nas coordenadas 21º25'21"N e 39º49'1"E. É uma construção em forma de cubo (Kaaba).
49
aqui. Funciona da seguinte maneira: o usuário visita uma página na Internet que
executa as seguintes operações:
1. Determina, a partir do IP do usuário onde ele está.
2. Exibe, num mapa, onde o usuário está e permite que ele selecione outros lugares se desejar.
3. Exibe um segundo mapa permitindo ao usuário selecionar aonde deseja ir.
4. Calcula a distância e direção a ser seguida para ir de um lugar a outro,
vistos no mapa.
5. Calcula a declinação magnética para o local de origem.
Para determinação da localização do usuário a partir do seu endereço IP
utilizamos a base de dados GeoLite City da empresa MaxMind, disponível no sitio
http://www.maxmind.com/app/geolitecity (6). O arquivo disponibilizado utiliza o formato CSV (comma separated values), que foi importado para dentro de uma base
de dados Access. Segundo o fabricante, o GeoLite City oferece uma precisão de
98% na detecção do país e de 70% na detecção da cidade do visitante.
Para visualização dos mapas utilizou-se a API do Google Maps, cuja documentação está disponível em http://www.google.com/apis/maps/ (7). Através dela
exibimos num mapa as coordenadas geográficas tanto da localização do visitante
como do local para onde ele deseja ir.
Implementou-se uma consulta onde o usuário pode informar textualmente
o local de origem ou de destino. Além disso são disponibilizados campos que permitem ao usuário informar a latitude e longitude da origem e destino, facilitando a localização. A latitude e longitude da origem e do destino são atualizadas sempre que há
uma alteração no mapa da origem ou do destino. Também quando se movimenta
qualquer um dos mapas são refeitos os cálculos da direção, distância e declinação
magnética.
50
O cálculo é implementado em duas páginas ASP, cada uma delas contendo uma função que recebe como parâmetros a latitude e longitude da origem e/ou
(não seria somente e) do destino e retorna os resultados dos cálculos. Essas funções são executadas todas as vezes que o mapa sofre um evento que altere sua latitude e longitude.
Para evitar que a página fosse carregada novamente todas as vezes que
se executasse um cálculo, optou-se pelo uso de Ajax, que permite a execução das
funções dos cálculos de forma assíncrona.
Com o objetivo de obter recursos que permitam ao sítio permanecer no ar,
optou-se pela utilização do programa de afiliados do site Amazon, Google AdSense
e donativos através do PayPal.
O programa de afiliados do sítio Amazon (http://affiliate-program.amazon.com/gp/associates/join (8)) efetua o pagamento de comissão quando um usuário visita um dos produtos indicado pelo sítio e efetiva sua compra. Na geração do script
que exibe os produtos é feito um cadastro de palavras-chave de produtos que possam interessar os visitantes do site.
O Google AdSense (https://www.google.com/adsense (9)), insere links na
página que possam interessar aos visitantes de acordo com algoritmo próprio. A remuneração é feita de acordo com o número de cliques nesses links.
O PayPal (www.paypal.com (20)) é um sistema de pagamento on-line que
recebe do usuário usando cartão de crédito, boleto bancário, etc. em diversos países
e transfere o pagamento para a conta do sítio na Internet.
A divulgação do sítio foi feita através da inserção de links para ele em artigos relacionados na Wikipedia e da otimização das palavras-chave para que apareça nos primeiros resultados nos mecanismos de pesquisa.
51
O resultado desse trabalho pode ser visto no endereço www.qibla.com.br
[12]. O nome qibla vem do árabe e significa direção.
4.1.1 CÓDIGO PARA O CÁLCULO DA DISTÂNCIA E DIREÇÃO
Trata-se de uma função que recebe como parâmetros a latitude e a longitude da origem e do destino e retorna a distância em metros da origem até o destino
bem como a direção a ser seguida para ir de um ponto a outro, em graus. O código
aparece detalhado abaixo no qual foi utilizada a linguagem ASP. Os comentários cobrem todo o procedimento bem como as equações utilizadas.
Sub Vincenty(Lat1, Lon1, Lat2, Lon2)
'Constantes usadas no cálculo
a = 6378137
b = 6356752.314245
f = 1/298.257223563
pi = 3.1415926535897932384626433832795
'Converte as coordenadas para radianos
Lat1 = Lat1 * Pi / 180
Lon1 = Lon1 * Pi / 180
Lat2 = Lat2 * Pi / 180
Lon2 = Lon2 * Pi / 180
'Valores auxiliares
L
= Lon2 - Lon1
U1
= Atn((1-f) * Tan(Lat1))
U2
= Atn((1-f) * Tan(Lat2))
SenU1
= Sin(U1)
CosU1
= Cos(U1)
SenU2
= Sin(U2)
CosU2
= Cos(U2)
'Primeira
Lambda =
LambdaP =
Limite =
aproximação
L
2 * Pi
20 'Número máximo de iterações
'Enquanto precisão for menor que 0,06mm
While Abs(Lambda - LambdaP) > 0.000000000001 And Limite > 0
SenLambda = Sin(Lambda)
CosLambda = Cos(Lambda)
'Equação 14
SenSigma = Sqr((CosU2 * SenLambda) * (CosU2 * SenLambda) + (CosU1 * SenU2 SenU1 * CosU2 * CosLambda) * (CosU1 * SenU2 - SenU1 * CosU2 * CosLambda))
'Equação 15
CosSigma = SenU1 * SenU2 + CosU1 * CosU2 * CosLambda
'Equação 16
52
If CosSigma = 0 Then
Sigma = Sgn(SenSigma) * (Pi / 2)
ElseIf CosSigma > 0 Then
Sigma = Atn(SenSigma / CosSigma)
Else
Sigma = Atn(SenSigma / CosSigma) + Pi * Sgn(SenSigma)
End If
'Equação 17
If SenSigma = 0 Then
SenAlfa = 0
Else
SenAlfa
= CosU1 * CosU2 * SenLambda / SenSigma
End If
'Equação 18
CosQdAlfa = 1 - SenAlfa * SenAlfa
If CosQdAlfa <> 0 Then 'Pontos sobre a linha do Equador
Cos2Sigma = CosSigma - 2 * SenU1 * SenU2 / CosQdAlfa
Else
Cos2Sigma = 0
End If
'Equação 10
C
= f / 16 * CosQdAlfa * (4 + f * (4 - 3 * CosQdAlfa))
'Próxima aproximação
LambdaP = Lambda
'Equação 11
Lambda
= L + (1 - C) * f * SenAlfa * (Sigma + C * SenSigma * (Cos2Sigma + C *
CosSigma * (-1 + 2 * Cos2Sigma * Cos2Sigma)))
'Variável que controla o número máximo de interações
Limite
= Limite - 1
Wend
'Valor de U2, usado na equação 3
uQd
= CosQdAlfa * (a * a - b * b) / (b * b)
'Equação 3
A2
= 1 + uQd / 16384 * (4096 + uQd * (-768 + uQd * (320 - 175 * uQd)))
'Equação 4
B2
= uQd / 1024 * (256 + uQd * (-128 + uQd * (74 - 47 * uQd)))
'Equação 6
DSigma = B2 * SenSigma * (Cos2Sigma + B2 / 4 * (CosSigma * (-1 + 2 * Cos2Sigma *
Cos2Sigma) - B2 / 6 * Cos2Sigma * (-3 + 4 * SenSigma * SenSigma) * (-3 + 4 *
Cos2Sigma * Cos2Sigma)))
'Equação 19
S
= b * A2 * (Sigma - DSigma) 'Distância em Metros
'Equação 20
x = ((CosU1 * SenU2) - (SenU1 * CosU2 * Cos(Lambda)))
y = Atn((CosU2 * Sin(Lambda)))
If x = 0 Then
Alfa1 = Sgn(y) * Pi / 2
ElseIf x > 0 Then
Alfa1 = Atn(y / x)
Else
Alfa1 = Atn(y / x) + Pi * Sgn(y)
End If
'Cálculo da direção em graus
53
Az = Alfa1 * 180 / Pi
'Se forem pontos sobre a linha do equador
If Lon2 = Lon1 Then
If Lat1 > Lat2 Then
Az = 180.0
Else
Az = 0.0
End If
End If
Response.Write S & "|" & Az
End Sub
'Exemplo de cálculo (Rio das Ostras até Meca)
Vincenty -22.5037, -41.9242, 21.4225, 39.8261
4.1.1.1 Precisão nos cálculos da distância
No sitio http://www.ga.gov.au/geodesy/datums/distance.jsp (11) aparece
uma relação de coordenas e as suas distâncias calculadas pela equação de Vin centy. A tabela 2 mostra a relação dos pontos utilizados nos testes.
Tabela 2: Coordenadas utilizadas nos testes
Ponto
A
B
C
D
E
F
G
H
I
J
K
L
Latitude
Longitude
-30
-31
-31
-32
-33
-34
-35
-40
-50
-60
-70
-80
150
150
151
151
151
151
151
151
151
151
151
151
Utilizamos, para os testes no programa desenvolvido, as coordenas dos
pares de pontos apresentados na tabela 2.
54
Vincenty -30, 150, -30, 150
Vincenty -30, 150, -31, 150
Vincenty -30, 150, -31, 151
Vincenty -30, 150, -32, 151
Vincenty -30, 150, -33, 151
Vincenty -30, 150, -34, 151
Vincenty -30, 150, -35, 151
Vincenty -30, 150, -40, 151
Vincenty -30, 150, -50, 151
Vincenty -30, 150, -60, 151
Vincenty -30, 150, -70, 151
Vincenty -30, 150, -80, 151
A tabela 3 apresenta os resultados esperados (onde coletou os dados esperados?) e obtidos dos cálculos para 12 pares de pontos cujas coordenadas foram
expostos na tabela 2.
Tabela 3: Resultados esperados e obtidos para a distância
Par origem-destino
AA
AB
AC
AD
AE
AF
AG
AH
AI
AJ
AK
AL
Resultado esperado
0,000
110,861
146,647
241,428
345,929
453,439
562,376
1.113,142
2.222,323
3.334,804
4.449,317
5.565,218
Resultado obtido
0
110,86092556603
146,647227225843
241,427618286232
345,928955846721
453,493055376482
562,375992555354
1.113,14171557588
2.222,32277281995
3.334,8049416503
4.449,31708005225
5.565,21797325836
Observou-se que os resultados estão essencialmente corretos, com uma
precisão de três casas decimais com o arredondamento da quarta.
55
4.1.2 CÓDIGO PARA O CÁLCULO DA DECLINAÇÃO MAGNÉTICA
Trata-se de uma função que recebe como parâmetros a latitude e a longitude da origem e retorna a declinação magnética, em graus. O código aparece detalhado abaixo, no qual também utilizamos a linguagem ASP. Os comentários indicam
todo o procedimento utilizado bem como as equações utilizadas. Embora os cálculos
incluam todos os componentes magnéticos, só é exibida a declinação, que é o que
nos interessa para a solução do problema proposto.
Sub Declinacao(Lat1, Lon1)
'Constantes usadas no cálculo
a = 6378137/1000
b = 6356752.314245/1000
f = 1/298.257223563
pi = 3.1415926535897932384626433832795
glat = Lat1
glon = Lon1
'Coeficientes para o período de 2005 a 2010
Dim wmm(92)
wmm(0) = split("1,0,-29556.8,0.0,8.0,0.0",",")
wmm(1) = split("1,1,-1671.7,5079.8,10.6,-20.9",",")
wmm(2) = split("2,0,-2340.6,0.0,-15.1,0.0",",")
wmm(3) = split("2,1,3046.9,-2594.7,-7.8,-23.2",",")
wmm(4) = split("2,2,1657.0,-516.7,-0.8,-14.6",",")
wmm(5) = split("3,0,1335.4,0.0,0.4,0.0",",")
wmm(6) = split("3,1,-2305.1,-199.9,-2.6,5.0",",")
wmm(7) = split("3,2,1246.7,269.3,-1.2,-7.0",",")
wmm(8) = split("3,3,674.0,-524.2,-6.5,-0.6",",")
wmm(9) = split("4,0,919.8,0.0,-2.5,0.0",",")
wmm(10) = split("4,1,798.1,281.5,2.8,2.2",",")
wmm(11) = split("4,2,211.3,-226.0,-7.0,1.6",",")
wmm(12) = split("4,3,-379.4,145.8,6.2,5.8",",")
wmm(13) = split("4,4,100.0,-304.7,-3.8,0.1",",")
wmm(14) = split("5,0,-227.4,0.0,-2.8,0.0",",")
wmm(15) = split("5,1,354.6,42.4,0.7,0.0",",")
wmm(16) = split("5,2,208.7,179.8,-3.2,1.7",",")
wmm(17) = split("5,3,-136.5,-123.0,-1.1,2.1",",")
wmm(18) = split("5,4,-168.3,-19.5,0.1,4.8",",")
wmm(19) = split("5,5,-14.1,103.6,-0.8,-1.1",",")
wmm(20) = split("6,0,73.2,0.0,-0.7,0.0",",")
wmm(21) = split("6,1,69.7,-20.3,0.4,-0.6",",")
wmm(22) = split("6,2,76.7,54.7,-0.3,-1.9",",")
wmm(23) = split("6,3,-151.2,63.6,2.3,-0.4",",")
wmm(24) = split("6,4,-14.9,-63.4,-2.1,-0.5",",")
wmm(25) = split("6,5,14.6,-0.1,-0.6,-0.3",",")
wmm(26) = split("6,6,-86.3,50.4,1.4,0.7",",")
wmm(27) = split("7,0,80.1,0.0,0.2,0.0",",")
wmm(28) = split("7,1,-74.5,-61.5,-0.1,0.6",",")
wmm(29) = split("7,2,-1.4,-22.4,-0.3,0.4",",")
wmm(30) = split("7,3,38.5,7.2,1.1,0.2",",")
wmm(31) = split("7,4,12.4,25.4,0.6,0.3",",")
wmm(32) = split("7,5,9.5,11.0,0.5,-0.8",",")
wmm(33) = split("7,6,5.7,-26.4,-0.4,-0.2",",")
wmm(34) = split("7,7,1.8,-5.1,0.6,0.1",",")
wmm(35) = split("8,0,24.9,0.0,0.1,0.0",",")
56
wmm(36)
wmm(37)
wmm(38)
wmm(39)
wmm(40)
wmm(41)
wmm(42)
wmm(43)
wmm(44)
wmm(45)
wmm(46)
wmm(47)
wmm(48)
wmm(49)
wmm(50)
wmm(51)
wmm(52)
wmm(53)
wmm(54)
wmm(55)
wmm(56)
wmm(57)
wmm(58)
wmm(59)
wmm(60)
wmm(61)
wmm(62)
wmm(63)
wmm(64)
wmm(65)
wmm(66)
wmm(67)
wmm(68)
wmm(69)
wmm(70)
wmm(71)
wmm(72)
wmm(73)
wmm(74)
wmm(75)
wmm(76)
wmm(77)
wmm(78)
wmm(79)
wmm(80)
wmm(81)
wmm(82)
wmm(83)
wmm(84)
wmm(85)
wmm(86)
wmm(87)
wmm(88)
wmm(89)
wmm(90)
wmm(91)
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
split("8,1,7.7,11.2,0.3,-0.2",",")
split("8,2,-11.6,-21.0,-0.4,0.1",",")
split("8,3,-6.9,9.6,0.3,0.3",",")
split("8,4,-18.2,-19.8,-0.3,0.4",",")
split("8,5,10.0,16.1,0.2,0.1",",")
split("8,6,9.2,7.7,0.4,-0.2",",")
split("8,7,-11.6,-12.9,-0.7,0.4",",")
split("8,8,-5.2,-0.2,0.4,0.4",",")
split("9,0,5.6,0.0,0.0,0.0",",")
split("9,1,9.9,-20.1,0.0,0.0",",")
split("9,2,3.5,12.9,0.0,0.0",",")
split("9,3,-7.0,12.6,0.0,0.0",",")
split("9,4,5.1,-6.7,0.0,0.0",",")
split("9,5,-10.8,-8.1,0.0,0.0",",")
split("9,6,-1.3,8.0,0.0,0.0",",")
split("9,7,8.8,2.9,0.0,0.0",",")
split("9,8,-6.7,-7.9,0.0,0.0",",")
split("9,9,-9.1,6.0,0.0,0.0",",")
split("10,0,-2.3,0.0,0.0,0.0",",")
split("10,1,-6.3,2.4,0.0,0.0",",")
split("10,2,1.6,0.2,0.0,0.0",",")
split("10,3,-2.6,4.4,0.0,0.0",",")
split("10,4,0.0,4.8,0.0,0.0",",")
split("10,5,3.1,-6.5,0.0,0.0",",")
split("10,6,0.4,-1.1,0.0,0.0",",")
split("10,7,2.1,-3.4,0.0,0.0",",")
split("10,8,3.9,-0.8,0.0,0.0",",")
split("10,9,-0.1,-2.3,0.0,0.0",",")
split("10,10,-2.3,-7.9,0.0,0.0",",")
split("11,0,2.8,0.0,0.0,0.0",",")
split("11,1,-1.6,0.3,0.0,0.0",",")
split("11,2,-1.7,1.2,0.0,0.0",",")
split("11,3,1.7,-0.8,0.0,0.0",",")
split("11,4,-0.1,-2.5,0.0,0.0",",")
split("11,5,0.1,0.9,0.0,0.0",",")
split("11,6,-0.7,-0.6,0.0,0.0",",")
split("11,7,0.7,-2.7,0.0,0.0",",")
split("11,8,1.8,-0.9,0.0,0.0",",")
split("11,9,0.0,-1.3,0.0,0.0",",")
split("11,10,1.1,-2.0,0.0,0.0",",")
split("11,11,4.1,-1.2,0.0,0.0",",")
split("12,0,-2.4,0.0,0.0,0.0",",")
split("12,1,-0.4,-0.4,0.0,0.0",",")
split("12,2,0.2,0.3,0.0,0.0",",")
split("12,3,0.8,2.4,0.0,0.0",",")
split("12,4,-0.3,-2.6,0.0,0.0",",")
split("12,5,1.1,0.6,0.0,0.0",",")
split("12,6,-0.5,0.3,0.0,0.0",",")
split("12,7,0.4,0.0,0.0,0.0",",")
split("12,8,-0.3,0.0,0.0,0.0",",")
split("12,9,-0.3,0.3,0.0,0.0",",")
split("12,10,-0.1,-0.9,0.0,0.0",",")
split("12,11,-0.3,-0.4,0.0,0.0",",")
split("12,12,-0.1,0.8,0.0,0.0",",")
split("999,999,9999999999,9999999999,99999999999,99999999999",",")
split("999,999,9999999999,9999999999,99999999999,99999999999",",")
'Declaração de arrays auxiliares
Dim c(13,13)
Dim cd(13,13)
Dim tc(13,13)
Dim dp(13,13)'
Dim snorm(169)
Dim sp(13)'
Dim cp(13)'
Dim fn(13)
57
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
fm(13)
pp(13)'
k(13,13)
p(169)'
ti(13)
dec(13)
dip(13)
gv(13)
'Constantes
rTd
= 0.017453292
epochrange = 5.0
epochlowlim = 2005.0
maxdeg
= 12
warn_H
= 0
warn_H_val
= 99999.0
warn_H_strong
= 0
warn_H_strong_val = 99999.0
warn_P
= 0
'Inicializa constantes
maxord = 12
sp(0)
= 0.0
cp(0)
= 1.0
p(0)
= 1.0
pp(0)
= 1.0
dp(0,0) = 0.0
re
= 6371.2
a2
= a * a
b2
= b * b
c2
= a2 - b2
a4
= a2 * a2
b4
= b2 * b2
c4
= a4 - b4
'Lê coeficientes harmônicos esféricos
c(0,0) = 0.0
cd(0,0) = 0.0
epoch
= 2005.0
'Pega os valores de acordo com array de coeficientes
For x = 0 to 89
If wmm(x)(1) <= wmm(x)(0) Then
c(wmm(x)(1),wmm(x)(0)) = wmm(x)(2)
cd(wmm(x)(1),wmm(x)(0)) = wmm(x)(4)
If (wmm(x)(1) <> 0) Then
c(wmm(x)(0),wmm(x)(1)-1) = wmm(x)(3)
cd(wmm(x)(0),wmm(x)(1)-1) = wmm(x)(5)
End If
End If
Next
'Converte coeficientes de Schmidt Gauss normalizados para não normalizados
snorm(0) = 1.0
For n = 1 To maxord
snorm(n) = snorm(n-1) * (2*n-1) / n
j = 2
m = 0
D1 = 1
D2 = (n - m + D1) / D1
While D2 > 0
k(m,n) = (((n-1)*(n-1)) - (m*m)) / ((2*n-1) * (2*n-3))
If m > 0 Then
flnmj = ((n-m+1) * j) / (n+m)
snorm(n+m*13) = snorm(n+(m-1)*13) * sqr(flnmj)
j = 1
58
c(n,m-1) = snorm(n+m*13) * c(n,m-1)
cd(n,m-1) = snorm(n+m*13)*cd(n,m-1)
End If
c(m,n) = snorm(n+m*13) * c(m,n)
cd(m,n) = snorm(n+m*13) * cd(m,n)
D2 = D2 - 1
m = m + D1
Wend
fn(n) = (n+1)
fm(n) = n
Next
k(1,1) = 0
otime
oalt
olat
olon
=
=
=
=
-1000.0
-1000.0
-1000.0
-1000.0
altm = 0
tempo = Year(Date()) + ((Month(Date())-1) / 12) + ((Day(Date())-1) / 365)
alt = altm / 1000
dt
= tempo - epoch
dtr
= pi / 180.0
rlon
= glon * dtr
rlat
= glat * dtr
srlon
= sin(rlon)
srlat
= sin(rlat)
crlon
= cos(rlon)
crlat
= cos(rlat)
srlat2 = srlat * srlat
crlat2 = crlat * crlat
sp(1)
= srlon
cp(1)
= crlon
'Converte
If alt <>
q
q1
q2
ct
st
r2
r
d
ca
sa
End If
coordenadas de geodética para esférica
oalt or glat <> olat Then
= sqr(a2 - c2 * srlat2)
= alt * q
= ((q1 + a2)/(q1 + b2)) * ((q1+a2)/(q1+b2))
= srlat / sqr(q2 * crlat2 + srlat2)
= sqr(1.0 - (ct * ct))
= (alt * alt) + 2.0 * q1 + (a4 - c4 * srlat2)/(q*q)
= sqr(r2)
= sqr(a2 * crlat2 + b2 * srlat2)
= (alt + d) / r
= c2 * crlat * srlat / (r * d)
If glon <> olon Then
For m = 2 To maxord
sp(m) = sp(1) * cp(m-1) + cp(1) * sp(m-1)
cp(m) = cp(1) * cp(m-1) - sp(1) * sp(m-1)
Next
End If
aor
ar
br
bt
bp
bpp
=
=
=
=
=
=
re / r
aor * aor
0.0
0.0
0.0
0.0
For x = 0 to 169
p(x) = snorm(x)
Next
59
For n = 1 To maxord
ar = ar * aor
m = 0
D3 = 1
D4 = (n+m+D3)/D3
While D4 > 0
'Calcula polinomiais de Legendre não normalizados
'derivativas via relações de recursão
If alt <> oalt Or glat <> olat Then
If n = m Then
p(n+m*13) = st * p(n-1+(m-1)*13)
dp(m,n)
= st * dp(m-1,n-1) + ct * p(n-1+(m-1)*13)
End If
If n = 1 And m = 0 Then
p(n+m*13) = ct * p(n-1+m*13)
dp(m,n) = ct * dp(m,n-1) - st * p(n-1+m*13)
End If
If n > 1 and n <> m Then
If (m > n-2) Then
p(n-2+m*13) = 0.0
End If
If (m > n-2) Then
dp(m,n-2) = 0.0
End If
p(n+m*13) = ct * p(n-1+m*13) - k(m, n) * p(n-2+m*13)
dp(m,n) = ct * dp(m,n-1) - st * p(n-1+m*13) - k(m,n) * dp(m,n-2)
End If
End If
'Ajusta coeficientes de Gauss para variável tempo
If tempo <> otime Then
tc(m,n) = c(m,n) + dt * cd(m,n)
If m <> 0 Then
tc(n,m-1) = c(n,m-1) + dt * cd(n,m-1)
End If
End If
'Acumula termos de expansões harmonicas esféricas
par = ar * p(n+m*13)
If m = 0 Then
temp1 = tc(m,n) * cp(m)
temp2 = tc(m,n) * sp(m)
Else
temp1 = tc(m,n) * cp(m) + tc(n,m-1) * sp(m)
temp2 = tc(m,n) * sp(m) - tc(n,m-1) * cp(m)
End If
bt = bt - ar * temp1 * dp(m,n)
bp = bp + (fm(m) * temp2 * par)
br = br + (fn(n) * temp1 * par)
'Caso especial: pólos sul e norte geográfico
If (st = 0.0 And m = 1) Then
If n = 1 Then
pp(n) = pp(n-1)
Else
pp(n) = ct * pp(n-1) - k(m,n) * pp(n-2)
End If
parp = ar * pp(n)
bpp = bpp + (fm(m)* temp2 * parp)
End If
D4 = D4 - 1
m = m + D3
Wend
Next
If st = 0 then
bp = bpp
Else
bp = bp / st
End If
60
'Rotaciona componente de vetor de esférico para geodético
bx = -bt * ca - br * sa
by = bp
bz = bt * sa - br * ca
'Calcula Declinação, Inclinação e Intensidade Total
bh = sqr((bx*bx)+(by*by))
ti(0) = sqr((bh*bh)+(bz*bz))
If bx = 0 Then 'Emula função atn2
dec(0) = (Sgn(by) * Pi / 2) / dtr
ElseIf bx > 0 Then
dec(0) = Atn(by/bx)/dtr
Else
dec(0) = (Atn(by/bx) + Pi * Sgn(by))/dtr
End If
'dec(0) = Atn2(by,bx)/dtr
If bh = 0 Then 'Emula função atn2
dip(0) = (Sgn(bz) * Pi / 2) / dtr
ElseIf bh > 0 Then
dip(0) = Atn(bz/bh)/dtr
Else
dip(0) = (Atn(bz/bh) + Pi * Sgn(bz))/dtr
End If
'dip(0) = Atn2(bz,bh)/dtr
If CosSigma = 0 Then
Sigma = Sgn(SenSigma) * Pi / 2
ElseIf SenSigma > 0 Then
Sigma = Atn(SenSigma / CosSigma)
Else
Sigma = Atn(SenSigma / CosSigma) + Pi * Sgn(SenSigma)
End If
Az = Sigma * 180 / Pi
'Calcula grade de variação se posição geodética for os pólos norte ou sul
gv(0) = -999.0
If Abs(glat) >= 55 Then
If glat > 0 And glon >= 0 Then
gv(0) = dec(0) - glon
End If
If glat > 0 And glon < 0 Then
gv(0) = dec(0) + Abs(glon)
End If
If glat < 0 And glon >= 0 Then
gv(0) = dec(0) + glon
End If
If glat < 0 And glon < 0 Then
gv(0) = dec(0) - Abs(glon)
End If
If gv(0) > 180 Then
gv(0) = gv(0) - 360
End If
If gv(0) < -180 Then
gv(0) = gv(0) + 360
End If
End If
otime = tempo
oalt = alt
olat = glat
olon = glon
tempo1 = tempo
dec1
= dec(0)
dip1
= dip(0)
ti1
= ti(0)
tempo = tempo1 + 1
Response.Write dec1
End Sub
61
4.1.2.1 Precisão nos cálculos da declinação magnética
No documento The US/UK World Magnetic Model for 2005-2010 NOAA
Technical Report (3) aparece uma tabela de testes para a declinação magnética.
Essa tabela considera o parâmetro temporal como 2007.5. A tabela 4 mostra os valores da declinação esperada e econtrada para uma série de coordenadas especifi cadas na tabela de testes. Foi utilizado o programa de testes a seguir. A variável
tempo foi fixada em 2007.5 exatamente como na definição do teste.
Declinacao 80, 0
Declinacao 80, 60
Declinacao 80, 120
Declinacao 80, 180
Declinacao 80, 240
Declinacao 80, 300
Declinacao 40, 0
Declinacao 40, 60
Declinacao 40, 120
Declinacao 40, 180
Declinacao 40, 240
Declinacao 40, 300
Declinacao 0, 0
Declinacao 0, 60
Declinacao 0, 120
Declinacao 0, 180
Declinacao 0, 240
Declinacao 0, 300
Declinacao -40, 0
Declinacao -40, 60
Declinacao -40, 120
Declinacao -40, 180
Declinacao -40, 240
Declinacao -40, 300
Declinacao -80, 0
Declinacao -80, 60
Declinacao -80, 120
Declinacao -80, 180
Declinacao -80, 240
Declinacao -80, 300
62
Tabela 4: resultados esperados (onde coletou os dados esperados?) e obtidos para
a declinação
Latitude
Longitude
80
80
80
80
80
80
40
40
40
40
40
40
0
0
0
0
0
0
-40
-40
-40
-40
-40
-40
-80
-80
-80
-80
-80
-80
0
60
120
180
240
300
0
60
120
180
240
300
0
60
120
180
240
300
0
60
120
180
240
300
0
60
120
180
240
300
Esperado
-6,92
35,84
0,55
8,65
31,25
-54,44
-0,98
5,08
-7,40
5,79
14,75
-17,79
-6,44
-4,13
1,08
9,62
9,13
-14,63
-23,43
-45,31
-3,36
21,80
22,46
-2,65
-21,77
-74,33
-140,75
131,56
70,39
23,86
Obtido
-6,72
35,70
0,93
8,51
32,00
-54,52
-1,09
4,99
-7,38
5,85
14,78
-17,71
-6,47
-4,13
1,07
9,62
9,18
-14,68
-23,43
-45,24
-3,30
21,77
22,44
-2,65
-21,81
-74,38
-140,71
131,47
70,35
23,99
Observa-se que os valores encontrados são muito próximos aos valores
de teste, com diferença máxima de 0,75 grau. Acreditamos que essa diferença possa vir de um ou mais dos seguintes fatores: (1) Pequenas diferenças ou arredondamento na tabela de coeficientes; e (2) diferença no número de casas decimais utilizadas nos parâmetros (pi, raio da terra no equador e nos pólos).
Em resumo, o código apresentado é eficaz no cálculo da declinação magnética, dadas as coordenadas de um ponto.
63
A figura 4 mostra um mapa contendo os valores da declinação magnética.
Figura 4: declinação magnética
64
CONCLUSÕES
Como ficou demonstrado, neste documento, os modelos matemáticos
apresentados para o cálculo da direção e distância entre dois pontos e da declinação magnética de um ponto, bem como a implementação apresentada são eficazes
na solução do problema proposto.
Fica claro que existe um amplo espaço para o desenvolvimento de aplicações que fazem uso desses cálculos. O principal diferencial da metodologia apresentada é o baixo custo de implementação e computacional necessários para utilizála.
Por exemplo, o fato de ser possível, a partir de uma agulha magnética, determinar a direção a ser seguida (já que é efetuado o cálculo da declinação magnéti ca), permite um menor custo na determinação de rotas de aviação e marítimas.
Além disso, visto que a implementação utiliza visualização dos mapas e
fotografias aéreas e de satélite, o usuário da aplicação consegue se localizar com
muito mais facilidade.
Acreditamos que um setor que irá se beneficiar grandemente desse trabalho é o de petróleo e gás. Os cálculos apresentados permitem um melhor dimensionamento na instalação de dutos submarinos, uma vez que é possível saber a rota
ideal utilizando-se o caminho mais curto, bem como a orientação direcional necessária para que as embarcações utilizadas na instalação consigam implementar o que
foi projetado.
65
Por fim, deixamos registradas as sugestões de novas implementações e
trabalhos, tais como listados abaixo:
1.
Preparar a aplicação para que possa ser utilizada em celulares e aparelhos de GPS, aumentando, assim, a precisão desses aparelhos nos cálculos. Talvez possa ser utilizada a tecnologia BREW da Qualcomm ou então Android do Google
que oferecem suporte a dispositivos GPS
2.
Desenvolver um modelo magnético levando em considerações inúmeros resultados de observações feitas no Brasil.
Por exemplo, a Petrobrás possui dados de medições em
grande parte do território brasileiro que poderiam ser usados
no desenvolvimento de um modelo que contemple as anomalias magnéticas em nosso território.
66
REFERÊNCIAS BIBLIOGRÁFICAS
1. Vincenty, T. Direct and Inverse solutions of geodesics on the ellipsoid with application of nested equations, 1975 - Survey Review XXII 176, pp. 88-93
2. Torge, Wolfgang. Geodesy, Terceira Edição, ed. Walter de Gruyter: Abril 2001
3. McLean, S., S. Macmillan, S. Maus, V. Lesur, A. Thomson, and D. Dater,
Dezembro 2004, The US/UK World Magnetic Model for 2005-2010 NOAA
Technical Report
4. Gaspar, Joaquim Alves, 2005 - Cartas e Projecções Cartográficas. 3.ª Edição.
Lisboa: Lidel - Edições Técnicas.
5. Kern, W. F. and Bland, J. R. Solid Mensuration with Proofs, 2nd e. New York:
Wiley, 1948
6. GeoLite City da empresa MaxMind. Disponível em: <http://www.maxmind.com/app/geolitecity >. Acesso efetuado em 16/11/2007
7. API do Google Maps. Disponível em: <http://www.google.com/apis/maps/ >.
Acesso efetuado em 16/11/2007
8. Programa de afiliados da Amazon. Disponível em: <http://affiliate-program.amazon.com/gp/associates/join>. Acesso efetuado em 16/11/2007
9. Google AdSense. Disponível em: <https://www.google.com/adsense>. Acesso
efetuado em 16/11/2007
10. Sistema de pagamentos PayPal. Disponível em: <www.paypal.com>. Acesso
efetuado em 16/11/2007
11. Geoscience Australia. Disponível em: < http://www.ga.gov.au/geodesy/datums/distance.jsp>. Acesso efetuado em 16/11/2007
12. Cálculo da direção e distância entre dois pontos e declinação magnética. Disponível em: http://www.qibla.com.br. Acesso efetuado em 16/11/2007
Download