Introduction to IDL®
Total Page:16
File Type:pdf, Size:1020Kb
Introduction to IDL® Revised for Print March, 2016 ©2016 Exelis Visual Information Solutions, Inc., a subsidiary of Harris Corporation. All rights reserved. ENVI and IDL are registered trademarks of Harris Corporation. All other marks are the property of their respective owners. This document is not subject to the controls of the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (EAR). Contents 1 Introduction To IDL 5 1.1 Introduction . .5 1.1.1 What is ENVI? . .5 1.1.2 ENVI + IDL, ENVI, and IDL . .6 1.1.3 ENVI Resources . .6 1.1.4 Contacting Harris Geospatial Solutions . .6 1.1.5 Tutorials . .6 1.1.6 Training . .7 1.1.7 ENVI Support . .7 1.1.8 Contacting Technical Support . .7 1.1.9 Website . .7 1.1.10 IDL Newsgroup . .7 2 About This Course 9 2.1 Manual Organization . .9 2.1.1 Programming Style . .9 2.2 The Course Files . 11 2.2.1 Installing the Course Files . 11 2.3 Starting IDL . 11 2.3.1 Windows . 11 2.3.2 Max OS X . 11 2.3.3 Linux . 12 3 A Tour of IDL 13 3.1 Overview . 13 3.2 Scalars and Arrays . 13 3.3 Reading Data from Files . 15 3.4 Line Plots . 15 3.5 Surface Plots . 17 3.6 Contour Plots . 18 3.7 Displaying Images . 19 3.8 Exercises . 21 3.9 References . 21 4 IDL Basics 23 4.1 IDL Directory Structure . 23 4.2 The IDL Workbench . 24 4.3 Exploring the IDL Workbench . 25 4.4 Projects . 27 4.5 Working Directory . 28 4.6 Preferences . 29 4.7 Search Path . 31 3 4 4.8 The IDL Help System . 31 4.9 References . 32 5 Line, Bar, and Scatter Plots 35 5.1 Introduction . 35 5.2 Graphics Routines . 35 5.3 Reflectance Spectra . 36 5.3.1 Plotting Multiple Datasets . 37 5.3.2 Adding Annotations to Graphics . 38 5.3.3 Saving Graphics Windows . 38 5.4 Boulder Temperature Data . 39 5.5 Scatterplots . 40 5.6 Bar Plots . 41 5.7 Error Plots . 43 5.8 The Sunspot Cycle . 44 5.9 Histogram Plots . 45 5.10 Positioning Plots . 46 5.11 Exercises . 48 5.12 References . 48 6 Data Structures 49 6.1 Introduction . 49 6.2 Variables . 49 6.2.1 Variable Names . 49 6.2.2 System Variables . 50 6.3 Data Types . 50 6.3.1 Type Behaviors in IDL . 52 6.3.2 Exception to Type Promotion . 53 6.3.3 Null Variables . 54 6.4 Arrays . 54 6.4.1 Array Subscripting . 56 6.4.2 Multidimensional Arrays . 57 6.4.3 Single-Index Subscripting . 58 6.4.4 The Where Function . 58 6.5 Lists and Hashes . 59 6.6 Structures . 61 6.7 Strings . 62 6.8 Pointers . 64 6.9 Objects . 64 6.10 Exercises . 65 6.11 References . 66 7 Programming 67 7.1 Introduction . 67 7.2 Programs . 67 7.2.1 Executive Commands . 68 7.2.2 Main . 69 7.2.3 Procedures . ..