sun's longitude:258 24 17.24 
· 자유게시판 · 묻고답하기 · 알파문서 · RPMS list
· 사용자문서 · 팁/FAQ모음 · 리눅스Links · 자료실
· 서버정보 · 운영자 · Books/FAQ · FreeBSD
/board/read.php:소스보기  
알파문서
자주 잊어먹거나, 메모해 둘 필요성이 있는 팁이나 문서, 기타 등등
[*** 쓰기 금지단어 패턴 ***]
글 본문 중간에 업로드할 이미지를 추가하는 방법 : @@이미지이름@@
ex) @@foo.gif@@
283 번 글: [misc] 천문계산 - 각도변환, 시간변환, 좌표계변환
글쓴이: 산이 [홈페이지] 글쓴날: 2012년 01월 15일 02:03:06 일(새벽) 조회: 5939
[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

 
이전글 : [misc] 개략적인 천문박명 시간 알아보기
다음글 : [misc] 프로그램 디렉토리별 분류  
 from 211.212.225.115
JS(Redhands)Board 0.4 +@

|글쓰기| |답장쓰기| |수정| |삭제|
|이전글| |다음글| |목록보기|
인쇄용 

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

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