[FEATURE] Add warning to interpolation #159

Closed
opened 2023-11-29 12:40:01 +00:00 by cwolter · 6 comments
Member

Current behavior

Wenn man Daten interpolieren will passiert nichts. x-Daten sollten aus einem anderen Datenset genommen werden.
Einstellung: log(y), cubic
Fehlermeldung: 29/11/2023 13:33:36 - ERROR - root : Uncaught exception:
Traceback (most recent call last):
File "/tmp/.mount_NMRevamMrIm6/usr/src/gui_qt/main/management.py", line 826, in interpolate_data
k = self.add(interpolate(self.data[ids], new_x, xlog=xlog, ylog=ylog, kind=mode, extrapolate=True))
File "/tmp/.mount_NMRevamMrIm6/usr/src/nmreval/math/interpol.py", line 17, in interpolate
f = interp1d(_x, _y, kind=kind, fill_value=fill)
File "/tmp/.mount_NMRevamMrIm6/usr/lib/python3/dist-packages/scipy/interpolate/interpolate.py", line 546, in init
self._spline = make_interp_spline(xx, yy, k=order,
File "/tmp/.mount_NMRevamMrIm6/usr/lib/python3/dist-packages/scipy/interpolate/_bsplines.py", line 788, in make_interp_spline
raise ValueError("Expect x to not have duplicates")
ValueError: Expect x to not have duplicates

Expected behavior

No response

Steps to reproduce

No response

Log messages

No response

Anything else?

No response

### Current behavior Wenn man Daten interpolieren will passiert nichts. x-Daten sollten aus einem anderen Datenset genommen werden. Einstellung: log(y), cubic Fehlermeldung: 29/11/2023 13:33:36 - ERROR - root : Uncaught exception: Traceback (most recent call last): File "/tmp/.mount_NMRevamMrIm6/usr/src/gui_qt/main/management.py", line 826, in interpolate_data k = self.add(interpolate(self.data[ids], new_x, xlog=xlog, ylog=ylog, kind=mode, extrapolate=True)) File "/tmp/.mount_NMRevamMrIm6/usr/src/nmreval/math/interpol.py", line 17, in interpolate f = interp1d(_x, _y, kind=kind, fill_value=fill) File "/tmp/.mount_NMRevamMrIm6/usr/lib/python3/dist-packages/scipy/interpolate/interpolate.py", line 546, in __init__ self._spline = make_interp_spline(xx, yy, k=order, File "/tmp/.mount_NMRevamMrIm6/usr/lib/python3/dist-packages/scipy/interpolate/_bsplines.py", line 788, in make_interp_spline raise ValueError("Expect x to not have duplicates") ValueError: Expect x to not have duplicates ### Expected behavior _No response_ ### Steps to reproduce _No response_ ### Log messages _No response_ ### Anything else? _No response_
cwolter added the
Kind/Bug
label 2023-11-29 12:40:01 +00:00
Member

Das oder so was ähnliches gabs bei mir auch schon mal. Hast du in deinen Daten zwei Punkte mit exakt gleichem x-Wert? Das hatte bei mir manche interpolate-Modi durcheinander gebracht.

#103 (comment)

Das oder so was ähnliches gabs bei mir auch schon mal. Hast du in deinen Daten zwei Punkte mit exakt gleichem x-Wert? Das hatte bei mir manche interpolate-Modi durcheinander gebracht. https://gitea.pkm.physik.tu-darmstadt.de/IPKM/nmreval/issues/103#issue-121
Author
Member

Ja wir hatten zwei gleiche x-Werte. Nach Entfernen hat es funktioniert, aber auch mit zwei gleichen x-Werten funktionierts mit Einstellung linear.

Ja wir hatten zwei gleiche x-Werte. Nach Entfernen hat es funktioniert, aber auch mit zwei gleichen x-Werten funktionierts mit Einstellung linear.
Member

Das kommt mir bekannt vor. Ich habe oben nachträglich noch meine alte Issue Nummer dazugeschrieben.

Das kommt mir bekannt vor. Ich habe oben nachträglich noch meine alte Issue Nummer dazugeschrieben.
dominik self-assigned this 2023-11-29 12:55:44 +00:00
dominik added
Kind/Enhancement
and removed
Kind/Bug
labels 2023-11-29 12:55:49 +00:00
dominik changed title from [BUG] <interpolation> to [FEATURE] Add warning to interpolation 2023-11-29 12:56:15 +00:00
Member

Für die Interpolation müssen die x-Werte sortiert und, für alle Varianten außer 'linear', auch noch alle unterschiedlich sein, sonst klappt das nicht. Ich werde das mal als Warnung anzeigen lassen, damit sich Leute nicht wundern, warum das nicht geht.

Für die Interpolation müssen die x-Werte sortiert und, für alle Varianten außer 'linear', auch noch alle unterschiedlich sein, sonst klappt das nicht. Ich werde das mal als Warnung anzeigen lassen, damit sich Leute nicht wundern, warum das nicht geht.
Member

Muss man denn zwangsweise sortieren? Wenn ich in einem Datenset z.B. eine Heiz und Kühlkurve habe könnte ich ja wollen, dass die Punkte nach Index-Reihenfolge verbunden werden und nicht nach x-Wert.

Muss man denn zwangsweise sortieren? Wenn ich in einem Datenset z.B. eine Heiz und Kühlkurve habe könnte ich ja wollen, dass die Punkte nach Index-Reihenfolge verbunden werden und nicht nach x-Wert.
Member

Ja, muss man. Die Bedingung kommt auch nicht von mir, sondern Scipy setzt das voraus. Ansonsten kann es sein, dass die Ableitungen für Interpolation falsch ist.

Ja, muss man. Die Bedingung kommt auch nicht von mir, sondern Scipy setzt das voraus. Ansonsten kann es sein, dass die Ableitungen für Interpolation falsch ist.
Sign in to join this conversation.
No Milestone
No project
No Assignees
3 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: IPKM/nmreval#159
No description provided.