Данные облака точек Python для соответствия поверхности / функции - PullRequest
1 голос
/ 10 июня 2019

У меня есть неструктурированные (взятые не в обычном порядке) данные облака точек (x, y, z) для поверхности. Эта поверхность имеет выпуклости (+ z) и углубления (-z), разбросанные вокруг нерегулярным образом. Я хотел бы сгенерировать некоторую поверхность, которая является функцией исходных точек данных, а затем иметь возможность вводить конкретную (x, y) и получать из нее значение шероховатости поверхности (значение z). Как бы я поступил так?

Я смотрел на интерполяционные функции Сципи, но я не знаю, является ли создание единой функции для всей поверхности правильным? Есть ли техническое название для того, что я пытаюсь сделать? Буду признателен за любые предложения / направления.

Ответы [ 2 ]

0 голосов
/ 11 июня 2019

То, что вы пытаетесь сделать, может быть названо поверхностной подгонкой или двумерной подгонкой кривой .Вы сможете найти множество доступных алгоритмов, выполнив поиск по этим терминам.Теперь выбор конкретного алгоритма / метода должен быть продиктован:

  • источником ваших данных (существуют специализированные алгоритмы или варианты более распространенных алгоритмов, адаптированные для определенных областей применения)
  • в результате использования ваших данных в будущем (в зависимости от того, что вы собираетесь с ними делать, возможно, вам нужно будет легко рассчитать производные и т. Д.)

Это нелегкопредставлять сложные данные (особенно зашумленные), используя одну функцию.Таким образом, есть много исследований об этом.Однако во многих случаях аппроксимация кривой очень успешна и очень широко используется.

0 голосов
/ 10 июня 2019

Я не знаю, является ли создание единой функции для всей поверхности правильным подходом?

Полагаю, это зависит от ваших данных. Давайте предположим, что базовая форма вашей поверхности сферическая. Тогда вы можете смоделировать его как таковой.

Если ваша поверхность более сложная, чем сфера, вы все равно можете смоделировать окрестности (x, y) как таковые. Возможно, вы могли бы даже рассмотреть вашу поверхность как плоскую в ближайшей окрестности (x, y).

...