logo

한국어

지식나눔

한국아마추어천문학회 한국천문연구원 회원가입안내



  • 352
  • 1968113
?

단축키

이전 문서

다음 문서

+ - Up Down Comment Print
?

단축키

이전 문서

다음 문서

+ - Up Down Comment Print

 

이 글은 독일우주운영센터(GSOC)의 과학자인 Oliver Montenbruck와 Thomas Pfleger가 공동 출판한 Astronomy with your Personal Computer를 의역 후,  작성된 것임을 알리며, 원저의 베이직 코드를 웹 환경에서 쉽게 실행해 볼 수 있도록 자바스크립트 코드로 변경하여 작성하였음을 밝힙니다. 자바스크립트 코드와 이 글의 내용은 글쓴이의 2차 저작물 이므로 배포나 내용의 임의 변경에 대해 글쓴이의 동의가 있어야 합니다.

 

 

컴퓨터 천문학의 많은 문제들이 날짜와 시간을 얻기 위한 계산의 시작점을 얻는 것입니다.


예를 들어 우리는 1938년 8월 17일 오후 4시30분의 화성 위치나 1997년 3월 19일 한밤중의 달 위상에 대해 계산하기를 원할 수 있는데 이 때 사용되는 날짜와 시간은 그 하나하나가 고유한 식별자로 어느 정도 국제적으로 동의가 이뤄진 달력을 이용해 계산됩니다.


'1938년8월 17일 오전 11시에 일어날 특정 이벤트'를 알고 싶을 때 년,월,일은 보편적으로 다음과 같이 설명할 수 있습니다.

"예수탄생일을 기준으로 1938년이 시작되고 8번째 달의 17번째 날의 오전 11시에 발생한다는 의미"

 

이것의 의미는 우리가 그레고리안 달력을 사용한다는 것을 전제합니다. 이러한 서술적인 의미로는 컴퓨터가 해석할 수 없는 인간의 의미전달 방식이기 때문에 컴퓨터가 계산이 가능하도록 하기 위해 날짜를 숫자의 형태로 전환해야 하고 과학적 계산을 위해 시작점을 무엇으로 선택할 것인지를 우선 고민해야 합니다. 시작점을 선택하는 문제에 있어 보편적으로 사용되는 것은 그리스도의 생일을 선택하는 겁니다.


이것 외에도 몇가지 분명한 시작점을 선택할 수 있겠지만 어쨋든 그레고리안 달력은 그리스도 탄생일을 선택했습니다. 우리는 각 달의 일수(28,29,30,31)를 기억하고 있지만 그것을 계산하기 위해 년도에 일수를 더하기 시작하면 머리가 복잡해집니다.


년, 월, 일로 이뤄진 데이터를 숫자형태의 율리우스 일로 변환하기 위해선 율리우스 력과 그레고리 력에 대한 역사를 조금 알아야 합니다.

1582년 10월 5일 이전에 유럽에서는 일반적으로 율리우스 력을 사용했습니다. 율리우스 력은 평년을 365일로 계산하고 4로 나누어 떨어지는 해는 366일로 계산 했습니다.  일반적으로 실제적인 1년의 길이는 365.2422일 인데 율리우스 력에서는 365.25일 이었고 이로 인한 오차를 보정하기 위해 4년마다 한번씩 윤년이 있었습니다.

 

old calendar page

 (율리우스 력)

 

이것은 수백년간 이어져 왔고 태양력과 율리우스 력 사이에 10일의 오차가 생길 만큼 축적되게 되었습니다. Pope Gregory는 1582년 10월 5일에서 14일을 폐지할 것을 공표했는데 다시 말해 1582년 10월 4일 다음에 바로 15일이 오도록 해서 누적된 10일의 오차를 제거 했습니다. 그리고 400으로 년을 나눠서 딱 떨어지면 윤년이 오도록 했는데 2000년은 윤년이지만 1700, 1800, 1900년은 그렇지 않기 때문에 윤년에 해당되지 않도록 했습니다.

(그레고리 력)


이러한 방식으로 율리우스 력에서 발생한 400년에 100번의 윤년 즉, 율리우스 력이 365.25일이기 때문에 4년마다 1번씩 발생하는 윤년과 그레고리 력 365.2425일 사이의 오차 0.0075일 줄어든 오차를 바로 잡기 위해 율리우스력 기준으로 400년에 3일씩 제외하도록 하였습니다.

이것을 계산 값으로 표현하면 (400년 x 365일) + 100번의 윤년 - 3일이 되고 그 값은 = 146,097일이 됩니다.

그레고리 력에서 400년은 146,097일이며 이것을 400으로 나누면 365.2425일이 나오게 되는데 태양력과 비슷한 근사치가 나오게 됩니다.

 

Pope Gregory의 달력은 오늘날 보편적으로 사용됩니다.

 

(각국의 그레고리 력 도입시기)

 

 

이런 배경을 토대로 과학적 계산을 하기 위해선 년,월,일의 형태를 며칠 째 되는 날의 개념으로 전환해야 합니다. 이런 방식으로 계산을 하면 특정 시점과 날짜를 비교 계산할 때 훨씬 측정이 편리하기 때문입니다. 실제로 천문학자들은 BC 4713년 1월 1일 그리니치 정오를 시작점으로 하여 날짜를 계산하는데 앞에 언급한 숫자 형태의 날을 울리우스 일이나 율리우스 날짜수로 호칭합니다.


예를 들어서 1938년 8월 17일은 JD = 2429127.5로 전환할 수 있는데 JD율리우스 일을 의미하고 2429127.5 라는 값은 BC 4713년 1월 1일 정오의 그리니치 부터 시작된 날짜수 입니다. 율리우스 시간에서 12:00는 .5 이며 울리우스 날짜에 시간을 계산하여 추가할 수 있는데 예를 들어 오전 11시는 11/24 = 0.4583이 되고, 이것을 율리우스 날짜에 더하면 1938년 8월 17일은 JD=2429127.9583 이 됩니다.

 

정리하면 BC 4713년 1월 1일 정오 에서 1938년 8월 17일 자정 까지 율리우스 일이 2429127.5이고 자정 이후 11시간이 지난 오전 11시의 율리우스 일 값은 0.4583이 되므로 2429127.5 + 0.4583 = 2429127.9583 이 되는 것 입니다.

이러한 공식을 이용하여 컴퓨터에서는 손쉽게 계산작업을 수행할 수 있게 되는 겁니다.

 

컴퓨터에는 숫자를 담는 그릇, 소수를 담는 그릇, 문자열을 담는 그릇이 따로 존재합니다.

담기는 것(Data)와 담는 그릇(변수)의 형태가 똑같아야 담을 수 있습니다.


쉽게 풀어 설명하면 사람이 먹는 그릇에는 물컵, 밥그릇, 접시, 대접이 있고 그 용도에 맞춰 물건을 담도록 하고 있습니다. 컴퓨터의 경우도 숫자를 담는 그릇, 소수점을 담는 그릇, 문자열을 담는 그릇 등이 따로 마련되어 있습니다. 하지만 밥그릇에 5인분의 밥을 담을 수 없듯이 컴퓨터 역시 숫자를 담는 그릇에 무한정으로 긴 숫자를 담을 수는 없습니다.


그래서 복잡하고 긴 수를 줄이기 위해 시작점을 새로 잡게 되는데 과학적 계산을 위해 시작점을 1900년 1월의 0.5(정오)를 기준점으로 잡습니다. 물론 이 기준점은 확고하게 정해진 것이 아닌 임의의 시작점 입니다.(시작점을 개인적인 이벤트가 있는 날로 변경할 수도 있습니다.)


날짜를 숫자로 변환하는데 사용하게 될 JULDAY라는 함수는 입력값으로 DY(day number), MN(month number), YR(year number)을 받고 DJ라는 밥그릇(컴퓨터 변수)에 담아서 숫자 변환값을 반환 하게 됩니다.


예를 들어 1938년 8월 17일은 DJ = 14107.5가 됩니다.
JD로 DJ를 전환하기 위해 간단하게 2415020을 추가하는데 2415020 이라는 값은 BC 4713년 1월 정오부터 계산을 위해 정의한 시작점 1900년 1월의 정오까지에 해당하는 율리우스 일 입니다. 따라서 이 함수는 BC 4713년 1월 1일 이후의 모든 일수를 계산할 수 있습니다.


우리가 이 함수를 만들기 전에 주의할 사항이 있습니다.
먼저 그리스도가 탄생한 해는 1AD 이며 그 전은 BC1 이 됩니다. 0년은 없습니다.
그리고 위에 언급한 내용에서 Pope Gregory가 10일의 오차를 바로 잡기 위해 5일~14일을 폐지했다고 했습니다. 이 두 가지 예외를 적용시켜 이것에 포함되는 값이 들어오면 적절한 메세지를 통해 값의 입력이 잘못되었음을 알려야 합니다.

 

다음 글에서 JULDAY 함수에 대한 논리로직을 만들어 보고 실제 코드와 결과물을 제시하겠습니다.


 

참고문헌

1. Astronomy with Personal Computer

2. The Daily Render, http://www.nikolasschiller.com/blog/index.php/archives/category/zodiac/

3. 위키디피아, "그레고리 력", http://en.wikipedia.org/wiki/Gregorian_calendar

4. 위키디피아, "율리우스 력", http://en.wikipedia.org/wiki/Julian_calendar

5. 다음백과사전, http://enc.daum.net/dic100/search.do?cpcode=10&query=%EC%9C%A8%EB%A6%AC%EC%9A%B0%EC%8A%A4%EB%A0%A5, 율리우스 력

6. "로마력과 달의 유례", http://dumsnail.springnote.com/pages/1849738

7. 대한화학회, "달력의 체계에 대하여(II)", http://www.kcsnet.or.kr/main/k_chemstory/k_c_story_read.htm?qpage=k_c_story_main&uid=36&cat=3

8. World Lingo, "수정 율리우스 력", http://www.worldlingo.com/ma/enwiki/ko/Revised_Julian_calendar/1

9. 한국과학기술정보연구원, "한국의 표준연력", http://manse.kisti.re.kr/contents-3.html

10. 국립중앙과학관, "양력속에 사라진 10일은 어디로", http://www.science.go.kr/center/kor/html/cyber/theme/livingscienec/theme1_10995.html

 

 


Computer Astrology

번호 제목 글쓴이 날짜 조회 수
20 Optical SETI (1) [1]  image [레벨:12]박종현 부지부장 2019.03.16 573
19 [SETI] 10. 성간 전파 프로젝트와 페이퍼 프로젝트 [1]  fileimage [레벨:12]박종현 정보부장 2011.11.10 17208
18 [SETI] 9. SETI Net [1]  fileimage [레벨:12]박종현 정보부장 2011.11.09 11805
17 [SETI] 8. Allen Telescope Array [1]  fileimage [레벨:12]박종현 정보부장 2011.11.08 12336
16 [SETI] 7. SETI@home [2]  image [레벨:12]박종현 정보부장 2011.11.07 12454
15 [SETI] 6. The SETI League and Project Argus [1]  image [레벨:12]박종현 정보부장 2011.11.01 12256
14 [SETI] 5. MOP and Project Phoenix [2] [1]  fileimage [레벨:4]정보부차장(유환용) 2011.07.13 10717
13 [SETI] 4. Sentinel, META, and BETA  image [레벨:12]박종현 2011.06.16 10212
12 [SETI] 3. Early work [1]  image [레벨:12]박종현 2011.06.15 9218
11 [SETI] 2. Radio experiments [1]  image [레벨:12]박종현 2011.06.15 9108
10 [SETI] 1. SETI [1]   [레벨:12]박종현 2011.06.15 11744
9 [컴퓨터 천문학] 05. julian day를 CALDAY로(1) [1]   [레벨:12]박종현 2011.04.25 10662
8 [컴퓨터 천문학] 04. 1900년 1월 0.5 이후 달력날짜를 율리우스 ... [1]  file [레벨:12]박종현 2010.11.04 9552
» [컴퓨터 천문학] 04. 1900년 1월 0.5 이후 달력날짜를 율리우스 ...  image [레벨:12]박종현 2010.11.04 14078
6 [컴퓨터 천문학] 03.MINSEC 함수(3) [1]  fileimage [레벨:12]박종현 2010.10.19 9282
5 [컴퓨터 천문학] 03.MINSEC 함수(2) [1]   [레벨:12]박종현 2010.10.13 8874
4 [컴퓨터 천문학] 03.MINSEC 함수(1)   [레벨:12]박종현 2010.10.13 9140
3 [컴퓨터 천문학] 02. YESNO 함수 작성 [1]  fileimage [레벨:12]박종현 2010.10.07 8925
2 [컴퓨터 천문학] 01. DEFAULT 함수 [6]  fileimage [레벨:12]박종현 2010.10.07 9616
1 컴퓨터 천문학 [2] [1]   [레벨:12]박종현 2010.10.05 36398
Board Pagination ‹ Prev 1 Next ›
/ 1
Designed by hikaru100

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

SketchBook5,스케치북5

SketchBook5,스케치북5

SketchBook5,스케치북5

SketchBook5,스케치북5