Presentation is loading. Please wait.

Presentation is loading. Please wait.

IDL 천문관측 및 실험 1. 목차 IDL 이란 ? 기본적인 유용한 함수들 그래프 그리기 & 이미지 기본적인 프로그래밍.

Similar presentations


Presentation on theme: "IDL 천문관측 및 실험 1. 목차 IDL 이란 ? 기본적인 유용한 함수들 그래프 그리기 & 이미지 기본적인 프로그래밍."— Presentation transcript:

1 IDL 천문관측 및 실험 1

2 목차 IDL 이란 ? 기본적인 유용한 함수들 그래프 그리기 & 이미지 기본적인 프로그래밍

3 IDL 이란 ? IDL 의 장점 (vs fortran,C) – 프로그래밍 및 그래프를 동시에 할 수 있다. – 유저 친화적이다. – 천문학에 특화된 다양한 함수들이 있다. – 데이터 형 변환이 유연하다

4 IDL 특징 두 가지 실행방식 – 명령어 창을 이용 간단한 계산에 용이 – 프로그래밍 복잡하거나 지속적인 계산에 용이 파일을 저장 ∙ 컴파일 해야 실행이 된다. 행의 길이 제한이 없다. 대소문자를 구별하지 않는다. 변수선언을 미리 해줄 필요가 없다. – 또한 경우에 따라서는 자의적으로 문자간의 변환을 해준다. – 단 변수는 첫 글자가 숫자로 시작할 수 없고 특수문자 % 는 사용이 불가능 하며, _ 를 제외한 특수문자는 변수의 첫 글자로 사용될 수 없다 ) 내장된 기본함수 외에 다양한 외장함수가 있다. – 도움말이 필요할 때 기본함수는 ? ( 함수명 ), 외장함수는.comp ( 함수명 ) 을 명령어창에 입력해준다.

5 기본 중의 기본 기호 / 명령어 사칙연산자 : +,-,*,/ 거듭제곱 : ^ 줄연결 : $ 줄바꿈 : & 주석 : ; 변수확인 : help 초기화 :.res 브레이크 : control + c 오류수정완료 : control + r 출력 : print,

6 대표적인 데이터형식 형식명특징기본어레이증가어레이변환형 Integer 정수형 (-32768~32767) IntarrIndgenFix Float 실수형 빠르고 가볍지만 정밀도는 떨어짐 FltarrFindgenFloat Double 실수형 정밀도는 높지만 느리고 무겁다. DblarrDindgenDouble String 문자열 StrarrString 이외에도 Long, Ulong, complex 등등 다양한 데이터형식이 있다.

7 데이터 형식 예제 명령창에 다음을 입력하시오 –A=3 –B=8 –C=9.43 –D=9.43d0 –E=‘SNU’ –F=string(d) –G=fix(d) –fmt=‘(F12.8)’

8 데이터 형식 예제 명령창에 다음을 입력하시오 –Print, a,b,c,d,e,f,g – 사칙연산 Print, a+b Print, a+c Print, f+e Print, strtrim(f,2)+strtrim(e,2) –Float 과 Double 의 차이점 Print, c, format=fmt Print, d, format=fmt – 형식 변형 예시 및 주의점 H=a+b & I=b+c & J=c+f Print, h, I, j Print, a/b

9 Array 순서가 있는 집합 –A=[ 석민, 범석, 현종, 재응 ] –B=[ 범석, 현종, 재응, 석민 ] – 두 집합 A,B 는 같다. – 두 Array A,B 는 다르다. IDL 에서 Array 는 0 부터 시작된다. –K=findgen(10)+1 –Print, k –Print, k[4] –H=k[4:7] –Print, h –i=findgen(3,4) –Print, i

10 여러 내장 함수 / 상수 삼각함수들 : sin, cos, tan, sinh, asin 로그함수 : alog, alog10 지수함수 : exp 절대값 -abs, 루트 -sqrt, 최대 -max, 최소 -min, 중간값 -median, 평균 -mean 상수들 : !pi, !dpi, !radeg, !dtors

11 그래프 그래프 그리는 작업은 명령 창에서 수행이 불가능 한 것은 아니지만, 프로그래밍을 추천한다. 프로그램의 맨 마지막에는 반드시 end 가 있어야한다. 프로그래밍 시 제일 앞에 다음과 같은 문구를 입력하자 –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 번색으로 지정.

12 그래프 그래프 명령어들 –Plot: 가장 기본적인 명령어 –Oplot: 기존 윈도우에 덮어씌워서 그린다. –Plots: Array 가 아닌 하나의 점도 그릴 수 있다. –Ploterror: 십자모양의 에러바를 그려준다. –Oploterror: 에러바 그래프를 기존 윈도우에 덮 어씌운다.

13 그래프 Seed1=systime(1) & seed2=2*seed1 X=findgen(22)*0.5 Y=findgen(22)*2 Z=findgen(22) Xerr=0.2*randomu(seed1,22) Yerr=0.7*randomu(seed2,22) Zerr=0.3*randomu(xerr[21],22) X=x+xerr Y=y+yerr Z=z+zerr

14 그래프 plot – 기본적인 그래프 그리기 Plot, y Plot, x, y – 색 바꿔 그리기 Plot, x, y, color=125 –X,Y 범위 및 Label, title Plot, x, y, xr=[0,10], yr=[0,40], xtitle=‘x’ ytitle=‘y’, title=‘Graph test’ – 점 / 선 / 점과선 함께 그래프 그리기 Plot, x, y, psym=4, symsize=2 Plot, x, y, linestyle=3, thick=2 Plot, x, y, psym=-4, linestyle=3

15 그래프 plot – 축의 스타일 Plot, x, y, xstyle=9, ystyle=8 Plot, x, y, /xst, /yst –1: 정확히 데이터 범위만큼 축을 지정 (=/xst) –2: 축의 범위에 약간의 여유를 둠 –4: 축을 그리지 않음 –8: 축을 한 쪽만 그림 –16: x,y 축의 교점이 0 이 되지 않도록 함 (ystyle 에 해당 ) – 눈금스타일 Plot, x, y, ticklen=1 Plot, x, y, yticklen=1, ygridstyle=2 Plot, x, y, xr=[0,10], xtick=5, xminor=4

16 그래프 Plot – 축 및 Label 키우기 Plot, x, y, xtitle=‘x’ ytitle=‘y’, title=‘Graph test’, charsize=1.3 – 로그스케일 Plot, x, y, /xlog – 데이터 그리지 않기 Plot, x, y,/nodata

17 그래프 Oplot Plot, x, y Oplot, x, z, color=125 동시에 2 개의 창을 띄우고 싶을땐 ? Window,0 Plot, x, y Window,1,xs=500, ys=400 Plot, x,z

18 그래프 Ploterror –Ploterror,x,y,xerr,yerr Oploterror –Oploterror,x,z,xerr,zerr

19 그래프 그래프 툴과 관련된 유용한 명령어들 –Xyouts: 그래프 상에 텍스트를 print 할 수 있다. Xyouts,7,30,’Astronomy’,/data –/data: data 값 기준 –/normal: 창의 상대크기 –/device: 창의 픽셀 –Legend: 범례를 만들 수 있다. Legend,[‘y’,’z’],color=[0,125],linestyle=[0,0],/left,/to p

20 이미지 Tv, tvscl : 이미지를 디스플레이함. Tvscl 은 값을 normalize 시켜서 디스플레이 ( 변수명 )=readfits( 파일명 ) : Fits 파일을 읽 음

21 프로그래밍 조건 명령어 –Ge: 크거나 같다 (greater or equal) –Gt: 크다 (greater than) –Le: 작거나 같다 (less or equal) –Lt: 작다 (less than) –Eq: 같다 (equal) –Ne: 같지 않다 (not equal)

22 프로그래밍 유용한 명령어 – Where( 조건문 ) : 조건문에 만족하는 항들의 위치를 Array 로 받아줌 A=findgen(10) B= where (A ge 5) C= where (A eq min(A)) Print, b Print, c Print, A[B]

23 프로그래밍 유용한 명령어 – Readcol,( 파일명 ),( 줄형식 ),( 변수명 ),/sil : 텍스 트파일의 컬럼들을 각각 Array 로 지정 Readcol, ‘c:\abc.txt’,f=‘(a,i,x,f)’, name, index, value, /sil –A: String –I: integer –X: 읽지 않음 –F: float –D: double

24 프로그래밍 유용한 명령어 –File_search( 파일조건 ) : 디렉토리의 조건을 만 족하는 파일을 찾는다. Cd 명령어를 통해 디렉 토리를 바꿀 수 있음 Cd, ‘c:\abc\’ Result=file_search(‘*.fits’) Print, result

25 프로그래밍 유용한 명령어 –N_elements ( 변수 ) : 변수의 전체 개수 Seed=systime(1) A=randomu(seed,20) Print, n_elements(a)

26 프로그래밍 For 구문 –For ( 변수 )=( 시작 ),( 끝 ),( 간격 ) do begin –( 내용 ) –Endfor – 변수값이 시작값에서 끝값까지 바뀌는 동안 안 의 내용을 반복함

27 프로그래밍 For 구문 – 피보나치 수열을 출력해보자 A1=1 & a2=1 Print, a1 Print, a2 For i=0, 10 do begin A3= a1+a2 a1=a2, a2=a3 Print,a3 endfor

28 프로그래밍 IF,else 구문 – 한줄로 사용할 때 If (a lt 10) then print, a If (a lt 10) then print, a else print, 10 – 블록으로 사용할 때 If (a lt 10) then begin B=a endif – 블록으로 여러 번 사용할 때 If (a lt 10) then begin Endif else if (a gt 30) then begin Endif else begin endelse

29 프로그래밍 While – 해당 조건을 만족하면 계속 수행 –( 비추천 ) – 한줄 사용시 While ( 조건문 ) do – 블록 사용시 While ( 조건문 ) do begin endwhile

30 프로그래밍 파일 열기 및 쓰기 – 파일열기 Openr,( 파일번호 ),( 파일명 ) ; 파일을 읽음 Readf,( 파일번호 ),( 변수명 ) ; 첫줄을 읽어 변수명에 저장 Readf,( 파일번호 ),( 변수명 ) ; 다음 줄을 읽어 변수명 에 저장 … Close,( 파일번호 )

31 프로그래밍 파일 열기 및 쓰기 – 파일열기 예시 Openr, lun1, ‘c:\abc\test.txt’,/get_lun Readf,lun1, oneline Print, oneline Readf,lun1, oneline Print, oneline Close, lun1

32 프로그래밍 파일 열기 및 쓰기 – 파일 쓰기 Openw, ( 파일번호 ), ( 파일명 ) Printf, ( 파일번호 ), ( 쓸내용 ) Close,( 파일번호 )

33 프로그래밍 파일 열기 및 쓰기 – 파일 쓰기 예시 Openw,lun2, ‘c:\abc\test.txt’,/get_lun For i=0,5 do begin Printf, lun2, i, 2.*i Endfor Close,lun2

34 프로그래밍 문자변수 자르기 –Strmid( 변수명, 시작지점, 개수 ) –A=‘abcdefgh’ –Print, strmid(a,2,3) –Print, strmid(a,5,2,/reverse)


Download ppt "IDL 천문관측 및 실험 1. 목차 IDL 이란 ? 기본적인 유용한 함수들 그래프 그리기 & 이미지 기본적인 프로그래밍."

Similar presentations


Ads by Google