smoothing プログラム仕様
- spectrum_.smoothing.SmoothingByPolynomialFit(y, n)
多項式フィッティング(サビツキー・ゴレイフィルターに類似)によってデータを平滑化します。
- 概要:
各データポイントの周囲 n 点の範囲で多項式をフィッティングし、データを平滑化します。
- 詳細説明:
この関数は、Savitzky-Golayフィルターの重み付け係数 w23j を用いて、 各データポイント y[i] をその周囲 n 点の加重平均に置き換えることで平滑化を行います。 これにより、ノイズを低減しつつ、元のデータの形状を保持する効果が期待できます。 窓の端点では、利用可能なデータのみが考慮されます。
- パラメータ:
y -- list or np.ndarray: 平滑化するY座標のデータ配列。
n -- int: 平滑化に使用する窓幅(ポイント数)。
- 戻り値:
list: 平滑化されたY座標のデータ配列。
- spectrum_.smoothing.SmoothingBySimpleAverage(y, n)
シンプルな移動平均法によってデータを平滑化します。
- 概要:
各データポイントに対して、指定された窓幅 n 内のデータの平均値を計算し、平滑化します。
- 詳細説明:
データ配列 y の各要素について、その要素を中心とした窓幅 n の範囲にある 全データポイントの平均値を新しい値として算出します。 窓の端点(データ配列の最初と最後)では、利用可能なデータのみが平均計算に使用されます。
- パラメータ:
y -- list or np.ndarray: 平滑化するY座標のデータ配列。
n -- int: 平滑化に使用する窓幅(ポイント数)。
- 戻り値:
list: 平滑化されたY座標のデータ配列。
- spectrum_.smoothing.diff2backward(x, y, i)
2点後方差分法により関数の導関数を計算します。
- 概要:
与えられたデータポイント (x, y) のインデックス i における1階導関数を計算します。
- 詳細説明:
導関数は (y[i] - y[i-1]) / (x[i] - x[i-1]) の式で計算されます。 計算が可能な範囲 (1 <= i <= n-1) 外のインデックスが指定された場合は、空文字列を返します。
- パラメータ:
x -- list or np.ndarray: X座標のデータ配列。
y -- list or np.ndarray: Y座標のデータ配列。
i -- int: 導関数を計算するデータポイントのインデックス。
- 戻り値:
float or str: 計算された導関数、または計算範囲外の場合は空文字列。
- spectrum_.smoothing.diff2forward(x, y, i)
2点前方差分法により関数の導関数を計算します。
- 概要:
与えられたデータポイント (x, y) のインデックス i における1階導関数を計算します。
- 詳細説明:
導関数は (y[i+1] - y[i]) / (x[i+1] - x[i]) の式で計算されます。 計算が可能な範囲 (0 <= i <= n-2) 外のインデックスが指定された場合は、空文字列を返します。
- パラメータ:
x -- list or np.ndarray: X座標のデータ配列。
y -- list or np.ndarray: Y座標のデータ配列。
i -- int: 導関数を計算するデータポイントのインデックス。
- 戻り値:
float or str: 計算された導関数、または計算範囲外の場合は空文字列。
- spectrum_.smoothing.diff3(x, y, i)
3点中心差分法により関数の導関数を計算します。
- 概要:
与えられたデータポイント (x, y) のインデックス i における1階導関数を計算します。
- 詳細説明:
導関数は (y[i+1] - y[i-1]) / (2.0 * (x[i] - x[i-1])) の式で計算されます。 計算が可能な範囲 (1 <= i <= n-2) 外のインデックスが指定された場合は、空文字列を返します。
- パラメータ:
x -- list or np.ndarray: X座標のデータ配列。
y -- list or np.ndarray: Y座標のデータ配列。
i -- int: 導関数を計算するデータポイントのインデックス。
- 戻り値:
float or str: 計算された導関数、または計算範囲外の場合は空文字列。
- spectrum_.smoothing.diff5(x, y, i)
5点中心差分法により関数の導関数を計算します。
- 概要:
与えられたデータポイント (x, y) のインデックス i における1階導関数を計算します。
- 詳細説明:
より広範な5つのデータポイントを使用して導関数を計算します。 計算が可能な範囲 (2 <= i <= n-3) 外のインデックスが指定された場合は、空文字列を返します。
- パラメータ:
x -- list or np.ndarray: X座標のデータ配列。
y -- list or np.ndarray: Y座標のデータ配列。
i -- int: 導関数を計算するデータポイントのインデックス。
- 戻り値:
float or str: 計算された導関数、または計算範囲外の場合は空文字列。
- spectrum_.smoothing.diff7(x, y, i)
7点中心差分法により関数の導関数を計算します。
- 概要:
与えられたデータポイント (x, y) のインデックス i における1階導関数を計算します。
- 詳細説明:
より広範な7つのデータポイントを使用して導関数を計算します。 計算が可能な範囲 (3 <= i <= n-4) 外のインデックスが指定された場合は、空文字列を返します。
- パラメータ:
x -- list or np.ndarray: X座標のデータ配列。
y -- list or np.ndarray: Y座標のデータ配列。
i -- int: 導関数を計算するデータポイントのインデックス。
- 戻り値:
float or str: 計算された導関数、または計算範囲外の場合は空文字列。
- spectrum_.smoothing.initialize(app)
アプリケーションのパラメータを初期化します。
- 概要:
アプリケーションのコアパラメータオブジェクト app.cparams を初期設定します。
- 詳細説明:
tkParams オブジェクトを生成し、入力ファイル、処理モード、X/Y軸のラベル、 データ範囲、平滑化に使用する次数と窓幅、リサンプリング設定など、 プログラム実行に必要なデフォルト値を設定します。
- パラメータ:
app -- tkApplication: tkApplicationのインスタンス。
- spectrum_.smoothing.main(app)
アプリケーションのメイン処理を実行します。
- 概要:
cparams.mode に応じて適切な処理(テストまたはプロット)を呼び出します。
- 詳細説明:
この関数はプログラムのエントリーポイントの一つとして機能し、 設定されているモードに基づいて test 関数を実行します。 'test' または 'plot' モードが指定されている場合は、test(app) が呼び出されます。 それ以外の無効なモードが指定された場合は、エラーメッセージを表示してプログラムを終了します。
- パラメータ:
app -- tkApplication: tkApplicationのインスタンス。
- spectrum_.smoothing.test(app)
データの平滑化処理を実行し、結果をプロットして保存します。
- 概要:
指定された入力ファイルからデータを読み込み、各種平滑化手法を適用し、 結果をグラフに表示し、Excelファイルに保存します。
- 詳細説明:
app.cparams に設定されたパラメータに基づいて、データの読み込み、 X/Y軸のフィルタリング(xmin, xmax)、そして平滑化処理(simple または polynomial)を実行します。 cparams.mode が 'test' の場合、複数の条件で平滑化を試行し、複数のサブプロットに表示します。 それ以外の場合は単一の平滑化処理を行い、結果をExcelファイルに保存します。 平滑化後のデータは、必要に応じてリサンプリングされます。
- パラメータ:
app -- tkApplication: tkApplicationのインスタンス。
- spectrum_.smoothing.update_vars(app)
コマンドライン引数に基づいてアプリケーションのパラメータを更新します。
- 概要:
sys.argv を解析し、提供されたコマンドライン引数で app.cparams の値を上書きします。
- 詳細説明:
スクリプト実行時にコマンドラインから渡される引数を読み取り、 対応するアプリケーションパラメータ(入力ファイル、X/Y軸、データ範囲、 平滑化メソッド、平滑化次数、窓幅、微分次数、リサンプリング設定など)を更新します。 引数が指定されていない場合は、initialize 関数で設定されたデフォルト値が維持されます。
- パラメータ:
app -- tkApplication: tkApplicationのインスタンス。
- spectrum_.smoothing.usage(app)
使用方法を表示します。
- 概要:
スクリプトのコマンドライン引数の利用方法を標準出力に表示します。
- 詳細説明:
この関数は、プログラムが不正な引数で呼び出された場合や、 ユーザーがヘルプを求めた場合に、期待される引数の形式とその意味を説明します。
- パラメータ:
app -- tkApplication: tkApplicationのインスタンス。