MATLAB Answers

Scattered Interpolation: Defining my own triangulation?

2 views (last 30 days)
Matthew
Matthew on 17 Sep 2020
Commented: Alexey Gorbunov on 24 Sep 2020
I'm interpolating data the comes from polar coordiate systems or terrain-following coordiante system used in numerical weather models. While that data isn't gridded in the since that it's not grid aligned, it is structured.
Scattered interpolation is slow. My understanding is that this stems from computing the delaunay triangulation. For my data it would be trivial to provide the triangulation connectivity graph along with the points.
Is there a way I can provide a pre computed triangulation to scatteredInterpolant or griddata in order to speed up my scattered interpolations? Is there some hidden class property I could fill in somewhere?

  3 Comments

KSSV
KSSV on 17 Sep 2020
ScatteredInteprolant do not demand to provide triangulation connectivity. You need to provide only the (x,y,z) points.
Matthew
Matthew on 17 Sep 2020
I know that.
I want to provide the triangulation because it's trivial for me to calculate because I know how the data are structured. I want to avoid what makes the scattered interpolation slow.
Alexey Gorbunov
Alexey Gorbunov on 24 Sep 2020
I have the same problem. I need to interpolate scattered data with predefined triangulation.
In the previous MatLab versions, it was possible using TriScatteredInterp function.
% T - triangular endpoint indexes predefined;
% x,y - data coordinates;
% V - data values;
TR = triangulation(T, [x(:), y(:)]); % creating triangulation
C = edges(TR); % finding edges of the triangulation
DT = DelaunayTri(x(:), y(:), C); % Delaunay with predefined edges
F_ne = TriScatteredInterp(DT, V(:)); % Interpolant
I have not stil find any other solution for the task...

Sign in to comment.

Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by