2012-06-26 25 views
6

Ich verwende die Griddata-Funktion in scipy, um 3- und 4-dimensionale Daten zu interpolieren. Es funktioniert wie ein Champion, außer dass es eine Reihe von NaNs zurückgibt, weil einige der Punkte, die ich brauche, außerhalb des Bereichs der Eingabedaten liegen. Da N-d-Daten ohnehin nur mit der Interpolation im "linearen" Modus arbeiten, sollte es ein Kinderspiel sein, dass Griddaten eine Extrapolation durchführen, anstatt nur NaN zurückzugeben. Hat jemand dies getan oder einen Workaround gefunden? Zur Klarstellung: Ich habe unstrukturierte Daten, daher kann ich keine der Funktionen verwenden, die ein reguläres Raster benötigen. Danke! Alex3D-Extrapolation in Python (im Grunde, scipy.griddata extrapoliert)

+0

Würde es helfen, die Punkte außerhalb des Bereichs mit einem gewissen konstanten Wert zu füllen? In diesem Fall könnten Sie einfach den fill_value angeben – Dhara

+3

Wollen Sie auch wirklich hochrechnen? Manchmal ist es eine viel bessere Wahl, NaNs aus dem Verkehr zu ziehen und zu wissen, dass man außer Reichweite ist. Ich habe univariate Splines von scipy verwendet, es extrapoliert stillschweigend und die Ergebnisse können ziemlich "aus" sein. – Dhara

+0

Meine Situation ist: Ich messe einige Werte an einigen Punkten, und muss dann Werte an einer Reihe anderer Punkte durch Inter-/Extrapolation berechnen . Ein konstanter Wert oder NaN hilft also wirklich nicht. Ich weiß, wie temperamentvoll die Splines sein können, also dachte ich linear wäre eine sichere Wette. Ich hätte gerne etwas, das aber auf N-D-Daten funktioniert. – user1483697

Antwort

-1

Nicht ganz sicher, dass dies für Sie arbeiten, und es ist noch nicht verfügbar, aber in der Entwicklungsversion von numpy gibt es eine ‚Pad‘ Array-Funktion ...

https://github.com/numpy/numpy/blob/master/numpy/lib/arraypad.py

Einer die Optionen sind 'linear_ramp', das ausgehend vom Kantenwert nach außen extrapoliert (Pads) und linear bis zu einem bestimmten Endwert zunimmt/abnimmt.

Es ist eine reine Python-Funktion, so dass Sie es nur in Ihren Pfad kopieren könnten und Import (ungetestet von mir aber)

+0

sieht völlig unabhängig von mir aus. Hier sind Dokumente, nichts zu Interpolation/Extrapolation https://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.pad.html – denfromufa

Verwandte Themen