[matlab]南海地形眩晕图代码

[复制链接]
发表于 2025-9-27 15:30:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
[matlab]南海地形眩晕图代码
请ChatGPT帮写个南海地形眩晕图代码
图片

图片

代码
  1. .rtcContent { padding: 30px; } .lineNode {font-size: 12pt; font-family: "Times New Roman", Menlo, Monaco, Consolas, "Courier New", monospace; font-style: normal; font-weight: normal; }
  2. clc;clear;close all
  3. % 读取数据
  4. file='F:\data\etopo\etopo1.nc';
  5. lon=double(ncread(file,'x'));
  6. lat=double(ncread( file,'y'));
  7. h=double(ncread(file,'z'));
  8. % 选定区域南海
  9. area  =[108 125 12 26];
  10. ln =find(lon>=area(1)&lon<=area(2));
  11. la=find(lat>=area(3)&lat<=area(4));
  12. lon = lon(ln);lat  = lat(la);H = h(ln,la);
  13. %% %%m_pcolor画出了区域的等深线图
  14. close all
  15. figure;
  16. set(0,'defaultfigurecolor','w')
  17. set(gcf,'position',[50 50 1300 900])
  18. subplot(121,'position',[0.1 0.065 0.45 0.7])
  19. m_proj('Miller', 'long', [108 125], 'lat', [12 26]);
  20. cmap=flip(colormore_65([50]));
  21. caxis([-5000 0])% 这些必须放在m_shaderelief的前面,不然不可用
  22. % 通过经纬度坐标的高程数据,生成X/Y坐标的高程数据
  23. [IM,X,Y]=m_image(lon,lat,H');
  24. % 将X/Y坐标的高程数据画图,注意设置coords参数为map
  25. m_shadedrelief(X,Y,IM,cmap,'coords','map');
  26. m_gshhs_f('patch',[0.8 0.8 0.8]);
  27. xticks = 108:2:126;
  28. yticks = 12:2:26;
  29. m_grid('tickdir', 'out', 'gridlines', 'no', 'fontsize', 14, 'linewidth', 2, ...
  30.     'xtick', xticks, 'ytick', yticks);
  31. ax = gca;
  32. ax.LineWidth = 2;
  33. hold on
  34. m_scatter(115,19,'^','sizedata',80,'markerfacecolor','r')
  35. m_text(115-0.2,19-0.4,  'Buoy Site','color','r','fontsize',15);
  36. m_text(108.2,25.55,'(a)', 'FontSize', 18,'Fontweight','bold');
  37. %5 little picture
  38. subplot(122,'position',[0.54 0.12 0.45 0.6])
  39. clc;clear;
  40. % 读取数据
  41. file='F:\data\etopo\etopo1.nc';
  42. lon=double(ncread(file,'x'));
  43. lat=double(ncread( file,'y'));
  44. h=double(ncread(file,'z'));
  45. % 选定区域南海
  46. area  =[112 1118 16 23];
  47. ln =find(lon>=area(1)&lon<=area(2));
  48. la=find(lat>=area(3)&lat<=area(4));
  49. lon = lon(ln);lat  = lat(la);H = h(ln,la);
  50. % 坐标的meshgrid
  51. [x,y]=meshgrid(lon,lat);
  52. x=x'; y=y';
  53. %% %%m_pcolor画出了区域的等深线图
  54. m_proj('Miller', 'long', [112 118], 'lat', [ 16 22]);
  55. cmap=flip(colormore_65([50]));
  56. caxis([-5000 0])% 这些必须放在m_shaderelief的前面,不然不可用
  57. % 通过经纬度坐标的高程数据,生成X/Y坐标的高程数据
  58. [IM,X,Y]=m_image(lon,lat,H');
  59. % 将X/Y坐标的高程数据画图,注意设置coords参数为map
  60. m_shadedrelief(X,Y,IM,cmap,'coords','map');
  61. m_gshhs_f('patch',[0.8 0.8 0.8]);
  62. xticks = 108:1:126;
  63. yticks = 12:1:26;
  64. m_grid('tickdir', 'out', 'gridlines', 'no', 'fontsize', 14, 'linewidth', 2, ...
  65.     'xtick', xticks, 'ytick', yticks);
  66. ax = gca;
  67. ax.LineWidth = 2;
  68. hold on
  69. m_scatter(115,19,'^','sizedata',80,'markerfacecolor','r')
  70. m_text(115-0.2,19-0.4,  'Buoy Site','color','r','fontsize',15);
  71. m_text(112.13,21.85,'(b)', 'FontSize', 18,'Fontweight','bold');
  72. set(gca, 'DataAspectRatio', [1 0.9 1]); % 设置坐标轴的长宽比
  73. % 添加一个全局 colorbar
  74. hcb = colorbar('southoutside'); % 将 colorbar 放在下面
  75. set(hcb, 'Position', [0.12 0.04 0.8 0.03],'fontsize',10,'fontweight','bold'); % 手动调整 colorbar 位置
  76. export_fig('scs_shadinginterp.jpg','-r700')
复制代码
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表