基于MATLAB绘制地形海拔高度云图

该文探讨了如何使用MATLAB对地形数据进行处理,包括读取数据、插值和绘制海拔高度云图。通过`griddata`函数进行插值,并利用`contourf`生成等高线云图,展示了MATLAB在地形测绘中的应用。

​✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测 雷达通信  无线传感器

信号处理 图像处理 路径规划 元胞自动机 无人机  电力系统

⛄ 内容介绍

地形特征点散点,规则网格,三角网格及等高线等多种地形数据的存储形式及数据结构特殊性很适合matlab的数据处理特点.本文研究如何在matlab中通过简单的编程,从而对地形数据进行必要的处理,以满足地形测量要求,并给出了数据处理实例.

⛄ 完整代码

% 地形海拔高度云图绘制

clear all;close all;

%================================================================

alldata=load('data.asc');

xmin=min(alldata(:,1));xmax=max(alldata(:,1));

ymin=min(alldata(:,2));ymax=max(alldata(:,2));

%================================================================

% Method1:griddata插值   linear,cubic,natural,nearest,v4

xl=linspace(xmin,xmax,101)';

yl=linspace(ymin,ymax,101)';

[X,Y,Fxy]=griddata(alldata(:,1),alldata(:,2),alldata(:,3),xl',yl,'linear'); % v4会超内存报错

%================================================================

% 绘图

[C,h]=contourf(X,Y,Fxy,20,'w-'); % 等高线云图

shading flat; % 平滑过渡

colorbar; % 调出颜色对应的bar

caxis([1050 1550]); % 设置bar的数值范围

colorbar('ytick',[1050:50:1550]); % 设置bar的刻度值

set(gca,'FontName','Times New Roman','FontSize',12);

set(gca, 'PlotBoxAspectRatio',[(xmax-xmin)/(ymax-ymin) 1 1],'XLim',[xmin xmax],'YLim',[ymin ymax],'ZLim',[0 1]);

ab=15;xlabel('{\itx}/m','FontName','Times New Roman','fontsize',ab);

ylabel('{\ity}/m','FontName','Times New Roman','fontsize',ab);

title('地形海拔高度云图','fontsize',ab);

%================================================================

⛄ 运行结果

⛄ 参考文献

[1]杨韫澜, 胡海彦, 陈虹,等. 基于Matlab的地形数据处理[J]. 测绘科学与工程, 2010(1):4.

❤️部分理论引用网络文献,若有侵权联系博主删除

❤️ 关注我领取海量matlab电子书和数学建模资料

 

% 读取数据文件 filename = 'E:\SpaceSim\scenes\assign3\Output\OutPut_assign3_输出(Output)_20250618211554.txt'; data = readtable(filename, 'Delimiter', ' ', 'MultipleDelimsAsOne', true, 'HeaderLines', 1); % 提取指定列数据 seconds = data.Var1; % 第一列: SECONDS (时间) flux = data.Var4; % 第四列: 磁通量 longitude = data.Var5; % 第五列: 经度 latitude = data.Var6; % 第六列: 纬度 altitude = data.Var7; % 第七列: 海拔 % 检查数据长度 disp(['数据长度: ', ... '经度=', num2str(length(longitude)), ... ', 纬度=', num2str(length(latitude)), ... ', 海拔=', num2str(length(altitude))]); % 强制统一数据长度(取最小长度) min_len = min([length(longitude), length(latitude), length(altitude)]); longitude = longitude(1:min_len); latitude = latitude(1:min_len); altitude = altitude(1:min_len); % 过滤无效值 validIdx = ~isnan(longitude) & ~isnan(latitude) & ~isnan(altitude); longitude = longitude(validIdx); latitude = latitude(validIdx); altitude = altitude(validIdx); %% 1. 绘制轨迹云图(经纬度+海拔颜色) figure; scatter(longitude, latitude, 15, altitude, 'filled'); xlabel('经度 (deg)'); ylabel('纬度 (deg)'); title('卫星轨迹云图(颜色表示海拔高度)'); colorbar; grid on; %% 2. 绘制瞬时通量曲线 figure; plot(seconds(1:length(flux)), flux, 'b-', 'LineWidth', 1.5); xlabel('时间 (秒)'); ylabel('磁通量 (nT)'); title('瞬时磁通量变化曲线'); grid on;有错:>> plotSpaceSimResults 错误使用 readtable (第 517 行) 错误: 文件: unique.m 行: 21 列: 15 字符向量未正常终止。 出错 plotSpaceSimResults (第 3 行) data = readtable(filename, 'Delimiter', ' ', 'MultipleDelimsAsOne', true, 'HeaderLines', 1); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >>
06-19
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

matlab科研助手

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

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

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

打赏作者

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

抵扣说明:

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

余额充值