Interactive data language idl
Download
1 / 16

Interactive Data Language (IDL) - PowerPoint PPT Presentation


  • 223 Views
  • Uploaded on

Interactive Data Language (IDL). This PPT includes some materials downloaded from Internet, please don’t circulate it out of the LAB. What is IDL?. Interactive Data Language (IDL) is a programming language that is a popular data analysis language among scientists.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Interactive Data Language (IDL)' - hansel


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Interactive data language idl

Interactive Data Language (IDL)

This PPT includes some materials downloaded from Internet, please don’t circulate it out of the LAB


What is idl
What is IDL?

Interactive Data Language (IDL) is a programming language that is a popular data analysis language among scientists.

IDL is the trusted scientific programming language used across disciplines to create meaningful visualizations out of complex numerical data (ITT).

  • 1970 – IDL’s predecessor, Laboratory for Atmospheric and Space Physics, CO

  • Used by

    • NASA

    • Lockheed-Martin

    • Medical Imaging Fields

    • Remote sensing


What is idl1
What is IDL???

A More Powerful MATLAB, also more expensive.

A great tool for hyperspectral imaging!

A fast tool for processing large images!!

A great GREAT tool for ENVI programming!!!


Overview of idl
Overview of IDL

  • A high-level interpreted programming language with vector and array primitives

  • Modern programming language

    • Flow control

    • Data structures

    • Objects

  • All operators and most functions work on scalar, vector or array data of any data type.

  • Data visualization tool, advanced built-in graphics

    • 2-D plots

    • Contour plots

    • Surface plots

    • Shaded surfaces

    • Gray scale/color images

    • Volume rendering, …

  • Multi-platform support

    • Unix: Sun, Hewlett Packard, Silicon Graphics, IBM

    • Linux, Microsoft Windows, Mac


How to learn
How to Learn

  • Online Help

  • Google

  • http://www.idlcoyote.com/

  • Practice & Practice


Basic variable types
Basic Variable Types

  • Integers

    - 1 byte – byte data type (0..256)

    IDL> a=bindgen(1)

    - 2 bytes – integers data type (0..2562-1)

    IDL> b=indgen(1) & print,5/3 1

    - 4 bytes – long integers (0..2564-1)

    IDL> c=lindgen(1)

    - 8 bytes – 64-bit long integers (0..2568-1)

  • Floating data types

    - 4 bytes – floats (exponent from-38 to 38)

    IDL>print,5./3. & y=float(3)/float(2) 1.66667

    IDL> a=1.23456789

    IDL> print,a,format=‘(f20.10)’

    - 8 bytes – double-precision

    IDL> print,5d/3d 1.6666667

    IDL> a=1.23456789d0 & print,a,format=‘(f20.10)’

    IDL> xyouts,xloc,yloc,string(a,format=‘f(20.10)’)

  • Strings (Text)

    IDL>x=‘Hi there!!!’


Assignment statements
Assignment Statements

A = B + 1

  • A has the same structure as B, with a data type equal to that of the most precise operand in the expression on the right hand side. In this case it could be any type except string.

  • If B is a vector or array then 1 is added to each element.

    A = 0 ; A is a 16 bit integer

    A = A * 0.5 ; A is now a 32 bit float

    B = A(*,3) ; B is equal to the 4th row of A

    A(*,3) = 0 ; Set all elements in 4th row of A equal to 0

  • Examples:

    image = fltarr(512, 512) ; zero filled array

    b = image(0:127, 0:127) ; b is 128x128 array

    image(*,100) = findgen(512) ; replace row 100

    plot, image(*,100) ; plot row 121

    ; Display the power spectrum as an image

    tvscl, alog(abs(fft(image, 1)))


Naming variables
Naming Variables

  • Assign ‘readable’ variable names that make sense

  • Variable names must start with a letter

    - NO: 6a=“gamma” OK: a6=“gamma”

  • Variable names may not have spaces in them

    - NO: A 6=5 OK: A_6=5

  • Some characters are illegal or have special meanings

    - NO: a@=5, a.b=5 (used for structures), A+=5, A#=5


Organizational structures
Organizational structures

  • Scalars

    IDL> x=3.

  • Vectors

    IDL> a=[0,1,2,3] & print,a[1] 1

  • Arrays (see IDL help for matrices) (index from zero)

    intarr(), fltarr(), dblarr(), strarr().indgen()

    IDL> q=intarr(2,2) 0 0

    0 0

    IDL> m=indgen(2,2) 0 1

    2 3

    IDL> print,m(0,1) 2

    IDL> a=findgen(100,100)

    IDL> print,a[1,0] 1.00000

    IDL> b=a[23:25,67:69]

    IDL> indx=where(a gt 10.)

    IDL> jndx=where(a[indx] le 100.)

    IDL> b=a[indx[ jndx]]


Array operations
Array operations

  • Simple math operations (* by scalar, +, -); A 3-column by 2-row array:

    IDL> A = [ [0, 1, 2],[3, 4, 5] ,[5,6,7]]

    IDL>B=2*A 0 2 4

    IDL>print, B 6 8 10

    10 12 14

  • More complex math

    • #, Multiply an array by another IDL> C=A#B

    • N_elements: Total number of elements in array

      IDL> n=n_elements(A)

    • Total(array): computes a sum of all elements

    • Min(array): outputs the min value; also Max

    • Minmax(array): outputs the min then max

    • Rebin: Resize array IDL> C=Rebin(A,6,6)

    • Eigenvec: finds eigenvectors


Basic programming
Basic Programming

  • IF-THEN BLOCK

    • IF (logical-statement) THEN something

    • IF (logical-statement) THEN BEGIN

      • Something

      • Other thing

    • ENDIF

    • IF (logical-statement) THEN BEGIN

      • Something

      • Other thing

    • ENDIF ELSE some-other-thing


Basic programming1
Basic Programming

  • CASE

    • CASE name OF

      • Match_1: do-something

      • Match_2: do-other thing

      • ELSE: do-things not-matched

    • ENDCASE


Basic programming2
Basic Programming

  • DO-loop

    • FOR n=0, number DO a[n] = fix(n)

    • FOR n=0, number DO BEGIN

      • a[n] = fix(n)

      • B[n] = 2.0*a[n]^2 + 4.0*a[n] + 6.0 $

      • + 8.0*a[n]^(-2.5)

    • ENDFOR

    • NOTE: $ is for continuation.


Files and input output
Files and Input/Output

Write data to a file, formatted

OPENW, 1, ‘original.dat’

OPENW, 2, ‘noisy.dat’

PRINTF, 1, original

PRINTF, 2, noisy

CLOSE, 1

CLOSE, 2


Plot and processing
Plot and Processing

  • Making a New Dataset

    noisy = ((RANDOMU(SEED, 200) - .5) / 2)

    original = SIN((FINDGEN(200)/35)^2.5)

  • Plot

    PLOT, noisy

  • Plot them together

    PLOT, original, THICK = 3, XTITLE = "Time", YTITLE ="Amplitude“

    OPLOT, original+noisy


Idl examples
IDL Examples

IDL> a = sin(findgen(100)/99. * 2 * !pi)

IDL> help, a

IDL> plot, a

IDL> a = shift(alog(abs(fft(dist(256),1))),128,128)

IDL> isurface, a


ad