Igor Pro 10.04 リリース

Igor Pro 10 の新しいバージョンがリリースされました。今回のリリースにおける主な変更点は以下の通りです。最新のリリースを入手するには、ダウンロード ページにアクセスするか、Igor Pro 10 内で [ヘルプ / Help] → [Igor Pro の更新 / Updates for Igor Pro] メニュー項目を選択してください。弊社に問題を報告いただき、その問題が修正された旨をご連絡した場合は、たとえ以下に記載されていなくても、その修正は今回のリリースに含まれています。

新機能

  • ユーザーインターフェイス(メニュー、ダイアログなど。ただし、ドキュメントは除く)の簡体字中国語翻訳を追加しました。Igor Pro 10.01 で追加されたドイツ語翻訳と同様、翻訳にはAIを使用しているため、誤訳が含まれている可能性があります。Miscellaneous Settings ダイアログ([その他 / Misc]→[その他設定 / Miscellaneous Settings]メニュー項目)を開き、「環境 / Environment 」カテゴリを選択して言語を設定してください。OS の言語が簡体字中国語に設定されている場合、Igor の起動時に簡体字中国語の翻訳を使用するかどうかを確認するメッセージが表示されます。Igor は選択内容を記憶します。
  • ? : が、数値だけでなく、文字列値でも動作するようになりました:

    String str = (num > 0) ? "something" : "nothing"

  • 大きな画像を表示する時のパフォーマンスが大幅に改善されました。特に、対数カラースケーリングが有効になっている場合は、ウィンドウのサイズ変更に対する応答性が格段に向上しています。実際のパフォーマンスの向上度は、使用しているハードウェアや画像のサイズによって異なります。14000×4000 ポイントという大きな画像の描画に関するベンチマーク比較は、以下をご覧ください:

    Image drawing benchmark showing performance improvements in Igor Pro 10.04

  • 線グラフの描画に関する改良されたアルゴリズムが、実験的機能として提供されています。この機能は、「その他 / Misc」→「試験的機能 / Experimental Features」を選択することで有効または無効にできます。これを有効にすると、特に透明度を使用する場合や、線の太い場合、あるいはノイズの多いデータを使用する場合に、従来のレンダラーと比較して、単純な線グラフの描画速度が大幅に向上し、出力品質も格段に高くなります。1000 ポイントの正弦ウェーブと 1000 ポイントの純粋なノイズを用いたグラフの更新に関するベンチマーク比較を以下に示します:

    Benchmark for improved graph drawing performance in Igor Pro 10.04

  • ユーザー関数内のループ(for、while、do-while)およびウェーブ代入文のパフォーマンスを、ユーザーによる中断のチェックに伴うオーバーヘッドを低減することで向上させました。1 ポイントあたりの処理量がごくわずかな単純なウェーブ代入文は、実行速度が約 40% 向上しました。
  • Python 3.15 がサポートされました。
  • デバッガーでは、データブラウザーに表示される情報と同様に、選択したウェーブのタイプ、次元、スケーリング、単位、サイズ、変更日、ウェーブメモなどの情報を表示できるようになりました。「ウェーブをテーブルで表示 / Show Waves in Table」や「ウェーブをグラフで表示 / Show Waves in Graph」が選択できるのと同じポップアップメニューから、「ウェーブ情報を表示 / Show Wave Info」を選択してください。
  • グラフ上でトレースを右クリックし、コンテキストメニューから「名前を変更 traceName... / Rename traceName...」を選択することで、トレースの名前を変更できるようになりました。
  • ステータスバーの「中止 / Abort」ボタンが表示されるようになり、PauseForUser の実行中にクリックできるようになりました。これにより、ユーザーを待機しているプロシージャを中止することができます。
  • PolygonOp に、倍精度の出力ウェーブを生成するための /D フラグを追加しました。
  • ステートメントの補完とヘルプテンプレートのパフォーマンスが向上しました。
  • igorpro.wave.createfrom と igorpro.wave.set_data は、igorpro.wave または igorpro.folder オブジェクトのコレクションを受け入れるようになりました。これにより、Python からウェーブ参照やデータフォルダー参照を作成し、その内容を設定できるようになります。例えば:

    # Create a wave reference wave from a list of Igor waves sourceWaves = [igorpro.wave.create(f'source{x}') for x in range(3)] waveRefs = igorpro.wave.createfrom('waveRefs', sourceWaves)

  • Python クラス igorpro.wave の set_scale メソッドは、別のウェーブからスケーリング、単位、フルスケールをコピーできるようになりました。例えば:

    w.set_scale(otherWave, 'delta')

  • Python クラス igorpro.wave に、ウェーブのノートを設定または追加するための set_note メソッドを追加しました。
  • プロシージャファイルで、Menu "Python"、HideIgorMenus を使用することで、Python メニューに項目を追加できるようになりました。ShowIgorMenus、SetIgorMenuMode が Python メニューで動作するようになりました。
  • タブのラベルで、エスケープ文字が正しく処理されるようになり、複数行にわたるラベルも正しく表示されるようになりました。

挙動の変更

  • トレースのマーカーを描画できない場合、Igor は何も描画しない代わりに、その場所に「?」を描画するようになりました。これは、マーカー番号が無効な場合、またはカスタムマーカーの SetWindow markerHook 関数が欠落している、コンパイルされていない、あるいはマーカーを描画しない場合に発生します。以前は、このようなマーカーを含むマーカーのみのトレースは、何の警告もなく消えていました。
  • ヒストグラムで、/B={binStart, binWidth, numBins} で指定されたビン幅が 0 の場合、エラーが表示されなくなりました。代わりに、binStart を中心とするビン幅 1 が使用されます。これにより、すべてのピクセルが同じ値を持つ画像において、画像のヒストグラム、コントラスト、範囲ダイアログで発生していた問題も修正されました。
  • CurveFit では、/CMAG、/XW、 /XHLD、/XD、または /XR フラグが、それぞれに必要な /ODR 設定(/CMAG の場合は 0 以外の値、その他は /ODR=2 または 3)なしで、コマンドラインまたは Execute から実行された場合、エラーを報告するようになりました。コンパイル済みコードでは、すでにこのエラーが報告されていました。
  • PythonFile では、Python スクリプトが引数を指定せずに、または終了コード 0 を指定して sys.exit() を呼び出した場合、エラーとして報告されなくなりました。0 以外の終了コードや文字列引数が指定された場合は、エラーとして報告されます。
  • Python の関数 os.abort() は、Igor を終了させる代わりに、例外を発生させるようになりました。
  • Python の初期化に失敗した場合、Igor はタイムアウトを待って一般的なエラーを報告するのではなく、すぐに具体的なエラーを報告するようになりました。
  • PauseForUser は、ユーザーを待機している間、SetIdlePeriod で設定されたアイドル期間を尊重するようになりました。
  • ライセンスダイアログで「すべてのユーザーにライセンスをインストール」ボタンをクリックすると、すでに入力済みの値が新しい Igor インスタンスに引き継がれるため、再度入力する必要がなくなりました。

バグフィックス

  • Igor を長時間起動したままにしていると、書式設定済みのノートブックを含むエクスペリメントを保存できなくなるバグを修正しました。この問題は、Windows Storage Sense またはユーザーによって、Igor がノートブック用に使用する一時ファイルが削除された場合に発生していました。
  • 別のプログラムによって変更されたプロシージャファイルをディスクから再読み込みした時に発生する可能性のある、いくつかのクラッシュを修正しました。これには、コンパイル中に再読み込みが行われた場合や、コンパイル中に XOP または ActiveX オートメーションを介してコマンドが送信された場合などが含まれます。
  • ListBox または SetVariable コントロールのキューに登録されたコントロール操作プロシージャが、そのコントロールのウェーブが終了または再作成された後(例えば、パネルを終了させた場合など)に実行された時に発生する可能性があったクラッシュを修正しました。
  • プリエンプティブスレッド内でテキストウェーブに対して Grep を使用した場合に発生していた(バージョン 10.03 で導入された)クラッシュを修正しました。
  • ユーザー関数内で、Dir コマンドを文字列式とともに使用した時に発生していたクラッシュを修正しました。
  • XY サブセットの自動色スケーリング(ModifyImage ctabAutoscale=1)を使用して画像の ColorScale を描画する時、画像がプロット領域から完全にスクロールされてしまった場合に発生していたクラッシュを修正しました。
  • Fixed a crash when ReorderTraces /R was used with a graph created with Display /VERT.
  • Fixed a crash (introduced in Igor Pro 10) in ImageHistModification when used with a 3D unsigned byte wave.
  • Fixed a crash when aborting Python code that was run from Igor.
  • Fixed a bug in ImageInterpolate when using the Affine2D keyword with a 3D wave that could cause a crash or incorrect results.
  • Fixed a bug in Interp4DPath that could cause incorrect results or a crash when a path point fell outside the range of the source wave.
  • Fixed a potential crash in Project when more than 10 values were passed to the /P flag. Igor now reports an error instead.
  • Fixed a crash when clicking a resize handle of a selected control or draw object after a previous click on a control or draw object in a window that was since closed.
  • Fixed a bug (introduced in Igor Pro 10) that caused image plots on log axes to be drawn, autoscaled, and tagged incorrectly when an edge of the image fell at zero or a negative value.
  • area and faverage now support 64-bit integer waves. Previously they returned NaN. Sums of 64-bit integer values are also now computed without losing precision.
  • Fixed a bug in WaveStats that could give incorrect minimum or maximum values, or locations, for complex integer waves when multithreading was used.
  • Fixed a rounding error in ImageInterpolate when using the Affine2D keyword that was causing output wave dimensions to be off-by-one.
  • Fixed a bug in ImageEdgeDetection that produced incorrect results when using the Prewitt method.
  • Fixed a bug where HDF5LoadImage converted only the first image of an image stack to RGB.
  • Fixed a bug where Grep with /LIST but no separator, used in a user function, returned a list with no separators instead of using the default semicolon separator.
  • Fixed a bug (introduced in 10.02) that caused procedures to auto-compile when a procedure file was opened.
  • Fixed a bug that caused procedures to be compiled a second time after clicking the Compile button.
  • Fixed a spurious compile error ("P or X used outside of a wave assignment loop") for a multidimensional wave assignment to a single element that uses p, q, r, or s on the right side, such as w[0][0] = w[p+1][q+1].
  • Fixed a spurious compile error involving ErrorBars with the BOX keyword followed by nochange, for example ErrorBars data, BOX, nochange, nochange.
  • Fixed a bug in the debugger's expression evaluation where a dimension label (as in wave[%label]) was replaced with the value of a local variable of the same name.
  • Fixed a bug where drawing a graph that uses a custom marker hook function could change debugger settings, silently disabling NVAR SVAR WAVE checking.
  • Fixed several problems that occurred when modifying a graph, for example changing a trace's color, while a trace was being edited with GraphWaveEdit. Previously this could partially exit edit mode, and the modifications could be lost when exiting edit mode or using undo or redo, or omitted from window recreation macros.
  • Fixed several problems with PauseForUser: spurious "UpdtDisplay: recursion attempted" messages, a hang when quitting Igor, redraw problems, and the ability to activate windows other than the one(s) the user is supposed to interact with.
  • Fixed a bug in LoadPICT that prevented loading SVG files that don't start with an XML declaration (<?xml ...?>). SVG files downloaded from some web services omit the declaration.
  • Fixed SoundLoadWave so that a /S start time of 0 is accepted and /Q suppresses the error dialog for bad /S times. Negative /S times now consistently report an error.
  • Secs2Date now honors an empty separator string when the format is -2.
  • Fixed a bug in the Curve Fitting dialog that could report a spurious error about the number of coefficients after choosing a fit function with a different number of coefficients.
  • Fixed a bug where selected draw text in a graph or page layout was not aligned with the text it highlights on high-DPI displays.
  • Pressing Ctrl+C in the Python console now interrupts running Python code.
  • Fixed a bug in PythonFile where adjacent quoted arguments in the args parameter were merged into a single argument.
  • Fixed a bug where PythonFile could fail to find a Python file after an earlier Python command failed while retrieving return values.
  • Fixed a memory leak each time Python code raised an exception.
  • Fixed bugs in the Notebook operation where out-of-range values wrapped around to incorrect values instead of being clipped. This affected the pageMargins, margins, and startPage keywords and, in user functions, color components above 65535. Also, in user functions, an explicit alpha of 0 in a Notebook color is now honored instead of being treated as opaque, matching the behavior on the command line.
  • When \s() in an annotation refers to a graph or trace that does not exist, the ? placeholder is now centered within the annotation instead of extending above it.
  • Fixed a bug in Gizmo color scaling where values above the top of the color range were drawn using the color for values below the range.
  • Fixed a bug in Gizmo scatter objects that caused drop lines in the Y direction to be drawn to the wrong location.
  • Fixed AppendToGizmo /D so that it adds attributes to the display list. Also, AppendToGizmo /N with a nonexistent Gizmo window now reports "Expected Gizmo window."
  • Fixed a bug in ModifyGizmo in user functions where outputResFactor was applied as userLevel.
  • Fixed a bug in Gizmo where the back face shininess value of the shininess attribute was ignored and the front face value was used for both faces.
  • Gizmo pie wedge objects now draw correctly when the end angle is less than the start angle, and draw nothing when the start and end angles are equal.
  • Fixed the enable state of the cloud color checkbox and popup menu in the Gizmo isosurface dialog.

Procedures

  • The Global Fit package (Analysis→Global Fit) now supports fitting with errors in the independent variable (X) as well as the dependent variable (Y), using the same Errors in Variables: Orthogonal Distance Regression machinery available in the Curve Fitting dialog. Assign an X Weight wave for a data set on the Data Weighting sub-panel to enable it. This release also includes several accompanying bug fixes: sub-panels are now reliably closed along with the main panel, and a missing weight or mask wave now aborts the fit with a clear error instead of proceeding silently.
  • PeakFunctions2.ipf - Fixed several bugs affecting the reported ± uncertainty of peak coefficients and derived values in Multipeak Fitting and Curve Fitting (the fitted values themselves were not affected): the ExpConvExp peak's Location uncertainty omitted the contribution from the peak's own position parameter, and had a sign error in its degenerate-width branch; the Doniach-Sunjic peak's Location uncertainty applied a sign factor to the wrong pair of cross terms; the GaussConvExp (EMG) and LorentzianHeight peaks' Area uncertainty was scaled using the peak amplitude instead of the peak area; the LogNormal peak's Area and FWHM uncertainties erroneously squared the covariance terms, inflating them; the Voigt and VoigtArea peaks' FWHM uncertainty forced a covariance term to be positive instead of preserving its true sign; and the Voigt and VoigtArea peaks' Amplitude uncertainty omitted a sign factor for the GaussFWHM and LorentzFWHM parameters, which the amplitude formula uses only via absolute value, producing an incorrectly signed propagated error whenever either coefficient was negative.
  • Multipeak Fitting.ipf - Fixed several issues in the Post-Collision Interaction (PCI) peak shapes: PCI Threshold no longer returns zero at x = 0, PCI Threshold now automatically switches to the PCI Approximation shape instead of producing invalid results when an unsupported asymmetry value is encountered, and a sign error in the initial-guess calculation was fixed. The PCI Threshold (Strict) shape's polarization-dependent asymmetry factor also had a sign and ratio error in its high-excess-energy branch, causing a discontinuity in the peak shape at the boundary between the two energy branches instead of matching smoothly. Added a new "2nd Electron" derived parameter reporting the calculated partner-electron energy for the PCI peak shapes.
  • Multipeak Fitting.ipf - The Total Area uncertainty reported when simultaneously fitting multiple peaks now accounts for the covariance between peaks, instead of assuming each peak's contribution is independent.
  • Varimax.ipf - Fixed a sign-flip bug and a bug where communalities were normalized along the wrong axis, either of which could produce incorrect Varimax-rotated factors.
  • fuzzyClasses.ipf - Fixed a bug where two of the four fuzzy membership terms used each other's variance value, which could produce membership values that do not sum to 1.
  • PeakFunctions2.ipf - Fixed a bug where switching a peak's fit function to Voigt in Multipeak Fitting left the width and height fields blank (NaN) instead of populating them from the existing coefficients.
  • WMFitFunctions.ipf - Fixed the built-in DoG (Difference of Gaussians) fit function's surround term, which diverged for points far from the peak center instead of decaying to zero.
  • Bivariate Histogram 2.ipf - Fixed BiHistWave() so that points falling below the histogram's X or Y range are excluded instead of being written into an incorrect bin.
  • Log Histogram.ipf - Fixed a bug where a value falling exactly at (or beyond) the last bin's upper edge was written one element past the end of the destination wave instead of being excluded.
  • leastSquaresEstimate.ipf - Fixed a bug that caused the function to read one wave element past its final computed estimate instead of returning that estimate.
  • FilterDialog.ipf - Fixed the "dB min -50" scaling option in the Filter Design Laboratory's frequency response display, which reported magnitudes 2.5 times too large.
  • WMBatchCurveFitResults.ipf - Fixed the nearest-point search used when displaying Batch Curve Fitting results, which applied an extra square root to only one of its two axis terms, distorting the distance metric.
  • PeakFunctions2.ipf - Improved numerical instability in large Voigt shapes by replacing a piece of the shape expression with a better built-in Igor expression. erfc(shape)*exp(shape^2) was changed to erfcx(shape).
  • Global Fit 2.ipf - Corrected the displayed Voigt fit function equation so that it matches the formula actually used by the fit; the fit results themselves were not affected.
  • Global Fit 2.ipf - Fixed a bug (introduced in Igor Pro 10) where entering the number of coefficients for a user-defined fit function that lacks Curve Fitting dialog comments did not fill in the Coefficients list.
  • WMBatchCurveFit.ipf, Scatter Dot Plot.ipf, Color Table Control Panel.ipf - Fixed control placement on Windows that mixed points and panel coordinates. This caused controls in the Batch Curve Fitting and Scatter Dot Plot panels to overlap when the panels were first opened.

Examples

  • Layout Demo.pxp - Updated to walk you through creating a multi-panel figure from graphs in a page layout.

Forum

Support

Gallery

Igor Pro 10

Learn More

Igor XOP Toolkit

Learn More

Igor NIDAQ Tools MX

Learn More