Modern IDL
Table of Contents
Preface
1. Why IDL?
2. Who is this book for?
3. How this book is organized
4. Example code
5. Developers from other languages
6. How to contact me
7. Acknowledgments
Chapter 1. Introduction to IDL
1.1. Getting starting with IDL
1.2. Read and display an image
1.3. Visualizing 3-dimensional geometry
1.4. More examples
1.5. Summary
Chapter 2. The IDL environment
2.1. The IDL command line
2.2. Executive commands
2.3. Preferences
2.4. The IDL Workbench
References
Chapter 3. Variables
3.1. Introduction
3.2. Variable names
3.3. Variable types
3.4. Arrays
3.5. Structures
3.6. Operators
Exercises
3.7. Variable information
3.8. Strings
3.9. Regular expressions
3.10. System variables
3.11. Pointers
3.12. Objects
3.13. Lists and hashes
3.14. Common blocks
3.15. Shared memory
3.16. Summary
References
Chapter 4. File Input/Output
4.1. Handling files
4.2. Supported file formats
4.3. High-level input and output routines
4.4. Low-level input and output routines
Exercises
4.5. .sav files
4.6. Scientific data formats: HDF5 overview
4.7. Networking
4.8. XML
4.9. Summary
References
Chapter 5. Programming
5.1. Introduction
5.2. Looping constructs
5.3. Truth and conditionals
5.4. Routines
Exercises
5.5. Error handling
5.6. Debugging
5.7. Main-level programs
5.8. Batch files
5.9. The compile_opt statement
5.10. Distribution of IDL code
5.11. Summary
References
Chapter 6. Direct graphics
6.1. Direct graphics vs. object graphics
6.2. Color
6.3. Handling graphics windows
6.4. Line plots
6.5. Coordinate systems
6.6. Annotation
6.7. Images
6.8. Surface plots
6.9. Contour plots
6.10. Combining 3-dimensional plots
6.11. Maps
6.12. Polygonal meshes
6.13. Vector fields
6.14. Volumes
6.15. Animation
6.16. Graphics devices
6.17. Summary
References
Chapter 7. Objects
7.1. Concepts
7.2. Writing a class
7.3. Inheritance
7.4. Operator overloading
7.5. Tricks and techniques
7.6. For those familiar with other object-oriented languages
References
Chapter 8. Widgets
8.1. Introduction
8.2. Simple example: mg_xplot
Exercises
8.3. Widget programming details
8.4. A more complicated example: mg_ximage
8.5. Dialogs
8.6. Compound widgets
8.7. Object widgets
8.8. Summary
References
Chapter 9. Object graphics
9.1. Introduction
9.2. Displaying an image in object graphics
9.3. The theory
9.4. A 3-dimensional example
9.5. The transformation matrix
9.6. Properties
9.7. Sample visualizations
9.8. Texture mapping and transparency
9.9. Inheriting from an IDLgr class: MGgrCube
9.10. Composite graphics classes
9.11. Sending output to other destinations
9.12. Creating a new destination: MGgrWindow3D
9.13. Widgets and objects graphics: interaction
Exercises
9.14. Widgets and object graphics: tiled imagery
Exercises
9.15. New graphics
9.16. Summary
References
Chapter 10. Using the iTools
10.1. What are the iTools?
10.2. iTools basics
10.3. Advanced iTools features
10.4. Scripting the iTools
10.5. Summary
References
Chapter 11. Performance
11.1. Introduction
11.2. Timing
11.3. Vectorization
Exercises
11.4. Logic
11.5. Array and matrix techniques
11.6. The clever use of histogram
11.7. Memory usage
11.8. Object-oriented techniques
11.9. Summary
References
Chapter 12. External development
12.1. Techniques
12.2. spawn
12.3. call_external
12.4. Dynamically loadable modules
12.5. Bridges
12.6. Python
12.7. Summary
References
Appendix A. Resources
A.1. Online help
A.2. Resources in the IDL distribution
A.3. Resources on the Internet
A.4. Books on IDL
Bibliography
A.5. IDL code libraries
A.6. IDL open source projects
Appendix B. Starting IDL
Appendix C. A style guide
C.1. General principles
C.2. Layout
C.3. Comments
C.4. Statement formatting
C.5. Variables
C.6. Routines
C.7. Object-oriented programming
References
Appendix D. The IDL library
D.1. Animation
Animation compound widget
File formats for animation
Animation display
D.2. Application development
D.3. Arrays
Array allocation
Index array creation
Miscellaneous array creation
Manipulating and querying arrays
D.4. Color
Color system conversions
Creating and modifying color tables
Loading and storing color tables
Miscellaneous color routines
Compound widget to handle color table selection
D.5. Date and time
D.6. Debugging
Routines
Executive commands
D.7. Dialogs
D.8. Error handling
D.9. External development
Calling external code from within IDL
Calling IDL code from another language
D.10. File input/output
General routines
Supported formats
D.11. Fonts
D.12. Images
Contrast enhancement and filtering
Feature extraction/image segmentation
Image display
Image geometry transformations
Morphological image operators
Regions of interest
D.13. Internationalization
D.14. Introspection
D.15. Mapping
Display
Computing map projections
Miscellaneous
D.16. Mathematics
Complex numbers
Curve and surface fitting
Differentiation and integration
Eigenvalues and eigenvectors
Gridding and interpolation
LAPACK routines
Linear systems
Mathematical error assessment
Matrix
Miscellaneous
Multivariate analysis
Nonlinear equations
Optimization
Sparse arrays
Special functions
Time-series analysis
Transcendental functions
Transforms
D.17. Networking
D.18. Object library
D.19. OS access
D.20. Plotting
Line plots
Surface and contour plots
Polygonal meshes
Volumes
Annotation
D.21. Profiling
D.22. Signal processing
D.23. Statistics and probability
General statistical routines
Hypothesis testing
Statistical fitting
Probability
D.24. Strings
General operations
Formatting strings
Filename operations
D.25. Structures
D.26. Type
D.27. Vector fields
Display
Advecting a particle
D.28. Wavelet Toolkit
Wavelet visualizations
Wavelet transforms
Wavelet functions
D.29. Widgets
Primitive widgets
Compound widgets
Helper routines
D.30. Windows
Glossary
Index
1. About the author
2. Colophon