5

Matlab の griddata 関数、または任意の 2D グローバル補間メソッドに相当する C++ を探しています。

Eigen 3 を使用する C++ コードがあります。x、y、z 値を含む固有ベクトルと、Matlab の Meshgrid によって生成されるものと同等の 2 つの固有行列があります。ベクトルからの z 値を Meshgrid の等価物によって定義されたグリッド ポイントに補間したいと思います (これは元のポイントの外側を少し越えて拡張されるため、わずかな外挿が必要です)。

私は正確さをあまり気にしません。完璧である必要はありません。ただし、解決策として NaN を受け入れることはできません。補間は、データ ギャップに関係なく、メッシュ上のあらゆる場所で計算する必要があります。つまり、凸包内にとどまることは選択肢ではありません。

私は最初から補間を書きたくないのですが、誰かが私にかなり良い(そして明示的な)レシピを教えてくれたら、試してみます。(少なくともアルゴリズム的な意味で) 書くのが最も嫌なことではありませんが、車輪の再発明はしたくありません。

事実上、私が持っているのは散在する地形の場所であり、後で使用するために、名目上は地形の下のある距離をたどる直線メッシュを定義したいと考えています。ノードポイントを取得したら、うまくいきます。

これまでの私の研究:

ここでの質問: C++ の MATLAB 関数は近い回答を生成しましたが、残念ながら提案は無料ではありませんでした (SciMath)。

Generic Mapping Tools で使用される補間関数を理解しようとしましたが、頭が痛くなりました。

Grid Algorithms ライブラリ (GrAL) について簡単に調べました。誰かがコメントを持っているなら、私はそれを感謝します。

Eigen にはサポートされていない内挿パッケージがありますが、これは (サーフェスではなく) 曲線のみに適用されるようです。

編集: VTK には matplotlib 機能があります。おそらく、表示目的でそのどこかで使用される補間が必要です。それがアクセス可能で使用可能かどうかは誰にもわかりませんか?

ありがとうございました。

4

1 に答える 1