Mein Problem wie das Problem in dem Thread ist Finding index of nearest point in numpy arrays of x and y coordinates, aber es wird erweitert:Finding nächste xy-Punkt in numpy Array und zweitnächste mit Bedingung
Zur besseren Visualisierung ist hier ein Bild (manipuliertes Bild, original aus: 112BKS durch - Eigenen WerkOriginal graph/Daten von [.. ..?], CC BY-SA 3.0, link to page):
Auf der einer Seite gibt es eine Reihe datafield
. Es besteht aus einem Nummernfeld mit Elementen [value x y]
. Das sind die dünnen blauen Linien mit den Zahlen (sie sind die value
). Auf der anderen Seite befindet sich das Array orangeline
in einem Array mit Elementen [x y]
.
Was ich tun möchte, ist die value
von Elementen in orangeline
zu berechnen.
Ich habe ein konkretes Element von orangeline
mit dem grünen Kreis visualisiert. Der Wert dafür kann ich mit den beiden Elementen datafield
interpolieren, visualisiert mit den Dreiecken. Als Ergebnis erhalte ich für den grünen Kreis mit einem value
zwischen 225 und 230.
Erster Schritt:
für jedes Element findet in orangeline
das nächste Element in datafield
.
(. In dem Beispiel, das das rosae Dreieck)
Zweiter Schritt:
für jedes Element findet in ‚orange‘ nächstgelegenen Elemente in datafield
aber mit einer anderen value
als dem aus dem ersten Schritt.
(In dem Beispiel, das die braune Dreieck ist.)
Dritter Schritt: die value
in orangeline
für jedes Element Interpolation aus diesen beiden Werten gegründet und die Abstände zu diesen Elementen.
Erster Schritt kann mit
mytree = scipy.spatial.cKDTree(datafield[:, 1:3])
dist1, indexes1 = mytree.query(orangeline)
gelöst wird aber jetzt weiß ich nicht, wie das Datenfeld für den zweiten Schritt zu filtern. Gibt es eine Lösung?
Haben Sie [mit 'griddata'] (http://stackoverflow.com/a/3867302/190597) in Erwägung gezogen,' datafield's Werte zu 'zu interpolieren Orangenlinie? – unutbu