ScyPy の interpolate モジュール interp1d クラスで補間

Python のライブラリ ScyPyinterpolate モジュールには,様々な補間法に対応したクラスが用意されています。

その中の一つである interp1d クラスを使って補間を行います。

補間の種類

interp1d クラスには,様々な補間方法が指定できます。今回は,以下の補間方法を使ってみます。

kind説明
‘liner’線形補間。kind を指定しない場合は ‘liner’ となる(デフォルト)。
‘zero’0 次スプライン補間
‘slinear’1 次スプライン補間
‘quadratic’2 次スプライン補間
‘cubic’3 次スプライン補間

interp1d の構文

scipy.interpolate.interp1d は,補間処理を実行するインスタンスを生成できます。

scipy.interpolate.interp1d(
    x, y,
    kind='linear',
    axis=-1,
    copy=True,
    bounds_error=None,
    fill_value=nan,
    assume_sorted=False
    )

補間するデータ

補間を行うデータを用意します。今回は,全天日射量のデータを用意しました。

TIMESTAMP と全天日射量 (globalSolarRadiation) の CSV です。30 分周期の時系列データとなっています。

TIMESTAMP,globalSolarRadiation
2024/5/29 6:00,13
2024/5/29 6:30,101
2024/5/29 7:00,162
2024/5/29 7:30,181
2024/5/29 8:00,288
2024/5/29 8:30,179
2024/5/29 9:00,465
2024/5/29 9:30,744
2024/5/29 10:00,863
2024/5/29 10:30,939
2024/5/29 11:00,980
2024/5/29 11:30,1022
2024/5/29 12:00,994
2024/5/29 12:30,1013
2024/5/29 13:00,814
2024/5/29 13:30,770
2024/5/29 14:00,628
2024/5/29 14:30,652
2024/5/29 15:00,498
2024/5/29 15:30,704
2024/5/29 16:00,571
2024/5/29 16:30,502
2024/5/29 17:00,371
2024/5/29 17:30,282
2024/5/29 18:00,184

interp1d で補間

interp1d で補間を行います。5 分周期で補間を行ってみます。

以下,青丸が元データ,赤丸が補間したデータです。青丸の間に 5 つの赤い点があります。(例えば,0 分と 30 分の間は,5 分,10 分,15 分,20 分,25 分が補間される。)

線形補間

線形補間した結果を示します。青丸の点を直線で結んだところに赤丸がプロットされています。

図 全天日射量(30 分周期)を線形補間(5 分周期)した結果

0 次スプライン補間

0 次スプライン補間した結果を示します。0 次スプライン補間では,青丸の 5 分後,10 分後,15 分後,20 分後,25 分後に同じ大きさの赤丸が補間されます。

図 全天日射量(30 分周期)を 0 次スプライン補間(5 分周期)した結果

1 次スプライン補間

1 次スプライン補間した結果を示します。1 次スプライン補間した結果は,線形補間した結果と同じになります。

2 次スプライン補間

2 次スプライン補間した結果を示します。

図 全天日射量(30 分周期)を 2 次スプライン補間(5 分周期)した結果

3 次スプライン補間

3 次スプライン補間した結果を示します。

図 全天日射量(30 分周期)を 3 次スプライン補間(5 分周期)した結果

まとめ

ScyPy の interpolate モジュール interp1d クラスで補間した結果を紹介しました。

Python の ScyPy ライブラリを用いると,簡単に補間が行えるので,大変便利です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です