Ich habe einige Daten, die in der Form (x, y, z, V)
wo x, y, z Entfernungen sind, und V ist die Feuchtigkeit. Ich lese viel über StackOverflow über Interpolation von Python wie this und this wertvolle Beiträge, aber alle von ihnen waren über regelmäßige Raster von x, y, z
. d.h. jeder Wert von x
trägt gleichermaßen zu jedem Punkt von y
und jedem Punkt von z
bei. Auf der anderen Seite kamen meine Punkte aus 3D-Finite-Elemente-Gitter (wie unten), wo das Gitter nicht regelmäßig ist.4D-Interpolation für unregelmäßige (x, y, z) -Gitter von Python
Die beiden genannten Stellen 1 und 2, jedes von x, y, z als separate numpy Array definiert dann verwendet sie so etwas wie cartcoord = zip(x, y)
scipy.interpolate.LinearNDInterpolator(cartcoord, z)
dann (in einem 3D-Beispiel). Ich kann nicht dasselbe tun, da mein 3D-Gitter nicht regelmäßig ist, daher hat nicht jeder Punkt einen Beitrag zu anderen Punkten. Wenn ich diese Ansätze wiederholt habe, habe ich viele Nullwerte gefunden und viele Fehler bekommen.
Hier sind 10 Abtastpunkte in Form von [x, y, z, V]
data = [[27.827, 18.530, -30.417, 0.205] , [24.002, 17.759, -24.782, 0.197] ,
[22.145, 13.687, -33.282, 0.204] , [17.627, 18.224, -25.197, 0.197] ,
[29.018, 18.841, -38.761, 0.212] , [24.834, 20.538, -33.012, 0.208] ,
[26.232, 22.327, -27.735, 0.204] , [23.017, 23.037, -29.230, 0.205] ,
[28.761, 21.565, -31.586, 0.211] , [26.263, 23.686, -32.766, 0.215]]
Ich möchte den interpolierten Wert V
des Punktes bekommen (25, 20, -30)
Wie kann ich es bekommen?