IDL - Data Input _ Output
Document Sample


IDL - Data Input & Output
NCKU Phys. Cheng-Ling Kuo
Johnny@phys.ncku.edu.tw
Data IO
Data Stream
Input: keyboard, input device
Output: terminal, printer
File – data is read from file and write to
a file
Types: data, image, and any type of
signals
IDL - File types
ASCII Files
Binary Files
Image Files
WAV Audio Files
ASCII & Binary
ASCII
Slower
Portable
Need more memory size
Edited directly
Binary
Efficient
Not portable
Compact
Not directly human readable
The two level of IDL‟s IO
High-Level
Easy using and time efficient
Inflexible
Low-Level
Difficult and time-consuming
Flexible
High-Level IDL‟s IO
Function list
File:
read_ascii(ascii_template)
read_binary(binary_template)
Image
read_bmp, read_jpeg, read_tiff
Sound
read_wave
Low-level IDL‟s IO
LUN(logic unit number)
File support limit 2.3 GB
Adress up to 2^31-1 bytes (32-bit program)
Range –2 to 128
0, -1, -2 are stdin, stdout, stderr
1-99: user specified
100-128: managed by GET_LUN and
FREE_LUN
Low-level IDL‟s IO
Formated / Unformatted
Formated
readf(read), printf(write)
Unformatted
readu, writeu
Low-level IDL‟s IO
Manipulate files
Open files: openr, openw, openu
Get detail information: fstat
Position the file pointer(unit byte): point_lun
Check end-of-file: eof
Close files: close
IDL current open files: help, /files
Low-level IDL‟s IO
Format
Fortran style
A(Character), D(double), F(float), I(integer), O(octal),
Z(Hexadecimal)
print, !PI, format='("I guess pi value is ", 1X, F24.12)'
C style
%C(Character), D(double), F(float), I(integer), O(octal),
Z(Hexadecimal)
print, !PI, format='(%"I guess pi value is %12.4f")'
Low-level IDL‟s IO
Formatted IO
Name Years Salary
-------------------------
Johnny 2002 2000.5
Ted 2003 1000.5
Ken 2001 1500.5
Command
IDL>openr, 1, "D:\doc\教育訓練及展示\IDL\io\format.txt“
IDL>head=„‟
IDL>name=„‟ & yy=0L & ss=0.0
IDL>readf, 1, format="(A30)", head
IDL>readf, 1, format="(A10, 1X, I4, 4X, F10.5)", name, yy, ss
IDL>Close, 1
Low-level IDL‟s IO
Unformatted IO
Not portable because various machines
have different the representation of binary
data
XDR(portable)
Add extra bookkeeping information to stored in
the file
Image Input&Output
IDL‟s Image Representation
Pixel: byte(0-255)
Color System
RGB(Red, Green, Blue)
HLS(Hue, Lightness, and Saturation)
HSV(Hue, Saturation, and Value)
Device
Device means graphics environment
Supported Devices
CGM Computer Graphics Metafile
HP Hewlett-Packard Graphics Language (HP-GL)
LJ Digital Equipment LJ250 (VMS Only)
MAC Macintosh display
METAFILE Windows Metafile Format (WMF)
NULL No graphics output
PCL Hewlett-Packard Printer Control Language (PCL)
PRINTER System printer
PS PostScript
REGIS Regis graphics protocol (DEC systems only)
TEK Tektronix compatible terminal
WIN Microsoft Windows
X X Window System
Z Z-buffer pseudo device
Device
select the graphic device
Set_plot, “win”
To check the system variable, !d.name
Device
Most keywords to the DEVICE
procedure are sticky ?that is, once you
set them, they remain in effect until you
explicitly change them again, or end
your IDL session.
Device(win)
It can do?
VISUAL_DEPTH – color system
Font
Graphic function
Device(win)
Which‟s your system‟s graphics
environment
24bits
16bits
8bits
Get your system‟s visual depth
IDL>device, get_visual_depth=depth
IDL>print, depth
The color system
TrueColor (16-, 24-, or 32-bit)-Default
IDL>device, decomposed=1
Image
IDL>READ_jpeg,'C:\Documents and Settings\johnny\My
Documents\My Pictures\Sample.jpg', img)
IDL>TV, img, true=1
color indices to be interpreted as 3, 8-bit color
indices, „(bbggrr)‟xl
IDL>PLOT, [0,1], col=„ff0000‟xl
ColorTable(8bit)
IDL>device, decomposed=0
(the least-significant 8 bits of the color index value to be
interpreted as a PseudoColor index)
Color table
Set palette
loadct, xloadct
Show palette
xpalette
Get color values of palette
tvlct, r, g, b, /get
Image Input
Functions list:
read_bmp, read_jpeg, read_gif, read_tiff
Example
True color
IDL>READ_JPEG, 'E:\RSI\IDL54\examples\data\rose.jpg', img24
Color table
IDL>img8 = READ_TIFF('E:\RSI\IDL54\examples\data\examples.tif', r, g, b)
IDL>img8 = READ_PNG("E:\RSI\IDL54\examples\data\avhrr.png", r, g, b)
IDL>img8 = READ_BMP("c:\winnt\Greenstone.bmp", r,g,b)
Image display
True color
IDL>Device, decomped=1
IDL>Tv, img24, true=1
Color table
IDL>Device, decomped=0
IDL>tvlct, r, g, b
IDL>Tv, img8
Read screen
True color
IDL>Img24=tvrd(true=1)
Color table
IDL>tvlct, r, g, b, /get
IDL>img8=tvrd()
Image Output
Functions list:
write_bmp, write_jpeg, write_gif, write_tiff
Example
True color
IDL>WRITE_TIFF, „test.tif', TVRD(true=1)
IDL>WRITE_JPEG, „test.jpg', TVRD(true=1), true=1
IDL>WRITE_BMP, "test.bmp",img24, /rgb
Color table
IDL>WRITE_TIFF, „test.tif', TVRD(), red=r, green=g, blue=b
IDL>WRITE_BMP, "test.bmp",img8, r, g,
IDL>WRITE_PNG, "test.png",img8, r, g, b
Postscript Device
Set device = ps
IDL> SET_PLOT, “ps”
Setup device parameters
IDL> DEVICE, file=“test.ps”, /color, /landscape
Plot
IDL>TVLCT, [0,255,0,0], [0,0,255,0], [0,0,0,255]
IDL> PLOT, [0,1], color=1
Close device
IDL> DEVICE, /close
Printer Device
Set device = printer
IDL> set_plot, “printer”
Setup printer
IDL>p= DIALOG_PRINTERSETUP()
IDL>j=DIALOG_PRINTJOB()
Plot
IDL>TVLCT, [0,255,0,0], [0,0,255,0], [0,0,0,255]
IDL> PLOT, [0,1], color=1
Close device
IDL> device, /CLOSE_DOCUMENT
Get documents about "