JASMINE-Mission / jasmine-imagesim

image simulator of JASMINE
1 stars 0 forks source link

use `RectBivariateSpline` instead of `interp2d` #81

Closed astronasutarou closed 2 years ago

astronasutarou commented 2 years ago

photonsim/wfe.pyread_FringeZernike37 の内挿方法を変更しました.

scipy.interpolate.interp2d では kind='linear' で補間すると artificial なパターンが生まれてしまうケースがいくつかありました.interp2d の内部で使用されているコードに問題があるようです.scipy.interpolate.RectBivaliateSpline を使用することできれいに補間できることがわかったのでコードを変更しました.

astronasutarou commented 2 years ago

Zernike coefficients 1..9 を表示したカラーマップです (補間なし). image

astronasutarou commented 2 years ago

interp2d を使用して linear interpolation をした例です.Components 2, 3, 6, 9 あたりで artificial な構造が見えています. image

astronasutarou commented 2 years ago

RectBivariateSpline で補間した例です.どの components でも artificial な構造は見えていません. image

astronasutarou commented 2 years ago

この設定で計算したところこれまでと大きく異なる distortion パターンが出てきたので確認中です…… image

astronasutarou commented 2 years ago

これが正しいパターン (w/o interpolation by @tkamizuka ) image

astronasutarou commented 2 years ago

引数の定義を勘違いしていたために x, y が flip した状態で出力されていたようです.補間関数が interp2d を使用していたときの出力と一致するように c92e341 で改修を加えました.

astronasutarou commented 2 years ago

5×5 のサンプル点で結果を確認しました. image

astronasutarou commented 2 years ago

もうちょっと多いサンプル点で計算を走らせていますが問題なさそうです.