Problem longitude and latitude contour in a surface plot

3 visualizaciones (últimos 30 días)
Miguel andres
Miguel andres el 26 de Mayo de 2020
Comentada: darova el 30 de Mayo de 2020
Hi all,
I try to overlay the contour of the coastline of the Strait of Gibraltar into my surface plot of my datas. The bathymetry that I use is from ETOPO, and it´s the one that the has been used for the hidrodynamic model that I use. I reshape the matriz with imresize so both datas has the same dimension and the I plot it.
My problem is when I plot the supossed contour of the coast because it does't match with the end of my data.
Do you know if there is a solution for this??
Thank you in advance.
  4 comentarios
darova
darova el 28 de Mayo de 2020
The size of the datas of the bathymetry (the values=0 are the contour) is 55x87 whre:
bat_lon= 87x1
bat_lat=55x1
bat_altitude=44x87
Try to interpolate bat_lat variable
bat_lat1 = interp1(1:55,bat_lat,linspace(1,55,44));
Miguel andres
Miguel andres el 29 de Mayo de 2020
Thank you!
But this didn,t work, because the batimetry that holds the values is bat_altitude.
I think I should interpolate that variable with interp2 so I obtain a matrix 40x144.
I tried this but I get an error, maybe you can help with the code.
bat_altitude1=interp2(1:87,1:55,bat_altitude,linspace(1,87,40),linspace(1,55,144));
Thank you again

Iniciar sesión para comentar.

Respuestas (1)

darova
darova el 29 de Mayo de 2020
Sure, use meshgrid
[m,n] = size(bat_latitude);
xx = linspace(1,n,40);
yy = linspace(1,m,144);
[x1,y1] = meshgrid(xx,yy);
[x,y] = meshgrid(1:n,1:m);
bat_altitude1 = interp2(x,y,bat_altitude,x1,y1);
  6 comentarios
Miguel andres
Miguel andres el 30 de Mayo de 2020
Here ir the link to google drive:
I plot the velocity as:
figure
peak_vel_atl=pcolor(lon,lat,peak_mod_atl);colormap jet; colorbar,caxis([0 5])
peak_vel_atl,EdgeAlpha=0,caxis
shading interp
Thank you
darova
darova el 30 de Mayo de 2020
Whoa, 200mb, that is too much
Can't you overlay your contour using existing coordinates?
Example
[X,Y] = deal(zeros(20));
t = linspace(-1,1,20)*pi/4; % define angle fo arc part
[x,y] = pol2cart(t,2); % get cartesian arc coordinates
for i = 1:20
X(:,i) = linspace(x(i),5,20);
Y(:,i) = linspace(y(i),tan(t(i))*5,20);
end
Z = X*0; % Z = 0 (flat)
pcolor(X,Y,Z)
line(X(:,[1 end]),Y(:,[1 end]),'linew',2,'color','b')
line(X([1 end],:)',Y([1 end],:)','linew',2,'color','b')
axis equal

Iniciar sesión para comentar.

Community Treasure Hunt

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

Start Hunting!

Translated by