Presentation is loading. Please wait.

Presentation is loading. Please wait.

IDL (Interactive Data Language)

Similar presentations


Presentation on theme: "IDL (Interactive Data Language)"— Presentation transcript:

1 IDL (Interactive Data Language)

2 프로그래밍, 데이터 연산, 이미지 처리 등등 천문학의 다양한 분야에서 활용 중!
컴퓨터 언어 : 컴퓨터와의 커뮤니케이션에 쓰이는 다양한 종류의 언어 (출처 : 위키백과) 저급 언어 컴퓨터 내부에서 바로 처리가 가능한 언어 기계어, 어셈블리어 고급 언어 사람이 알기 쉽도록 쓰여진 언어 자바, 베이직, C, 포트란... IDL ☜ 얘들보다 사람이 더더욱 알기 쉽게 쓰여진 언어 프로그래밍, 데이터 연산, 이미지 처리 등등 천문학의 다양한 분야에서 활용 중! 각쌤팀에서도 쓰고, 구쌤팀에서도 쓰고, 이명균선생님 팀에서도 쓰고, 임쌤 팀에서도 쓰고, 채쌤 팀에서도 쓰고… (이하 생략. 안 쓰는 팀 찾는게 더 빠름;;) 장점 유저친화적(형변환 유연,대소문자 구별X 등등) 프로그래밍과 그래픽 작업을 동시에! 천문학에 특화된 다양한 함수! 단점 무겁다. 돈이 든다…

3 IDL 맛보기! 시험 6번 문제를 풀어봅시다. Vega (R.A. : 18h 36m s, DEC: +38°47’01.29” (J2000)) 2012년 4월 19일의 좌표? 황도 좌표 및 은하 좌표? 지방항성시 및 표준항성시? ※참조 : 이후 글자 색상의 의미 IDL 내장 함수 (도움말 ?) IDL 외부 루틴 (도움말 .comp) 출력결과값

4 한 번 입력해보세요! IDL> ra=15.*ten(18,36,56.336) IDL> dec=ten(38,47,01.29) IDL> precess, ra, dec, 2000, 2012, /print Equinox (2012): IDL> euler, ra, dec, lambda, beta, 3 IDL> euler, ra, dec, l,b, 1 IDL> print, lambda, beta IDL> print, l, b IDL> ct2lst,lst,127,-9,24,19, 4, 2012 IDL> print, lst IDL> ct2lst,lst,0,-9,24,19, 4,

5 IDL의 특징 두 가지 실행 방식 명령어 창을 이용하여 간단한 계산에 용이한 방법 프로그램을 짜서 컴파일하는 방법
프로그램의 끝은 반드시 end가 적혀 있어야 한다. 행의 길이에 제한이 없다. (참고> 포트란은 72자까지) 변수 선언을 미리 해줄 필요가 없다. (보고 있냐 포트란!) 단 변수의 첫 글자가 숫자나 _를 제외한 특수문자를 사용할 수 없다. %나 ;는 사용 불가 대소문자의 구별을 하지 않는다. 변수의 시작은 1이 아닌 0부터! ;로 시작하는 항목은 주석으로 처리된다.

6 IDL 공부하기 IDL Basics http://idluser.org Google에 검색해보자. 선배들에게 물어보자.
누군가 들고 날랐지 않는 한, 천문과방에 돌아다니는 얇은 소책자. 필요한 사람들은 파티를 모아 제본을 하자... IDL user Group Google에 검색해보자. 선배들에게 물어보자.

7 기본중의 기본! 사칙연산자: +,-,*,/ 거듭제곱: ^ 줄연결: $ 줄바꿈: & 주석: ; 변수확인: help
초기화: .res 브레이크: control + c 오류수정완료: control + r 출력: print, 삼각함수들: sin, cos, tan, sinh, asin 로그함수: alog, alog10 지수함수: exp 절대값-abs, 루트-sqrt,최대-max ,최소-min, 중간값-median, 평균-mean 상수들: !pi, !dpi, !radeg, !dtors

8 사칙 연산 연습하기 IDL> print, sin(90.) 0.893997
IDL> print, sin(90.*!dtor) IDL> print, asin(0.5) IDL> print, asin(0.5)*!radeg 함수 연습 𝑓 𝑥 = 𝑥 5 −3 𝑥 𝑥+5 log 5 𝑥 + 𝑥 에서 f(3.3)과 f(5.1)의 값을 구하라. IDL> x=3.3 IDL> f=x^5.-3.*abs(x)*(x)+5.*alog(x)/alog(5.)+sqrt(x) IDL> print, f IDL> x=5.1 초기화를 해보자 IDL> .reset

9 대표적인 데이터 형식 정수형 실수형 문자형 byte(byte) : 0~255 까지의 정수
integer(fix) : − 2 15 ~ 2 15 −1까지의 정수. long(long) : − 2 31 ~ 2 31 −1까지의 정수. 실수형 float(float) double (double) 문자형 string(string)

10 데이터 형식다루기 연습 Integer 형 IDL> A=3 & B=7 IDL> C=A+B & D=C*A
IDL> print, C, D Float형 IDL> e=1.2 IDL> print, 2*e

11 데이터 형식다루기 연습 String형 IDL> F='astro' & G='nomy' IDL> print, F+G
astronomy IDL> print, F+G+'!!!' astronomy!!! IDL> H=string(D) IDL> print, D+D 60 IDL> print, H+H IDL> print, strtrim(H,2)+strtrim(H,2) 3030

12 형 변환 연습 및 주의사항 Float과 integer를 같이 계산하면 float에 맞춘다.
IDL> a=1 & b=3 & c=5.5 IDL> d=a+b IDL> help,d D INT = IDL> e=b+c IDL> help, e E FLOAT = IDL> print, 1./2. IDL> print, 1./2 IDL> print, 1/2

13 형 변환 연습 및 주의사항 정수형(byte,integer)에는 한계가 있다!
IDL> a=32767 IDL> print, a+1 -32768 IDL> print, a+1L 32768 float과 double은 정확도에서 차이가 존재한다. IDL> a=2.8 IDL> b=2.8d IDL> help, a, b A FLOAT = B DOUBLE = IDL> print, a, b IDL> print, a, b, format='(F17.15)'

14 문자열 연습 IDL> a='Seoul National University' 문자열의 길이는
IDL> print, strlen(a) 45 대소문자 변환 IDL> print, strupcase(a) SEOUL NATIONAL UNIVERSITY IDL> print, strlowcase(a) seoul national university 공백제거 IDL> b=strcompress(a) IDL> print, b Seoul National University IDL> print, strcompress(a,/remove_all) SeoulNationalUniversity 일부분 추출 IDL> print, strmid(b,1,3) eou IDL> print, strmid(b,4,3,/reverse_offset) rsi

15 어레이(Array) 어레이란: 순서가 들어간 집합! IDL에서 어레이는 0부터 시작된다!
B=[니콜, 지영, 하라, 승연, 규리] 집합 A와 B는 같다. 어레이 A와 B는 다르다. IDL에서 어레이는 0부터 시작된다! 기본 생성 어레이 : 모든 항목의 값이 0인 어레이 intarr, fltarr, dblarr 증가 생성 어레이 : 0부터 시작해서 1씩 증가하는 어레이 indgen, findgen, dindgen

16 어레이 연습 IDL> a=[2,1,4,3,5] IDL> help, a A INT = Array[5] IDL> print, a[1] 1 IDL> print, a[0] 2 IDL> print, a[2:4] IDL> print, a[5] Attempt to subscript A with <INT ( 5)> is out of range. Execution halted at: $MAIN$ IDL> b=intarr(5) IDL> print, b IDL> c=findgen(5) IDL> print, c IDL> d=-2.*findgen(5)+10. IDL> print, d IDL> e=2.^indgen(5) IDL> print, e

17 어레이 연습 2차원 어레이 다루기 IDL> a=findgen(3,3) IDL> b=findgen(3,3)+10
IDL> print, a IDL> print, a[1,2] IDL> print, b[5] IDL> print, a/b IDL> print, a*b[1:2,0:1]

18 where 어레이에서 주어진 조건을 만족하는 것의 위치를 찾기 IDL 연산자 수학 조건 LT < LE ≤ GT >
IDL> seed=systime(1) IDL> a=randomu(seed,10) IDL> print, a IDL> b=where(a gt 0.5) IDL> print, b IDL 연산자 수학 조건 LT < LE GT > GE EQ = NE

19 출력 포멧 IDL> a=25 & b=12500 & c= IDL> print, a, b, format='(I2,I10)' IDL> print, b, a, format='(I2,I10)' ** 25 IDL> print, c, format='(F10.4)' IDL> print, c, format='(F14.7)' IDL> print, c, format='(E14.7)' E+003 IDL> print, a, b, c, format='(I2,I5,F9.4)' IDL> print, a, b, c, format='(I2,I6,F10.4)' IDL> print, a, b, c, format='(I2,3x,I5,3x,F9.4)'

20 파일 쓰기 작업 디렉토리 바꾸기 문법 예시 IDL> openw,lun,'test.txt',/get_lun
cd, (디렉토리 위치) 문법 Openw, (파일번호), (파일명) Printf, (파일번호), (쓸내용) Close,(파일번호) 예시 IDL> openw,lun,'test.txt',/get_lun IDL> printf,lun,1,5 IDL> printf,lun,5,22 IDL> printf,lun,10,44 IDL> printf,lun,11, 50, 111 IDL> printf,lun,17, 71 IDL> close,lun

21 파일 읽기 한 줄 씩 읽기 IDL> openr,lun1,'test.txt',/get_lun
IDL> readf,lun1,line01 IDL> print, line01 IDL> readf,lun1,line02_a, line02_b IDL> print, line02_a, line02_b IDL> oneline="" IDL> readf,lun1,oneline IDL> print, oneline

22 파일 읽기 열 맞춰 읽기 readcol, (파일명), (포멧), (변수)
포멧 : 문자-a, integer-i, flout-f, double-d IDL> readcol,'test.txt',f='(f,f)',x,y,/sil IDL> print, x IDL> print, y

23 유용한 명령어들 변수 저장 및 불러오기 IDL> save,x,y,filename='test_xy.dat',/verbose
IDL> .res IDL> restore,'test_xy.dat',/verbose IDL> print, x, y 파일 찾기 IDL> file=file_search('*.txt') IDL> print, file test.txt

24 유용한 명령어들 어레이의 개수 IDL> print, n_elements(x) 5 나머지 구하기
IDL> print, 17 mod 7 3 1차 함수 피팅 IDL> aa=linfit(x,y) IDL> print, aa

25 유용한 명령어들 60진법, 10진법 바꾸기 IDL> print, ten(10,15,55) 10.265278
IDL> print, sixty( ) 줄리안 데이 구하기 IDL> result=julday(4,24,2012,12,30,50) IDL> print, result,format='(F17.8)' 별 사이 각거리 구하기 IDL> gcirc,1, 18.5, 30, 18.7, 33, dis IDL> print, dis/3600.

26 프로그래밍 저장 후, 컴파일 후 실행 가능 반드시 end로 끝내야 한다. 반복 작업이나, 복잡한 구문을 짤 때 사용한다.
컴파일 시 동그라미 모양의 에러는 문법적인 에러- 변수 입력이 안되었거나, 괄호가 빠졌거나, 쉼표대신 마침표 찍었다거나 등등-가 있다는 것을 의미한다. 확인 후 수정하자. 컴파일 시 화살표 모양의 에러가 발생하면 수정 후 ctrl+r 을 눌러준다. 반드시 end로 끝내야 한다.

27 For 구문 문법 for (변수)=(시작값),(끝값),(변화값) (내용) endfor
변수 값이 시작 값에서 끝값까지 변하는 동안 반복 작업을 수행. 변화값을 입력하지 않으면 기본값 1로 수행.

28 For 구문 연습 피보나치 수열을 만들어보자. a1=1 & a2=1 a=[a1,a2] for i=0,10 do begin
endfor print, a end

29 if, else 구문 조건이 맞으면 실행 문법 한줄로 사용할 때 블록으로 사용할 때 블록으로 여러 번 사용할 때
If (조건) then (명령) If (조건) then (명령1) else (명령2) 블록으로 사용할 때 If (조건) then begin (명령) endif 블록으로 여러 번 사용할 때 If (조건1) then begin (명령1) Endif else if (조건2) then begin (명령2) Endif else begin (명령3) endelse

30 if, else 구문 연습 아무 의미 없는 모르스 부호 만들기 seed=systime(1) nnum=9
a=randomu(seed,nnum) ms=strarr(nnum) for i=0,nnum-1 do begin if a[i] lt 0.5 then ms[i]='.' else ms[i]='_' endfor print, ms end _ _ . _ . . _ _ _

31 while 구문 해당 조건을 만족하면 계속 수행 문법 비추천 : 자칫 잘못하면 무한 루프에 빠지게 된다. 한줄 사용시
While (조건) do (명령) 블록 사용시 While (조건) do begin (명령) endwhile

32 while 구문 연습 가상 2012년 한국시리즈, 엘꼴라시코 시뮬레이션 seed1=systime(1)
twins=fix(abs(2*randomn(seed1,20)+10)) giants=fix(abs(2*randomn(seed2,20)+10)) game=1 tw=0 & dr=0 & gw=0 while (max([tw,gw]) lt 4) do begin if twins[game] gt giants[game] then begin tw=tw+1 endif else if twins[game] lt giants[game] then begin gw=gw+1 endif else dr=dr+1 print, 'GAME #'+strtrim(game,2) print, 'LG ('+strtrim(tw,2)+'win) '+strtrim(twins[game],2)+':'+strtrim(giants[game],2)+' LOTTE('+strtrim(gw,2)+'win)‘ print, ' ' game=game+1 endwhile if (tw gt gw) then print, '2012 KOREA CHAMPION : LG TWINS' else print, '2012 KOREA CHAMPION : LOTTE GIANTS' end

33 while 구문 연습 GAME #1 LG (0win) 10:10 LOTTE(0win) GAME #2 LG (0win) 8:10 LOTTE(1win) GAME #3 LG (0win) 7:9 LOTTE(2win) GAME #4 LG (0win) 11:11 LOTTE(2win) GAME #5 LG (1win) 13:12 LOTTE(2win) GAME #6 LG (1win) 4:11 LOTTE(3win) GAME #7 LG (1win) 9:9 LOTTE(3win) GAME #8 LG (2win) 9:7 LOTTE(3win) GAME #9 LG (2win) 12:12 LOTTE(3win) GAME #10 LG (3win) 14:12 LOTTE(3win) GAME #11 LG (3win) 10:12 LOTTE(4win) 2012 KOREA CHAMPION : LOTTE GIANTS

34 그래프 그리기 그리기에 앞서 다음을 입력하자. 그래프 명령어들
Device, decomposed=0 ; True color vs DirectColor visuals Loadct, 39, /sil ; 칼라테이블을 읽는다. 39번은 흑백+레인보우, 13은 흑백. /sil은 명령창에 출력하지 말고 조용히 불러들이라는 뜻. ( cf. xpalette (SeLab 자료실에 제공하는) cindex) !p. background=255 & !p. color=0 ; !p. 는 plot에 대한 명령어. 이후 기본값으로 배경은 255번 색, 칼라는 0번색으로 지정. 그래프 명령어들 Plot: 가장 기본적인 명령어 Oplot: 기존 그래프에 덮어씌워서 그린다. Plots: oplots와 비슷. Array가 아닌 하나의 점도 그릴 수 있다. Ploterror: 십자모양의 에러바를 그려준다. Oploterror: 에러바 그래프를 기존 그래프에 덮어씌운다. plothist: 히스토그램을 그린다.

35 plot 가장 기본적인 그래프 그리는 명령어 문법 예제 IDL> x=findgen(100)/10.
plot, (x), (y), (기타 옵션) 예제 IDL> x=findgen(100)/10. IDL> y=sqrt(x) IDL> plot, x, y

36 plot 예제 그래프의 색깔을 바꿔보자. IDL> plot, x, y, color=225 선의 두께를 바꿔 그려보자.
IDL> plot, x, y, thick=3 선의 모양을 바꿔 그려보자. IDL> plot, x, y, linestyle=3

37 plot 예제 점으로 그려보자. IDL> plot, x,y, psym=4, symsize=2
점 모양을 원, 혹은 별로 만들기 IDL> vsym,22,thick=2 IDL> plot,x,y,psym=8 IDL> vsym,5,/star IDL> plot,x,y,psym=8,symsize=2 점과 선을 함께 그리기 IDL> plot,x,y,psym=-8

38 plot 예제 축의 범위를 지정해보자. IDL> plot, x, y, thick=2, xr=[0,3.5],yr=[0,3]
IDL> plot, x, y, thick=2, xr=[0,3.5],yr=[0,3],/xst,/yst IDL> plot, x, y, thick=2, xr=[0,3.5],yr=[0,3],xstyle=9, ystyle=6 라벨 1: 정확히 데이터 범위만큼 축을 지정(=/xst) 2: 축의 범위에 약간의 여유를 둠 4: 축을 그리지 않음 8: 축을 한 쪽만 그림 16: x,y축의 교점이 0이 되지 않도록 함(ystyle에 해당)

39 plot 예제 축에 라벨을 붙여보자. IDL> plot, x, y, thick=2,xtit='x',ytit='sqrt(x)‘ 라벨의 크기와 두께를 바꿔보자. IDL> plot, x, y, thick=2,xtit='x',ytit='sqrt(x)', charsize=1.5, charthick=2 축의 두께를 바꿔보자 IDL> plot, x, y, thick=2,xtit='x',ytit='sqrt(x)', charsize=1.5, charthick=2, xthick=2, ythick=2

40 plot 예제 눈금 스타일 IDL> !p. charsize=1.5 & !p.charthick=2 & !p.thick=2 & !x.thick=2 & !y.thick=2 IDL> plot, x, y, ticklen=1 IDL> plot, x, y, yticklen=1, ygridstyle=2 IDL> plot, x, y, xticks=2, yminor=5

41 plot 예제 로그 스케일 그리기 IDL> x=findgen(10000)/100. IDL> y=2^.(x)
IDL> plot, x, y IDL> plot, x, y, /ylog 극좌표계 그리기 IDL> r=findgen(360) IDL> theta=findgen(360)*!dtor IDL> plot, r, theta, /polar,/isotropic

42 oplot 기존 그려진 그래프 위에 추가로 그래프를 그린다. 예제 plot의 많은 옵션은 사용 불가
IDL> x=findgen(360) IDL> y=x/360. IDL> z=sin(x*!dtor) IDL> plot, x, y,/xst, yr=[-1,1] IDL> oplot, x, z, color=75

43 plots oplot과 마찬가지로 기존에 그려진 그래프 위에 그래프를 추가로 그린다.
어레이 뿐만 아니라, 하나의 점도 그릴 수 있다. IDL> wdelete IDL> plot, x, y, /xst, yr=[-1,1],/nodata IDL> plots, x, y, color=75 IDL> plots, x, z, color=125 IDL> plots, 100, -0.5, psym=4, symsize=4,color=225

44 여러 그래프 그리기 그래프 창을 복수개 띄우는 방법 IDL> window,0 IDL> plot, x, y
IDL> window,1, xs=1000,ys=800 IDL> plot, x, z 한 창에 두 개 이상의 그래프 그리기 IDL> wdelete IDL> !p.multi=[0,1,2] IDL> window,0, xs=600, ys=1000

45 에러바 그리기 문법 예제 IDL> seed1=systime(1) IDL> seed2=systime(1)+500
ploterror, (x), (y), (x에러),(y에러) oploterror, (x), (y), (x에러), (y에러) 예제 IDL> seed1=systime(1) IDL> seed2=systime(1)+500 IDL> seed3=systime(1)+5000 IDL> x=findgen(23)+1 IDL> y=x IDL> z=0.5*x IDL> xe=randomu(seed1,23)-0.5 IDL> ye=randomu(seed2,23)-0.5 IDL> ze=2*randomu(seed3,23)-1. IDL> ploterror, x,y,xe, ye, psym=4 IDL> oploterror,x,z,xe,ze,psym=4,/nohat,color=75, errcolor=75

46 xyouts, legend xyouts legend 예제 그래픽 창에서 텍스트를 출력한다.
문법 : xyouts, (x좌표),(y좌표),(텍스트),(좌표계) /data : data 값 /normal : 창의 상대 크기 (0~1) /device : 창의 픽셀 값 legend 범례를 만든다. 문법 : legend, (항목), (옵션) 예제 IDL> xyouts,15,5,'Astronomy',color=225 IDL> legend,['Y','Z'],color=[0,75],psym=[4,4],/left,/top

47 히스토그램 그리기 plothist, 변수, (만들어진x어레이), (만들어진y어레이), bin=(폭) 예제
IDL> seed=systime(1) IDL> aa=randomn(seed, 50000) IDL> plothist, aa, xx, yy, bin=0.25

48 이미지 불러오기 read_BMP, read_PNG, read_JPEG 등등등 tv와 tvscl 예제
IDL> read_jpeg,'sample.jpg',aa IDL> window,0,xs=600,ys=450 IDL> tv,aa,true=1

49 이미지 다루기 예제 흑백 이미지를 불러보자 IDL> read_jpeg,'sample.jpg',aa,/grayscale
IDL> window,0,xs=600,ys=450 IDL> tv,aa 이미지 크기를 바꿔보자 rebin : 정수배 비율로 변환. 속도가 빠르다 congrid : 자유로운 비율로 변환. 속도가 느리다. IDL> aa1=rebin(aa,300,225) IDL> aa2=congrid(aa,400,300)

50 이미지 다루기 예제 문턱값 최대/최소 지정 조건을 만족하면 1(밝음), 만족하지 못하면 0(어두움)으로 분류
tv로 열면 잘 보이지 않으므로, tvscl로 스케일을 맞춘다. IDL> tvscl, aa gt 100 최대/최소 지정 >나 < 사용 >의 경우 해당 숫자를 넘는 값은 그대로 유지하고, 그 이하 값은 해당 숫자로 대체. bytscl : 어떤 배열을 0~255의 bite값으로 스케일링 IDL> tv, aa>100 IDL> erase IDL> tvscl, aa>100<150 IDL> tv, bytscl(aa, min=90, max=200)

51 이미지 다루기 예제 회전 rotate : 90도 단위로 회전 rot : 자유각도로 회전 가능 방향번호 변환법 x1 y1
돌리지 않는다. x0 y0 1 반시계 90도 -y0 2 반시계 180도 -x0 3 반시계 270도 4 x,y 변환 후 돌리지 않는다. 5 x,y 변환 후 반시계 90도 6 x,y 변환 후 반시계 180도 7 x,y 변환 후 반시계 270도

52 이미지 저장하기 write_BMP, write_jpeg, write_png 등등 흑백 이미지 저장하기 예제
IDL> write_png, 'test.png', aa[101:500, 51:400] 칼라 이미지 저장하기 예제 IDL> read_jpeg,'sample.jpg',aa IDL> write_bmp,'test.bmp',aa[*,101:500,51:400], /rgb

53 그래프 저장하기 이미지 포멧(jpeg)로 저장하기 IDL> x=findgen(11)
IDL> device, decomposed=0 IDL> loadct, 39,/sil IDL> !p.color=0 & !p.background=255 IDL> !p.thick=2 & !x.thick=2 & !y.thick=2 IDL> !p.charsize=1.5 & !p.charthick=2 IDL> plot, x, 3*x IDL> oplot, x, 0.6*x, color=225 IDL> write_jpeg,'test.jpeg',tvrd(true=1),true=1

54 그래프 저장하기 ps(eps) 포멧으로 저장하기 IDL> set_plot,'ps'
IDL> device, filename='test.eps',xs=28, ys=20, xoff=6, yoff=10, /encap, /color, bits=8 IDL> plot, x, 3*x IDL> oplot, x, 0.6*x, color=225 IDL> device, /close set_plot,’ps’를 해제하려면 set_plot,’win’

55 readfits 문법 예제 (변수)= readfits(‘(파일명)’,(헤더변수)) fits파일 로드
IDL> uu=readfits('M50u.fits',hu) fits파일 보기 IDL> tvscl, uu 헤더보기 IDL> print, hu

56 writefits 문법 예제 IDL> writefits,'test,fits',0.5*uu,hu

57 칼라 이미지 합성하기 IDL> uu=readfits('M50u.fits',hu) IDL> bb=readfits('M50b.fits',hb) IDL> vv=readfits('M50v.fits',hv) IDL> sky, uu, skyu, sigu Number of points used to find sky = 9591 Approximate sky value for this frame = Standard deviation of sky brightness = IDL> sky, bb, skyb, sigb Number of points used to find sky = 9376 Approximate sky value for this frame = Standard deviation of sky brightness = IDL> sky, vv, skyv, sigv Number of points used to find sky = 9358 Approximate sky value for this frame = Standard deviation of sky brightness =

58 칼라이미지 합성하기 IDL> r=vv/skyv & g=bb/skyb & b=uu/abs(skyu) IDL> s=size(b) IDL> result=fltarr(3,s[1],s[2]) IDL> result[0,*,*]=r IDL> result[1,*,*]=g IDL> result[2,*,*]=b IDL> tv, result, true=1

59 미니 과제 성단팀 cluster.txt 파일 isochrone.txt
가상의 성단을 관측한 파일 별의 x좌표, y좌표, b등급, b등급에러, v등급, v등급에러 isochrone.txt 가상의 등연령 곡선 B등급, B-V등급 B-V, V의 색등급도를 에러바를 포함해서 그려보아라. 그리고 X축 : B-V Y축 : V 변곡점을 찾을 수 있는가? Tip : Y축은 밝은 별이 위, 어두운 별이 아래로 위치하도록 해야한다. 즉 등급을 반전!

60 미니 과제 초신성 및 변광성팀 variable.txt 주어진 변광성의 변광 곡선을 에러바를 포함하여 그려보아라
가상의 변광성을 35일동안 매 자정에 관측한 결과 파일 변광성등급, 변광성에러, 비교성1의등급, 비교성1의 등급에러, 비교성2의 등급, 비교성2의 등급에러, 비교성3의 등급, 비교성 3의 등급에러 주어진 변광성의 변광 곡선을 에러바를 포함하여 그려보아라 X축 : 관측 일차 Y축 : 등급 변화 비교성 세 개 중, 비교성으로 사용하기 부적합한 별을 찾으라. Tip : 역시 등급으로 그리면 Y축은 반전. 그리고 우선 비교성들 끼리 등급 변화를 비교하면 부적합한 비교성을 쉽게 찾을 수 있다.

61 미니과제 외계행성팀 exoplanet.txt파일 변광곡선을 에러바를 포함하여 그리시오
가상의 외계행성을 5분 간격으로 관측한 결과 파일 외계행성식이 일어나는 별의 플럭스, 비교성1의 플럭스, 비교성2의 플럭스, 비교성 3의 플럭스 변광성팀과 달리 비교성에 대한 검증은 끝났다고 가정 변광곡선을 에러바를 포함하여 그리시오 X축 : 시간 (프레임이 아님!) Y축 : 플럭스 비, 혹은 등급의 변화 Tip: 쁘아송 분포를 따를 때, 에러는 시그널의 루트값이 된다. 즉 플럭스가 N이라면 에러는 𝑁 !

62 미니과제 제출일 : 5월 3일 제출방법 : khpark@astro.snu.ac.kr 로 이메일로 제출 보낼 것
자신이 짠 코드파일 그래프 (반드시 jpg, bmp, png등 이미지 파일 형식으로!) 이메일 내용에 질문에 대한 답 및 간단한 소감, 궁금한 것을 첨부할 것.


Download ppt "IDL (Interactive Data Language)"

Similar presentations


Ads by Google