peaksearch プログラム仕様

ピーク検出とデータ平滑化を行うモジュール。

このモジュールは、入力データに対してSavitzky-Golayフィルタによる平滑化と微分計算を行い、 指定された閾値と条件に基づいてピークを自動的に検出します。 検出されたピークは、元のデータや処理された微分データとともにグラフにプロットされます。

関連リンク: peaksearch.py 技術ドキュメント

ピーク検出処理全体を実行し、結果をプロットします。

アプリケーションパラメータを検証し、入力データを読み込みます。 `peak_search`関数を呼び出してピークを検出し、その結果を視覚化します。 検出されたピークは、元のデータ、平滑化されたデータ、および各種微分データと共にプロットされます。 実行ログは指定されたファイルにリダイレクトされます。

パラメータ:

app (tklib.tkapplication.tkApplication) -- `tkApplication`のインスタンス。

戻り値:

なし。

戻り値の型:

None

XRF.peaksearch.initialize(app)[ソース]

アプリケーションのパラメータを初期化します。

`tkParams`オブジェクトを作成し、デフォルトのファイル名、X/Y軸の範囲、ラベル、 Savitzky-Golayフィルタのパラメータ、閾値、プロットサイズなどを設定します。

パラメータ:

app (tklib.tkapplication.tkApplication) -- `tkApplication`のインスタンス。

戻り値:

なし。

戻り値の型:

None

XRF.peaksearch.main(app)[ソース]

アプリケーションの主要な実行フローを制御します。

`exec_peak_search`関数を呼び出し、ピーク検出と結果のプロットを実行します。

パラメータ:

app (tklib.tkapplication.tkapplication) -- `tkApplication`のインスタンス。

戻り値:

なし。

戻り値の型:

None

与えられたデータに対してピーク検出を実行します。

Savitzky-Golayフィルタを用いてデータを平滑化し、1次、2次、3次微分を計算します。 その後、3次微分のゼロ交差といくつかの閾値条件に基づいてピークを特定します。

パラメータ:
  • x (list or numpy.ndarray) -- X軸のデータ配列。

  • y (list or numpy.ndarray) -- Y軸のデータ配列。

  • nsmooth (int) -- Savitzky-Golayフィルタのウィンドウサイズ(奇数)。

  • norder (int) -- Savitzky-Golayフィルタの多項式の次数。

  • threshold (float) -- ピークとみなすY値の最小閾値。

  • ydiff1_threshold (float) -- 1次微分とY値の比率に対する閾値。この値を超えるとピークとみなされない。

  • is_print (bool, optional) -- ピーク検出の過程を標準出力に表示するかどうか。デフォルトは`False`。

戻り値:

ピークのリスト(インデックス、X値、幅)と、平滑化されたYデータ、微分データ、閾値情報を含む辞書。

戻り値の型:

tuple[list[list[int, float, float]], dict]

XRF.peaksearch.update_vars(app)[ソース]

コマンドライン引数からアプリケーションパラメータを更新します。

`sys.argv`から指定されたインデックスの引数を読み込み、`tkParams`オブジェクトの 対応する属性を更新します。これにより、デフォルト設定を上書きすることが可能です。

パラメータ:

app (tklib.tkapplication.tkApplication) -- `tkApplication`のインスタンス。

戻り値:

なし。

戻り値の型:

None

XRF.peaksearch.usage(app)[ソース]

コマンドライン引数の使用方法を表示します。

スクリプトの実行方法を標準出力に表示します。

パラメータ:

app (tklib.tkapplication.tkApplication) -- `tkApplication`のインスタンス。

戻り値:

なし。

戻り値の型:

None