Бикубическая интерполяция для нерегулярных сеток? - PullRequest
2 голосов
/ 04 мая 2011

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

Я смотрел на бикубическую интерполяцию, но я могу найти только примеры, относящиеся к регулярным сеткам, и мои (x, y) пары наверняка не являются регулярными.

В основном я ищу некоторые рекомендации по алгоритмам / моделям для достижения этой цели. Я рассматриваю триангулированную нерегулярную сеть, которая привлекательна, потому что она разбивается на плоскости, которые легко определить (x, y) из заданного Z. Но я бы хотел немного больше изящества.

Я знаю, это звучит как домашнее задание, не так.

Эффективность не имеет значения.

Спасибо!

Ответы [ 2 ]

3 голосов
/ 14 мая 2011

Я фактически использовал триангуляцию Делоне, чтобы разбить поля на 3-мерные поверхности X, Y, Z с Идентификатором.Затем, учитывая набор пар (Identity, Z), я формирую линию поля от каждой поверхности, и из этих линий вычисляем многоугольник, образованный из самых коротких ребер между линиями.Это дает мне область потенциальных координат x, y.

1 голос
/ 06 мая 2011

Взгляните на Kd-дерево . Сначала они получают набор рассеянных точек в 2d или 3d или 10d, затем отвечает на вопросы, как «найти 3 точки ближайшего P».

Ваши запросы z a пары? Например, с учетом набора цветных булавок на карте, таблица x y size color, можно положить все [x y] в дерево кд, а затем попросить булавки рядом с данным x0 y0.
Или можно поместить все [size color[ в дерево, а затем попросить булавки с одинаковым размером и цветом. (Обратите внимание, что большинство реализаций дерева kd используют евклидову метрику, поэтому sqrt ((size - size2) ^ 2 + (color - color2) ^ 2) должно иметь смысл.)

В Python я настоятельно рекомендую scipy.spatial.cKDTree .

См. Также SO вопросы / с тегами / kdtree .

...