Bilinear interpolation of gridded data
14 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Diljit Dutta
el 11 de Sept. de 2019
Comentada: rakshanda showkat
el 2 de Abr. de 2024
I have GCM data for a region with grid size of 2.81 x 2.79 degree(lat x lon) where starting latitude range is 4.9 degree to 41 degree and longitude range is 59 degree to 110 degree. So i need to interpolate this data on a 2.5 X 2.5 degree with latitude range 5-40 degree and longitude range 60-100 degree. how do i use the meshgrid aND LOOPS to do the interpolation
2 comentarios
Respuesta aceptada
darova
el 12 de Sept. de 2019
Hi! This how i do this
clc,clear
load Variables.mat
[m,n,k] = size(predictor);
lon = linspace(59.06,120.93, m);
lat = linspace(4.18,40.46, n);
lon1 = 60:2.5:100; % new range
lat1 = 5: 2.5:40;
[LAT, LON] = meshgrid(lat,lon); % original mesh
[LAT1, LON1] = meshgrid(lat1,lon1); % new mesh
predictor1 = zeros([size(LAT1) k] ); % preallocation
for i = 1:k
pred = predictor(:,:,i);
predictor1(:,:,i) = interp2(LAT,LON,pred,LAT1,LON1);
end
% DRAW SOMETHING !
R = predictor(:,:,1);
R1 = predictor1(:,:,1);
s = pi/180;
[x,y,z] = sph2cart(LAT*s,LON*s,R);
[x1,y1,z1] = sph2cart(LAT1*s,LON1*s,R1);
%%
plot3(x,y,z,'b') % original data: blue lines
hold on
surf(x1,y1,z1) % interpolated data: color surface
hold off
axis equal
6 comentarios
rakshanda showkat
el 2 de Abr. de 2024
Hi, i am trying to do bias correction by quantile mapping, can you suggest how to do that?
Más respuestas (1)
Nicolas B.
el 11 de Sept. de 2019
Hi,
may I recommand you to take a look at the function griddedInterpolant to solve your case? It will be definitely faster than a solution with loops.
Regards
3 comentarios
Ver también
Categorías
Más información sobre Interpolation en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!