文章目录

  • 前言
  • 一、绘制规则格网DEM和等高线图原理
  • 二、代码实现
    • 1.代码
    • 2.运行结果

前言

MATLAB作为强大的绘图和数学计算的编程性软件,其功能渐渐也被广泛应用于地理地形图绘制中。相比于传统的arcGIS、3Dmax、南方cass绘图软件来讲,MATLAB能够做到简便、宏观的展示地形的全貌。

一、绘制规则格网DEM和等高线图原理

1. 规则格网DEM绘制原理

  • 规则格网DEM的组织形式
    DEM(Digital Elevation Model,数字高程模型)是一定范围内规则格网点的平面坐标(X,Y)及其高程(Z)的数据集
    需要注意的是,上述是规则格网的(x,y,z)值,与普通三维坐标值(x,y,z)不同,像我们在某些途径下载的地形数据普遍以经纬坐标(B,L,H)或是大地坐标(x,y,z)构成,其呈现出空间的无规律性,当我们直接绘制时,普遍也会采用不规则三角格网TIN进行绘制。
    因此要想实现利用规则格网绘制上述的地形数据,需要实现插值转换。
  • DEM分块内插法
    如下图所示,红色点为不规则数据点集(Xi,Yi),蓝色点为规则格网点集(xi,yi)
    其中可以看出,点U,G1,D1,A为特殊点,C1,A分别具有ymax,xmin,点U,D1分别具有xmax,xmin
    因此便可以采用linspace函数,X=linspace(xU,xD1,4) Y=linspace(yA,xC1,2)‘,注X,Y都为向量,这样便可以知道每个格网点的坐标值。
  • 曲面拟合
    知道上述的格网坐标后,由于规则格网DEM是三维的,格网也为NNN的立方格网,因此在高程上呈现出忽高忽低,因此还需要对高程进行曲线拟合。具体拟合方法采用最小二乘拟合原理。


    MATLAB采用griddata函数,其用法如下
    [X,Y,Z]= griddata(x,y,v,xq,yq) 使 v = f(x,y) 形式的曲面与向量 (x,y,v) 中的散点数据拟合。griddata 函数在 (xq,yq) 指定的查询点对曲面进行插值并返回插入的值 vq。曲面始终穿过 x 和 y 定义的数据点。
    其中xq,yq分别是上面的linsqace函数对x,y进行插值的结果,z=v;通过上述拟合的结果,
    下面是原始的地形(B,L,H)数据

    使得x由k行列向量变成了n阶矩阵(每一列的元素相同)(其中k是原始地形数据的x个数,n是插值的个数)

    同理,但y插值后(即yq)要进行转置,形成n阶矩阵(每一行的元素相同)

    !!!z也成为**n阶矩阵(行列各元素不相同)**其值采用的最小二乘原理,在(xq,yq)指定的查询点对曲面进行插值返回的值。

    因此经过上面的的插值和曲面拟合之后,立体格网上数据点就具有了相应的坐标值,利用mesh函数进行绘图,便能实现地形的绘制。
    2. 等高线绘图绘制原理
    借用下面的图一和图三的俯视图可以看出,该区域为100*100的格网,每个格网点对应一个(x,y,z)坐标,我们利用matlab自带等高线函数contour或contour3函数,用法如下:
    contour(X,Y,Z) 指定 Z 中各值的 x 和 y 坐标,其中 Z 包含 x-y 平面上的高度值。MATLAB® 会自动选择要显示的等高线。Z 的列和行索引分别是平面中的 x 和 y 坐标。利用这个函数便可以合理的利用高程绘制相应的等高线图。
    具体细节原理还请各位查看https://blog.csdn.net/lweiyue/article/details/91490460

二、代码实现

1.代码

代码如下(示例):

gcd=importdata('高程点16-23-05.txt');
gcd_data=gcd.data
x=gcd_data(:,1);
y=gcd_data(:,2);
z=gcd_data(:,3);
[X,Y,Z]=griddata(x,y,z,linspace(min(x),max(x))',linspace(min(y),max(y)),"v4");
%三维地形图部分
image1=mesh(X,Y,Z)
image1.FaceAlpha=0.5;
colorbar;
title('某地区地形图');
%二维地形图部分
image2=contour(X,Y,Z,20)
colorbar
title('该地区平面等高线图');
%三维地形图部分
contour3(X,Y,Z,100,"Fill","on")
title('该地区三维等高线图');
colorbar
contour(X(1:10,1:10),Y(1:10,1:10),Z(1:10,1:10),"ShowText","on","LineWidth",3,"LabelSpacing",144)
title('该地区部分等高线图');
plot3(X,Y,Z,'r')
title('该地区线性图')

2.运行结果

图1

图二

图三

图四

图五

具体详细绘制地形图大家可以参考https://www.cnblogs.com/shoulinniao/p/11382305.html

MATLAB绘制地形图和等高线图相关推荐

  1. Matlab下地形图绘图包m_map绘图包绘制高分辨率海岸线、国界线与河流

    1. 前言 之前说了m_map的下载.安装与基本使用(Matlab下地形图绘图包m_map安装与使用),以及晕渲地形图的绘制(m_map绘制晕渲(shaded relief)地形图),现在再说一下高分 ...

  2. 【老生谈算法】matlab绘制三维等高线地形图——三维等高线

    用matlab绘制三维等高线地形图的问题 1.文档下载: 本算法已经整理成文档如下,有需要的朋友可以点击进行下载 序号 文档(点击下载) 本项目文档 [老生谈算法]matlab绘制三维等高线地形图.d ...

  3. matlab 绘制等高线图,contourf等高线填充,并优化(初学者教程)

    matlab 绘制等高线图,contourf等高线填充,并优化(初学者教程) 本人是matlab初学者,由于科研作图需要,最近经常使用matlab画等高线图,想把我的代码分享出来. 我就拿txt文本作 ...

  4. 【新星计划】MATLAB绘制图形

    MATLAB绘图和图形功能,内容包括: 如何绘制二维条形图 如何绘制等值线 如何绘制三维图 MATLAB绘制条形图 MATLAB 中使用 bar 命令绘制一个二维条形图. 具体示例 如果有一个包含10 ...

  5. matlab绘制三维图形

    原文地址:matlab绘制三维图形 作者:hotinko1 三维曲线 plot3函数与plot函数用法十分相似,其调用格式为: plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,-,xn ...

  6. ArcGIS导入xyz序列并绘制地形图(含等高线、面体积、点距离的计算)

    目录 一.前情概要 二.在ArcGIS中绘制地形图 2.1 导入xyz数据并转换为table 2.2 显示xyz数据 2.3 创建TIN 2.4 转为栅格数据 2.5加载地形图 三.其他操作 3.1 ...

  7. 数学建模更新13(MATLAB绘制三维图【上】)

    MATLAB绘制三维图 一.mesh函数以及拓展函数 1.mesh(X,Y,Z)的用法 [1]X是n维向量,Y是m维向量,Z是m*n维的矩阵 [2]X.Y和Z都是m*n维的矩阵 2.mesh(Z)的用 ...

  8. matlab 画电机效率图,如何用matlab绘制电机效率map图或发动机万有特性曲线

    如何用matlab绘制电机效率map图或发动机万有特性曲线 前段时间写论文,需要绘制电机效率map图,其实和发动机万有特性曲线一样.. 看了好多资料都不会,问问师兄也没具体画过..困惑中查到貌似有几个 ...

  9. 【MATLAB绘制地形刨面图以及坡度图】

    文章目录 前言 一.地形刨面线平面图与坡度平面图 二.具体实现 1.利用地形刨面数据和matlab绘制刨面图 1.计算地形刨面图的坡度值并绘制坡度平面图 总结 前言 1.如何利用地形刨面数据和matl ...

  10. MATLAB绘制四维图形(多一维为伪彩色图)

    MATLAB绘制四维图形(多一维为伪彩色图) 简易山地模型搭建 A=[1.486,3.059,0.1;2.121,4.041,0.1;2.570,3.959,0.1;3.439,4.396,0.1;4 ...

最新文章

  1. PXE实现批量部署linux系统
  2. 移动基于Percona XTRADB Cluster的大数据解决方式
  3. 机房冷热通道系统整体解决方案
  4. (Mybatis)使用注解开发
  5. Netflix 工程师的生活 —— 40毫秒的案例
  6. 《Linux菜鸟入门2》LVM
  7. python中的下划线用法
  8. 前端—每天5道面试题(1)
  9. ssh提示connection refused_2020高考语法填空必会技巧之有提示词(一)
  10. linux activemq 日志,log4j通过ActiveMQ远程记录日志设计配置
  11. linux 两台设备网桥配置6,linux2.6内核网桥分析
  12. 树莓派linux负载均衡集群,在树莓派2上Nginx并发1W到底有多难
  13. 3.2计算机网络(停止-等待协议 后退N帧协议 选择重传协议)
  14. 阿里云服务器登陆宝塔
  15. minio配置https
  16. 【C++设计模式】-03代理模式
  17. 计算机毕业设计django基于python精品课程在线学习系统
  18. 百度网页视频倍速播放
  19. 完整的微信公众平台开发2
  20. 空白支票V.S. 空头支票

热门文章

  1. FBreader多端同步心得补充
  2. 量化投资学习——股指期货研究(五)
  3. DarkComet RAT简介
  4. antd系列之Select
  5. Android腾讯云通信集成记录(快速实现聊天功能)
  6. SUCCEEDED 和 FAILED的作用和用法
  7. jar包双击打不开或者闪退的解决办法
  8. 【jQuery进阶】子菜单插件Slight Submenu
  9. 【此后无良辰】实验13 FAT12文件系统
  10. 数据结构之leetcode 347题