ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

MATLAB基础绘图:绘制南海海底地形图(含九段线)

2026/8/27 20:31:18 拓冰建站 浏览量
MATLAB基础绘图:绘制南海海底地形图(含九段线) 本次主要使用MATLABm_map工具包ETOPO2022高精度地形数据绘制标准、高清的南海海域海底地形分布图代码可直接运行附带九段线绘制、精细化配色、岸线渲染、自定义色标等科研常用功能适合海洋地质、海洋气象、地理科研绘图使用。一、前期准备1. 所需工具MATLAB推荐2018b及以上版本m_map工具箱MATLAB专业地理绘图工具支持投影、岸线、网格、地理图层绘制2. 所需数据文件地形文件这里我使用的是全球30秒高精度海底地形数据ETOPO_2022.nc是海洋地形绘图通用权威数据南海九段线shp文件单独的九段线矢量图层用于叠加绘制国界九段线二、代码整体功能概述本套代码实现四大核心功能读取全球ETOPO海底地形NC数据经纬度、水深高程精准裁剪研究区海域范围数据预处理剔除陆地高程、无效值填充、矩阵维度适配地理可视化墨卡托投影绘图、精细化岸线、自定义配色、叠加九段线、自定义色标刻三、完整可运行代码逐行详细注释clear all; clc; close all; %% 读取数据 Inpath ETOPO_2022.nc;% lon ncread(Inpath, lon); lat ncread(Inpath, lat); DEPTH ncread(Inpath, z); %% 裁剪研究区 lon_idx find(lon 106 lon 124); lat_idx find(lat 2 lat 23); lon_real lon(lon_idx); lat_real lat(lat_idx); DEPTH(DEPTH 0) NaN; DEPTH_real DEPTH(lon_idx, lat_idx); %% 可视化 [lon_mesh, lat_mesh] meshgrid(lon_real, lat_real); DEPTH_plot DEPTH_real; DEPTH_plot(DEPTH_plot 0) NaN; figure(Color, w); m_proj(mercator, lon, [106 124], lat, [2 23]); m_pcolor(lon_mesh, lat_mesh, DEPTH_plot); shading flat; colormap(flipud([flipud(m_colmap(blues, 10)); m_colmap(jet, 118)])); caxis([-6000 0]); % 精细分辨率岸线 m_gshhs_f(patch, [0.8 0.8 0.8], edgecolor, k); %% 九段线绘制 S m_shaperead(china_nine_dotted_line); for k 1:length(S.ncst) m_line(S.ncst{k}(:,1), S.ncst{k}(:,2), color, r, linewidth, 1.5); end hold on %% 网格、色标、保存 m_grid(tickdir, out, gridlines, no, ... fontsize, 14, linewidth, 2, box, fancy); hc colorbar; set(hc, ylim, [-4000 0], fontsize, 15, ... ytick, [-4000:500:0], ... yticklabel, {4000,3500,3000,2500,2000,1500,1000,500,0}); set(get(hc, title), string, Depth (m), fontsize, 15); set(gca, FontSize, 20); print(-dpng, -r600, output.png);四、关键代码细节1. 数据正负值说明ETOPO数据规则正数陆地高程负数海洋水深。代码中DEPTH(DEPTH 0) NaN可以彻底屏蔽陆地数据只保留海洋地形避免绘图干扰。2. 矩阵转置修正ETOPO原始数据维度为【经度×纬度】而MATLAB填色绘图需要【纬度×经度】因此必须用DEPTH_plot DEPTH_real转置否则图像会错位、拉伸变形。五、常见报错与解决方法报错1未定义函数或变量 m_proj/m_pcolor解决m_map工具箱未加载将工具箱文件夹添加到MATLAB永久工作路径重启MATLAB即可。报错2无法读取nc文件解决检查文件名、文件路径是否完全一致建议将数据放在代码同级目录。报错3九段线读取失败解决替换代码中九段线路径为自己电脑的绝对路径路径不要含中文、空格。报错4图像拉伸、错位解决检查是否遗漏矩阵转置代码DEPTH_plot DEPTH_real。六、输出效果说明投影方式标准墨卡托投影符合地理期刊绘图规范图层浅灰色陆地黑色岸线红色九段线渐变水深填色精度30秒高精度地形细节丰富无锯齿格式支持600dpi超高清PNG导出可直接用于论文、报告、博客配图七、拓展修改技巧修改研究区域直接修改lon、lat的筛选范围可适配东海、黄海、全球任意海域修改水深范围调整caxis和色标ylim适配浅海/深海专项绘图更换配色替换m_colmap色系可使用parula、cool、gray等色系关闭九段线直接注释九段线循环代码即可