2012-03-10 17 views
3

私はマスクされた行列を持っています。マスクされた領域で補間を行いたい。 私はRectBivariateSplineを試しましたが、マスクされたリージョンがマスクされていると認識せず、これらのポイントを使って補間しました。私はまた、X、Y、Z 1dベクトルを作成した後にbisplrepを試しました。彼らはそれぞれ長さ45900でした。それはBsplinesを計算するのに多くの時間がかかりました。そして最後にbisplevを実行している間にセグメンテーションエラーを出しました。 2次元マトリックスのサイズは270x170です。大きな2次元マスクされた配列の補間

RectBivariateSplineをマスク領域を補間に含めないようにする方法はありますか?それとも他の方法がありますか? bisplrepが遅すぎました。

indiajoe、よろしくお願いUPDATE: グリッドは '線形' 関数は、合理的な仕事をしているとscipy.interpolate.Rbf小さいです。しかし、配列が大きければエラーになります。

マトリックスを補間して滑らかにする機能はありますか?

以下の結論も得ました。私が間違っていれば私を修正してください。

1)RectBivariateSplineは、完全に埋め込まれた行列を必要とするため、マスクされた行列は使用できません。私はあなたと同じような問題があり、また、「thin_plate」機能は私にとって素晴らしい作品れるRBFとメモリエラーを(bisplinesとセグメンテーションフォールトを取得し、午前

答えて

1
非常に遅く

、しかし... 。

私のデータは構造化されていないが構造化された方法で作成されているので、私はRbfを使うことができるように、データポイントの密度の半分または1/3のダウンサンプリングを使用します。しかし、それでもやっていないよりも優れています)、多くの重なり合った領域でマトリックスを細分し、次に各領域のrbf補間を作成し、1つの点を補間するときに適切な補間を選択します。

また、マスクされた配列を使用している場合でも、マスクされていない配列で補間を実行してから、結果にマスクを適用できます。 (まあ実際にはありません、コメントを参照)

希望これは、「あなたがマスクされた配列を持っている場合にも、あなたはまだ、結果にマスクを適用し、マスクされていない配列内の補間を行うことができます。」誰か

+1

を支援します。一般的にいいえ。マスクされた値はナンセンスかもしれません。あなたの補間でこのナンセンスを考えれば、マスクされた領域の外でもナンセンスの結果が得られます。 –