Периодическая интерполяция со scipy sqlrep

1

Я не могу заставить scipy.interpolate.splrep работать с периодическими точками данных... Я думаю, что я не обрабатываю параметр "per" правильно. До сих пор я работаю с этим кодом:

from scipy.interpolate import splrep
import numpy as np
x = np.concatenate((np.linspace(-180, 180, 720),np.linspace(180, -180, 720)))
y = np.concatenate((np.linspace(-180, 180, 720),np.linspace(-180, 180, 720)))
spl = splrep(x, y, per=True)

Но он не работает, поднимает "Ошибка на входных данных",

Теги:
scipy
interpolation

1 ответ

1
Лучший ответ

Как указано в документации, точки данных x и y должны определять кривую y = f (x). Это означает: для каждой точки в x должна быть ровно одна точка в y.

Возьмите, к примеру, эти данные sin(x): Изображение 174551

Каждая точка в x имеет ровно одну точку в y, а 1d splinefit работает хорошо.

Теперь возьмите (что-то вроде) ваши предлагаемые данные в сравнении: Изображение 174551

Каждая точка в x появляется два раза и, что еще хуже, с двумя разными значениями в y. Поэтому эти данные недействительны.

  • 0
    Хорошо, это очень ясно, спасибо. В конце полярные координаты решили мою проблему.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню