Resampling non-uniformly sampled 2D Surface
37 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Ranjan Sonalkar
il 24 Dic 2020
Commentato: Star Strider
il 29 Dic 2020
I have a 2D surface that is created from orthographic transformation of uniformly sampled surface in latitude/longitude coordinates. So, the transformed surface is non-uniformly sampled in orthographic coordinates (x, y). I would like to resample it to a specific uniform resolution in the orthographic axes.
Is there a function that can do this?
4 Commenti
Star Strider
il 29 Dic 2020
That will work!
There was a bit of a discrepancy between the title of your post: Resampling non-uniformly sampled 2D Surface and ‘... orthographic transformation of uniformly sampled surface ...’ so I went with the non-uniform situation in my Answer, because it will cover both possibilities.
Risposta accettata
Star Strider
il 24 Dic 2020
Not a single function, however there are a group of functions that used in concert can do it.
Try this example:
x = sort(rand(1, 10))*10; % Latitude Vector
y = sort(rand(1, 12))*10; % Longitude Vector
[X,Y] = meshgrid(x, y); % Create Matrices
Z = sin(X*pi/2) .* cos(Y*pi/2); % Create Matrices
figure
surf(x, y, Z)
xlabel('x')
ylabel('y')
zlabel('Z')
title('Surface With Non-Uniform Grid Spacing')
xv = linspace(min(x), max(x), 40); % Create New Uniformly-Spaced Vector From Original ‘x’
yv = linspace(min(y), max(y), 50); % Create New Uniformly-Spaced Vector Vector From Original ‘y’
[Xq,Yq] = ndgrid(xv, yv); % Create Interpolation Matrices With Uniform Grid Spacing
Zq = griddata(X(:),Y(:),Z(:), Xq, Yq, 'natural'); % Interpolate Matrices To New Regular Grid
figure
surf(Xq, Yq, Zq)
xlabel('Xq')
ylabel('Yq')
zlabel('Zq')
title('Interpolated Surface With Uniform Grid Spacing')
.
0 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Interpolation in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!