Interactive Data Language

Slides:



Advertisements
Similar presentations
Copyright © 2015 Pearson Education, Inc. 6 장 : 프로그래밍 언어.
Advertisements

MATLAB 의 사용.  초기 MATLAB 은 Cleve Moler 에 의해 Fortran 으 로 작성  현재는 미국의 MathWork 사에 의해 C++ 로 작성  Matlab 은 Matrix 계산에 뛰어난 능력을 가지고 있 으며 많은 이론의 실증 프로그램을 작성하는데.
IDL 천문관측 및 실험 1. 목차 IDL 이란 ? 기본적인 유용한 함수들 그래프 그리기 & 이미지 기본적인 프로그래밍.
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++ 통합 환경 들어가기.
Copyright © 2006 The McGraw-Hill Companies, Inc. 프로그래밍 언어론 2nd edition Tucker and Noonan 5 장 타입 “ 타입은 컴퓨터 프로그래밍의 효소이다 ; 프로그래밍은 타입을 통해 소화할만한 것이 된다.” 로빈.
쉘 스크립트와 cron coearth, george.
8장 프로그래밍 언어 8.1 프로그램이란? 8.2 프로그램 언어의 역사 8.3 프로그램 설계 절차
C++ Espresso 제1장 기초 사항.
제 1장 C 언어의 소개.
IDL (Interactive Data Language)
C++ Espresso 제2장 제어문과 함수.
2014 ITA 8월 강의 C Programming -1주차- C언어 기초 정대진 ( )
고해상도 잉크제트 프린터 사용자 매뉴얼 베스트마킹 Best Marking
알기 쉽게 해설한 Java 8th edition
제 7 장 문장 구조화 제어문 지정문 조건문 반복문 GOTO 문 비결정적문.
데이터 구조 - 소개 순천향대학교 컴퓨터공학과 하 상 호.
제6장 제어(Control) 6.1 구조적 프로그래밍(Structured Programming)
10장 예외 처리 프로그래밍 언어론 10.6 Pascal과 C의 에러 처리 10.1 설계 주제 10.2 PL/I의 예외 처리
Ruby 프로그래밍 1 문자열 입출력 제어구조 looping 함수 정의
2주 실습강의 Java의 기본문법(1) 인공지능연구실.
제7장 제어구조 I – 식과 문장.
 13장. 배시쉘 프로그래밍.
7. while 문의 흐름 제어.
Ch2-2. VHDL Basic VHDL lexical element VHDL description
IS lab. 김건영 Awk, Posting list IS lab. 김건영
Computer Architecture
누구나 즐기는 C언어 콘서트 제2장 기초 사항.
DataScience Lab. 박사과정 김희찬 (월)
C언어 프로그래밍의 이해 Ch05. 명령문 Phylogenetic: 계통, 발생(학)의.
제 11 장 프로그래밍 기초 1/3 전산천문학 가을.
임베디드 소프트웨어 설계.
MINITAB for Six Sigma.
5장 이름, 바인딩, 영역(2) 순천향대학교 컴퓨터공학과 하상호.
adopted from KNK C Programming : A Modern Approach
▶ GTQ - Photoshop 어플리케이션 바 메뉴 표시줄 옵션바 4. 툴 패널 5. 총 30개의 패널
컴퓨터 개론 및 실습 Dept. Computer Eng. Hankuk University of Foreign Studies

프로그램 식 조합 방법 <expr> ::= <constant> | <name>
프로그래밍 보고서 작성법 순천향대학교 컴퓨터공학과 하 상 호.
기초 프로그래밍 Yang-Sae Moon Department of Computer Science
강의 소개, 자료구조의 개념, SW 개발과 자료구조
다음 주 과제 3장 읽어오기 숙제 해서 제출하기. 자료구조와 알고리즘, 순환 E304호,
2. 상호배제와 동기화 01 program versionone; // 첫 번째 버전
제어문 & 반복문 C스터디 2주차.
자료구조: CHAP 4 리스트 (2) 순천향대학교 컴퓨터공학과 하 상 호.
제 5장 변수, 바인딩, 식 및 제어문 5.1 변수 5.6 표현식 5.2 바인딩 5.7 조건문 5.3 선언 5.8 반복문
6장 콘 셸 뇌를 자극하는 Solaris Bible.
작성일 참고서적 – Programing Game AI by Example
천안시 호재 정리 ▶ 천안 원 도심재개발 정비예정구역 총괄 : 80개 구역 규모 : 3,130,235 ㎡(약94.7만평)
Chapter 02. 소프트웨어와 자료구조.
6장 반복제어문 for 문 while 문 do while 문 기타 제어문.
4. 어휘 분석(Lexical analysis)
C언어 프로그래밍의 이해 Ch05. 명령문.
쉽게 풀어쓴 C언어 Express 제2장 프로그램 개발 과정 C Express.
Signature, Strong Typing
Ⅲ. 세계의 자연환경 -열대기후와 주민생활.
데이터 구조 - 소개 순천향대학교 컴퓨터공학과 하 상 호.
기술 진화와 진보.
뇌를 자극하는 C 프로그래밍.
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express Slide 1 (of 28)
GDB - GNU Debugger 김진용.
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
최대 공약수 구하기 (1) 프로그램 예제2 : 최대 공약수 구하기 문제 해결 방법 구상 (아는 지식 정리) GCD1 알고리즘
1학기 정리 지난 학기에 배운 내용을 복습해 본다..
전류는 자계에서 힘을 받는다 기계공학교육 박지훈 황인석 한만혁 이덕균.
제5장 디버깅과 추적 문봉근.
Report #4 (1) (due 4/4) 문제 #1 3개의 막대 A, B, C와 원판 n개를 전달받아 Hanoi 탑 문제를 해결하는데 필요한 원판의 이동 회수를 구하여 반환하는 hanoi_tower(n, A, B, C)를 작성하라. 여기서 원판 n은 막대 A에 쌓여 있고.
DataScience Lab. 박사과정 김희찬 (화)
제 1장 프로그래밍 언어 소개 1.1 프로그래밍 언어란 무엇인가 1.2 프로그래밍 언어를 배워야 하는 이유
프로그래밍 기법 최적화 프로그래밍.
Presentation transcript:

Interactive Data Language IDL Programming 세종대학교 2011. 05. 30

IDL Programming (+연습) IDL 그래픽 시스템 개요 IDL New Graphic System 차례 IDL Programming (+연습) IDL 그래픽 시스템 개요 IDL New Graphic System

Interactive Data Language IDL Programming (+연습)

프로시저와 펑션 프로시저(Procedure) IDL> print, 30*!pi IDL> help, !values 펑션(Function) - 함수 IDL> a=sin(30*!dtor) IDL> print, factorial(4) ;4! 같은 이름을 가지는 함수와 프로시저 IDL> plot, sin(indgen(361)*!dtor) IDL> p=plot(sin(indgen(361)*!dtor)

IDL 문법 요약 문자열을 제외하고는 대소문자 구분 없음 키워드가 발달한 언어 키워드 사용에 관하여 IDL> print, 5.5, format=‘(F7.5)’ 5.50000 IDL> plot, x, y, title=‘Test’, xtitle=‘time’, color=255,…. IDL> result=mean(x, /nan) 키워드 사용에 관하여 키워드는 순서 무관. 키워드는 다른 키워드와 구별되는 길이까지 줄여 쓸 수 있음 device, decom=0 & print, 5.5, form=‘(F7.5)’ /키워드는 키워드=1 과 문법적으로 완전히 동일함 result=mean(x, NAN=1) & result=mean(x, /NAN)

How to make Procedure pro twotimes, value value = 2.0 * value print, 'It was multiplied by 2.0!!!‘ print, value end Save it as twotimes.pro Place it anywhere IDL> twotimes, 3

How to make Function function hap, x, y sum=x+y return, sum end IDL> print, hap(3, 5) Compiled module: HAP. 8 IDL> .edit hap 또는 Open hap.pro

How to make Batch(or Script) n=72 z=dist(n) shade_surf, z surface, z, /noerase 위 내용을 한줄 씩 입력해도 됩니다. n을 다른 값으로 변경 적용하려면? 다 다시 입력해야 할까요? 연속되는 명령문을 file로 저장합니다(예, myscript.pro) IDL> @myscript “@파일이름 “ 은 파일 이름이 내포하고 있는 내용으로 순간 대체됩니다. 스크립트 실행으로도 사용되지만 Include 문으로도 활용될 수 있습니다. 스크립트 실행은 컴파일 과정을 거치지 않습니다(한줄씩 해석해서 한줄씩 처리합니다)

If ~ then ~ else ~ pro if_then_else, x, y, z if (x lt 0) then x = 0 if (y le 0) then print, -y else print, y if (z eq 0) then begin print, x help, y endif end IDL> if_then_else, -5, -6, 3 Compiled module: IF_THEN_ELSE. 6 IDL> if_then_else, 10, 3, 0 3 10 Y INT = 3 < : lt , > : gt , <= : le , >= : ge , != : ne , == : eq

Case Statements pro case_statments, piechoice case piechoice of 0: begin pie = 'apple' topping = 'ice cream' end 1: pie = 'pumpkin' else: pie = 'cherry' endcase print, pie IDL> case_statments, 0 Compiled module: CASE_STATMENTS. apple IDL> case_statments, 1 pumpkin IDL> case_statments, -100 cherry

FOR Loops pro for_loops for j = 0, 9 do print, j for j = 0, 20, 2 do begin print, j endfor end IDL> for_loops

FOREACH Loop arr=[0, 9, 3, 7, 2, 5] foreach number, arr do print, number PRO testForeach list = LIST(77.97, 'Galactic', [2, 7, 1, 8, 2]) FOREACH element, list DO BEGIN PRINT, 'Element = ', element ENDFOREACH END LIST 데이터형은 이번 학기 범위를 넘어섭니다. 참고만 하세요.

While Loops pro while_loops, previous, current while (current lt 100) do begin next = current + previous previous = current current = next endwhile print, current end IDL> while_loops, 20, 30 130 current(10) 가 100보다 작다면 실행 next(50) = current(30) + previous(20) previous(30) = current(30) current(50) = next(50) current(50) 가 100보다 작다면 실행 next(80) = current(50)+previous(30) previous(50) = current(50) current(80) = next(80) current(80) 가 100보다 작다면 실행 next(130) = current(80) + previous(50) previous(80) = current(80) current(130) = next(130) current(130) 가 100보다 작다면 실행(탈출)

Repeat Loops pro repeat_until, n repeat begin n = n + 2 endrep until (n gt 20) print, n end A = 1 B = 10 REPEAT A = A * 2 UNTIL A GT B print, a IDL> repeat_until, 10 Compiled module: REPEAT_UNTIL. 22

Goto pro goto_statements print, 'Hey!' goto, finish print, "What's up?” finish: print, 'Nothing.' end IDL> goto_statements Compiled module: GOTO_STATEMENTS. Hey! Nothing. GOTO 문은 Block이 명확히 구분되지 않는 경향이 있어 가능한 사용하지 않는 것이 좋음

하나의 파일에 여러 루틴 pro myplot, x, y, MYTITLE=plot_title print, n_params() case n_params() of 1 : plot, x, title=plot_title 2 : plot, x, y, title=plot_title else : print, 'error' endcase end function multiply_value, x, y return, x*y pro general degree=findgen(360) sin_value=sin(degree*!dtor) curve=multiply_value(sin_value, 3) myplot, degree, curve, mytitle=‘OK’ 어떤 것이 Main Routine 인가요? IDL> print, multiply(10, 20) Variable is undefined: MULTIPLY. Execution halted at: $MAIN$ IDL> general Compiled module: GENERAL. 2 IDL> print, multiply_value(10, 20) 200

Interactive Data Language IDL 그래픽 시스템 개요

IDL Graphics System 개요 IDL Inteligent Tools(iTools) (Since 2003. v6.0) Object Graphics 를 사용자에게 쉬운 인터페이스로 제공 Interactive (Point & Click 위주) New Graphics (Since 2010. v8.0) Object Graphics 를 Direct Graphics와 유사한 문법으로 사용 Object Graphics (Since 1997. v5.0) 객체 지향 프로그래밍 기법 활용 모든 그래픽 요소가 객체(Object)인 데서 이름 유래 Direct Graphics (Since 1981. v1.0) Graphic 출력 결과를 “바로” 장치(화면/프린터/PostScript 등)으로 보내는 원리에서 이름 유래 현재 설정 장치 개념이 중료함

Direct Graphic System Graphics 장치로 결과 전송(WIN, X, MAC, PS…) Set_plot Graphics 장치와 관련된 설정 필요 Device, decomposed…, xsize…, xoffset…, bits_per_pixels… 생성된 그림이 장치로 전송되고 난 이후에, 해당 그림을 재사용, 변경 등이 불가능(Direct!) 다시 새로 그려야 함 Window, Wset, Wshow, Wdelete TVLCT, LoadCT, XLoadCT, XPalette Plot, oPlot, PlotS Contour, Surface, Shade_Surf, Show3 Tv, TvSCL, SLIDE_IMAGE, TVRD, Xinteranimate Slicer3, shade_volume, project_vol, Voxel_Proj, Polyshade Map_set, Map_grid, Map_continents, Map_image

Object Graphics System 장치 불문 가시화 대상을 조립한 뒤 장치를 선정하고 전송하면 장치에 맞는 가시화를 구현함. 재사용 구성한 가시화 대상은 재사용 및 변형 가능 모두 3차원 그래픽 2차원 가시화도 내부적으로는 3차원 그래픽을 Z축 방향으로 투영(XY Plane)한 것 3차원 투영 계산이 항상 동반됨 (2차원 가시화에서 Direct에 비해 속도가 느림) 프로그래머 인터페이스 코드가 길어짐. 인터랙티브 모드로 사용하기 불편한 면이 있음 구성된 그래픽 객체가 메모리 상에 존재(Object)하므로 프로그래머가 메모리 관리에 신경을 써 주어야 함. IDLgrWindow, IDLgrScene, IDLgrView, IDLgrViewGroup, IDLgrModel IDLgrPalette, IDLgrColorbar IDLgrPlot / IDLgrContour, IDLgrSurface / IDLgrImage / IDLgrVolume IDLgrPolyline, IDLgrPolygon IDLgrAxis, IDLgrFont, IDLgrLight, IDLgrROI, IDLgrBuffer, IDLgrClipboard….

그래픽 체계 비교 Graphical System 장점 단점 Direct Graphics 빠른 처리 사용자 환경 취약 대용량 데이터에 효율적 VRAM 리소스 의존 전통적인 IDL그래픽 그래픽 수정을 위해 코드 재실행 Object Graphics 3차원 렌더링 기반 기본 사용자 환경 제공 객체 지향 모델 CPU 부담 증가 프로그래머에게 편리 긴 코딩 필요 iTools 사용자 환경 편리 너무 많은 기능이 눈에 보임 기본 도구 제공(iPlot 등) CPU 부담 큼 확장 및 수정 가능(어려움) 대용량 데이터 처리시 느림 New Graphics 미려한 결과물 CPU 부담

예제. IDL Direct vs Object Graphics script_dirvsobj.pro 를 열어 한줄씩 실행해 봅시다. 참고) DXF(Autocad 포맷)을 읽기 위해 32bit 모드로 IDL을 실행해야 합니다. iPlot, Plot_3dbox, plot3d() 등을 이용하여 3차원 꼭지점 자료를 어떻게 표출할 수 있는지도 확인합니다.

Interactive Data Language IDL New Graphics

개요 함수형태로 제공되는 IDL의 Graphic 도구들 IDL 8.0 버전부터 제공됨 Object Graphics의 Quality를 쉽게 사용할 수 있도록 기능은 iTools보다 단순하게 문법은 가능한 Direct Graphics와 유사하게

기본 사용법 data = sin(2.0*findgen(200)*!pi/25.0)*$ exp(-0.02*findgen(200)) p=plot(data) 좌변 변수가 그래픽의 모든 정보를 가지고 있습니다. p.linestyle=1 p.color=‘red’ p.thick=3 키워드를 이용하여 처음 플롯에서 원하는 설정을 할 수 있습니다. p=plot(data, linestyle=1, color='red', $ thick=3)

실전 Tip 도움말에 다양한 예제들이 Gallery 형식으로 제공됩니다. 필요한 내용을 선택하여 코드를 확인하세요. 좌변 변수를 이용하여 많은 일을 할 수 있습니다. 어떤 일을 할 수 있는지 확인할 땐, print, 변수이름 PLOT, SURFACE, IMAGE, CONTOUR, PLOT3D와 같이 Direct Graphics에도 대응 명령이 존재하는 루틴을 먼저 익히면 배우기 쉽습니다. 색, 심볼 기호, 선 종류 등을 설정하는 새로운 형식의 포맷 코드에 익숙해 지면 좋습니다. TEXT()는 Direct graphics의 XYOUTS에 해당합니다. Greek 문자나 수식을 입력하는 방법을 익혀 놓으면 좋습니다.

실습 한장 강의 : IDL Graphics 기본 사용법 TEXT 함수 도움말 ERRORPLOT 도움말 SURFACE 도움말 CONTOUR 도움말 첨부 예제 파일 감상 (Direct Graphic과 비교)