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 gn (t − t 0 ) 2 2 1 hnm (t ) = hnm + hnm (t − t 0 ) + hnm (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 hnm 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 , hnm ) , 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λ + hn (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λ − hn (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λ + hnm (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