Research Systems, Inc. Software Vision Rolando V. Raqueño 1 Monday, March 14, 2016 Presentation Outline • • • • • • • Introducing Research Systems IDL overview ENVI - remote sensing application Visible Human - anatomical CD reference VIP RiverTools NeoSys Rolando V. Raqueño 2 Monday, March 14, 2016 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ño 3 Monday, March 14, 2016 IDL Target Markets • Focus on technical user – – – – Physical Sciences General Imaging Medical Imaging Engineering Rolando V. Raqueño 4 Monday, March 14, 2016 Some RSI Customers • • • • • Barrick Exploration CSIRO Daimler Benz Fujitsu Lawrence Livermore National Lab • Lockheed Martin Rolando V. Raqueño • • • • • • • 5 NASA NIH NOAA Sandia Nat’l Lab Siemens Texaco US Geological Survey Monday, March 14, 2016 Research Systems’ Products • IDL – Interactive Data Language • ENVI – Environment for Visualizing Images • Visible Human CD – Human Anatomy Reference Rolando V. Raqueño 6 Monday, March 14, 2016 IDL Overview Rolando V. Raqueño 7 Monday, March 14, 2016 What is IDL? • Technical computing environment – – – – – data analysis visualization array-oriented language interactive execution and/or programs portable application development Rolando V. Raqueño 8 Monday, March 14, 2016 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 9 – efficient array processing Rolando V. Raqueño Monday, March 14, 2016 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ño 10 Monday, March 14, 2016 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ño 11 Monday, March 14, 2016 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ño 12 Monday, March 14, 2016 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ño 13 Monday, March 14, 2016 IDL Functionality Overview Rolando V. Raqueño 14 Monday, March 14, 2016 2D Graphics • Contour plots • XY plots Rolando V. Raqueño 15 Monday, March 14, 2016 Integrated Mapping • Integrated with graphics • 2D & 3D polygon filling • Map overlays – images, contours – continents, coasts, borders, rivers – multiple resolutions • Many projections Rolando V. Raqueño 16 Monday, March 14, 2016 IDL Map Projections • Azimuthal – – – – – – Stereographic Orthographic Gnomonic Lambert’s Equal Area Satellite Hammer-Aitoff Rolando V. Raqueño • Cylindrical – – – – Mercator Conic Cylindrical Equidistant • Sinusoidal • Mollweide • User-defined 17 Monday, March 14, 2016 Surface Plots • Mesh surface plots • Shading with light-sources, elevation or other variables Rolando V. Raqueño 18 Monday, March 14, 2016 3D Graphics • Z-buffered graphics • Isosurfaces • Voxel rendering Rolando V. Raqueño 19 Monday, March 14, 2016 Image Processing • Contrast enhancement • Edge detection, smoothing, sharpening • Morphological operations • Geometric transformations • Frequency domain processing Rolando V. Raqueño 20 Monday, March 14, 2016 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ño 21 Monday, March 14, 2016 Mathematics • • • • • • • Arrays & matrices Correlation Eigenvalues/vectors Curve fitting Surface fitting Gridding Interpolation Rolando V. Raqueño • • • • • • • 22 Sparse arrays Linear systems Nonlinear equations Optimization Time-series analysis Integration ODE: Runge-Kutta Monday, March 14, 2016 Statistics • • • • • Rolando V. Raqueño 23 Hypothesis testing Correlation analysis Multivariate analysis Time-series analysis Probability functions and inverses Monday, March 14, 2016 On-line Help • Features: – – – – – – all text and graphics hypertext index keyword search bookmarks printing create custom HTML (WWW) help files Rolando V. Raqueño 24 Monday, March 14, 2016 Integrated Development Tools • Editor • Debugger • Compiler Rolando V. Raqueño 25 Monday, March 14, 2016 GUI Toolkit • Cross-platform GUI applications • Large selection of widgets/controls • Native look & feel • Portable API Rolando V. Raqueño 26 Monday, March 14, 2016 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ño 27 Monday, March 14, 2016 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ño 28 Monday, March 14, 2016 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ño 29 Monday, March 14, 2016 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ño 30 Monday, March 14, 2016 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ño 31 Monday, March 14, 2016 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ño 32 Monday, March 14, 2016 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ño 33 Monday, March 14, 2016 Personal Biases • IDL under the UNIX environment • Command Line IDL (vs. IDLDE) • Above combination allows a seamless integration of strengths Rolando V. Raqueño 34 Monday, March 14, 2016 For those who can’t wait % idl OR % idlde Rolando V. Raqueño 35 Monday, March 14, 2016