非構造化メッシュのセル中心にマルチポイントデータを補間する方法は?


11

マルチポイントフィールドデータのセットがあり、各ポイントデータセットは非構造化メッシュの単一セルに関連しています。目標は、最も正確な方法で、直接または間接的にセル中心にデータを補間することです。

逆距離加重補間を使用する場合、ソースとターゲット(セルの中心)間の距離が非常に短い場合、浮動小数点例外が発生する可能性があります。

構造化メッシュでのこの種の補間では、ボリュームウェイト補間が使用されます。これは、任意の形状のメッシュセルに直接変換されません。

SIGFPEを回避するためにIDW補間の許容値を導入することは、補間を非効率にする可能性のあるテストを導入しない場合にのみ意味があります。IDW補間では、すべての重みの分母に十分に小さなを追加することが可能なオプションですか?この問題に適した補間方法は何ですか?δ

追加情報:

メッシュからポイントへの補間には、重心座標に基づいた補間を使用しています。メッシュの各多面体セルは、四面体に分解されます。セル中心フィールドは、IDW補間を使用してセルポイントに補間されます。各ポイントに対して検索が行われ、その中にある四面体が検出され、重心補間を使用し値が補間されます

点からメッシュへの補間では、これは不可能です。セルの中心値は不明です。を強制する四面体構成を組み立てる方法はありません。ここで、はポイントPとセル中心Cに関連する重みです。これは、ポイント構成が任意であるという事実に由来しています。そのため、現在は浮動小数点の例外が発生しないように、IDWを使用しています。この問題により適した補間方法はありますか?W P CpWPC=1WPC


使用している重み関数についてもう少し詳しく教えてください。終点に特異点を持たない多項式重み関数を使用するいくつかの補間アプローチがあります。
ペドロ

1
補間する関数が滑らかな場合、放射基底関数を使用してメッシュからグローバルに補間することを考えましたか?あなたはPythonとscipyのダウンロードを使用して迅速なプロトタイプを構築しました可能性があり、ここを参照してください:docs.scipy.org/doc/scipy/reference/generated/...を
fcruz

私が働いているライブラリは、実際にはRBFをサポートしています(コンパクトとグローバルの両方のサポート)が、これについてはほとんど経験がありません。ヒントをありがとう.. :)
tmaric

1
あなたはscipyのダウンロードRBFライブラリをみてください、この傑出したを意識するバグ
N00B

セルの頂点に従属変数の勾配の値がありますか?
ジョントラボルタ

回答:


7

散在データ補間用の多様なソフトウェアパッケージへのリンクは、私のWebページhttp://www.mat.univie.ac.at/~neum/stat.html#fitにあります

本「
GE Fasshauer、MATLABを使用したメッシュフリー近似法、World Scientific 2007」
は、包括的な最新技術を提供しています(2006年現在)。

散在データの補間に関する最新の論文:
http : //www.stanford.edu/group/uq/pdfs/journals/jcp_scattered_2010.pdf
http://www.math.auckland.ac.nz/~waldron/Preprints/ Box-splines / box-splines.pdf

どの方法を使用するかは、結果の補間関数の使用に大きく依存します。クリギング手法は確率モデルに基づいているため、補間するデータが多少ノイズが多い場合に適しています。放射基底関数は、(安定して実装され)視覚的に満足のいく結果が必要な場合(低曲率補間)に優先されます。


Neumaier教授、Webサイトのリンクで収集した方法と回答の中で、質問で説明されているアプリケーションに関する具体的な推奨事項はありますか?
ジェフオックスベリー

何か学ぶべきことがあると思います...いつものように、学習する必要があるものの量は時間とともに指数関数的に増加し、私が学べることはせいぜい直線的に増加します。:)ありがとう。最初の実装にはIDW補間を使用し、散在データの補間について読みます(RBFはトレンディな選択のようです)。:)
tmaric

1
@GeoffOxberry:パッケージを試すことなく、時間の経過とともにリンクを収集しました。したがって、特定のものを推奨することはできません。しかし、定性的な推奨事項に関するコメントを追加しました。
アーノルドノイマイアー

3

以下に、有限ボリュームメッシュ上で、あるポイントセットから別のポイントセットに補間する方法の例を示します。

変数の配列を配置しました-メモリに保存するデータは、セル中心の値を表します。フィールド変数とその勾配を保存します。勾配は、最小二乗問題を解く周囲の値から検出されます(ハウスホルダー反射によるQRを使用)。

取り決めは異なる場合がありますが、原則は同じです。

その後、探している場合-セル面の中心の値:ϕf

ϕnb1+ϕnb1rnb1,f=ϕf

ϕnb2+ϕnb2rnb2,f=ϕf

...

ϕnbn+ϕnbnrnbn,f=ϕf

ここで、は隣接するセルの中心を示し、1からnになります(多くの場合、1で十分です。2を使用します。つまり、顔を共有する隣接セルを使用します)。は、n番目の隣接セルの中心から中心に向かう距離ベクトルです。nbrnbn,ff

それから私は書く

ϕf=1n(i=1nϕnbi+i=1n(ϕnbirnbi,f))

したがって、これらのポイントで1組のフィールド値と勾配が必要です。どの周囲のポイントが補間ポイントに寄与するかを決定する必要があります。また、これらのポイントから補間するポイントまでの距離ベクトルも決定する必要があります。

例:セルの頂点の値を表すデータを保存する場合、この方程式を使用して、すべての状況に応じてセルの中心値などを検索します。

したがって、これはポイント周辺のテイラー級数に基づいています。二次導関数を使用して、より正確な表現を導き出すこともできます。


こんにちは、今まで返信する時間はありませんでした...乗数でのは、均一なメッシュ上のセルポイント通信で機能します。私は一般的なセルの形状とポイントの一般的な分布を扱っているので、平均化ではなく、重み付き補間が必要です...少なくとも少なくともそう思う.. ?私ができることはLSQです:あなたのブラケットの正方形を作り、最小化します1ϕf1n
...-tmaric

1
これをコードにその場で書きました。ここでは、データは空間で線形に変化するものと想定されているため、テイラー級数の一次導関数のみが含まれています。メッシュに関する前提条件はなく、どのメッシュでも機能します。
ジョントラボルタ

1
ただし、重みを追加できます。重み付きバージョンと重みなしバージョンの両方がある最小二乗勾配再構成のように。
ジョントラボルタ

まあ、ありがとう、しかし、私はこれを一般的なフィールド、特に急なジャンプ(2相流)を含むフィールドで必要とします...平均を行うだけで、これはフィールドを滑らかにします。これは逆LSQ問題のように見え、勾配を見つける代わりに値を見つけることができますが、最後にではなく最小化を使用する必要があります。私はそれを試してみます、それがうまくいけば、あなたの答えを受け入れます!ありがとう!1n
tmaric

詳細については、メールで連絡してください(ユーザープロファイルで確認できます)。どのように問題を解決するのか興味があります。
ジョントラボルタ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.