등변 투영의 원호


12

내가 올바른 길을 가고 있는지 확인하려면 다음을 수행하십시오.

구와 등변 방사상 (예 : 위도, 경도 쌍)에있는 모든 대원 :

  1. 자오선 (즉, 극점으로 이동)
  2. 형태의 tan latitude = sin360(longitude + rotation) * amplitude + offset

(오프셋 / 진폭 조합에 대한 추가 제한이 있습니다. 진폭이 0 인 모든 원호 경로에는 오프셋 0이 있습니다. 적도).

또는이 구성표에 맞지 않는 큰 원호 경로가 있습니까 (다시 말하면, 다른지도 투영법이 아닌 경도 위도 좌표 시스템에서만).

참고 : 나는 tanwhubers의 훌륭한 답변에 대한 반응으로 질문을 게시 한 후 위 의 내용을 추가했습니다 . offset그때는 항상 0 이라는 것이 밝혀졌습니다 .


양식 # 2는 (위도, 경도) 쌍이 아닙니다. 무슨 뜻인가요? 그리고 위대한 원이 자연스럽게 두 개의 매개 변수를 가질 때 왜 세 개의 매개 변수 ( rotation,, amplitudeoffset) 에 의존 합니까?
whuber

예, 하나는 중복되지만 수식을 준비하지 않았습니다. 언급 한 바와 같이, amplitude==0의미한다 offset=0; 이 두 가지는 분명히 결합되어 있습니다. 누락 된 latitude관계에 대한 업데이트 된 질문을 참조 하여 관계를 올바르게 구성하십시오.
Erich Schubert

답변:


11

일부 투영에서는 측지선이 사인파처럼 보이지만 공식은 올바르지 않습니다.

Equirectangular 투영에서 하나의 측지선이 있습니다. 분명히 사인파가 아닙니다.

여기에 이미지 설명을 입력하십시오

(배경 이미지는 http://upload.wikimedia.org/wikipedia/commons/thumb/e/ea/Equirectangular-projection.jpg/800px-Equirectangular-projection.jpg 에서 가져온 것입니다 .)

모든 Equirectangular 투영은이 좌표의 아핀 변환이고 (x 좌표는 경도이고 y 좌표는 위도 임) 사인파의 아핀 변환은 여전히 ​​사인파이므로 어떤 형태의 측지선도 예상 할 수 없습니다. 정사각형으로 사인파를 만듭니다 (수평선으로 표시되는 적도 제외). 처음부터 시작하여 올바른 공식을 만들어 봅시다.

그러한 측지선의 방정식을 다음과 같은 형식으로 만드십시오.

latitude = f(longitude)

함수 f 를 찾을 수 있습니다. (이 접근 방식은 이미 자오선에 대해 포기했지만 이러한 형식으로 작성할 수는 없지만 완전히 일반적입니다.) 3D 데카르트 좌표 (x, y, z)로 변환하면

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

여기서 l 은 경도이며 단위 반경이 가정됩니다 (일반성이 손실되지 않음). 구의 측지선은 중심을 통과하는 평면과의 교차점이므로 측지선 의 극 사이를 향하는 일정한 벡터 (a, b, c) 가 있어야합니다.

a x + b y + c z = 0

l 의 가치가 무엇이든간에 . f (l)에 대한 해는

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

제공된 C는 제로이다. c 가 0에 가까워 질 때 우리 는 180도 차이가 나는 한 의 자오선을 얻을 수있을 것 입니다. 모든 것이 좋습니다. 그런데 모양에도 불구하고 a / c 및 b / c와 같은 두 개의 매개 변수 만 사용합니다 .

모든 측지선은 경도가 0 도인 적도를 지나갈 때까지 회전 할 수 있습니다. 이것은 f (l)이 f0 (l-l0)의 관점에서 쓰여질 수 있음을 나타냅니다. 여기서 l0은 적도 교차점의 경도이고 f0은 Prime Meridian에서의 측지 교차점의 표현입니다. 이것으로부터 우리는 동등한 공식을 얻습니다.

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

여기서 -180 <= l0 <180 도는 적도 교차점의 경도 (동쪽으로 여행 할 때 측지선이 북반구에 진입하기 때문에)이고 감마 는 양의 실수입니다. 자오선 쌍은 포함되지 않습니다. 경우 감마 = 0이 경도 L0의 시작 지점과 적도를 지정한다; 고유 한 매개 변수화를 원할 경우 항상 l0 = 0을 취할 수 있습니다. 이번에 는 l0과 gamma로 제공되는 두 개의 매개 변수가 여전히 있습니다 .


Mathematica 8.0을 사용하여 이미지를 만들었습니다. 실제로 벡터 (a, b, c)를 제어 할 수 있고 해당 측지선이 즉시 표시되는 "동적 조작"을 만들었습니다. (정말 멋지네요.) 먼저 배경 이미지를 얻습니다.

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

전체 코드는 다음과 같습니다.

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]}]

감사. arctan어딘가에서 잃어 버렸습니다 . 내가 arctan latitude어딘가에서 시작한 것 같아
에리히 슈베르트

나는 이것을 두 번 이상 투표 할 수 있으면 좋겠다!
Ian Turton
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.