matlab 水文断面,基于MATLAB的河道横断面的绘制
孙晓辉+徐红霞
摘 要:对垂直于路线中线方向的地面高低所进行的测量工作称为横断面测量。横断面图是确定河道横向施工范围、计算土石方数量的必要资料,所以横断面图的绘制显得尤为重要。MATLAB可以提供强大的图形编辑功能,不仅能绘制几乎所有的标准图形,而且其表现形式也是丰富多样的。文中探讨利用MATLAB软件绘制河道横断面的方法,实践证明这是一种简单易行、易操作的方法。
关键词:MATLAB;横断面图;绘制
中图分类号:TV222.1 文献标识码:A 文章编号:1006—7973(2018)2-0073-04
1 MATLAB软件介绍
人们很难从一大堆原始的数据中发现它们的含义,而数据图形恰能使视觉感官直接感受到数据的许多内在本质,发现数据的内在联系。MATLAB提供强大的图形编辑功能,既可以绘制多种图形,还可以对图形进行修饰。不仅能绘制几乎所有的标准图形,而且其表现形式也是丰富多样的。在面向对象的图形设计基础上,使得用户可以用来开发测绘专业的专用图形。
MATLAB有两类绘图命令,一类是直接对图形句柄进行操作的底层绘图命令,另一类是在底层命令的基础上建立起来的高层绘图命令。高层绘图命令简单明了、方便高效。利用高层命令,用户只需给出一些基本参数就能绘制出所需图形。本文就是利用高层命令和横断面测量的数据进行三维横断面图的绘制。
在测量领域中,人们经常面临一个解析函数描述数据(通常是测量值)的任务。对于这个问题可以应用插值法解决,在插值法里,数据假定是正确的,要求以某种方法描述数据点之间所发生的情况。拟合也是数据优化的一种方法,在测量中数据不够多时经常用这种方法来画图。绘制横断面图时应用插值、曲面拟合的方法可以很直观的显现出河道,这样有利于横断面的分析。而且在MATLAB中可以很好的利用三维数据进行曲面的插值、拟合。
2 横断面图的测量及数据的准备
2.1 工程概况
临商河为临邑县东部主要排涝河道,自南向北流入德惠新河。自临商河流入临邑县境内开始至王书干沟以北500m处约1公里河道与邢家渡引黄干渠并行。
本次测量全程9365m,起点为王书干沟以南550m处,终点为临商河流出临邑县境处。测道右岸的支沟只对其河底高程、底宽和开口宽度进行了测量。在文中取前3000m的测量点绘制横断面图。
2.2 横断面测量过程
长期以来,如何快速准确地进行河道横断面测量一直是困扰测量人员的一个难题。过去进行横断面测量的方法包括:花杆皮尺法(适用于:山区低等级公路,精度低)、经纬仪视距法(适用于:地形复杂地区,精度较高)、水准仪皮尺法(水准尺测高差,皮尺丈量平距,适用于:地形简单地区,精度高)等。现在一般都用全站仪、GPS等先进仪器。这次德州市临商河横断面图的测量采用GPS和水准测量相结合的方法,这种水准仪与GPS相结合的测量方法速度快、测量数据也符合工程规范要求。
2.2.1 测量准备
横断面测量是一项十分关键的工作,为此成立了专职的测量小组,由具备测量专业执业资格和多年施工工作经验的测量技术人员负责,测量过程按照规范要求进行并留有记录。测量过程中按前进方向分成左右两侧,分侧测量横断面方向上各边坡点间(或至中桩)的平距及高差,平距及高差的精度要求一般为0.1m。
2.2.2 测量仪器
测量中投入使用的测量仪器如:GPS、水准仪和塔尺等都符合规范的测量精度要求,并经过有关主管部门批准的具有资质的检验单位的检测,并在检测有效期内使用。所有测量仪器使用前都得到了工程师的批准。
2.2.3 測量过程
(1)河道横断面中桩的放样。根据设计的线路坐标进行GPS中桩放样。传统的中桩放样是采用全站仪(测距仪配合经纬仪)进行放样。本次测量使用GPS-RTK技术进行中桩放样,GPS-RTK技术为横断面测量提供了便利,横断面断面测量前,在手簿上可采用坐标放样的方法设定理论中桩的坐标。数据采集时,放样点将实时显示在手簿屏幕上,并提示偏离中桩的坐标差,以便操作员纠正放样点位到中桩上。
(2)河道横断面点的测量。横断面点的测量使用水准仪测量,在中桩上安置水准仪,横断面点上放置塔尺,读出上丝、中丝、下丝的读数,进而算出距离中桩的距离差,根据中桩的高程得到横断面点的高程。测量过程中在河道两岸分别有一个操作员携带塔尺进行立尺,同时在数据的读取过程中要检查数据的正确性,使数据符合规范。如果数据不符合规范要进行重测。
(3)河道横断面点水下高程的测量。在已知水面高程的情况下,利用测深锤进行河道底部的高程的测量,测量要进行两次测量,取两次测量结果的平均值作为河道底部横断面点的高程。
2.2.4 资料整理与测量核实
测量成果资料(包括观测记录、放样记录)、图表(包括横断面图、计算资料)进行了统一编号,妥善保管。对所有观测数据,都是随测随记,没有转抄、伪造。横断面测量完毕后进行了数据的检验,所有数据符合规范,可以用于横断面图的绘制及其面积的计算。
2.3 横断面测量数据的处理
测量数据经过EXCEL的处理,得到了横断面点距离中桩的距离及其高程,整理到hdm.xls一个表格,部分截图如图1所示:
3 横断面图的绘制
3.1 基于MATLAB的横断面图的绘制
利用MATLAB编写代码绘制横断面,在绘制的过程中主要的命令为plot3(x,y,z),这个命令是根据点的三维数据绘制出立体图。其主要代码为:
%提取里程点EXCEL文件,把文件储存在MATLAB的一个矩阵中
a=xlsread('C:\Users\laosan\Desktop\hdm','sheet1');endprint
%提取横断面的里程
a1=a(:,1);
%提取横断面距离中桩的距离
a2=a(:,2);
%提取横断面点的高程
a3=a(:,3);
%画出横断面
plot3(a1,a2,a3,'-.r*');
Title('横断面');
xlabel('里程')
ylabel('距离中桩的距离');
zlabel('高程');
% 绘制格网
grid on;
所画的图像为图2:
利用MATLAB图形窗口的Rotote 3D命令从各个角度观察横断面的立体图:
沿着垂直于横断面的中轴方向观看得到图3和图4:
3.2 cass成图
在cass中选择“工程应用一生成里程文件一由纵断面线生成一新建”,自动弹出“由纵断面生成里程文件”对话框,设置各种参数,生成横断面线。还需要对横断面线进行编辑,包括横断面的序号、位置、长度等。
在地形图上,沿横断面线依次确定各个地物、地貌特征点的坐标、高程,选择“工程应用一高程点生成数据文件一有编码高程点”,输入文件名,生成坐标数据文件,保存为“xxx.dat”格式。编辑坐标数据文件。主要修改每条横断面在纵断面上的里程,横断面的序号。
选择“工程应用一绘制断面图一根据里程文件”,输入里程文件名称,根据实际需要,设置各种参数,生成每条横断面的断面图。
利用cass生成的横断面图截图为图5~图7:
通过MATLAB与cass绘制的横断面图对比可以看出,两者之间形似度非常大,而且MATLAB绘制的横断面图中的高程、里程及其距离都是根据测量数据得出来的,所以这种方法可以应用在横断面图的绘制。
3.3 三维拟合曲面的绘制
为了更形象地显示横断面,可以利用三维坐标以及数据插值、曲面拟合的方法拟合出横断面的三维彩色图,其主要的MATLAB代码为:
function hengduanmianhuatu
clf;
clear;
clc;
%提取里程点EXCEL文件
a=xlsread('C:\Users\laosan\Desktop\0200','sheet1');
%提取横断面的里程
x=a(:,1);
%提取横断面距离中桩的距离
y=a(:,2);
z=a(:,3);
%散点图
scatter3(x,y,z);
figure;
%插值
[X,Y,Z]=griddata(x,y,z,linspace(min(x),max(x))',linspace(min(y),max(y)),'v4');
%伪彩色图
pcolor(X,Z,Y);
shading interp;
title('横断面伪彩色图');
xlabel('里程')
zlabel('距离中桩的距离');
ylabel('高程');
%等高线图
figure,contourf(X,Z,Y);
title('横断面等高线图');
xlabel('里程')
zlabel('距离中桩的距离');
ylabel('高程'%拟合的三维曲面');
figure,surf(X,Y,Z);
title('横断面');
xlabel('里程')
ylabel('距離中桩的距离');
zlabel('高程');
运行程序得到的图像为图8~图11:
注释:等高线图本来是一条闭合的曲线,但是由于每一个中桩有好几个碎部点,并且在处理和绘制图像的过程中进行了插值和拟合,所以导致等高线并不是以一条闭合曲线的形式呈现的。图中峰值和低谷值是每一个横断面中最高的高程和最低的高程值。
4 结论
本文探讨了基于MATLAB的河道横断面的绘制,通过对比CASS绘制的横断面,发现这是一种可行的方法。并且为了更直观的显示河道横断面,利用横断面点的三维数据进行了横断面的拟合,得出了其三维曲面图。但是在该文中还有许多缺点,由于时间的关系,并没有利用MATLAB进行横断面面积的计算,不能从面积这一方面验证理论的正确性。endprint
matlab 水文断面,基于MATLAB的河道横断面的绘制相关推荐
- matlab设计译码器,基于MATLAB的循环码编译码器设计与仿真.doc
扳昂旨螺冈唉陨裤外狸尿恨铸伸隧刽搅必勒诚天腑皖漂豌鲁靳碑缆键兽峙棘陶宽槐撒层僧袁廖颤渐魄货鼎躬薛扬衍逮西兰迫依煤鲁虐渠惫平合啥昭并屿己笆坍痞庐披吏去凄嘛兄察突徊溅今箩直藩潦咙锨谓崇若制匹扮复淌颐糖嗅你 ...
- 「电子万年历matlab仿真」——基于Matlab的电子万年历仿真实现
「电子万年历matlab仿真」--基于Matlab的电子万年历仿真实现 作为一种具有时间显示.日期查询.闹钟提醒等功能的电子产品,电子万年历已经成为了人们日常生活中不可或缺的一部分.而在现代科技的发展 ...
- matlab分析机翼,基于Matlab对机翼断面下轮廓线的数值分析
<基于Matlab对机翼断面下轮廓线的数值分析>由会员分享,可在线阅读,更多相关<基于Matlab对机翼断面下轮廓线的数值分析(4页珍藏版)>请在人人文库网上搜索. 1.基于M ...
- matlab流量预测模型,基于MATLAB工具箱的BP神经网络年径流量预测模型研究——以塔城地区乌拉斯台河为例...
水 文 JOURNAL OF CHINA HYDROLOGY 第28卷第1期 2008年2月 Vol.28 No.1 Feb., 2008 塔城地区位于新疆维吾尔自治区西北边陲, 地处中纬, 虽属内陆 ...
- 用matlab生成srtm,基于MATLAB的SRTM数据完善方法的实验研究
第 36 卷第 6 期 2011 年 11 月 测绘科学 Science of Surveying and Mapping Vol. 36 No. 6 Nov. 作者简介: 董春来( 1963-) , ...
- matlab求解外弹道,基于MATLAB∕Simulink的通用质点外弹道程序设计.pdf
2017.01 设计与研发 基于 MATLAB/Simulink 的通用质点外弹道程序设计 崔 瀚 (沈阳工学院兵器类虚拟仿真实验教学中心, 辽宁抚顺 ,113122 ) 摘要:本文以弹丸质点外弹道学 ...
- FLAC3D可视化后处理matlab,一种基于Matlab的由Midas导入Flac3D的模型识别方法与流程...
本发明涉及岩土工程的仿真模拟研究领域,具体涉及一种基于Matlab的由Midas导入Flac3D的模型识别方法. 背景技术: 随着我国近几年经济的快速发展和基础设施等的大力投资,涉及复杂地质环境下的岩 ...
- matlab演示系统,基于Matlab的通信原理演示系统的设计与应用
基于 Matlab的通信原理演示系统的设计与应用 李 强 , 明 艳 , 吴坤君 (重庆邮电大学 通信学院 , 重庆 400065) 摘 要 : 利用 Matlab图形用户界面的开发环境和强大的通信仿 ...
- matlab指纹图像采集,基于MATLAB实现的指纹图像预处理
西南民族大学学报·自然科学版第 34 卷第 4 期 Journal of Southwest University for Nationalities⋅Natural Science Edition ...
- 基于matlab的霍夫变换,基于matlab的霍夫变换
MATLAB 三维绘图功能 Plot3函数(三维曲线图) Mesh函数(网格图) Surf函数(曲面...步骤: 1.利用hough()函数执行霍夫变换,得到霍夫矩阵; 2.利用houghpeaks( ...
最新文章
- c#将字符串转换为数组_pandas入门: 时间字符串转换为年月日
- Understanding Generative Adversarial Networks (GAN)
- imgageJ开发【Java】
- php mysql开发技术_PHP+MySQL开发技术详解—学习笔记
- Hadoop学习笔记目录
- 2017 Multi-University Training Contest - Team 1
- 关于“小米盒子”等的被喷
- 模型部署翻车记:pytorch转onnx踩坑实录
- Win10注册DLL办法
- LaTeX函数、符号及特殊字符
- Python 3.9.5 官方中文文档及打包下载
- 第九届蓝桥杯大赛青少年创意编程 SCRATCH 初级组试题解析
- 类和对象9:属性访问方法
- Verilog——秒计数器
- 代码跳转路由报错_vue路由报错Navigating to current location (/login) is not allowed踩坑总结...
- 超实平面上函数的微分定义
- [开发工具]记录MPLAB新老双IDE与C18编译器配置
- Argox-ME-2140打印机操作注意事项
- 阿里国际站新出的优品抢位会是弯道超车的新机会吗?
- IT界CICD新词-Dummy