一、数据下载:
1.GEBCO
进入官网,点击下载网格数据
点击图片进入下载
自己填所需区域进行下载(可以按住ctrl键用鼠标圈区域),下Grid数据就行,map图片可以选择下载,就一预览图,然后左下角加入购物车,然后提交,输入邮箱,在邮箱确认一下就行。
2、ETOPO
参考关于如何下载ETOPO1数据并使用_海洋打工肥仔的博客-CSDN博客
二、画图
clear;clc;
f1='gebco_2023_n65.0_s50.0_w160.0_e200.0.nc';
lat=ncread(f1,'lat');
lon=ncread(f1,'lon');
ele=ncread(f1,'elevation');
ele(find(ele>0))=nan;%将海拔大于0的的值设为nan,更方便观察海深分布
%%
%GEBCO数据画图
figure(1);%等值线填充图
m_proj('mercator','lon',[160 200],'lat',[50 65]);
m_coast('patch',[0.92 .92 .92],'edgecolor','none');
m_grid('linestyle','-','gridcolor','w');
hold on
[x,y]=meshgrid(lon,lat);
m_contourf(x,y,ele');%ele'是ele的转置
colormap(winter(128));%调色
bar=colorbar;bar.Label.String = '深度';bar.Label.FontSize = 12;%设置colorbar
xlabel('经度','fontsize',12);
ylabel('纬度','fontsize',12);
title('白令海海深分布图','fontsize',15);
saveas(gca,'白令海深度分布图.tif');
%%
figure(2);%三维分布图
contour3(x,y,ele',100,'fill','on');
bar2=colorbar;bar2.Label.String = '深度';bar2.Label.FontSize = 12;
xlabel('经度','fontsize',12);
ylabel('纬度','fontsize',12);
title('白令海海深三维分布图','fontsize',15);
saveas(gca,'白令海深度三维分布图.tif');
%%
%利用etopo1数据和matlab自带函数包作海拔分布图
figure(3);
lon_lim=[160 180];
lat_lim=[50 65];
[topo,refvec]=etopo('etopo1_bed_c_f4.flt',1,lat_lim,lon_lim);%函数经度要求是-180至180,而不是0-360,就画不全,其他海域画没问题
lon=linspace(lon_lim(1,1),lon_lim(1,2),size(topo,2));
lat=linspace(lat_lim(1,1),lat_lim(1,2),size(topo,1));
geoshow(topo,refvec,'DisplayType','surface')
demcmap(topo, 256);
成图大概如下