Как я могу применить фильтр Savitzky Golay к данным о местоположении GPS, которые имеют более 2 Y координат с одной и той же координатой X - PullRequest
0 голосов
/ 11 апреля 2019

Сейчас я использую приемник GNSS (GPS).

Приемник GNSS дал мне достаточно точную информацию о местоположении.

Однако я должен исправить их, чтобы построить эталонную карту для дронов итранспортное средство.

Я столкнулся с некоторой проблемой при интерполяции и сглаживании карты, состоящей из координат X и Y.

Моя карта выглядит следующим образом.

Она имеет 2 разных Yкоординаты в координате 1 X.

введите описание изображения здесь

Я просто хочу, чтобы на справочной карте была линия, а не точки.

Исходные точкиданные выглядят так, когда я их увеличиваю.

введите описание изображения здесь

Чтобы сделать точки, чтобы стать линией, я попытался их интерполировать и сгладить, норезультат плохой.

Мой результат здесь.

Причина плохого результата в том, что в одной и той же координате X более 10 координат Y

введитеописание изображения здесь

И мой код здесь.

Как правильно применить Savitzky Golay Filter к моим данным?

Должен ли я использовать фильтр для 2D?

Пожалуйста, помогите этому маленькому бедняге.

def interpolateNsmoothMap(self):
    coordinate_x_nparray = np.array(self.coordinate_x_list)
    coordinate_y_nparray = np.array(self.coordinate_y_list)
    xx = np.linspace(coordinate_x_nparray.min(), coordinate_x_nparray.max(), 10000)
    interpolated = scipy.interpolate.interp1d(coordinate_x_nparray, coordinate_y_nparray, kind='linear')
    smoothed = scipy.signal.savgol_filter(interpolated(xx), 1001, 3)

    plt.figure(figsize=(15, 15))
    plt.plot(xx, smoothed, marker='o', linewidth=0, markersize=10)
    plt.suptitle('Map')
    plt.xlabel('UTM X')
    plt.ylabel('UTM Y')
    plt.gca().xaxis.set_major_formatter(mtick.FormatStrFormatter('%.6f'))
    plt.gca().yaxis.set_major_formatter(mtick.FormatStrFormatter('%.6f'))
    plt.grid('on')
    plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...