IDL (Interactive Data Language)

Slides:



Advertisements
Similar presentations
법의 이념과 철학의 이해 법의 이념은 무엇일까 ? 정의 : 각자에게 각자의 몫을 주는 것 - 평등의 의미가 내포되어 있음 법적 안정성 : 법의 규정이 명확하고 잦은 변경 이 없어야 함 개인의 자유와 권리를 공공복지와 조화롭게 추구 – 사회질서와 안전유지 + 사회정의.
Advertisements

03 변수와 자료형 세종대학교 최옥경 교수 참고 : 한빛미디어 뇌를 자극하는 C, INFINITY Perfect C.
기본 자료형 순천향대학교 정보기술공학부 이 상 정. 자료형의 선언 컴퓨터프로그래밍 1 순천향대학교 정보기술공학부 이 상 정 3 자료형 선언 기본 자료형문자형 char 정수형 int 실수형 float double 형없음 void.
멘토링 2 주차 장 프로그래밍을 위한 자바의 자료형  값이 변하지 않는 상수  메모리 기억공간인 변수.
IDL 천문관측 및 실험 1. 목차 IDL 이란 ? 기본적인 유용한 함수들 그래프 그리기 & 이미지 기본적인 프로그래밍.
IDL (Interactive Data Language). 컴퓨터 언어 : 컴퓨터와의 커뮤니케이션에 쓰이는 다양한 종류의 언어 ( 출처 : 위키백과 ) 저급 언어 컴퓨터 내부에서 바로 처리가 가능한 언어 기계어, 어셈블리어 고급 언어 사람이 알기 쉽도록 쓰여진 언어 자바,
YES C 제 1 장 C 언어의 개요 1/34 제 1 장 C 언어의 개요 문봉근. YES C 제 1 장 C 언어의 개요 2/34 제 1 장 C 언어의 개요 1.1 프로그램과 C 언어의 특징 1.2 C 언어의 프로그램 구성 1.3 비주얼 C++ 통합 환경 들어가기.
내 손 내 손과 친구 손을 그려보세 요. 주제 : 유치원과 친구 활동명 : 친구 손과 내 손 친구 손.
 Interactive Data Language  IDL 의 장점 (vs fortran,C) ◦ 프로그래밍 및 그래프를 동시에 할 수 있다. ◦ 유저 친화적이다. ◦ 천문학에 특화된 다양한 함수들이 있다. ◦ 데이터 형 변환이 유연하다.
프레젠테이션을 위한 디자인 기초. 프레젠테이션의 이해 프레젠테이션이란 ? 프레젠테이션이란 신 제품 발표회, 투자 설명 회 등의 비지니스 현장 과 학술 발표회 등에서 " 발표자가 청중에게 자 신의 의사를 전달하기 위한 체계적인 행위 " 를 말한다.
C 언어 컴퓨터학과 C 언어 ( STS ) (Chap5. Selection-Making Decisions ) C 언어.
지적기초측량 경일대학교/부동산지적학과.
2. 문학의 활동 방법 [1] 문학의 수용 01 소설가 구보 씨의 일일 작가 소개 작품 정리 읽기 중 활동 학습 활동.
프로그래밍1 및 실습 (C언어) - 3장 기본자료형 (3.6부터 끝까지) -
Vision System Lab, Sang-Hun Han
VISUAL BASIC 양 계 탁.
쉽게 풀어쓴 C언어 Express 제8장 함수 C Express.
쉽게 풀어쓴 C언어 Express 제8장 함수 C Express.
데이터 구조 - 소개 순천향대학교 컴퓨터공학과 하 상 호.
제6장 제어(Control) 6.1 구조적 프로그래밍(Structured Programming)
Ruby 프로그래밍 1 문자열 입출력 제어구조 looping 함수 정의
컴퓨터의 기초 제 4강 - 표준 입출력, 함수의 기초 2006년 4월 10일.
프로그래밍언어론 2nd edition Tucker and Noonan
-Part3- 제5장 전처리기와 파일 분할 컴파일
“SI 세일즈 마케팅 기법” - 비즈아이 컨설팅 안영찬 대표 -.
Ch2-2. VHDL Basic VHDL lexical element VHDL description
부록 A. Matlab 사용법 Korea University of Technology and Education
IS lab. 김건영 Awk, Posting list IS lab. 김건영
제15장 전처리 및 비트연산.
누구나 즐기는 C언어 콘서트 제2장 기초 사항.
Y. Daniel Liang 길준민 · 정재화.
CHAP 11: 해싱 순천향대학교 하상호.
제 11 장 프로그래밍 기초 1/3 전산천문학 가을.
제 3 장 상수와 변수
4장 제어문 선택문: if 문, if – else 문, switch 문
CHAP 11: 해싱 순천향대학교 하상호.
컴퓨터 개론 및 실습 Dept. Computer Eng. Hankuk University of Foreign Studies
C언어 프로그래밍의 이해 Ch13. 선행처리기와 주석문.
프로그래밍 보고서 작성법 순천향대학교 컴퓨터공학과 하 상 호.
컴퓨터의 기초 제 2강 - 변수와 자료형 , 연산자 2006년 3월 27일.
HTML CSS 자바스크립트 무작정 따라하기
기초 프로그래밍 Yang-Sae Moon Department of Computer Science
수학8가 대한 92~95 쪽 Ⅳ. 연립방정식 1. 연립방정식과 그 풀이 및 활용 >끝내기전에(9/9) 끝내기 전에.
쉽게 풀어쓴 C언어 Express 제15장 전처리 및 비트연산 C Express Slide 1 (of 29)
4장 - PHP의 표현식과 흐름 제어-.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
프로그래밍언어론 2nd edition Tucker and Noonan
제 5장 변수, 바인딩, 식 및 제어문 5.1 변수 5.6 표현식 5.2 바인딩 5.7 조건문 5.3 선언 5.8 반복문
6장 콘 셸 뇌를 자극하는 Solaris Bible.
실습과제 1(조건문, ) 표준입력으로 수축기 혈압을 입력 받아 그에 따른 적당한 표현을 화면에 출력하는 프로그램을 if-else 문을 이용하여 작성.
작성일 참고서적 – Programing Game AI by Example
4. 어휘 분석(Lexical analysis)
누구나 즐기는 C언어 콘서트 제2장 기초 사항 IT응용시스템공학과 김형진 교수.
강의 프레젠테이션 현대 사회와 미디어 12강. 미디어 문화.
최대 공약수 구하기 (1) 프로그램 예제2 : 최대 공약수 구하기 문제 해결 방법 구상 (아는 지식 정리) GCD1 알고리즘
1학기 정리 지난 학기에 배운 내용을 복습해 본다..
Interactive Data Language
2.1 MATLAB 환경 2.2 배정 2.3 수학적 연산 2.4 내장함수의 사용 2.5 그래픽 2.6 다른 자원
노동조합 활동 사례 희망연대노동조합.
제10장 전처리기 문봉근.
Introduction to Computer System 컴퓨터의 이해 3: 데이터 표현
DataScience Lab. 박사과정 김희찬 (화)
삶을 풍요롭게 만드는 의사소통.
어서와 C언어는 처음이지 제22장.
Spring, 2019 School of CSE Pusan National University
보고서 #4 (1) (제출기한: 10/6) #1 다음 그래프 G에 대해서 답하시오. (2*5 = 10)
Instruction to Computer
프로그래밍 기법 최적화 프로그래밍.
ADLAD System MANUAL [ ] SEM. Digital Appliance ADLAD System ?
Presentation transcript:

IDL (Interactive Data Language)

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

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

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

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

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

기본중의 기본! 사칙연산자: +,-,*,/ 거듭제곱: ^ 줄연결: $ 줄바꿈: & 주석: ; 변수확인: 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

사칙 연산 연습하기 IDL> print, sin(90.) 0.893997 IDL> print, sin(90.*!dtor) 1.00000 IDL> print, asin(0.5) 0.523599 IDL> print, asin(0.5)*!radeg 30.0000 함수 연습 𝑓 𝑥 = 𝑥 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 364.210 IDL> x=5.1 3379.54 초기화를 해보자 IDL> .reset

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

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

데이터 형식다루기 연습 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 30 30 IDL> print, strtrim(H,2)+strtrim(H,2) 3030

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

형 변환 연습 및 주의사항 정수형(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 = 2.80000 B DOUBLE = 2.8000000 IDL> print, a, b 2.80000 2.8000000 IDL> print, a, b, format='(F17.15)' 2.799999952316284 2.800000000000000

문자열 연습 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

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

어레이 연습 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] 4 3 5 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 0 0 0 0 0 IDL> c=findgen(5) IDL> print, c 0.000000 1.00000 2.00000 3.00000 4.00000 IDL> d=-2.*findgen(5)+10. IDL> print, d 10.0000 8.00000 6.00000 4.00000 2.00000 IDL> e=2.^indgen(5) IDL> print, e 1.00000 2.00000 4.00000 8.00000 16.0000

어레이 연습 2차원 어레이 다루기 IDL> a=findgen(3,3) IDL> b=findgen(3,3)+10 IDL> print, a 0.000000 1.00000 2.00000 3.00000 4.00000 5.00000 6.00000 7.00000 8.00000 IDL> print, a[1,2] 7.00000 IDL> print, b[5] 15.0000 IDL> print, a/b 0.000000 0.0909091 0.166667 0.230769 0.285714 0.333333 0.375000 0.411765 0.444444 IDL> print, a*b[1:2,0:1] 0.000000 12.0000 28.0000 45.0000

where 어레이에서 주어진 조건을 만족하는 것의 위치를 찾기 IDL 연산자 수학 조건 LT < LE ≤ GT > IDL> seed=systime(1) IDL> a=randomu(seed,10) IDL> print, a 0.164808 0.984247 0.0288758 0.162134 0.238851 0.108030 0.599594 0.178283 0.527963 0.231825 IDL> b=where(a gt 0.5) IDL> print, b 1 6 8 IDL 연산자 수학 조건 LT < LE ≤ GT > GE ≥ EQ = NE ≠

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

파일 쓰기 작업 디렉토리 바꾸기 문법 예시 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

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

파일 읽기 열 맞춰 읽기 readcol, (파일명), (포멧), (변수) 포멧 : 문자-a, integer-i, flout-f, double-d IDL> readcol,'test.txt',f='(f,f)',x,y,/sil IDL> print, x 1.00000 5.00000 10.0000 11.0000 17.0000 IDL> print, y 5.00000 22.0000 44.0000 50.0000 71.0000

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

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

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

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

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

For 구문 연습 피보나치 수열을 만들어보자. a1=1 & a2=1 a=[a1,a2] for i=0,10 do begin endfor print, a end 1 1 2 3 5 8 13 21 34 55 89 144 233

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

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 _ _ . _ . . _ _ _

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

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

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

그래프 그리기 그리기에 앞서 다음을 입력하자. 그래프 명령어들 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: 히스토그램을 그린다.

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

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

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

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에 해당)

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

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

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

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

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

여러 그래프 그리기 그래프 창을 복수개 띄우는 방법 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

에러바 그리기 문법 예제 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

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

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

이미지 불러오기 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

이미지 다루기 예제 흑백 이미지를 불러보자 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)

이미지 다루기 예제 문턱값 최대/최소 지정 조건을 만족하면 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)

이미지 다루기 예제 회전 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도

이미지 저장하기 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

그래프 저장하기 이미지 포멧(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

그래프 저장하기 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’

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

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

칼라 이미지 합성하기 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 = -0.188276 Standard deviation of sky brightness = 4.90945 IDL> sky, bb, skyb, sigb Number of points used to find sky = 9376 Approximate sky value for this frame = 337.320 Standard deviation of sky brightness = 12.3542 IDL> sky, vv, skyv, sigv Number of points used to find sky = 9358 Approximate sky value for this frame = 961.284 Standard deviation of sky brightness = 17.5853

칼라이미지 합성하기 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

미니 과제 성단팀 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축은 밝은 별이 위, 어두운 별이 아래로 위치하도록 해야한다. 즉 등급을 반전!

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

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

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