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.

Erich Schubert
fonte
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]}]
whuber
fonte
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