IDL (Interactive Data Language). 컴퓨터 언어 : 컴퓨터와의 커뮤니케이션에 쓰이는 다양한 종류의 언어 ( 출처 : 위키백과 ) 저급 언어 컴퓨터 내부에서 바로 처리가 가능한 언어 기계어, 어셈블리어 고급 언어 사람이 알기 쉽도록 쓰여진 언어 자바,

Slides:



Advertisements
Similar presentations
파이썬 (Python). 1 일 : 파이썬 프로그래밍 기초 2 일 : 객체, 문자열 3 일 : 문자인코딩, 정규표현식, 옛한글 4 일 : 파일 입출력 5 일 : 함수와 모듈 6 일 : 원시 말뭉치 다루기 실습 7 일 : 주석 말뭉치 다루기 실습 8 일 : 웹 데이터로.
Advertisements

Python Ch.06 RaspberryPi Sejin Oh. Raspberry Pi Python  IDLE(Integrated Development Environment)  라즈베리 파이 배포본들은 일반적으로 파이썬과 파이썬 3 의 IDLE 파 이썬 개발 도구를.
프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
6 장. printf 와 scanf 함수에 대한 고찰 printf 함수 이야기 printf 는 문자열을 출력하는 함수이다. – 예제 printf1.c 참조 printf 는 특수 문자 출력이 가능하다. 특수 문자의 미 \a 경고음 소리 발생 \b 백스페이스 (backspace)
1 08 배열. 한국대학교 객체지향연구소 2 C 로 배우는 프로그래밍 기초 2 nd Edition 배열  동일한 자료유형의 여러 변수를 일괄 선언  연속적인 항목들이 동일한 크기로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는.
1. 2 차원 배열  배열은 동일한 데이터 유형으로 여러 개의 변수를 사용할 경우 같은 이 름으로 지정하여 간편하게 사용할 수 있도록 하는 것으로서 앞에서 1 차원 배열을 공부하였습니다.  2 차원 배열은 바둑판을 생각하면 되며, 1 차원 배열에서 사용하는 첨자를 2.
IDL 천문관측 및 실험 1. 목차 IDL 이란 ? 기본적인 유용한 함수들 그래프 그리기 & 이미지 기본적인 프로그래밍.
Term project. Touch-screen 활용 그림판 –Touch-screen 을 입력장치로 하여 LCD 상에 그림을 그리는 프로그램 – 터치 입력을 절대 좌표로 받는 디바이스 /dev/touch 를 만들어 응용 프 로그램에서 수행하도록 함. –User interface.
 Interactive Data Language  IDL 의 장점 (vs fortran,C) ◦ 프로그래밍 및 그래프를 동시에 할 수 있다. ◦ 유저 친화적이다. ◦ 천문학에 특화된 다양한 함수들이 있다. ◦ 데이터 형 변환이 유연하다.
Add Your Text 5. 지수함수와 로그함수 1. 지수함수 2. 로그함수 · 지수함수와 그 그래프 · 지수방정식과 지수부등식 · 로그 함수와 그 그래프 · 로그방정식과 로그부등식.
재료수치해석 HW # 박재혁.
ㅎㅎ C++ 프로그래밍의 첫 걸음 C++로 프로그래밍한다는 것의 의미 세상에서 가장 간단한 C++ 프로그램
ㅎㅎ C++ 프로그래밍의 첫 걸음 C++ 프로그래밍 기초 : 객체지향의 시작 C++로 프로그래밍한다는 것의 의미
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
IDL (Interactive Data Language)
Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라.
컴퓨터 프로그래밍 기초 [Final] 기말고사
Root Filesystem Porting
1. C++ 시작하기.
Ch1 MATLAB Environment 제1장 매트랩 환경.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
Root Filesystem Porting
C++프로그래 밍 컴퓨터정보과 / 이기희교수.
공학컴퓨터프로그래밍 Python 염익준 교수.
11장. 1차원 배열.
C#.
C 프로그래밍 C언어 (CSE2035) (Chap11. Derived types-enumerated, structure, and union) (1-1) Sungwook Kim Sogang University Seoul, Korea Tel:
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
C 언어 교육 02 주차 – scanf & 반복문과 조건문 교육부장 조하정.
프로그래밍 개요
어서와 C언어는 처음이지 제14장.
Chap 6.Assembler 유건우.
박성진 컴퓨터 프로그래밍 기초 [09] 배열 part 1 박성진
이름 : 황 상 두 전화번호 : 이메일 : PinTool 이름 : 황 상 두 전화번호 : 이메일 :
27장. 모듈화 프로그래밍.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
Java의 정석 제 5 장 배 열 Java 정석 남궁성 강의 의
LCD Controller Colorbar
Term Projects 다음에 주어진 2개중에서 한 개를 선택하여 문제를 해결하시오. 기한: 중간 보고서: 5/30 (5)
연산자 (Operator).
SEOUL NATIONAL UNIVERSITY OF SCIENCE & TECHNOLOGY
3D 프린팅 프로그래밍 01 – 기본 명령어 강사: 김영준 목원대학교 겸임교수.
에어 조건문.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
SEOUL NATIONAL UNIVERSITY OF SCIENCE & TECHNOLOGY
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
컴퓨터 프로그래밍 기초 [01] Visual Studio 설치 및 사용방법
수학10-나 1학년 2학기 Ⅳ.삼각함수 4. 삼각방정식과 삼각부등식(9/12) 삼각함수 수업계획 수업활동.
Excel 일차 강사 : 박영민.
SEOUL NATIONAL UNIVERSITY OF SCIENCE & TECHNOLOGY
OpenCV 설정 2.21 만든이 딩딩.
제 15 강 문자와 코드 shcho.pe.kr.
에어 PHP 입문.
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
05. General Linear List – Homework
7장. 다양한 형태의 반복문. 7장. 다양한 형태의 반복문 7-1 반복문이란? 반복문의 기능 세 가지 형태의 반복문 특정 영역을 특정 조건이 만족하는 동안에 반복 실행하기 위한 문장 7-1 반복문이란? 반복문의 기능 특정 영역을 특정 조건이 만족하는 동안에 반복.
Interactive Data Language
기초C언어 제2주 실습 프로그래밍의 개념, 프로그램 작성 과정 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
TVM ver 최종보고서
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
제 29 강 스트링(string) 다루기 s a i s . s T i h t g r i n.
수학10-나 1학년 2학기 Ⅱ.부등식의 영역 3. 부등식의 영역에서 최대, 최소(5/5) 부등식 영역 수업계획 수업활동.
 6장. SQL 쿼리.
SEOUL NATIONAL UNIVERSITY OF SCIENCE & TECHNOLOGY
Visual Basic .NET 기초문법.
6 객체.
Chapter 11. 문서 인쇄 및 파일 형식.
제 10 강 문자 입출력.
Presentation transcript:

IDL (Interactive Data Language)

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

IDL 맛보기 ! 시험 6 번 문제를 풀어봅시다. Vega (R.A. : 18h 36m s, 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): 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, 2012 IDL> print, lst

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

IDL 공부하기 IDL Basics – 누군가 들고 날랐지 않는 한, 천문과방에 돌아다니는 얇은 소책자. – 필요한 사람들은 파티를 모아 제본을 하자... –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

사칙 연산 연습하기

대표적인 데이터 형식

데이터 형식다루기 연습 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

데이터 형식다루기 연습 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

형 변환 연습 및 주의사항 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 = IDL> print, 1./ IDL> print, 1./ IDL> print, 1/2 0

형 변환 연습 및 주의사항 정수형 (byte,integer) 에는 한계가 있다 ! IDL> a=32767 IDL> print, a IDL> print, a+1L 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)'

문자열 연습 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) 어레이란 : 순서가 들어간 집합 ! –A=[ 승연, 하라, 니콜, 규리, 지영 ] –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] IDL> print, a[5] Attempt to subscript A with 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

어레이 연습 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]

where 어레이에서 주어진 조건을 만족하는 것의 위치를 찾기 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≠

출력 포멧 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)'

파일 쓰기 작업 디렉토리 바꾸기 – 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, line IDL> readf,lun1,line02_a, line02_b IDL> print, line02_a, line02_b 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 IDL> print, y

유용한 명령어들 변수 저장 및 불러오기 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

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

유용한 명령어들 60 진법, 10 진법 바꾸기 IDL> print, ten(10,15,55) 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/

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

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

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

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) seed2=systime(1)+500 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 가장 기본적인 그래프 그리는 명령어 문법 –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=[3,0] 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> plot, x, y IDL> plot, x, z

에러바 그리기 문법 – 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 – 그래픽 창에서 텍스트를 출력한다. – 문법 : 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 –tv : 이미지를 디스플레이 한다. –tvscl : 0~255 사이로 스케일을 맞춰준다. 예제 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 도 단위로 회전 ( 결과이미지 )=rotate( 원본이미지, 방향번호 ) –rot : 자유각도로 회전 가능 ( 결과이미지 )=rot( 원본이미지, 회전각, 중심 x 좌표, 중심 y 좌표 ) 방향번호변환법 x1y1 0 돌리지 않는다. x0y0 1 반시계 90 도 -y0x0 2 반시계 180 도 -x0-y0 3 반시계 270 도 y0-x0 4 x,y 변환 후 돌리지 않는다. y0x0 5 x,y 변환 후 반시계 90 도 -x0y0 6 x,y 변환 후 반시계 180 도 -y0-x0 7 x,y 변환 후 반시계 270 도 x0-y0

이미지 저장하기 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 문법 – 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 = 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 =

칼라이미지 합성하기 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 파일 가상의 성단을 관측한 파일 별의 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 축은 반전. 그리고 우선 비교성들 끼 리 등급 변화를 비교하면 부적합한 비교성을 쉽게 찾을 수 있다.

미니과제

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