연구의 선진화와 생산성 향상에
필요한 최적의 소프트웨어와 컨설팅을
공급하도록 노력하겠습니다.
아래 제목을 클릭하면 자세히 보실 수 있습니다.

IGOR Pro 개요

IGOR Pro는 과학 및 공학 데이터의 실험에 대한 인터랙티브한 소프트웨어 환경으로 출판-품질의 고급 그래프 생성 기능을 제공합니다. IGOR는 1989년부터 수만명의 공학 전문가들이 사용하고 있습니다.

다음은 IGOR의 주요 특징을 요약한 것입니다.
  • IGOR Pro은 출판-품질의 과학 그래픽을 생성하여 EPS(Encapsulated PostScript)와 PDF와 같은 고해상도 그래픽 형식으로 내보낼 수 있습니다.
  • IGOR Pro는 큰 데이터를 매우 빠르게 다룰 수 있음.
  • IGOR Pro는 과학 및 공학 분석 / 그래픽 생성을 위한 매우 광범위한 능력을 제공.
  • IGOR Pro는 시계열 또는 균일-간격 데이터를 위한 특수 기능을 제공.
  • IGOR Pro는 영상 필터링, 영상 조작 그리고 정량화를 위한 강력한 영상 처리 능력을 제공.
  • IGOR Pro는 매우 다양한 형식으로부터 데이터를 읽을 수 있고, 하드웨어 장치로부터 직접 데이터를 획득할 수 있음.
  • IGOR Pro는 내장된 프로그래밍 환경을 통해 완벽하게 프로그래밍을 할 수 있고, C로 작성된 외부 코드로 기능을 확장할 수 있음.
  • IGOR Pro는 별도의 프로그래밍 없이 사용할 수 있음: 대부분의 기능들은 표준 메뉴, 대화 상자, 그리고 마우스를 이용하여 사용할 수 있음
  • IGOR Pro는 Windows와 Macintosh에서 실행할 수 있음. IGOR의 데이터는 플랫폼간 호환 가능.

Unique User Interface

IGOR Pro combines power with ease of use by providing a programming environment for the sophisticated user along with the ease of point and click for the beginner and expert alike.

Novice users can import data, create publication quality graphs, perform curve fitting or other analysis tasks and export their results all without even knowing that a command line exists. IGOR's dialogs allow manipulation of the tiniest detail and many properties in a graph can be adjusted by direct manipulation or a contextual click of the mouse.

Novice users can rapidly learn programming because IGOR's easy-to-use dialogs automatically create and then execute commands on IGOR's command line. Beginners need not even be aware of the command line but, if desired, may begin to learn programming and command line techniques by observing the commands IGOR itself generates. Even expert users can use dialogs as a graphical means of forming commands for inclusion in a program.
By way of example, assume we wish to change the color of the trace in this graph to blue:
One way would be to right-click (control-click on Mac) and choose from the contextual menu:
Or, you could double-click on the red trace to bring up a dialog. The following shows the dialog after the color blue has been selected:
The command shown will be executed when the Do It button is clicked. For purposes of illustration, the To Cmd Line button was pressed which simply places the command on the command line without execution as shown here:
The history area shows a previous comamnd (which set the color to red) while the command about to be executed is on the command line. The history area provides a record of what you have done and commands can be easily be modified and re-executed.

데이터 접근

Scientists and engineers encounter many data formats. IGOR Pro provides a variety of import, storage and export capabilities that can handle almost any requirement.

You can import data into IGOR Pro through many channels including:
  • Typing or pasting data in a table
  • Loading data from other IGOR files
  • Loading data from text and binary files of various formats
  • Communicating with external programs
  • Acquiring data from A/D cards and external instruments
  • Transferring data via FTP
  • Accessing data from SQL databases
If you need to import data of a particular type from a particular source over and over again, you can use IGOR's programmability to customize and automate any of these import methods.

Once your data is loaded into IGOR Pro, you can organize it in a hierarchy using the Data Browser.

Processed data can be stored in IGOR files, exported as text or binary files, transferred to external programs via program-to-program communication methods, or transferred to another computer via FTP. Exporting, like importing, can be fully customized and automated.

You can drag files onto Igor and, if the type of the file is in question, you will be able to choose from a list of possible actions.

데이터 저장

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 six 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).
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.
Data Formats
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 and 32 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.
Waveform Support
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.

Data Formats

IGOR Pro is first and foremost a publication quality scientific and engineering graphics program. Each element of a graph can be finely adjusted to meet your (or your journal's) exacting requirements. For example, line thickness may be specified as 1.35 Points -- not just 1 or 1.5. Not only are many dash patterns provided, but you can also customize them with a graphical dash pattern editor. Virtually any graph you see in your favorite scientific or engineering journal could have been made using Igor -- and many of them have been.

Simultaneously, Igor's graphs are exploratory tools of the first order. Graph updating is extremely fast allowing you to smoothly zoom in and out and pan in all directions even with millions of data points. And unlike some competitors, Igor always plots all of your data so you don't miss features that others may skip. Igor's cursors provide live readouts of your xy or image data and can be used to specify data subsets for analysis. You can compose fancy text annotations called tags that dynamically update as the data changes or as you move a tag to a different data point. Graphs automatically update to take full advantage of the available space when you resize a graph window.

Igor's 2D graphs are exceedingly flexible. You can create graphs with an unlimited number of traces, axes, contor plots, images and annotations. You can embed graphs within other graphs and can compose page layouts with multiple graphs, tables, annotations and pictures.
Speaking of flexible, Igor's image plots can use any data type from unsigned byte to double precision complex (complex data is automatically presented as magnitude.) Pixels can even have uneven spacing as with a log axis or user specified x or y values. Images can be true color or many different forms of false color. You can even specify what happens for out-of-range data.
You can use Igor's powerful drawing tools to annotate your graphs or page layouts with lines, arrows, rectangles, Bezier curves and many other types. Multiple layers are provided and all tools may be used programatically. Unique to Igor is the ability to specify the coordinate system for draw objects. For example, you might specify the coordinates of a background shaded area to be in terms of a pair of axes. This would allow you to zoom or otherwise adjust the axis ranges but still have the shaded area remain in the correct location relative to the data.

You can use Igor's annotation editor to create precise and sophisticated text annotations. Igor goes way beyond simple sub- or superscripts with precise and flexible layout. Annotations can be designed to automatically respond to changes in font or size and can dynamically include data values.

You can create visually stunning 3D graphics using Igor's Gizmo and Surface Plotter modules. Be sure to visit the gallery as well as the 3D graphics web pages to see these "cool" graphics.

이미지 프로세싱

IGOR Pro contains a full set of operations and functions for scientific image analysis applications which make it an ideal cross-platform tool for image acquisition, display and processing.

Image acquisition can be as simple as loading multi-dimensional data from disk file or as complicated as using an XOP to grab live video frames to disk (see XOP Toolkit for information on creating your own XOP). In both cases the images can be displayed on the screen for visual inspection and analysis or they could be automatically analyzed without user intervention. The processing and analysis stage depends on the nature of the images and the information of interest.

The main component of the image processing tools are the ImageXXX operations which are supplemented by the image processing procedure files. The latter are combined as the Image Processing Package which you can load from Analysis menu. In addition to the dedicated ImageXXX operations you can also take advantage of general analysis functions such as FFT and curve fitting in image processing applications. Rounding up the list of built-in operations is MatrixOP which provides efficient means for formulating and performing mathematical operations on images.

Image display can be as simple as placing an RGB image in a graph window or as complicated as creating an overlay of multiple images combined with contour lines and legend. Being able to display images in false color or using a non-linear level mapping is sometimes helpful when trying to visually analyze images.

The conventional approach to image processing involves the following steps:
  1. image transformations and color conversions where the acquired image is converted into standard form in colorspace and in range.
  2. Image filtering (cleaning up the image to improve S/N ratio) can be accomplished using localized filters or mathematical transforms.
  3. Threshold operation to convert the image from a gray-scale to a binary form.
  4. Morphological filtering usually follows the threshold operations but some morphological operations can actually precede the threshold step. Typical morphological filters include: erosion/dilation, opening/closing, tophat and watershed.
  5. Particle analysis is the operation where the filtered binary image is analyzed by quantifying various spatial properties of different "particles" (i.e., spots or regions) in the image. The spatial measurements include location, area, perimeter and moments for calculating a fitting ellipse.

데이터 분석

"Data analysis" derives meaning or significance from raw data: it answers questions like "how much?", "how high?", or "how often?". Since Igor aims to serve a wide range of disciplines, it provides many analysis capabilities to choose from. We present them here in our somewhat arbitrary categories:
Curve Fitting
Linear and non-linear fits
Built-in and user-defined functions
Multi-variate fits involving unlimited independent variables
Peak Analysis
Peak and level-crossing detection
Fitting multiple overlapping peaks
Baseline removal
Signal Processing
Multi-dimensional mixed-radix FFT, wavelet, Hough transforms
Integration and differentiation of data
Convolution and correlation
Smoothing and filtering
Statistics
Descriptive statistics such as mean, standard deviation and higher central moments
Statistical Tests
Probability Distribution Functions, Cumulative Distribution Functions and Inverse CDFs
Histograms, Sorting, Resampling, Correlations and Linear Regression

데이터 조작 및 연산

IGOR provides an extensive library of math and data manipulation routines and IGOR's array-oriented arithmetic make complex operations a snap.

IGOR provides all the mathematical operators and functions you would expect -- and then some. You can quickly find the desired function or operation using IGOR's handy help browser as illustrated to the right.

Many of IGOR's algorithms are from Numerical Recipes and the LAPACK numerical library.

Array arithmetic is the most flexible and powerful part of Igor's analysis capability. It allows you to write assignment statements that work on an entire Array or on a subset of an Array much as you would write an assignment to a single variable in a standard programming language.

You can access all of the most common operations via easy-to-use dialogs. Later, as you learn from watching as the dialogs synthesize commands, you can type directly on IGOR's command line or write routines to perform specialized operations.
By way of example, here are the command lines that create the data and the image plot shown on the right:

Make/N=(150,150) data1 // create a 150x150 array
SetScale x,-1.5,1.5, data1 // set x and ...
SetScale y,-1.5,1.5, data1 // ... y scaling
data1= exp(-(x^2 + y^2)) // operation on entire array
NewImage data1 // display the results
ModifyImage data1 ctab= {*,*,Rainbow,0}

The dialog that created the last command can be viewed here.

In addition to array arithmetic, IGOR also provides a matrix math facility that makes it easy to perform matrix manipulations such as matrix multiply and dot product using a natural syntax.

Here are some of the data manipulation methods provided in IGOR:

Interpolation
Igor has a number of interpolation tools that are designed for different applications. One dimensional data (vectors) can be interpolated using linear, cubic spline and smoothing spline methods. 2D (matrix) data can use bilinear, splines, Kriging and Voroni while 3D (volume) data can be treated with trilinear and barycentric methods.
Integration and Differentiation
The Differentiate and Integrate operations provide a number of algorithms for operation on one-dimensional waveform and XY data. These operations can either replace the original data or create a new data set with the results. The easiest way to use these operations is via dialogs available from the Analysis menu. These handy dialogs even provide for graphing the results.
Sorting
Sort operation sorts one or more 1D numeric or text data sets in ascending or descending order. Multiple sort keys are supported (for cases where the first key has identical values). MakeIndex and IndexSort are also provided for extra flexibility.
Extraction
The Extract operation makes it easy to extract subsets of data that correspond to specific criteria. For example,
Extract/O source,dest,source>10 && source<20
creates a new data set named dest containing values from soruce that are between 10 and 20. You can also find the index values where the expression is true so you can access the subset in place.
Smoothing
Igor has three built-in algorithms. Each one effectively precomputes smoothing coefficients according to the smoothing parameters, and then replaces each data wave with the convolution of the wave with the coefficients. The bulit-in methods are:
  • Binomial Smoothing: The Binomial smoothing operation is a Gaussian filter. It is the sharpest filter that will not cause ringing on a step or impulse.
  • Savitzky-Golay Smoothing: Savitzky-Golay smoothing uses a different set of precomputed coefficients popular in the field of chemistry. It is a type of Least Squares Polynomial smoothing. The amount of smoothing is controlled by two parameters: the polynomial order and the number of points used to compute each smoothed output value.
  • Box Smoothing: Box smoothing is similar to a moving average, except that an equal number of points before and after the smoothed value are averaged together with the smoothed value.
In addition to built-in smoothing, you can perform smoothing (or any other finite impulse response type filter) using your own coefficients with the SmoothCustom operation. Each smooth type, including SmoothCustom, can pick from several end-effect algorithms.

분석 기능들

Igor includes several operations that work on functions rather than discrete data points. These operations include .
Plotting Functions
Making a graph of a function in Igor is easy. For simple expressions, use arithmetic expressions entered on the command line. Igor's programming language allows arbitrarily complex non-linear functions expressed as user-defined functions that can be used to make a graph.
Differential Equations
Numerically solve ordinary differential equations, making possible simulations of dynamic systems.
Optimization
Use the Optimize operation to find minima and maxima of functions expressed using Igor's built-in language. Optimize functions of any number of dimensions, using a choice of methods including simulated annealing.
Function Roots
Use the FindRoots operation to find roots of functions expressed using Igor's built-in language. You can use Igor to find N-dimensional roots of systems of equations.

The FindRoots operation can also be used to find complex roots of polynomials.
Integration of functions
Find numeric integrals of continuous functions using a choice of methods. By nesting integrations, you can integrate an N-dimensional function.

데이터 탐색(Exploration)

Because IGOR's 2D graphs are so fast, you can quickly explore large data sets by zooming in and out on portions of a graph. You can drag a marqee selection around an area of interest and then click in the center to access a popup menu to expand or contract about that area. Here is an example:
And here is the result after choosing expand:
Before choosing the popup menu, you can adjust the selection by dragging the marquee's handles. After zooming in on a region of interest, you can pan around in all directions.

Starting with version 6.1, you can hover your mouse over a point on an axis and use the mouse wheel to zoom in or zoom out about that point.

An even zippier tool is provided as a bulit-in procedure package that makes an copy of your graph with an expanded view of your data that follows the cursor as you move the mouse pointer over the original graph. You can experience the quickness of this tool for yourself by downloading the demo version of IGOR (anonymous download -- no registration or forms to fill out) and then following these instructions:
  1. Start IGOR and either:
    1. Load and graph your own data or
    2. Load any of the example experiments with graphs of large data sets or
    3. Create synthetic data by copying these lines...
      Make/N=10000 data1;SetScale x,0,10e-3,"s",data1 data1= 2+2*cos(x*300)+10*exp(-(1e4*(x-3e-3))^2)
      + 1*exp(-(1e4*(x-6e-3))^2) + 0.3*exp(-(1e4*(x-6.2e-3))^2) + gnoise(0.03) Display data1
      ...and then executing them in IGOR. In IGOR, type CTRL-J (Windows, cmd-J Mac) to bring the
      command window forward, paste and then press return.
  2. With the graph frontmost, from the menu bar, choose Graph->Packages->Graph Magnifier.
  3. In the resulting control panel, click Do It.
  4. Move your mouse over the data in the original graph.
  5. When finished exploring, click the Done button that was added to your original graph.
Info Box and Cursors
You can put an information box on a graph by choosing Show Info from the Graph menu while the graph is the target window. An info box displays a precise readout of values and also provides a convenient way to specify a region of interest for operations such as curve fitting.

Here is an example of the Info box and cursors on an XY plot:
And the following example shows that cursors can also be placed on image plots:
When cursors are placed on image or waterfall plots, z and delta-z values are added to the info box.
A variety of cursor styles are provided. Cursors may be attached to data points or may be free to roam throughout the plot area.
You can move cursors in several ways. In addition to the slider control shown in the examples, you can use the mouse to drag cursors to different points or different traces or images. Each graph window can have its own info box and cursors.

프로그래밍

IGOR Pro includes a powerful and full-featured structured programming language that you can use for automation of data import, file I/O, analysis, data acquisition, graphing, drawing, printing, and just about anything you can think of. You can add menus to the program and create control panels containing buttons, checkboxes, popup menus, and other controls to set parameters or display results.

IGOR Pro aids you in your programming tasks with syntax coloring< and a symbolic debugger that will help you efficiently troubleshoot your code.

IGOR Pro ships with many examples illustrating (among other things) peak fitting, signal processing, data acquisition, test automation, and graphing techniques.
Programmability
Complete built-in structured programming language
Over 450 built-in functions and 400 built-in operations
Many additional functions and operations supplied by XOPs and WaveMetrics-authored user procedures
Symbolic debugger
User-definable math and string functions
All aspects of IGOR Pro can be programmed
Controllable by external scripting systems
Syntax coloring in procedures
Integrated help and documentation
Search across multiple program source files

사용자 인터페이스

You can easily create custom interfaces to accomplish specialized tasks. Igor´s dialogs and contextual menus make it easy to construct a user interface to specialized analysis code.
Available Customizations
  • Create control panels and graphs with controls that implement custom behavior using Igor´s built-in programming language.
  • Add your own menus or modify Igor´s menus.
    Create custom help for other users.
    Write "external operations" in C or C++ to add special windows to Igor or to control or acquire data from instruments.
Examples of custom interfaces are shipped with Igor. You can find them in the File->Examples menu. Some major features of Igor are implemented using a custom interface like the ones you can build, among them the Image Processing and Polar Graphs packages:

Notebooks

You can easily create custom interfaces to accomplish specialized tasks. Igor´s dialogs and contextual menus make it easy to construct a user interface to specialized analysis code.
Typical uses for a notebook are:
  • Keeping a log of your work
  • Generating a report
    Examining or editing a text file created by Igor or another program
    Documenting an Igor experiment.
There are two types of notebooks:
  • Plain notebooks
  • Formatted notebooks
Formatted notebooks can store text and graphics and are useful for fancy reports. Plain notebooks can store text only. They are good for examining data files and other text files where line-wrapping and fancy formatting is not appropriate.

In formatted notebooks, you can control document properties such as margins, background color, headers and footers, paragraph properties such as margins, tab stops, and alignment, and character properties such as font, text size, and text color. You can create "rulers" which encapsulate styles and apply them to paragraphs. You can insert pictures and dates.

A formatted notebook can be exported as an Igor help file, as a Rich Text Format file (which can be opened by most word-processors), and as HTML.

Using Igor's programming environment, you can write a procedure that creates a notebook, inserts text and graphics, and sets formatting.

Available Customizations
A notebook action is an icon or link in a formatted notebook which, when clicked runs Igor commands. This notebook contains two notebook actions, one represented by an icon and one represented as a link.
A notebook action is an icon or link in a formatted notebook which, when clicked runs Igor commands. This notebook contains two notebook actions, one represented by an icon and one represented as a link.

비디오 튜토리얼

  • Igor Pro Guided Tour
The Igor Pro Guided Tour is available in booklet form, as an Igor help file, in the Igor Pro PDF manual, and in the videos listed on this page.
To go through the tour by yourself, choose Help -> Getting Started in Igor or choose Help -> Manual to open the PDF manual.
To take the video tour, click the links below.
Guided Tour 1 - General Tour
  • Introduction to Igor Pro
  • Part 1
    • Launching Igor Pro
    • Entering Data
    • Making and Touching Up a Graph
    • Adding a Legend
    • Adding a Tag
    • Using Igor Preference
    • Making a Page Layout
    • Saving Your Work
  • Part 2
    • Loading Data
    • Appending to a Graph
    • Offsetting and Un-offsetting a Trace
    • Drawing in a Graph
    • Saving and Recreating a Graph
  • Part 3
    • Using Igor Documentation
    • Graphically Editing Data
    • Making a Category Plot
    • Category Plot Options
    • The Command Window
    • Synthesizing Data
    • Zooming and Panning Graphs
    • Graphing With Multiple Axes
    • Using Cursors
    • Creating a Graph with Stacked Axes
    • Appending to a Layout
    • Creating Controls Part I
    • Creating Controls Part II
    • Creating a Dependency
Guided Tour 2 - Data Analysis
  • Creating Synthetic Data
  • Quick Curve Fit to a Gaussian
  • More Curve Fitting to a Gaussian
  • Sorting
  • Fitting to a Subrange
  • Appending a Fit
Guided Tour 3 - Histograms and Curve Fitting
  • Histogram of White Noise
  • Histogram of Gaussian Noise
  • 3D Plotting Tutorials
Igor's 3D plotter is named "Gizmo". The following video tutorials demonstrate elementary and advanced features of Gizmo.

Macintosh users should click on the .mov links, Windows users on the .wmv links.

갤러리

This gallery contains sample graphs and user interface designs created by our users. The gallery is divided into the following sections:
  • 3D Graph Samples
  • User Interface Designs
We would love to showcase your own masterpiece. We are especially interested in graphs that have been published.

If you have something you'd like to contribute, please send an email to sales@wavemetrics.com with an attachment containing your graphic as a png file or, preferably, an experiment containing the graphic.

If you do send an experiment, let us know if it would be OK to use the data to create our own sample graphs (we tend to use fake data for illustrations and it would be nice to be able to use the real thing.)

If you have the time and inclination, please provide a description of your project and where published if applicable. Let us know what version of IGOR you used and if we can credit you by name and/or affiliation.

If we use your submission, you will receive the highly coveted IGOR mug!

If you have a project that needs more than a few graphics and short descriptions, consider the case studies section.