【Matlab】中国东海阴影立体感地图

【Matlab】中国东海阴影立体感地图
【Matlab】中国东海阴影立体感地图
【Matlab】中国东海阴影图立体感画法
以前分享过一次,链接如下:
中国海域地形图

但是以前还是有些小问题,这次修改了。
另外,增加了新的画法:

另外,本期使用数据地形数据下载教程见往期:
链接如下:【数据】你不知道20种地形数据及其精度–附数据链接及其详细介绍–以及下载教学

地形裁剪数据函数见往期海洋数据处理工具包:
链接如下:
matlab 处理海洋数据并画图的工具包–ocean_data_tools
各种样式一览:代码放最后了!
图片在这里插入图片描述

更改海岸线:

在这里插入图片描述

其他样式:
图片在这里插入图片描述

图片在这里插入图片描述

陆地不显示:
图片在这里插入图片描述

图片在这里插入图片描述
在这里插入图片描述

还有最后一种样式:
图片在这里插入图片描述

图片在这里插入图片描述

图片在这里插入图片描述

最后:本公众号可提供学习交流平台:可投稿发布。可传播学术文章。代码。学术会议等。可扫码联系。

代码: 群内有全部代码数据函数等。

clear; clc; close all;

% Specify path to downloaded bathymetry.
bathymetry_dir = 'D:\data\etopo\topo_20.1.nc'; % YOU MUST MODIFY LINE 17!
% bathymetry_extract

region = [0, 45.0 ,105, 135];      % [-90 90 -180 180];
[bathy] = bathymetry_extract(bathymetry_dir,region);

% bathymetry_plot
% Load bathymetry data.
bath = bathy.z;
lat = bathy.lat;
lon = bathy.lon;

coast = load('coast_china_shore.dat');  % 加载海岸线数据
index = find(isnan(coast(:, 1)));  % 查找数据中的NaN值(海岸线分隔符)

%%
close all
figure('position',[10 10 1480./4 1755./4],'color','w')
% 绘制海洋表面
surf(lon, lat, bath.', 'LineStyle', 'none', 'FaceLighting', 'none');%, 'FaceLighting', 'none'
shading interp;  % 平滑着色,增加细节感
% 获取蓝色渐变色图(500个颜色,用于海洋部分)
blue_map = m_colmap('blues', 500);
% 创建白色渐变色图(6个颜色,用于陆地部分,纯白色到浅白色渐变)
white_map = [linspace(1, 1, 6)' linspace(1, 1, 6)' linspace(1, 1, 6)'];
% 合并蓝色渐变和白色渐变色图
combined_map = [blue_map; white_map];
% 设置颜色映射
colormap(combined_map);
% 设置深度范围,使深度小于0的区域显示为蓝色,大于0的区域显示为白色
caxis([-6000 1000]);
% 设置光源
l1 = light('Position', [0 0 1000000000], 'Style', 'infinite');  % 使用无限光源
l1.Color = [1 1 1];  % 设置为白色光源
% 使用 `lighting flat` 来避免光照模型影响白色部分
lighting flat;  % 使用平面光照模型,避免白色部分变灰
% 设置材质为 `dull`,减少反射以避免白色部分的光泽
% material dull;
% material([0.7, 0.5, 0.5]);  % 只保留环境光
material([0.7, 0.3, 0.3]);  % 只保留环境光
% 聚焦光源
camlight('headlight');  % 调整光照,聚焦在视角前方
% 设置坐标轴范围
xlim([105 130])
ylim([0 45])
% 加载并绘制海岸线
hold on
% 循环遍历海岸线数据并绘制
for i = 1:length(index) - 1
    plot(coast(index(i) + 1:index(i + 1) - 1, 1), ...
         coast(index(i) + 1:index(i + 1) - 1, 2),'color',[0.68, 0.85, 0.9], 'LineWidth', 1.2);  % 绘制海岸线,颜色为黑色
    hold on%%[0.68, 0.85, 0.9]
end
box on
% 设置视角为 2D 视图
view(2);
% 导出图像
export_fig('China_sea_version11.jpg','-r600')
% print('China_sea_version1','-dpdf','-fillpage')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海洋与大气科学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值