0

非構造化データを構造化出力に補間する人々が利用できる多くの質問 (および回答) があります。メッシュ グリッドまたは二変量スプラインを含む解。しかし、私は逆を探しています。構造化データを非構造化 (デラウラニー) 三角形に (すばやく) 補間するにはどうすればよいですか?

私が持っているデータは、pygmsh の一部として meshio で読み込まれます。

import meshio as mio
data = mio.read(fname)

data.cells['vertex'].shape
Out[128]: (2906, 1)
data.cells['triangle'].shape
Out[129]: (213898, 3)

plt.figure()
plt.tripcolor(data.points[:, 0], data.points[:, 1], -data.points[:, 2])
plt.triplot(data.points[:, 0], data.points[:, 1], 'k.', ms=2)

以下のプロットを示します海岸線データ。この三角メッシュで更新しようとしている新しいデータがあります。規則的に構造化されたデータの値を空間内の同じ点に補間し、三角形メッシュの値を更新することを計画していました。

4

1 に答える 1

0

これに最も近いのはPython です: 三角メッシュの補間

その答えに基づいて作業し、例を使って拡張します。

newBathy['lon'].shape
Out[154]: (1040, 271)
newBathy['lat'].shape
Out[155]: (1040, 271)
newBathy['elevation'].shape
Out[156]: (1040, 271)
#I have to flatten so i don't get a shape error 
triObj = tri.Triangulation(newBathy['lon'].flatten(), newBathy['lat'].flatten()) 
ftri = tri.LinearTriInterpolator(triObj, newBathy['elevation'].flatten())
newZs = ftri(data.points[:, 0], data.points[:, 1])

これにより、既知のドメインのごく一部のデータのみが残りますが、newZ のマスクされていない値をdata.points([:,3]). 3次補間には時間がかかり、コンピューターが宇宙船のように聞こえてしまうため、最善の方法をまだ見つけていません。線形は明らかに機能しますが、見栄えが良くなる可能性があります。

ここに画像の説明を入力

于 2019-05-15T00:22:34.413 に答える