非構造化グリッドには場所があります。
Earth System Modeling Framework(ESMF)をご覧ください。再グリッド用のコードがいくつかあります(特にこの目的のためです)。また、並列コードを使用して気の利いたことを行いました。システム全体はモデルを結合するように設計されているため、他にも有用なものがあるかもしれません。
その他の注意事項:
「かなりの数のポイントに対してこれを効率的に行う方法はありません」
まあ、効率的は相対的なものです-ツリー構造でグリッドを取得したら、O(logn)で検索できます。です。
また、タイムステップごとに補間を行う必要がありますが、グリッドが適応していない場合、あるグリッドから別のグリッドへのマッピングは一定のままです。したがって、そのマッピング(つまり、各グリッドのどの要素が他の要素に対応するか)を便利な方法で計算して保存し、それから(グリッドが変更されるまで)計算する必要はありません。
これにより、精度とパフォーマンスのバランスを取りたい補間コードが残ります。三角形を横切る単純な線形補間は高速であり、十分かもしれません。
「kd-treeを使用して特定のポイントの最も近いノードを検索することを考え、その要素の形状関数を使用します」
最も近いノードでは要素を取得できないことに注意してください。したがって、必要な要素を見つけるためにもう少しやりたいことがあります。1つのオプションは、バウンディングボックスによって保存/検索する代わりにrtreeを使用することです。各検索で複数の要素を取得できますが、それらのうちどれが直接正しいかを確認できます。