Интерполяция данных АИС (координаты) - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь выполнить интерполяцию данных AIS, аналогично 31464345 . Однако я пытаюсь сделать это на данных AIS, в которых у меня нет временных кодов или какого-либо представления о порядке точек.

Пример данных

pts = [(4.903713333333333, 52.373506666666664),
 (4.90375, 52.37636166666667),
 (4.9053, 52.375725),
 (4.9059, 52.372165),
 (4.905261666666667, 52.372796666666666)]

points plotted on Amsterdam cannals

код, который я использую:

import numpy as np
from scipy.interpolate import splprep, splev
import matplotlib.pyplot as plt

# define pts from the question

tck, u = splprep(pts.T, u=None, s=0.0) 
u_new = np.linspace(u.min(), u.max(), 1000)
x_new, y_new = splev(u_new, tck, der=0)

plt.plot(pts[:,0], pts[:,1], 'ro')
plt.plot(x_new, y_new, 'b--')
plt.show()

Однако я получаю ошибку «ValueError: Invalid input.» Я думаю, это потому, что мои данные не упорядочены, это правильно? Как бы я это исправить

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...