3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

scipy.interpolate.griddata で nan が出るときの対処メモ

Last updated at Posted at 2020-09-01

背景

scipy.interpolate.griddata で scatter point データを regular grid(pixel)で補間しようとすると nan が出る.

linear などの補間のときに起こります. nearest では生じません.

原因

グリッドの範囲がデータ点の凸包の外側にあると生じます. fill_value がデフォルト nan です.

たとえば [-10, 10]^2 の領域で 1 刻みでグリッドを作っているが, データ点が [-0.01, 0.01]^2 にまとまっている場合です.

特にエラーというわけではないので, なにもメッセージ出してくれないため最初手惑ってしまいますね.

対応

  • nearest でよい場合は nearest を使う
    • nearest で変換したのち, 画像データとして linear/cubic 補間するとか
  • データ点の bounds を求めて, それを基準にグリッド範囲をうまく設定する
    • データ点が複数のクラスタを構成している場合は, クラスタ単位で処理したほうがいいかも.
  • あらかじめある程度グリッド領域を埋めるようにダミーのデータ点を作っておくか, 基準値(デフォルト値)がわかっている場合は fill_value オプションで補間がうまくいかなかったときの値を設定する.
3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?