Linhas de grande círculo em projeção equiretangular


12

Só para verificar se estou no caminho certo:

Todos os grandes círculos da esfera e em projeção equiretangular (ou seja, latitude, pares de longitude) são:

  1. meridianos (isto é, indo de polo a polo)
  2. do formulário tan latitude = sin360(longitude + rotation) * amplitude + offset

(com restrições adicionais nas combinações deslocamento / amplitude - obviamente, todos os grandes caminhos circulares com amplitude 0 também têm deslocamento 0 - o equador).

Ou existem caminhos de círculo grande que não se encaixam nesse esquema (novamente, apenas em um sistema de coordenadas de longitude-latitude, não em outras projeções de mapa).

Nota: adicionei o tanitem acima depois de postar a pergunta, em uma reação à resposta excelente dos whubers. Acontece que offsetentão sempre é 0.


O formulário 2 não é um conjunto de pares (latitude, longitude). O que isso significa? E por que depende de três parâmetros ( rotation, amplitudee offset) quando os grandes círculos naturalmente têm apenas dois parâmetros (cada um corresponde a um par de pontos diametralmente opostos que são "polares")?
whuber

Sim, um é redundante, mas eu não tenho a fórmula pronta. Como observado, amplitude==0implica offset=0; esses dois estão obviamente acoplados. Consulte a pergunta atualizada sobre os desaparecidos latitudepara tornar o relacionamento bem formado.
Erich Schubert

Respostas:


11

Embora a geodésica pareça um pouco com ondas senoidais em algumas projeções, a fórmula está incorreta.

Aqui está um geodésico em uma projeção equiretangular. Claramente, não é uma onda senoidal:

insira a descrição da imagem aqui

(A imagem de plano de fundo é obtida em http://upload.wikimedia.org/wikipedia/commons/thumb/e/ea/Equirectangular-projection.jpg/800px-Equirectangular-projection.jpg .)

Como todas as projeções equiretangulares são transformações afins desta (onde a coordenada x é a longitude e a coordenada y é a latitude), e as transformações afins das ondas senoidais ainda são ondas senoidais, não podemos esperar nenhuma geodésica em qualquer forma do Projeção equiretangular a ser ondas senoidais (exceto o Equador, que é plotado como uma linha horizontal). Então, vamos começar do início e elaborar a fórmula correta.

Deixe a equação de tal geodésica estar na forma

latitude = f(longitude)

para que uma função f seja encontrada. (Essa abordagem já desistiu dos meridianos, que não podem ser escritos dessa forma, mas são totalmente gerais.) A conversão em coordenadas cartesianas 3D (x, y, z) fornece

x = cos(l) cos(f(l))
y = sin(l) cos(f(l))
z = sin(f(l))

onde l é a longitude e um raio unitário é assumido (sem nenhuma perda de generalidade). Como a geodésica na esfera é interseção com planos (passando por seu centro), deve existir um vetor constante (a, b, c) - que é direcionado entre os polos da geodésica - para o qual

a x + b y + c z = 0

não importa qual seja o valor de l . A resolução de f (l) dá

f(l) = ArcTan(-(a cos(l) + b sin(l)) / c)

desde que c seja diferente de zero. Evidentemente, quando c se aproxima de 0, obtemos no limite um par de meridianos diferindo em 180 graus - precisamente a geodésica que abandonamos desde o início. Então, tudo está bem. A propósito, apesar das aparências, isso usa apenas dois parâmetros iguais a / ce eb / c.

Observe que todas as geodésicas podem ser giradas até cruzar o equador a zero graus de longitude. Isso indica que f (l) pode ser escrito em termos de f0 (l-l0), onde l0 é a longitude do cruzamento equatorial e f0 é a expressão de um cruzamento geodésico no Meridiano de Prime. A partir disso, obtemos a fórmula equivalente

f(l) = ArcTan(gamma * sin(l - l0))

onde -180 <= 10 <180 graus é a longitude da travessia equatorial (quando a geodésica entra no Hemisfério Norte ao viajar para o leste) e gama é um número real positivo. Isso não inclui os pares de meridianos. Quando gama = 0, designa o Equador com um ponto de partida na longitude 10; sempre podemos tomar l0 = 0 nesse caso, se desejarmos uma parametrização única. Ainda existem apenas dois parâmetros, dados por l0 e gama neste momento.


O Mathematica 8.0 foi usado para criar a imagem. De fato, criou uma "manipulação dinâmica" na qual o vetor (a, b, c) pode ser controlado e a geodésica correspondente é exibida instantaneamente. (Isso é bem legal.) Primeiro, obtemos a imagem de fundo:

i = Import[
   "http://upload.wikimedia.org/wikipedia/commons/thumb/e/ea/\
    Equirectangular-projection.jpg/800px-Equirectangular-projection.jpg"]

Aqui está o código na íntegra:

Manipulate[
 {a, b, c} = {Cos[u] Cos[v], Sin[u] Cos[v], Sin[v]};
 Show[Graphics[{Texture[i], 
    Polygon[{{-\[Pi], -\[Pi]/2}, {\[Pi], -\[Pi]/2}, {\[Pi], \[Pi]/2}, {-\[Pi], \[Pi]/2}}, 
     VertexTextureCoordinates -> {{0, 0}, {1, 0}, {1, 1}, {0, 1}}]}], 
  Plot[ArcTan[(a Cos[\[Lambda]] + b Sin[\[Lambda]]) / (-c)], {\[Lambda], -\[Pi], \[Pi]}, 
   PlotRange -> {Automatic, {-\[Pi]/2, \[Pi]/2}}, PlotStyle -> {Thick, Red}]],
   {u, 0, 2 \[Pi]}, {v, -\[Pi]/2, \[Pi]}]

Obrigado. Eu perdi isso em arctanalgum lugar. Acho que comecei com arctan latitudealgum lugar.
Erich Schubert

Eu gostaria de poder votar mais de uma vez!
Ian Turton
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.