260 likes | 419 Views
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
E N D
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