Presentation is loading. Please wait.

Presentation is loading. Please wait.

2010. 04. 14.  Interactive Data Language  IDL 의 장점 (vs fortran,C) ◦ 프로그래밍 및 그래프를 동시에 할 수 있다. ◦ 유저 친화적이다. ◦ 천문학에 특화된 다양한 함수들이 있다. ◦ 데이터 형 변환이 유연하다.

Similar presentations


Presentation on theme: "2010. 04. 14.  Interactive Data Language  IDL 의 장점 (vs fortran,C) ◦ 프로그래밍 및 그래프를 동시에 할 수 있다. ◦ 유저 친화적이다. ◦ 천문학에 특화된 다양한 함수들이 있다. ◦ 데이터 형 변환이 유연하다."— Presentation transcript:

1 2010. 04. 14

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

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

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

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

6  Integer ◦ A=3 & B=7 ◦ C=A+B ◦ Print, C  Float ◦ D=12.4 ◦ Print, A+D  String ◦ F=‘ 카라 ’ & G=‘ 소녀시대 ’ ◦ Print, F+G ◦ Print, F+’ vs ‘+G ◦ E=string(d) ◦ Print, d+d ◦ Print, e+e ◦ Print, strtrim(d,2)+strtrim(d,2)  지금까지 지정된 변수를 초기화 시켜봅시다. ◦.reset

7  Byte, integer 등 정수형은 한계가 있다 ! ◦ print, a=32767 ◦ Print, a+1 ◦ Print, a+1L  아무리 IDL 이 유저편의적이라지만 … ◦ Print, 6/3.5 ◦ Print, 1/3 ◦ Print, ‘135’+’135’ ◦ Print, ‘135’+135  정확도에 대해 생각하자 ◦ A=2.8 ◦ B=2.8D ◦ Print, a, b ◦ Print, a, b, format=‘(F17.15)’

8 ◦ A=‘Seoul National University’  문자열의 길이는 ? ◦ Print, strlen(a)  대소문자변환 ? ◦ A=strupcase(a) ◦ Print, a ◦ A=strlowcase(a) ◦ Print, a  공백제거 ◦ B=strcompress(a) ◦ Print, b ◦ Print, strcompress(a, /remove_all)  문자열의 일부추출 ◦ C=‘abcdefghijk’ ◦ Print, strmid(c,2,3) ◦ Print, strmid(c,2,3,/reverse_offset)

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

10  상수연습 ◦ Print, sin(90.) ◦ Print, sin(90.*!dtor) ◦ Print, asin(0.5) ◦ Print, asin(0.5)*!radeg  함수연습 ◦ 일때, f(3.3), f(5.1) 의 값을 구하라 ◦ X=3.3 ◦ F=x^5.-3.*abs(x)*x+5.*alog(x)/alog(5)+sqrt(x) ◦ Print, f ◦ X=5.1 ◦ F=x^5.-3.*abs(x)*x+5.*alog(x)/alog(5)+sqrt(x) ◦ Print, f

11  순서가 있는 집합 ◦ A=[ 승연, 하라, 니콜, 규리, 지영 ] ◦ B=[ 승연, 니콜, 지영, 규리, 하라 ] ◦ 두 집합 A,B 는 같다. ◦ 두 Array A,B 는 다르다.  IDL 에서 Array 는 0 부터 시작된다. ◦ Seed=systime(1) ◦ K=findgen(10)+randomu(seed) ◦ Print, k ◦ Print, k[4] ◦ H=k[4:7] ◦ Print, h ◦ i=findgen(3,4) ◦ Print, i

12  배열 속에서 어떤 조건을 만족하는 것의 위치찾기 ◦ Print, a=findgen(10)*3.1 & a[7:9]=6.2 ◦ Help, a ◦ Print, a ◦ Print, where(a eq 6.2) ◦ Print, where(a lt 6.2)  조건판별연산자 IDL 연산자수학 조건 LT< LE≤ GT> GE≥ EQ= NE≠

13  Readcol, ( 파일명 ), ( 파일포멧 ), ( 변수 ) ◦ 파일포멧  문자열 : A, integer: I, float: F, double: D ◦ 제일 마지막에 /sil 을 붙이면 아래창에 다른 알람메세지 가 뜨지 않는다.  Dir=‘c:\abc\’  Readcol, dir+’baseball.txt’,f=‘(I,A,I,X,I,F)’,rank, team, win, lose, wrate, skipline=1,/sil  Print, team  Print, win

14 ◦ A=25 & b=12500 & c=1362.3473 ◦ Print, a, b, format=‘(I2, I10)’ ◦ Print, b, a, format=‘(I2, I10)’ ◦ Print, c ◦ Print, c, format=‘(F10.4)’ ◦ Print, c, format=‘(F12.4)’ ◦ Print, c, format=‘(E12.5)’ ◦ Print,c, format=‘(E14.7)’ ◦ Print, a, b, c, format=‘(I2, I5, F9.4)’ ◦ Print, a, b, c, format=‘(I2, I6, F10.4)’ ◦ Print, a, b, c, format=‘(I2, 3x,I5, 3x,F9.4)’

15  파일 쓰기 ◦ 문법  Openw, ( 파일번호 ), ( 파일명 )  Printf, ( 파일번호 ), ( 쓸내용 )  Close,( 파일번호 ) ◦ 파일 쓰기 예시  Openw, lun, ‘ c:\abc\test.txt ’,/get_lun  Printf, lun, 25, 30  Printf, lun, 11, 33  Close, lun

16  나누고 남은 나머지 ◦ Print, 7 mod 3  조건을 만족하는 파일 찾아서 어레이로 지정하기 ◦ File=file_search(‘c:\abc\*.txt’)  어레이의 변수수 ◦ Print, n_elements(file)  랜덤함수 만들기 ◦ Seed=systime(1) ◦ Print, randomu(seed,10)  60 진법 10 진법 ◦ Print, ten(10,20,33) ◦ Print, sixty(10.3425)

17  프로그램을 작성 후, 컴파일 후 실행한다.  프로그램의 끝에는 반드시 end 가 적혀 있어야 한 다.

18  For 구문 ◦ For ( 변수 )=( 시작 ),( 끝 ),( 간격 ) do begin ◦ ( 내용 ) ◦ Endfor ◦ 변수값이 시작값에서 끝값까지 바뀌는 동안 안의 내용을 반복함

19  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

20  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

21  While ◦ 해당 조건을 만족하면 계속 수행 ◦ ( 비추천 ) ◦ 한줄 사용시  While ( 조건문 ) do ◦ 블록 사용시  While ( 조건문 ) do begin  endwhile

22  명령에 앞서서 다음을 입력하자 ◦ 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: Array 가 아닌 하나의 점도 그릴 수 있다. ◦ Ploterror: 십자모양의 에러바를 그려준다. ◦ Oploterror: 에러바 그래프를 기존 윈도우에 덮어씌운다.

23 ◦ X=findgen(100)/10. ◦ Y=sqrt(x) ◦ Z=sin(x*!dtor)

24  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

25  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

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

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

28  Ploterror ◦ Ploterror,x,y,xerr,yerr  Oploterror ◦ Oploterror,x,z,xerr,zerr

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

30  Fits 파일 읽기  A=readfits(‘c:\abc\n2041v.fits’,h)  Print, h  디스플레이하기 ◦ Tv, a ◦ Tvscl, a ◦ Tv, bytscl(a, min=100, max=1000)

31  이미지 잘라내기 ◦ B=a[100:199,150:349]  자른이미지 저장하기 ◦ Write_tiff,’c:\abc\test.tiff’,b,/long ◦ Tv, bytscl(a, min=100, max=1000) ◦ K=tvrd() ◦ Write_png,’c:\abc\text.png’,k

32  성단 팀 > b 필터와 v 필터의 자료를 가지고 X 축은 B-V, Y 축은 V 등급의 색등급도를 그려보시오. ◦ 파일 : n2041b.dat, n2041v.dat ◦ 파일형식은 x, y, 등급, 등급에러  변광성팀 > 시간자료와 관측 결과를 가지고 X 축은 시간, Y 축은 타겟별의 상대적인 등급변화를 그려 보시오 ◦ 파일 : time.dat, time10~24.dat ◦ 파일형식은 index, 등급, 등급에러. 41 번별이 변광성이 며 94, 70 번 별은 비교성이다.


Download ppt "2010. 04. 14.  Interactive Data Language  IDL 의 장점 (vs fortran,C) ◦ 프로그래밍 및 그래프를 동시에 할 수 있다. ◦ 유저 친화적이다. ◦ 천문학에 특화된 다양한 함수들이 있다. ◦ 데이터 형 변환이 유연하다."

Similar presentations


Ads by Google