내일은 대한입니다.
sun's longitude:298 53 32.22 
· 자유게시판 · 묻고답하기 · 알파문서 · RPMS list
· 사용자문서 · 팁/FAQ모음 · 리눅스Links · 자료실
· 서버정보 · 운영자 · Books/FAQ · FreeBSD
/board/delete.php:소스보기  
알파문서
자주 잊어먹거나, 메모해 둘 필요성이 있는 팁이나 문서, 기타 등등
[*** 쓰기 금지단어 패턴 ***]
글 본문 중간에 업로드할 이미지를 추가하는 방법 : @@이미지이름@@
ex) @@foo.gif@@
 ★ 글 지우기 항목입니다. 한번 더 생각하시고 결정하십시오.!!!
제목 283 : [misc] 천문계산 - 각도변환, 시간변환, 좌표계변환
 이름  산이 [홈]http://linuxchannel.net/
[misc] 천문계산 - 각도변환, 시간변환, 좌표계변환

1. 각도 변환

- 각도, 시분초, 도분초, 시간(h)

- 각도 <-> 시분초
- 각도 <-> 도분초
- 각도 <-> 시간
- 시분초 <-> 도분초
- 시분초 <-> 시간
- 도분초 <-> 시간

- deg2hms(deg) <-> hms2deg(hms)
- deg2dms(deg) <-> dms2deg(dms)
- deg2h(deg) <-> h2deg(h)
- hms2dms(hms) <-> dms2hms(dms)
- hms2h(hms) <-> h2hms(h)
- dms2h(dms) <-> h2dms(h)


2. 시간 체계

UT = TT - dT
DT = 역학시
TDT(Terrestrial Dynamical Time) = DT(Dynamical Time) = TT(Terrestrial Time)

- local = time(),date()
- JD = GMT 12:00:00 기준 이므로 local 속성
- UT = gmtime(),gmdate() or local-time_offset
- TT = UT + dT // 각종 천체 운행에 사용

- JD <-> UT <-> GST <-> LST
<------------->
<------------->
<-------------------->

- JD2UT(JD,-time_offset) <-> UT2JD(ut,+time_offset)
- UT2GST(ut) <-> GST2UT(gst) // 아래 함수
- GST2LST(gst,+lon_offset) <-> LST2GST(lst,-lon_offset)

*함수출처) http://astronote.org/

double UTToGST(double ut)
{
double gst_time, ut_date, ut_time, t, t0;

ut_date = time_get_date(ut);
ut_time = time_get_time(ut);

t = (ut_date - 2451545.0) / 36525.0; // d0 /36525
t0 = 6.697374558 + (2400.051336 * t) + (0.000025862 * t * t);
t0 = util_norm(t0, 0, 24);

gst_time = ut_time * 1.00273790935 + t0;
gst_time = util_norm(gst_time, 0, 24);

return ut_date + gst_time / 24.0;
}

TIME UTToGST(TIME ut)
{
double t = (GetJD0(ut)-2451545.0)/36525;
t0 = 280.46061837 + 360.98564736629 (ut - 2451545.0) + (0.000387933 - t/38710000)*t*t;
return ut*1.00273790935+t0;
}

## JD to Local/Greenwich Sidreal Time
## http://www.jgiesen.de/astro/astroJS/sunriseJS/index.htm // in rsTL.js
##
function jd2lst($JD, $longitude=0)
{
$MJD = $JD - 2400000.5;
$MJD0 = floor($MJD);
$ut = ($MJD - $MJD0) * 24.0;
$t = ($MJD0 - 51544.5) / 36525.0;

$gst = 6.697374558 + (1.00273790935*$ut) + (8640184.812866 + (0.093104-0.0000062*$t)*$t) * $t/3600.0;
$gst = ($gst>=0) ? fmod($gst,24.0) : fmod($gst,24.0) + 24.0; // to 24hours unit
$lst = fmod($gst+$longitude/15.0,24.0); // to 24hours unit

return $lst; // 24hours unit (hour angle)
}

double GSTToUT(double gst)
{
double gst_date, gst_time, t, t0, ut_time;

gst_date = time_get_date(gst);
gst_time = time_get_time(gst);

t = (gst_date - 2451545.0) / 36525.0;
t0 = 6.697374558 + (2400.051336 * t) + (0.000025862 * t * t);
t0 = util_norm(t0, 0, 24);

ut_time = (gst_time - t0);
ut_time = util_norm(ut_time, 0, 24);

// 이 계산 때문에 하루치가 달라질 수 있으며 하루에 두개가 생길 수 도 있음
ut_time *= 0.9972695663;

return gst_date + ut_time / 24.0;
}

- LST = Ha(시간각) + RA(적경)
- Ha = LST - RA (적경과 항성시가 같으면 시간각=0)
- RA = LST - Ha


3. 좌표변환
*출처) http://blueedu.dothome.co.kr/

황도좌표
- 황경(L), lon
- 황위(B), lat
- 황도경사각(e)

적도좌표
- 적경(RA)
- 적위(dec)
- 시간각(Ha): 남중시각에서 서쪽으로 잰 시간각

지구좌표
- 경도(Lon), lon
- 위도(Lat), lat

지평좌표
- 방위각(A), Az
- 고도(h), Alt, alt

- 항성시(Lst)


1) 항성시 계산

JDTT = JD of TT
UT1 = r' * 항성시
T = (JDTT - 2451545.0) / 36525

IAU1980/1982
r' = 1.002737909350795 + 5.90060*T/10^11 - 5.90000*T^2/10^15

IAU2000
r' = 1.00273790934498694 + 5.90107*T/10^11 - 5.92187*T^2/10^15 + 1.59032*T^3/10^15

IAU2006
r' = 1.00273790934496866 + 5.87954*T/10^11 - 2.78538*T^2/10^17 - 2.53133*T^3/10^15 - 3.88654*T^4/10^18


2-1) 황도좌표 to 적도좌표
sin(dec) = sin(B)*cos(e) + cos(B)*sin(e)*sin(L)
tan(RA) = (sin(L)*cos(e) - tan(B)*sin(e)) / cos(L) = x/y
RA = atan2(x,y)

황도경사각
cos(e) = (sin(dec)*tan(dec) - tan(L)*cos(RA)*cos(B)*sin(L)) / (sin(B)*tan(dec) - sin(RA)*cos(B)*sin(L))

2-2) 적도좌표 to 황도좌표
sin(B) = sin(dec)*cos(e) - cos(dec)*sin(e)*sin(RA)
tan(L) = (sin(RA)*cos(e) + tan(dec)*sin(e)) / cos(RA) = x/y
L = atan2(x,y)

3-1) 적도좌표 to 지평좌표

sin(h) = sin(dec)*sin(Lat) + cos(dec)*cos(Lat)*cos(Ha)
tan(A) = -cos(dec)*sin(Ha) / (sin(dec)*cos(Lat) - cos(dec)*sin(Lat)*cos(Ha)) = x/y
A = atan2(x,y)

3-2) 지평좌표 to 적도좌표

sin(dec) = sin(h)*sin(Lat) + cos(h)*cos(Lat)*cos(A)
tan(Ha) = -cos(h)*sin(A) / (sin(h)*cos(Lat) - cos(h)*sin(Lat)*cos(A)) = x/y
Ha = atan2(x,y)
RA = LST - Ha
2012년 01월 15일 02:03:06 일(새벽)  from 211.212.225.115
0
암호: 공용 보안 SSL 서버가 준비되기 전까지는 off 합니다

apache lighttpd linuxchannel.net 
Copyright 1997-2025. linuxchannel.net. All rights reserved.

Page loading: 0.01(server) + (network) + (browser) seconds