# IGOR Pro

IGOR Pro is a scientific data analysis software, numerical computing environment and programming language that runs on Windows or Mac operating systems. It is developed by WaveMetrics Inc., and was originally aimed at time series analysis, but has since then evolved and covers other applications such as curve fitting and image processing. It comes with a fully functional programming language and compiler, but many functions are also accessible through menus. IGOR Pro is primarily known for its graphics capabilities, and like Origin and other similar programs, is often used to generate plots for scientific and other publications. Other features include the possibility of extending the built-in functions with external operations (XOP) allowing data acquisition, manipulation and analysis features, communication with external devices and in principle any other task that can be programmed in C or C++.
It was first released as "Igor" in 1989, and became "Igor Pro" circa 1994.

## Features

Igor Pro has several features that distinguish it from other graphing programs. The most significant ones are:
* It is completely programmable with a compiled, C-like programming language.
* Igor features a hybrid interface that allows to control the program either with a command line or with clicking menu entries with the mouse.
* It allows to store data in up to four-dimensional, sophisticated arrays (called "waves").

### The concept of Igor's "waves"

Waves are up to four-dimensional arrays that can carry not only numbers, but also characters (text), or date-and-time entries. Waves can carry meta-information, for example, the physical units of each dimension. Igor offers a wide choice of methods to work with these waves. It is possible to do image-processing with images that have been saved as two- or three-dimensional waves. In addition, two-dimensional waves can be used for matrix calculations.

### Capabilities of Igor's programming language

Without the optional add-on packages (XOP, NIDAQ Tools), Igor's programming language supports, amongst others, the following concepts
* Generating compiled code (although no independent .exe file is created)
* Handling of variables, strings, and waves
* Formatted output
* Regular expressions
* Making graphical user interfaces
* FTP and HTTP communication
* Reading/writing operations on the hard drive

## Community

A community of users and enthusiasts provide user-to-user support through a mailing list, IgorExchange (a collaborative web site sponsored by WaveMetrics), and GitHub repositories.
Several large scientific user facilities, such as Argonne National Laboratory, have developed and published data analysis libraries for Igor Pro. The control and data-acquisition programs for photoelectron spectrometers of ScientaOmicron and SPECS Surface Nano Analysis GmbH save spectra in Igor Pro file formats.
The "INO MAKRO" was developed in Japan for the analysis of X-ray absorption and photoemission spectra.
Igor Pro has been used as a platform for the modelling of impedance data. The first reported application was mechanical impedance data, specifically pneumatic performance of the lung. A more recent application is for electrochemical impedance spectroscopy data, developed at NIMS in Japan.