did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9781558607002

Practical IDL Programming

by
  • ISBN13:

    9781558607002

  • ISBN10:

    1558607005

  • Format: Paperback
  • Copyright: 7/18/2001
  • Publisher: Elsevier Science

Note: Supplemental materials are not guaranteed with Rental or Used book purchases.

Purchase Benefits

  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
  • Complimentary 7-Day eTextbook Access - Read more
    When you rent or buy this book, you will receive complimentary 7-day online access to the eTextbook version from your PC, Mac, tablet, or smartphone. Feature not included on Marketplace Items.
List Price: $91.95 Save up to $36.78
  • Rent Book $55.17
    Add to Cart Free Shipping Icon Free Shipping

    TERM
    PRICE
    DUE

    7-Day eTextbook Access 7-Day eTextbook Access

    USUALLY SHIPS IN 24-48 HOURS
    *This item is part of an exclusive publisher rental program and requires an additional convenience fee. This fee will be reflected in the shopping cart.

Supplemental Materials

What is included with this book?

Summary

Increasingly, scientists and engineers must quickly and efficiently analyze and visualize extremely large sets of data. Interactive Data Language, IDL, was designed to address just this need. A popular data analysis and visualization programming environment, IDL is used worldwide by scientists and engineers in fields as diverse as the physical sciences, medical physics, and engineering test and analysis. In Practical IDL Programming, Liam E. Gumley provides a solid foundation in the fundamentals of procedural programming in IDL. He presents concise information on how to develop IDL programmers that are well structured, reliable, and efficient. The example programs in the book demonstrate key concepts and provide functionality that can be applied immediately. In addition, the book offers readers practical tips and advice on IDL programming, which they would otherwise discover only after years of experience. While only modest prior programming experience is assumed, readers with experience in any procedural language will quickly translate their skills to IDL, learning the best programming practices for this new environment. Scientists, engineers, and students in educational, government, and commercial research and development environments will all appreciate the author's guidance in helping them effectively analyze and visualize data. * Presents a comprehensive and detailed treatment of IDL data types, operators, expressions, array operations, input and output, direct graphics, plotting and imaging, publication quality output, and graphical user interfaces. * Designed for novices and experienced IDL users and programmers alike. * Provides an accompanying Web site with downloadable versions of all IDL programs in the book and a link to downloadable demonstration versions of the IDL software.

Table of Contents

Foreword v
David Stern
Acknowledgments ix
Introduction
1(14)
About This Book
2(3)
Who Should Read This Book?
2(1)
Why Write This Book?
3(1)
What about Objects?
3(1)
Supporting Materials
4(1)
Typographic Conventions
4(1)
Special Characters
5(1)
About IDL
5(2)
IDL in Perspective
6(1)
Obtaining IDL
7(1)
Obtaining IDL
7(1)
Running IDL
7(2)
Online Help
9(2)
Outline of the Chapters
11(4)
Fundamentals of IDL Syntax
15(74)
Interactive and Compiled Modes
15(2)
Interactive Mode
16(1)
Compiled Mode
16(1)
Variables
17(7)
Data Types
18(1)
Keeping Track of Variable Types
19(1)
Type Conversions
19(2)
Converting Floats to Integers
21(1)
Converting Between String and Numeric Types
22(1)
Variable Names
22(2)
Introduction to Arrays
24(5)
Creating Arrays
25(1)
Array Storage Format
26(1)
Functions for Creating Arrays
26(2)
Floating-Point Grid Arrays
28(1)
Array Indexing
29(5)
Array Indexing Examples
30(1)
Multidimensional Array Indexing Examples
31(1)
One-Dimensional Indexing
32(1)
Index Sampling
32(1)
Multidimensional Index Sampling
33(1)
Expressions and Arithmetic Operators
34(10)
Type Conversion in Expressions
35(1)
Guarding against Division by an Integer
36(1)
Operators
36(1)
Operator Precedence
37(1)
Arithmetic Operations on Arrays
38(2)
Operator Precedence and Efficiency of Array Operations
40(1)
Minimum, Maximum, and Modulo Operators
41(1)
Array and Matrix Multiplication Operators
42(2)
Relational and Boolean Operators
44(8)
Relational Operators
44(2)
Boolean Operators
46(1)
NOT Operator
47(1)
AND Operator
48(1)
OR Operator
48(1)
xor Operator
49(1)
Combining Relational and Boolean Operators
49(1)
Ternary Operator
50(1)
Bit Manipulation
51(1)
Structures
52(6)
Anonymous Structures
53(2)
Arrays of Structures
55(1)
Named Structures
56(1)
Working with Structures
57(1)
Pointers
58(9)
Types of Pointers
59(1)
Creating Pointers
60(2)
Freeing Pointers
62(1)
Checking Pointer Validity
62(1)
Pointer Dereferencing
63(2)
Avoiding Pointer Problems
65(2)
Array Properties
67(5)
Number of Array Elements
68(1)
Array Size and Type
68(2)
Minimum and Maximum Values
70(1)
Mean, Variance, and Standard Deviation
71(1)
Totals
71(1)
Locating Values within an Array
72(3)
Finding Values That Meet Selection Criteria
72(2)
Working with One-Dimensional Indices from where
74(1)
Finding Values That Don't Meet Selection Criteria
74(1)
Array Recordering
75(6)
Changing Array Dimensions
75(2)
Reversing Array Elements
77(1)
Rotating Arrays
77(1)
Transposing Arrays
78(1)
Shifting Arrays
79(1)
Sorting Arrays
80(1)
Finding Unique Array Values
80(1)
Array Resizing
81(8)
Resizing by an Integer Factor
81(3)
Resizing to Arbitrary Size
84(2)
Resizing to Arbitrary Size with Customized Interpolation
86(1)
Removing Rows or Columns
87(2)
Writing IDL Programs
89(50)
Defining and Compiling Programs
89(8)
Procedures
90(1)
Functions
91(1)
Naming and Editing Source Files
91(1)
Manual Compilation
92(1)
Automatic Compilation
93(2)
Returning to the Main Level after an Error
95(2)
Control Statements
97(13)
if Statement
97(2)
case Statement
99(2)
for Statement
101(1)
while Statement
102(1)
repeat Statement
103(1)
return Statement
104(2)
goto Statement
106(1)
switch Statement
106(2)
break Statement
108(1)
Continue Statement
109(1)
Parameters and Keywords
110(8)
Parameters
110(1)
Keywords
111(1)
Using Parameters and Keywords
111(2)
Argument-Passing Mechanism
113(2)
Extra Keywords
115(1)
Extra Keyword Precedence
116(1)
Extra Keyword Passing Mechanism
117(1)
Checking Parameters and Keywords
118(4)
Checking Input Parameters and Keywords
118(2)
Don't Modify Input Parameters
120(1)
Checking Boolean Keywords
121(1)
Checking Output Parameters and Keywords
122(1)
Scripts, Include Files, and Journaling
122(3)
Scripts
122(1)
Include Files
123(1)
Journaling
124(1)
Global Variables
125(5)
Read-Only System Variables
125(1)
Writable System Variables
125(2)
User-Defined System Variables
127(2)
Common Blocks
129(1)
Error Handling
130(5)
Intercepting Errors
131(2)
Math Errors
133(1)
Restting the IDL Session
134(1)
Efficient Programming
135(4)
Conserving Memory
135(2)
Using Efficient Methods
137(2)
Input and Output
139(54)
Standard Input and Output
140(7)
Writing to Standard Output
140(3)
Reading from Standard Input
143(1)
Free-Format Input
144(1)
Reading from a String
145(1)
Writing to a String
145(1)
Legal and Illegal read Arguments
146(1)
Working with Files
147(4)
Opening Files
148(1)
Selecting a File
149(1)
Obtaining Information about Files
150(1)
Closing Files
151(1)
Reading and Writing Formatted (ASCII) Files
151(6)
Reading a Formatted File
152(3)
Writing a Formatted File
155(2)
Reading and Writing Unformatted (Binary) Files
157(14)
Reading an Unformatted File (Single Data Type)
157(2)
Reading an Unformatted File (Mixed Data Types)
159(1)
Reading a Fortran-77 Unformatted File
160(1)
Repositioning the File Pointer
161(1)
Byte Swapping (or Big-Endian versus Little-Endian)
162(3)
Writing Binary Data to an Unformatted File
165(1)
Programs to Write and Read Portable Binary Data
166(3)
Reading Binary Data via an Associated Variable
169(1)
Saving and Restoring IDL Variables
170(1)
Scientific and Specialized Data Formats
171(1)
Reading and Writing netCDF Files
172(10)
Reading a Variable from a netCDF file
174(2)
Reading an Attribute from a netCDF file
176(1)
Discovering the Contents of a netCDF file
177(3)
Writing to a netCDF file
180(1)
Standard Attributes
181(1)
Coordinate Variables
182(1)
Reading and Writing HDF Files
182(11)
Reading a Variable from a HDF file
183(2)
Using a Wrapper Procedure to Read a Variable
185(1)
Reading an Attribute from a HDF file
186(1)
Discovering the Contents of a HDF file
187(3)
Writing to a HDF file
190(2)
Coordinate Variables
192(1)
Direct Graphics
193(32)
Graphics Devices
193(4)
Selecting a Graphics Device
195(1)
Configuring the Graphics Device
195(2)
Display Modes
197(8)
8-Bit Display Mode
197(1)
24-Bit Display Mode
197(1)
Display Mode Comparison
198(1)
Obtaining Display Mode Information
199(1)
Selecting a Display Mode: Windows and MasOS Platforms
200(1)
Selecting a Display Mode: UNIX Platforms
201(3)
Selecting a Display Mode via a Startup File
204(1)
Graphics Window
205(5)
Creating a Windows
205(1)
Working with Existing Windows
206(1)
Invisible Graphics Windows (Pixmaps) and Animation
207(3)
Scrolling Graphics Windows
210(1)
Working with Colors
210(8)
Color Models
211(1)
Indexed Color
211(2)
Working with the Color Table
213(2)
Color Table Updates in 24-Bit mode
215(1)
Decomposed Color
216(2)
Display Mode Troubleshooting
218(7)
Plotting Data
225(76)
Plotting Overview
226(9)
Line Plots
226(2)
Overplotting
228(1)
Scatter Plots
228(2)
Polar Plots
230(1)
Plot Coordinates
231(1)
Coordinate Conversions
232(1)
Plotting in Normal and Device Coordinates
233(1)
System Variables
234(1)
Plot Positioning
235(6)
Specifying a Plot Position
235(2)
Computing a Plot Position
237(2)
Positioning Multiple Plots
239(2)
Plot Customization
241(7)
General Plot Properties
241(1)
General Axis Properties
242(1)
Configuring Axis Range and Style
243(1)
Creating Axes
244(2)
Logarithmic Axes
246(1)
Tick Marks and Labels
247(1)
Plot Colors
248(4)
Indexed Colors
249(1)
Decomposed Colors
250(2)
Titles, Labels, and Symbols
252(5)
Titles
252(2)
Labels
254(1)
Mathematical Symbols
255(2)
Error Bar, Histogram, and Bar Plots
257(6)
Error Bar Plots
257(3)
Histogram Plots
260(12)
Bar Plots
272
Contour Plots
263(7)
Contour Plotting Overview
264(3)
Contouring Irregularly Spaced Data
267(2)
Filled Contours
269(1)
Mesh and Shaded Surface Plots
270(11)
Mesh Surface Plots
271(3)
Irregularly Spaced Data
274(2)
Shaded Surface Plots
276(4)
Combined Mesh and Shaded Surface Plots
280(1)
Mapping
281(20)
Creating a Map Projection
281(3)
Configuring a Map Projection
284(4)
Selecting Map Limits
288(2)
Continental Outlines
290(2)
Map Grid Lines
292(2)
Contour Plots on Map Projections
294(3)
Displaying Regularly Gridded Images on Map Projections
297(4)
Displaying Images
301(40)
Image Fundamentals
302(2)
PseudoColor Images
302(1)
TrueColor Images
303(1)
Image Display Routines
304(4)
Displaying Unscaled Images: tv
304(1)
Displaying Scaled Images: tvscl
305(2)
Bottom-up versus Top-down display
307(1)
Keywords for tv and tvscl
307(1)
Customizing Image Scaling
308(10)
Image Scaling via bytscl
308(3)
Color Table Splitting
311(1)
Displaying Multiple Images with Separate Color Tables
312(2)
Histogram Clipping
314(3)
Histogram Equalization
317(1)
Sizing the Image to Fit the Display
318(5)
Computing Image Size and Offset Automatically
320(3)
Displaying TrueColor Images
323(3)
Displaying TrueColor Images in 24-Bit Display Mode
323(1)
Displaying TrueColor Images in 8-Bit Display Mode
323(3)
Displaying Images on the PostScript and Printer Devices
326(6)
Displaying PseudoColor Images on the PostScript Device
326(3)
Displaying PseudoColor Images on the Printer Device
329(1)
Displaying TrueColor Images on the PostScript Device
330(1)
Displaying TrueColor Images on the Printer Device
331(1)
An Image Display Procedure
332(9)
Creating Graphical Output
341(50)
Bitmap and Vector Output Files
341(2)
Creating Bitmap Output Files
343(12)
Reading from the Display: tvrd
343(1)
Reading from an 8-Bit Display
344(2)
Reading from a 24-Bit Display
346(1)
A Wrapper Function for tvrd
347(2)
Selecting a Bitmap Output Format
349(1)
Saving an 8-Bit Image to a Bitmap Output File
350(1)
Saving a 24-Bit Image to a Bitmap Output File
351(1)
A Program for Saving the Screen to a Bitmap Output File
352(3)
Creating PostScript Output
355(23)
Introduction to the PostScript Device
356(1)
Configuring the PostScript Device
357(3)
Setting Size and Offset Manually
360(2)
Setting Size and Offset Automatically
362(6)
Color PostScript Output
368(1)
Using the Color Table in PostScript Mode
369(1)
Reversed Background and Drawing Colors
370(1)
Fonts Overview
371(1)
PostScript Device Fonts
372(1)
TrueType Fonts
373(1)
Positioning Graphics in the Drawable Area
374(1)
Adding an EPS Preview
375(3)
Creating Printer Output
378(13)
Selecting a Printer
379(1)
Configuring the Printer Device
380(1)
Setting Size and Offset Manually
381(3)
Setting Size and Offset Automatically
384(5)
Color Printer Output
389(1)
Fonts and Positioning
390(1)
Graphical User Interfaces
391(70)
Introduction to GUI Programming
391(7)
GUI Components (Widgets)
393(1)
GUI Programming versus Procedural Programming
394(1)
GUI Design
395(3)
Creating Widgets
398(27)
Widget Attributes
401(1)
widget_base function
402(1)
widget_button function
402(4)
widget_draw function
406(2)
widget_droplist function
408(1)
widget_label function
409(2)
widget_list function
411(1)
widget_slider function
412(2)
widget_table function
414(2)
widget_text function
416(1)
Widget Layout
417(5)
Naming Buttons
422(2)
Compound Widgets
424(1)
Working with Existing Widgets
425(1)
Setting Widget Properties: widget_control
425(1)
Getting Widget Information: widget_info
426(1)
Events and Event Handling
426(14)
Event Structures
427(3)
Event Management
430(1)
Event Handlers and Application State Information
431(4)
Multiple Instances of an Application
435(5)
A GUI Application
440(21)
Design Implications
441(1)
Startup Procedure
442(5)
Event-Handler Procedures
447(8)
Service Procedures
455(3)
Compiling and Running imgui
458(3)
Appendix A IDL on the Internet 461(4)
A.1 Resources by the Author
461(1)
A.2 RSI Information
461(1)
A.3 Newsgroup
462(1)
A.4 Libraries
462(1)
A.5 Searchable Library Database
462(1)
A.6 Editors
463(1)
A.7 PostScript Viewers
463(1)
A.8 People
463(2)
Appendix B Mathematical Routines 465(10)
Appendix C Widget Event Structures 475(8)
Appendix D Widget Properties 483(4)
Appendix E Graphics Device Properties 487(2)
Index 489

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program