제 15 장 날짜와 시간 2/2

Post on 23-Jan-2016

76 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

제 15 장 날짜와 시간 2/2. 전산천문학 2. 2007. 가을. Mission. Julian Day 는 연월일의 연산에는 필요하지만 , 실제 자료를 가시화하기에는 연월일시분초가 적합하다 . Julian day 를 이용한 연산을 최종적으로 연월일 시분초의 출력값으로 변환하여 그래픽을 완성할 수 있다. 다루어야 할 문제. Julian Day 를 연월일시분초로 표시하기 위해서 , CALDAT 프로시저를 사용 - PowerPoint PPT Presentation

TRANSCRIPT

Computational Astronomy

제 제 15 15 장 날짜와 시간 장 날짜와 시간 2/22/2

전산천문학 2

2007. 가을

Computational Astronomy

MissionMission

• Julian Day 는 연월일의 연산에는 필요하지만 , 실제 자료를 가시화하기에는 연월일시분초가 적합하다 .

• Julian day 를 이용한 연산을 최종적으로 연월일 시분초의 출력값으로 변환하여 그래픽을 완성할 수 있다 .

Computational Astronomy

다루어야 할 문제다루어야 할 문제

• Julian Day 를 연월일시분초로 표시하기 위해서 , CALDAT 프로시저를 사용 CALDAT procedure 를 이용하여 , 연 , 월 , 일 , 시 , 분 , 초 개별적인

변수로 저장 저장된 변수를 활용하여 , 필요한 문자열 혹은 숫자로 변환하여

활용한다 . 월을 Jan, Feb, Mar, … 로 표시하려면 ? IDL 에서 CALDAT 프로시저를 사용하지 않고 , Julian day 를 연월일

시분초로 바꿀 수 있는 방법은 ?

• IDL 의 출력포맷 (FORMAT 키워드 ) 에는 Julian Day 를 연월일시분초로 표시하는 포맷코드 정의 IDL> print, 31, format=‘(I)’ ; 정수 IDL> print, 31, format=‘(F)’ ; 실수 IDL> print, 31, format=‘(B)’ ; 2 진수 IDL> print, 31, format=‘(A)’ ; 문자열 Julian Day 를 일상생활의 날짜로 변환해서 보여주는 포맷은 ? ‘C()’

Computational Astronomy

날짜 코드 날짜 코드 ‘‘ (C())’(C())’

• IDL> day = julday (11, 6, 2007, 15, 20, 20)• IDL> print, day, format=‘(D)’• IDL> print, day, format=‘(C())’ ; 디폴트 출력• C() 에서 괄호안의 세부코드의 규칙은 ?

• 날짜와 관련있는 옵션이라 C 로 시작• 그 다음 Y(year), MO(month), D(day), H(Hour), AP(am/pm), M(Minute),

S(Second), DW(Day of week)• 그 다음 위에서 정의한 연월시분초 등의 형식 지정 : I ( 정수형 ), F(

실수형 ), A ( 문자형 ) 이 그 다음에 옴• 대소문자의 구별이 있으므로 , 다른 IDL 키워드의 규칙과 다른

부분이 있다 . • 추가로 , 08 로 표시할지 8 로 표시할지 등의 추가 옵션도 있다 .

Computational Astronomy

날짜 코드 세부옵션날짜 코드 세부옵션단위 코드 의미 출력 예

연 CYI 연도를 숫자로 표시 2007

월 CMOACMoACmoACMOI

월을 문자로 표시 ( 모두 대문자 )월을 문자로 표시 ( 첫문자만 대문자 )

월을 문자로 표시 ( 모두 소문자 )월을 숫자로 표시

AUGAugAug

8

일 CDI 일을 숫자로 표시 31

시 CHIChI

시를 숫자로 표시 (24 시 체계 )시를 숫자로 표시 (12 시 체계 )

2311

오전오후 CAPACApACapA

AM/PM 을 모두 대문자로AmPmampm

AMAmam

분 CMI 분을 숫자로 표시 59

초 CSI CSF

초를 정수형으로 표시초를 실수형으로 표시

2323.5

요일 CDWACDwACdwA

요일을 모두 대문자로 표시요일을 맨 앞자만 대문자로

요일을 모두 소문자로

SUNSunsun

Computational Astronomy

trainingtraining

• Julian day 지정 및 연산 day=julday(11,6,2007,14,20,30)’

• Tue Nov 6 15:40:00 2007 print,day,format=‘(C())’

• 2007/11/6 print, day, format=‘(C(CYI,”/”,CMOI,”/”,CDI)) ‘

• 2007/11/06 print, day, format=‘(C(CYI,”/”,CMOI02,”/”,CDI02))’

• 2007 년 11 월 6 일 15 시 40 분 ?

• 200711061540 ?

Computational Astronomy

연속되는 시간 생성연속되는 시간 생성

TIMEGEN()

Computational Astronomy

TIMEGEN TIMEGEN 문법문법

• Results=timegen([D1,….D8|,final=value][,start=value][,step_size=value] [,units=string]) 결과는 연속되는 쥴리언데이들의 배열 D1 : 몇 개의 날짜를 생성할지 ? start, final : 시작과 끝날 ( 쥴리언데이 ) 생성되는 날짜 수열의 간격 ( 뒤의 units 에 따라

바뀜 디폴트는 날짜 ) Units=“years” [“months”, “days”, “hours”, ….] 기타 키워드 : days, months, years, hours, minutes,

seconds

Computational Astronomy

trainingtraining

• 2005 년 8 월 15 일부터 10 일을 생성 days=timegen(10,start=julday(8,15,2005)) Print, days,format=‘(C())’

• 2004 년 1 월 1 일부터 한달 간격으로 12 개의 날짜를 생성 days=timegen(12, start=julday(1,1,2004),units=‘months’) print, days, format=‘(C())’

• 2004 년 1 월 1 일부터 2005 년 1 월 1 일까지 3 개월 간격으로 날짜 생성 days=timegen(start=julday(1,1,2004),final=julday(1,1,2005), step_size=3,

units=‘months’) print, days, format=‘(C())’

• 2004 년 1 월 1 일부터 3 월 15 일까지 매 1 일 15 일에 해당하는 날짜 생성 days=timegen(start=julday(1,1,2004),final=julday(3,15,2004), days=[1,15]

• 2004 년 각 달의 날짜 수를 어떻게 계산할까요 ?

Computational Astronomy

현재 시간현재 시간

SYSTIME()

Computational Astronomy

현재 시간현재 시간

• 현재의 시각을 입력받아 프로그래밍을 수행하는 경우

• 시각으로부터 프로그램 실행 시간을 계산해야 할 경우

• 현재시각으로부터 연월일시분초요일 등을 저장하여 프로그래밍 해야 하는경우

Computational Astronomy

TrainingTraining

• 현재 시각 표시 print, systime() 또는 systime(0)

• 초단위 계산을 위한 현재 시각 표시 print, systime(1) [1970 년 1 월 1 일 이후 경과한 시간을

초단위로 보여 줌 ]

• 쥴리언데이로 현재 시각 표시 print, systime(/julian) 현재 시각으로 2007 년에서 정확히 얼마나 지났을까 ?

• 세계표준시로 현재 시각 표시 print, systime(/utc) print,systime(),”KST “, systime(/utc), “utc”

Computational Astronomy

trainingtraining

• [20,10] 이라는 일차원배열을 iplot 으로 그릴 때와 plot 으로 그릴 때 각각 얼마나 걸리는가 ? start=systime(1) & iplot, [20,10] & print, systime(1)-start start=systime(1) & plot, [20,10] & print, systime(1)-start

• 현재의 연월일 시분초를 각각 다른 변수에 나누어 담으려면 ? now=systime(/julian) caldat,now,mon,day,year,hr,min,sec print,year,mon,day,hr,min,sec ymdhms=bin_date(now)

Computational Astronomy

시간 눈금의 그래프 그리기시간 눈금의 그래프 그리기

LABEL_DATE()

Computational Astronomy

시간 눈금의 그래프시간 눈금의 그래프

• 시계열 (Time series) 자료를 다룰 때• 시간의 연산 및 범위를 지정할 때 줄리언 데이를 쓰면

편하다 .

• 그러나 , 그래프 축의 눈금을 시간 눈금으로 그려야 한다 .

• Label_date() 키워드 시간 축의 데이터가 Julian day 일 때 , 이 숫자의 출력형태를 우리가

흔히 쓰는 형식의 시각으로 표현하고자 할 때 쓰는 키워드 day=timegen(5,start=julday(8,15,2005)) humidity=randomu(seed,5)*50+40 Window,0, xs=800, ys=400 plot,day,humidity Window,1,xs=800,ys=400 Plot,day,humidity,xtickformat=‘label_date’

Computational Astronomy

Label_date()Label_date() 함수함수

• 우리가 원하는 포맷으로 변경하려면 ?• dummy=label_date(date_format= 암호문자열 )• 그 다음 xtickformat=‘label_date’

• 암호문자열Code 의미 예 관련키워드

%Y%Z%M% N%D%W%A%H%I%S%%

연 4 자리수연 끝 2 자리

월 문자월 2 자리수일 2 자리수

요일AM/PM(12 시간제 )

시간 2 자리 (24 시간제 )분 2 자리수초 2 자리수

% 를 출력할 때

200705

Aug, Sep11,1230,31

Wed, SatAM, PM

11,2330, 59

59%

Months

Days_of_WeekAM_PM

Computational Astronomy

TrainingTraining

• Label date 의 암호 조합 day=timegen(5, start=julday(11,7,2007)) humidity=randomu(seed,5)*50 +40 dummy=label_date(date_format=‘%M %D’) plot, day, humidity, xtickformat=‘label_date’ dummy=label_date(date_format=‘%Y %M %D’) plot, day, humidity, xtickformat=‘label_date’ dummy=label_date(date_format=‘%Y!C%M %D’)

Computational Astronomy

BackgroundsBackgrounds

Solar & Geomagnetic indices

( 태양 지수와 지자기 지수 )

Computational Astronomy

태양 활동태양 활동

• 태양 흑점 주기 (Solar Cycles) 태양은 11 년마다 활동

극대기와 극소기를 거친 태양의 흑점 갯수는 이러한

활동의 극대기와 극소기 변화를 반영해주는 지수이며 , 태양 흑점수가 많아질 수록 태양의 활동은 커진다 .

태양 흑점은 격렬한 폭발현상인 태양 플레어를 일으키며 , 이에 따라 태양계에 영항을 미친다 .

플레어에 의한 에너지 방출은 지구에서 가장 큰 지진의 수백만배 규모에 달한다 .

Computational Astronomy

태양에서 지구로태양에서 지구로

Computational Astronomy

태양 흑점 주기태양 흑점 주기

Computational Astronomy

태양 활동 인자들태양 활동 인자들

Computational Astronomy

시계열 자료 다루기시계열 자료 다루기

1991 년부터 현재까지의 월별 흑점 및 태양 전파 관측 자료를 이용한 흑점

주기 살펴보기

Computational Astronomy

MissionMission

• 최근 월별 태양 흑점 지수를 날짜별로 표현하여 , 흑점 지수의 시계열 변화에 대하여 알아본다 .

• 월별 및 일별 관측 자료를 이용하여 , 날짜별로 어떤 주기들이 있는지 알아 본다 .

Computational Astronomy

MissionMission

• Solar_Recentindices.txt 1991 년부터 최근까지의

태양 흑점 및 10.7 cm 전파 플럭스 양을 모아놓은 자료 , 월별로 요약되어 있다 .

• 2006_DSD.txt 2006 년 일별 태양

자료를 모아놓은 자료 일별 10.7 cm

플럭스량과 흑점 면적 등이 정리되어 있다 .

Computational Astronomy

태양 흑점 주기태양 흑점 주기

Computational Astronomy

10.7 cm 10.7 cm 플럭스량플럭스량

Computational Astronomy

Ap Ap 지수지수

Computational Astronomy

trainingtraining

• 실습 자료를 이용하여 , 월별 , 일별 태양 및 지자기 지수의 변화를 살펴보자 .

top related