Rolando V. RaqueñoTuesday, June 30, Research Systems, Inc. Software Vision
Rolando V. RaqueñoTuesday, June 30, Presentation Outline Introducing Research SystemsIntroducing Research Systems IDL overviewIDL overview ENVI - remote sensing application Visible Human - anatomical CD reference VIP RiverTools NeoSys
Rolando V. RaqueñoTuesday, June 30, The Company Founded in 1977 Privately owned - internally financed Growing strong, continuously profitable 70+ Employees 25,000 IDL users worldwide Distribution in more than 35 countries
Rolando V. RaqueñoTuesday, June 30, IDL Target Markets Focus on technical user –Physical Sciences –General Imaging –Medical Imaging –Engineering
Rolando V. RaqueñoTuesday, June 30, Some RSI Customers Barrick Exploration CSIRO Daimler Benz Fujitsu Lawrence Livermore National Lab Lockheed Martin NASA NIH NOAA Sandia Nat’l Lab Siemens Texaco US Geological Survey
Rolando V. RaqueñoTuesday, June 30, Research Systems’ Products IDL –Interactive Data Language ENVI –Environment for Visualizing Images Visible Human CD –Human Anatomy Reference
Rolando V. RaqueñoTuesday, June 30, IDL Overview
Rolando V. RaqueñoTuesday, June 30, What is IDL? Technical computing environment –data analysis –visualization –array-oriented language –interactive execution and/or programs –portable application development
Rolando V. RaqueñoTuesday, June 30, The Benefits of IDL Easy –access via GUI, programs and commands –high-level language simplifies programming Flexible –integrated, comprehensive system –cross-platform development tool Fast –rapid application development –efficient array processing
Rolando V. RaqueñoTuesday, June 30, IDL is a Language 4GL optimized for technical applications –simple and complete –procedural and modular Wide variety of data structures, types: –scalar, vector, array and records –eight native data types Integrated graphics, GUI, math & stats Generalized input/output
Rolando V. RaqueñoTuesday, June 30, IDL is Array-Oriented Natural representation for technical data –Avoids most loops Operators work on arrays and scalars: –A = B + C –C = SIN(2 * !PI * A) –POWER = ALOG(ABS(FFT(A, -1))) Numerous functions for array manipulation Quick to program and execute
Rolando V. RaqueñoTuesday, June 30, IDL is Portable Built-in program and data portability: –Windows 95/98/NT OpenVMS –Unix Linux –Macintosh Power Mac XDR binary data interchange Cross-platform GUI toolkit
Rolando V. RaqueñoTuesday, June 30, IDL is Open Import/export virtually any type of data User-definable functions and procedures Programs are cross-platform (somewhat) Access to Fortran or C code (not very easy)
Rolando V. RaqueñoTuesday, June 30, IDL Functionality Overview
Rolando V. RaqueñoTuesday, June 30, D Graphics Contour plots XY plots
Rolando V. RaqueñoTuesday, June 30, Integrated Mapping Integrated with graphics 2D & 3D polygon filling Map overlays –images, contours –continents, coasts, borders, rivers –multiple resolutions Many projections
Rolando V. RaqueñoTuesday, June 30, IDL Map Projections Azimuthal –Stereographic –Orthographic –Gnomonic –Lambert’s Equal Area –Satellite –Hammer-Aitoff Cylindrical –Mercator –Conic –Cylindrical –Equidistant Sinusoidal Mollweide User-defined
Rolando V. RaqueñoTuesday, June 30, Surface Plots Mesh surface plots Shading with light-sources, elevation or other variables
Rolando V. RaqueñoTuesday, June 30, D Graphics Z-buffered graphics Isosurfaces Voxel rendering
Rolando V. RaqueñoTuesday, June 30, Image Processing Contrast enhancement Edge detection, smoothing, sharpening Morphological operations Geometric transformations Frequency domain processing
Rolando V. RaqueñoTuesday, June 30, Fast & Easy Image Processing Compute and display a 512 x 512 power spectrum in under 5 seconds on a standard PC: TV, a b = ALOG(ABS(FFT(a,-1))) TVSCL, SHIFT(b, 256,256)
Rolando V. RaqueñoTuesday, June 30, Mathematics Arrays & matrices Correlation Eigenvalues/vectors Curve fitting Surface fitting Gridding Interpolation Sparse arrays Linear systems Nonlinear equations Optimization Time-series analysis Integration ODE: Runge-Kutta
Rolando V. RaqueñoTuesday, June 30, Statistics Hypothesis testing Correlation analysis Multivariate analysis Time-series analysis Probability functions and inverses
Rolando V. RaqueñoTuesday, June 30, On-line Help Features: –all text and graphics –hypertext index –keyword search –bookmarks –printing –create custom HTML (WWW) help files
Rolando V. RaqueñoTuesday, June 30, Integrated Development Tools Editor Debugger Compiler
Rolando V. RaqueñoTuesday, June 30, GUI Toolkit Cross-platform GUI applications Large selection of widgets/controls Native look & feel Portable API
Rolando V. RaqueñoTuesday, June 30, Callable IDL Unix Sharable Object Library Windows DLL Macintosh AppleScript support Integrate IDL with other programs –complete library for data analysis & display –call IDL functions from FORTRAN/C/C++ –call custom functions prototyped in IDL
Rolando V. RaqueñoTuesday, June 30, Application Distribution Run-time IDL licenses –IDL save/restore file –No access to the IDL prompt –Developer retains control of application –Protection options available, if desired –Embedded licensing
Rolando V. RaqueñoTuesday, June 30, IDL Features Recap Choose from many display options: –XY Plots, Surfaces, Images, Volumes, etc. Powerful mapping capabilities Broad suite of math & statistics functions Integrated development & interface tools
Rolando V. RaqueñoTuesday, June 30, Summary IDL - foremost data visualization and analysis tool ENVI - the tool for remote sensing Visible Human - an anatomical CD reference Research Systems - a company dedicated to customer service and support
Rolando V. RaqueñoTuesday, June 30, IDL is just a tool (saw) UNIX is just a tool (hammer) Each is great for certain tasks, not as good in others. An image is only as useful as the ancillary data associated with it IDL provides visualization and image and computation UNIX provides fast text manipulation and general data processing (ancillary data)
Rolando V. RaqueñoTuesday, June 30, IDL is great at... Visualizing data Array and structure manipulation Writing something quickly to see if it makes sense (prototyping) Providing a graphical user interface (GUI)
Rolando V. RaqueñoTuesday, June 30, IDL is not the best at... Advanced MATRIX and mathematical methods outside of Numerical Recipes True color application Routine names that can be remembered Distributing “executables”
Rolando V. RaqueñoTuesday, June 30, Personal Biases IDL under the UNIX environment Command Line IDL (vs. IDLDE) Above combination allows a seamless integration of strengths
Rolando V. RaqueñoTuesday, June 30, For those who can’t wait % idl OR % idlde