Igor Pro stores your data in named data objects called waves. Wave is short for waveform and emphasizes Igor's unique support for evenly spaced data. Here are the properties of waves:
- Size limited only by memory
- Number of data objects limited only by memory
- Up to four dimensions
- Two floating-point and eight integer formats, strings
- Numeric formats may be real or complex
- Special support for waveform (equally-spaced) data
- Maintains additional information such as modification time, notes
Igor also supports another class of named data objects that store just a single number or string. Numeric variables may be real or complex and string variables, like string waves, are unlimited in size and may contain binary data.
Unlike spreadsheet programs, Igor's data objects need not clutter up your screen by being displayed in a table.
You can efficiently organize your data into a hierarchy of Igor's Data Folders in much the same way that you organize files in a hierarchy of folders on your hard drive. With Igor's Data Browser window you can navigate through the different levels of data folders, examine values of variables, strings and waves, and load data objects from other Igor workspaces (called experiments).
Your data, graphs, tables, programs, notebooks and control panels for a given project are organized in a workspace called an experiment. Experiments can be stored in a single disk file which can be easily exchanged with colleagues. Data and program files can also be external so that they may be shared among experiments.
Numeric data in waves may be real or complex with the following number types:
- Single precision floating point (32 bits)
- Double precision floating point (64 bits)
- Signed and unsigned 8, 16, 32 and 64 bit integer
String data can be of unlimited size and there are no limits on what it may contain, i.e., it may be binary.
If you work with data with evenly spaced x values, you will appreciate Igor's unique support for waveform data. Normally, you would have to create a vector of data that contains x values, but in Igor, you can simply specify x-scaling for a wave using two numbers. This not only saves memory and reduces clutter but it also allows Igor to automatically use the x-scaling as needed. For example, the Fourier transform of a wave of time sampled data automatically creates a result with the correct frequency x-scaling. See Signal Processing for an example.
While x-scaling is handy for vector data, matrices and higher dimensional objects can benefit from dimensional scaling as well. For example, image data can have x and y-scaling in physical units such as meters or arcseconds. For an example, see Images.