세차운동(歲差運動, Precession)은 일반적으로 강체에 돌림힘(Torque)이 작용할 때, 회전하는 물체의 축이 어떤 부동축의 둘레를 회전하는 현상을 말한다. 천문학에서 말하는 세차운동은 지구의 자전축이 불변인 황도면의 축의 둘레를 2만 5800년 주기로 회전하는 운동을 말한다. 이 현상은 지구에 작용하는 달, 태양의 중력과 지구가 타원체라는 것에서부터 기인한다.

 

천문 계산을 하는데 있어서 세차를 고려해야 과거,미래의 천체위치를 제대로 예측할 수 있다. 왜냐하면 세차운동으로 인해 지구 자전축이 변한다는 것은 천체 위치의 기준점인 춘분점(Vernal Equinox)의 위치도 변한다는 것을 의미하기 때문이다.

 

여기서는 적도좌표계(Equatorial Coordinate System)황도좌표계(Ecliptic Coordinate System)에서 세차운동 계산 방법을 학습하는 것을 주 목표로 한다. 세차운동의 공식 유도 및 사용되는 각종 다항식이 어떻게 만들어졌는지 알아내는 과정은 생략한다.

 

이 글의 참고 서적은 Jean Meeus의 Astronomical Algorithms 2nd임을 밝혀둔다. 하지만 이 책에서 소개한 대로만 하지 않으며 더 효과적으로 계산하는 방법도 소개하겠다.

 

이 글은 세차운동 계산시 정밀한 방법(Rigorous Method)을 이용한다. 낮은 정밀도를 가지는 방법은 책을 참고하길 바란다.

 

Julian Century

1 Julian Century는 100 Julian Year와 같다.  Julian Year는 86000 SI 초를 기반으로하는 365.25일을 1로 측정하는 단위이다. Julian Century는 Julian Year의 100배 이므로 36525일을 1로 측정하는 단위이다.  보통 J2000.0 = JDE 2451545.0 = 2000년 1월 1일 12h DT를 0으로 시작하게 된다. 여기서 JDE는 Julian Ephemeris Date, DT는 Dynamic Time을 의미한다.

 

그러므로 Julian Date(JD)로부터 Julian Century는 다음과 같이 계산한다.

 

T = (JD0 – J2000) / 36525

 

세차운동의 경우 어떤 시작원기(the initial epoch)부터 마지막 원기(the final epoch)까지의 세차운동값을 계산해야한다. 그러므로 시작원기와 마지막원기의 Julian Century차이는 다음과 같다.

 

t = (JD – JD0) / 36525

T, t에서 JD0는 시작원기, JD는 마지막 원기를 의미한다.

 

 

적도좌표계에서 세차운동적용 (일반 공식 이용)

Meeus의 책에 보면 다음과 같은 적도좌표계에서 세차운동을 계산하기 위한 수치적 표현공식이 적혀있다.

 

ζ = (2306”.2181 + 1”.39656T – 0”.000139 T2 ) t
      + (0”.30188 – 0”.000344T)t2 + 0”.017998 t3

z = ζ + (0”.79280+0”.000411*T)t2 + 0”.000205t3

ϑ =(2004”.3109 – 0”.85330T + 0”.000217T2)t
       - ( 0”.42665+0”.000217T )t2 + 0.041833t3

 

이 식은 IAU(International Astronomical Union, 1976)에서 지정한 값으로 관측을 통해 얻어지는 데이타로 만들어지는 식이다. 참고로 IAU에서는 IAU2006 세차모델을 사용하도록 권하고 있고 미해군천문대에서는 2009년부터 천문역서에 적용하고 있다.(참고 : IAU2006 세차모델)

 

시작원기의 적경,적위를 (α0, δ0)라고 하고 세차운동이 적용된 마지막원기의 적경,적위를 (α, δ)로 한다면 위 수치적 표현공식을 이용해 다음과 같이 (α, δ)를 계산할 수 있다. 이 식을 유도하는 과정은 구면천문학에 관련된 책을 참고하기 바란다.

 

A = cos(δ0)  sin( α0 + ζ )

B = cos( ϑ ) cos( δ0 ) cos( α0 + ζ ) – sin( ϑ ) sin( δ0 )

C = sin( ϑ ) cos ( δ0 ) cos( α0 + ζ ) + cos( ϑ ) sin( δ0 )

tan(  α – z ) = A/B

sin( δ ) = C

 

이 식만으로도 정확한 계산을 할 수 있다. 그러나 컴퓨터 프로그램을 이용하여 계산을 한다면 이 식은 매우 비효율적인 식이 된다. 가령, 수천, 수만개의 별이 있다고 하자. 그 별들은 어떤 시작원기를 가지는 각각 다른 α0, δ0값을 가지고 있을 것이다. 이들 α0, δ0을 세차운동이 적용된 새로운 α, δ를 계산하기 위해 일일히 cos, sin을 계산한다. 컴퓨터 프로그램을 한 사람은 알겠지만 cos, sin은 컴퓨터의 많은 자원을 소비하는 급수형태의 계산식이다. cos, sin을 너무 많이 쓰면 계산의 효율이 급격하게 떨어져서 1분이면 도출할 수 있는 계산을 1시간~2시간 이상식 소비할 수도 있게 된다.

 

컴퓨터 프로그램을 이용한 계산을 하려면 되도록이면 cos, sin과 같이 매우 비싼 자원을 소비하는 함수 사용을 지양하도록 해야한다. 그래야 빠른 계산을 할 수 있기 때문이다.

 

 

적도좌표계에서 세차운동적용 ( 변환행렬이용 )

 

앞서 세차운동이 적용된 새로운 α, δ를 계산하는 식은 한개의 천체 위치를 계산할 때마다 α0, δ0이 포함된 cos, sin을 계산해야한다. 그래서 새로운 α0, δ0가 주어져도 cos, sin을 최소한으로 이용하여 계산하는 방법을 여기서 소개한다. 그것은 변환행렬(Transformation Matrix)를 이용하는 방법이다.

 

변환행렬을 이용하면 다음과 같은 계산이 가능해진다. 세차운동을 적용하는 3x3 변환행렬을 P라고 하자. 그리고 α0, δ0를 직교좌표계로 바꾼 백터(vector)를 r0=[x0,y0,z0]라고 하고 세차운동이 적용된 α, δ를 직교좌표계를 바꾼 백터를 r=[x,y,z]라고 한다. 그럼 다음과 같이 계산하면 되겠다.

 

 

변환행렬 P는 세차운동이 적용되어 앞서 설명한 공식과 다르게 α0, δ0이 분리가 되었다. 행렬 P만 구하면 cos, sin과 같이 큰 자원을 소비하는 함수를 계산할 때마다 이용할 필요가 없어지며 대신, 단순하게 행렬과 백터 곱으로 수천,수만개의 별을 빠른 시간안에 세차운동을 적용할 수 있게 된다.

 

그럼 P는 어떻게 구할까? 그것은 회전변환행렬을 이용하면 된다. 앞서 구한 ζ, z, ϑ 값은 모두 세차운동에 의해 계산된 각도이다. 이 각도를 이용해 시작원기때의 적도좌표를 3번 회전변환하여 마지막원기때의 적도좌표를 구하는 것이다.

 

회전변환행렬에서 X축 회전 행렬을 Rx, Y축 회전 행렬을 Ry, Z축 회전행렬을 Rz라고 하자. 이들 행렬은 모두 3x3 행렬이다.

 

 



 

 

다른 참고를 보면 행렬안에 sin의 부호가 바뀐것을 볼 수 있는데 회전의 대상을 어떻게 정하느냐에 따라서 다른 결과이다. 천문계산에서 회전행렬은 위 정의대로 하는 것이 좋다.

 

적도좌표계에서 세차운동을 적용한 변환행렬 P는 다음과 같이 주어진다.

 

 

 

위 변환행렬은 ζ, z, ϑ 이 적용된 행렬곱이다. 이 행렬곱의 결과는 다음과 같다.

 

 

컴퓨터 프로그램으로 계산할 때는 이렇게 변환행렬을 만들어 계산하면 되겠다.

 

 

황도좌표계에서 세차운동적용 ( 변환행렬이용 )

 

황도좌표계에서도 적도좌표계와 동일한 방식이 적용된다.

 

Π = 174˚.876383889 + 3289”.4789 + 0”.60622 T2 
      - (869”.8089 + 0”.50491T)t + 0”.03536 t2

π = (5029”.0966 + 2”.22226T – 0”.000042T2)t
     + (1”.11113 – 0”.000042T)t2 – 0”.000006t3

η = (47”.0029 – 0”.06603T – 0”.000598T2)t
     + (-0”.03302 + 0”.000598T)t2 + 0.000060t3

 

시작원기 황경(ecliptic longitude),황위(ecliptic latitude)가 λ0,β0 이고 마지막원기 λ,β이라고 하자. 이때 각각의 직교좌표값을 r0, r이라고 한다면 변환행렬 P는 다음과 같다.

 


 

결과적으로 P는 다음과 같이 결정된다.

 

 

 

응용하기

지금까지 세차운동이 적용된 2가지 변환행렬을 알아보았다. 이 행렬은 필요에 따라서 선택해서 사용한다. 한가지 예를 들어보겠다. 적도좌표계에서 세차운동을 적용한 변환행렬을 Pequ, 황도좌표계에서 세차운동을 적용은 변환행렬을 Pecl이라고 하자. 황도좌표계에서 적도좌표계로 변환하는 행렬을 EclToEqu라고 가정한다. 만약 어떤 행성의 황경과 황위를 계산했다고 하면 다음과 같은 2가지 방법으로 새로운 적경, 적위를 계산할 수 있을 것이다.

 

r = EclToEqu Pecl  r0

r = Pequ Ecl2Equ  r0

여기서 r0는 황경,황위를 담은 직각좌표계에서의 벡터값, r은 적경,적위를 담은 직각좌표계에서의 벡터값

 

세차운동 계산기(Precession Calculator)

이 프로그램은 지금까지 설명한 내용을 토대로 만든 프로그램이다.  

 

 

참고


글쓴이 : 지돌스타(http://blog.jidolstar.com/487)

앞서 나는 천문학에서 사용하는 좌표계에 대해서 소개했었다.(http://blog.jidolstar.com/584) 여기서는 이들 좌표계 변환을 위해 몇 가지 표기법에 대해서 알아보고 좌표변환하는 식에 대해 설명하도록 하겠다.


α = 적경(right ascension). 이 값은 일반적으로 시(hours), 분(minutes), 초(seconds)로 표현된다. 필요하다면 어떤 공식에 사용하기 위해 degree값이나 radian값으로 변환해서 사용한다. degrees값을 시(hours)값으로 표현하기 위해 15로 나누어서 시, 분, 초로 변환할 수 있겠다.


δ = 적위(declination), 천구 적도의 북쪽이라면 +, 천구 적도의 남쪽이면 - 값을 가진다.


α1950 = B1950.0의 평균 분점(춘,추분점)을 기준으로 하는 적경


δ1950 = B1950.0의 평균 분점(춘,추분점)을 기준으로 하는 적위


α2000 = J2000.0의 평균 분점(춘,추분점)을 기준으로 하는 적경


δ2000 = J2000.0의 평균 분점(춘,추분점)을 기준으로 하는 적위


λ = 황경(ecliptical longitude), 춘분점(vernal equinox)으로부터 황도를 따라 측정한 경도


β = 황위(ecliptical latitude), 황도의 북쪽이면 +, 남쪽이면 -


l = 은경(galactic longitude)


b = 은위(galactic latitude)


h = 고도(altitude), 지평면 위는 +, 지평면 아래는 -


A = 방위각(Azimuth), 남점 또는 북점을 기준점으로 시계방향으로 잰 각. 기상학자나 항해자들은 방위각의 기준점을 북점으로 하여 북점(0˚), 동점(90˚), 남점(180˚), 서점(270˚)로 측정한다. 하지만 일부 천문학자들은 이 방법에 동의하지 않는다. 왜냐하면 적어도 북반구에 있는 관측자들이 시간각(hour angles)를 측정하기 위해 남쪽의 자오선을 기준으로 측정하기 때문이다. 내가 볼 때는 그건 별로 중요치 않다고 생각한다. 어느 관점에서 보느냐가 다를 뿐이다. 하지만 기준은 정해야겠지? 어쨌든 만약 남쪽 자오선을 기준으로 한다면 그 위에 올라온 천체는 시간각(H)과 방위각(A)가 모두 0˚가 된다.


ε = 황도의 기울기(obliquity of ecliptic). 황도와 천구의 적도 사이 각(angle)이다. 국제표준협회(International Astronomical Union, IAU)에서 평균기울기는 은 다음과 같이 정의하고 있다.


        ε0 = 23˚26´21˝.448 - 46˝8150T - 0˝.00059T2 + 0.˝001813T3


T는 J2000.0을 원기로 하여 100년 단위로 계수하는 시간이다.


하지만 수차(aberration) 와 장동(nutation)의 영향을 받아 겉보기 적경과 적위를 사용한다면 ε + Δε 를 사용해야 한다. (이에 대한 자세한 내용은 다음에 언급하겠다.) 만약 α와 δ가 J2000.0의 표준 춘분점을 참고한다면 ε2000 = 23˚26´21˝.448 = 23˚.4392911 값을 사용해야 한다. B1950.0의 표준 춘분점을 참고한다면 ε1950 = 23˚.4457889 를 사용하면 되겠다.


L = 관측자의 경도, 그리니치(Greenwich) 자오선으로부터 적도를 따라 관측자의 위치까지 잰 각으로 앞으로 나오는 식은 서쪽을 +, 동쪽을 -로 한다. 서쪽이 +라고 하는 것은 사람들마다 시각이 다르다.


φ = 관측자의 위도, 북반구면 +, 남반구면 - 이다.


H = 지방시간각(the local hour angle), 자오선(meridian)으로부터 천구의 적도를 따라 서쪽방향으로 천체의 발까지 잰 각


θ = 지방항성시(the local sidereal time), 남중한 별의 시간각 또는 춘분점의 적경

θ0는 영국 그리니치(Greenwich)에서의 항성시이다.

시간각과 지방항성시 또는 그리니치 항성시, 관측자의 경도의 관계는 다음과 같다.


H = θ - α 또는 H = θ0 - L - α


만약 α가 장동(nutation)에 영향을 받는다면 항성시도 이에 영향을 받는다. 장동에 관련된 부분은 다음에 언급하겠다.


다음에 나오는 식은 각각의 좌표계에서 다른 좌표계로 변환하는 식이다. 식을 유도하는 과정은 생략하도록 하겠다.

 


1. 적도좌표계에서 황도좌표계로 변환

 

 

 

 

 

2. 황도좌표계에서 적도좌표계로 변환

 

 

 

 

 

 

3. 적도좌표계에서 지평좌표계로 변환

앞서 설명했던 시간각과 적경간에 변환 공식을 통해 시간각을 계산하여 방위각과 고도를 계산할 수 있다.

 

 



 

 

만약 남점 대신 북점을 기준으로 하는 방위각을 계산할려면 계산된 방위각에 180˚을 더하면 되겠다.

 


 


4. 지평좌표계에서 적도좌표계로 변환


 

 

 

 

 

5. 적도좌표계와 은하좌표계간 변환

 

은하좌표계는 국제천문협회(IAU)에 1959년에 정의했다. B1950.0의 평균 적도좌표계에서 은하(galactic, Milky Way)의 북극의 좌표는 다음과 같다.

 

α1950 = 12h49m = 192˚.25,    δ1950 = +27˚.4


은하좌표계에서 은경의 기준점(궁수자리 서쪽부근)은 B1950.0 적도좌표계의 적도에서 은하좌표계 승교점(ascending node, 독수지자리 서쪽부근)과 약 33˚ 떨어져 있다.


이 값은 B1950.0 춘분점을 기준으로 정확하게 고정되어 있어 편리하게 사용할 수 있다.


B1950.0을 기준으로 하는 적도좌표계에서 은하좌표계로 변환하는 식은 다음과 같다.

 

 

 

 

 

 

 

B1950.0을 기준으로 하는 은하좌표계에서 적도좌표계로 변환하는 식은 다음과 같다.

 

 

 

 


 

1950.0 기준대신, 2000.0 기준으로 하는 식은 다음에 언급하겠다.


프로그래밍을 통하여 tan에 대한 계산을 할 때 주의할 점은 atan()가 아닌 atan2()를 사용해야한다. 왜냐하면 atan의 결과값은 -90˚~90˚인데 반해, atan2의 결과는 -180˚~180˚이기 때문이다.

 


글쓴이 : 지돌스타(http://blog.jidolstar.com/585)

 

 

천문학에서 천체의 위치를 나타내기 위해서 여러 좌표계(coordinate system)를 사용한다.

대표적인 좌표계로 다음과 같은 것이 있다.

 

1. 지평좌표계(Horizontal Coordinate System)

지금 내가 서있는 지평면이 기준면이 되고 북점(자전축방향) 또는 남점이 기준점이 되는 좌표계이다. 이 좌표계는 관측자 기준으로 별의 위치를 나타내는데 유용하다. Starpl에서 오른쪽 하단에 마우스를 오버했을때 보여주는 방위각,고도가 바로 이 좌표계에서 나타내는 방식이다.

방위각(azimuth)은 북점 또는 남점에서 시계방향으로 천체의 발까지 잰 각이고

고도(altitude)는 천체의 발로부터 천체까지 잰 각이다.

 

2. 적도좌표계(Equatorial Coordinate System)

지평좌표계의 한계는 지구위에 관측자가 바라보는 천체의 좌표이므로 지구의 공전과 자전, 그리고 관측자가 어디에 있느냐에 따라 그 위치가 계속 변한다는 단점이 있다. 그래서 고정된 천체(여기서는 항성=별을 의미)의 위치를 나타내기 위한 좌표계가 필요하다. 그것이 바로 적도좌표계이다.

적도좌표계는 지구의 적도를 천구상에 연장한 천구의 적도를 기준면으로 한다. 그리고 춘분점(vernal equinox point)이 기준점이 된다.

적도좌표계에서는 춘분점에서 천구의 적도를 따라 시계반대방향으로 천체의 발까지 잰 각을 적경(right ascension)이고 천체의 발로 부터 천체까지 지구의 자전축을 연장한 천구의 북극을 +방향으로 잰각을 적위(declination) 이라고 한다.

 

3. 황도좌표계(Ecliptic Coordinate System)

지구를 비롯한 행성은 태양을 중심으로 공전한다. 그래서 행성의 회전에 기준이 되는 좌표계가 필요하다. 그래서 만들어진 것이 바로 황도좌표계이다. 황도좌표계의 기준면은 바로 지구공전면(황도면)이며 기준점은 춘분점이다. 적도좌표계와 약 23.5도 기울어져 있으며 지구중심에서볼때 지심황도좌표계, 태양중심에서 볼때 일심황도좌표계로 분류된다. 춘분점을 기준으로 지구공전방향(황도)를 따라 잰각은 황경(celestial longitude), 천체의 발부터 천체까지 북쪽으로 +, 남쪽으로 -로 잰각을 북 황위(celestial latitude)라고 명한다.

 

4. 은하좌표계(Galatic Coordinate System)

위 3개의 좌표는 태양계에서 이뤄지는 좌표이다. 그렇기 때문에 은하를 중심으로하는 별들의 위치를 표현하는데는 한계가 있다. 우리 은하면을 기준면으로 하고 은하중심(궁수자리부근)을 기준점으로 하는 은하좌표계는 은하에서의 절대적 위치를 표현하는데 적합하다. 은하의 적도를 따라 시계반대방향으로 은하중심으로부터 천체의 발까지 잰각은 은경(galactic longitude), 천체의 발부터 천체까지 잰각을 은위(galactic latitude) 라고 한다.

은하좌표계는 1959년 국제천문단체(IAU)에서 정의했다. B1950.0 표준 적도좌표계에서 은하 북극(the galactic North Pole)는 적경 192.25도, 적위 +27.4도 이다.

 

필요에 따라 위의 4개의 좌표계를 서로 변환할 필요가 있다.

가령 서울에서 목성의 위치를 알고 싶을 때는 먼저 황도좌표계에서 목성의 위치를 계산한다음 적도좌표계로 변환한다. 그리고 관측지와 관측시간정보를 이용해 지평좌표계로 변환하면 관측지를 기준으로 목성의 위치가 어디에 있는지 확인할 수 있겠다.

 

이러한 계산을 하기 위해서 사전에 필요한 지식은 좀 많은 편이긴 하다.

왜냐하면 위 4개의 좌표계를 이해하는 것도 중요하지만 용어에 대한 정확한 이해가 필요하기 때문이다.

 

조만간 계산에 사용되는 관련 용어와 계산식, 그리고 예제에 대한 글을 올리도록 하겠다.

 

글쓴이 : 지돌스타( http://blog.jidolstar.com/584 )

+ Recent posts