2016-01-04 9 views
1

У меня есть ряд координат, которые представляют данные в 2D скалярном поле: x [i], y [i], F [i]. Однако x [i] и y [i] не находятся в прямолинейной сетке, они «случайно» помещаются. Я хочу интерполировать f [i], чтобы оценить его значение на прямолинейной сетке местоположений по x, y.Интерполировать в сетку из случайных точек

Эта проблема должна быть такой же, как и интерполяция высоты местности (см. http://www.cs.uu.nl/geobook/interpolation.pdf). Например, если у вас есть карта высоты местности, она не обязательно измеряется на прямолинейной сетке. Однако многие карты предпочли бы высоту на прямолинейной сетке. Поэтому данные должны быть интерполированы в прямолинейную сетку.

Я использую Matlab и имеет команду griddata, которая выполняет интерполяцию в прямолинейную сетку. В методологии используется триангуляция Делоне и некоторая интерполяция, которая не описана. Я мог догадаться, как это работает, но мне кажется, что этот тип кода должен был уже написан кем-то другим.

См.: http://www.mathworks.com/help/matlab/ref/griddata.html?refresh=true для справки относительно того, как гриддата производит прямолинейную интерполяцию из «разброса» данных.

Я хочу интегрировать код в приложение C#, поэтому я ищу библиотеку или исходный код для включения. ALGLIB будет выполнять кубическую сплайн-интерполяцию от равномерно распределенных до равномерно распределенных друг от друга. Я не могу найти ничего, что будет работать с неравномерно распределенными данными.

ответ

0

Вы можете сделать 2 треугольника четырехсторонним. ИМО алгоритм маршевого куба дает прямолинейную сетку. Вы можете попробовать алгоритм Conquer Paul Bourke.

+0

Я не уверен, что понимаю вашу рекомендацию. Маршевые кубы создают сетку из равномерно распределенных данных. CONREC (http://paulbourke.net/papers/conrec/) также, по-видимому, требует прямолинейной сетки. Правильно? – user3533030

+0

№. Маршевый куб создает прямолинейную сетку. Триангуляция Делоне создает меньшую, лучшую сетку. DT также сложнее. – Bytemain

+0

Возможно, я не понимаю. Вот два места, которые я начал при исследовании Marching Cubes: https://en.wikipedia.org/wiki/Marching_cubes и http://graphics.stanford.edu/~mdfisher/MarchingCubes.html. Каждый из них описывает метод создания многоугольных сеток из прямолинейного «марширования» через известную функцию/поверхность. Я не понимаю, как это связано с моей проблемой. Можете ли вы указать мне на некоторые ссылки или предоставить дополнительные сведения? – user3533030