MATLAB利用GEBCO高分辨率水深散点数据生成Delft3D水深(.dep)文件

GEBCO data downloadicon-default.png?t=N7T8https://download.gebco.net/数据下载地址如上链接,打开如下所示

界面左侧菜单,依次选择产品版本(SELECT GRID VERSION)

输入经纬度上下限(ENTER BOUNDARIES)

格式选择2D netCDF也就是常用的.nc文件

设定的BOX范围会在右侧展示

 随后在左侧菜单栏下拉至底部选择加入菜篮(Add to basket),并在View basket中下载数据


 

将下载好的数据解压,并在MATLAB中处理成.xyz文件使用如下

% 本代码修改水深原始散点数据
clear
clc

% 文件名
filename = 'gebco_2023_n34.0_s27.0_w120.0_e126.0.nc';

% 查看文件结构
% ncinfo(filename);

% 读取经纬度坐标
lon = ncread(filename,'lon');
lat = ncread(filename,'lat');


% 生成坐标网格
[lon,lat] = meshgrid(lon,lat);

% 读取高程信息,向下为正
ele = -ncread(filename,'elevation');
ele = double(ele');

% contourf(lon,lat,ele) % 绘图验证 
% colorbar

% 整合数据
data = [lon(:),lat(:),ele(:)];

% 把水位为负的都删去
index = data(:,3)<0;
data(index,:) = [];

% 写入
writematrix(data,'dep_revised',Delimiter=' ')

% 重命名
movefile("dep_revised.txt","dep_revised.xyz")

需要注意,Delft3d中水深数据(bathymetry)向下为正,删除负值, 也就是陆地点数据

可以将数据绘制contourf验证一下,案例验证如下东海地形图


 

最后打开Delft3d-》Grid-》QUICKIN

导入网格(.GRD)以及刚才生成的水深散点(.xyz)

方法:File-》Attribute Files-》Open samples

然后Operations-》Triangular Interpolation就生成对应网格的水深啦,记得保存生成的数据。

 


如果觉得有用的话,

感谢您的点赞收藏和关注~

激励我继续更新吧!

欢迎评论区讨论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值