到手的DEM不会用?教你6个常用强大功能
一、概述
DEM是数字高程模型(Digital Elevation Model)的简称,接触GIS,规划,设计类的多多少少会接触到DEM,可是这个直接查看黑溜溜一片DEM到底可以用来做什么呢?
二、背景
在大多应用中DEM只是是原始数据,想要让它具体发挥价值的话,就必须要对其进行分析以及处理操作,很多人第一反应是使用ArcGIS进行分析,然后上网查各类ArcGIS的相关教程,并且如果本地没有ArcGIS的话,还需要花一些功夫去找软件进行下载,安装以及激活......这些都会花费不少的时间,并且对于一些低配机子来说,含有众多工具的ArcGIS进行DEM数据处理的效率还很低。这时候我们最想要的效果就是,用轻量化的软件以最少的步骤来最快的获取所需要的结果,对于DEM的处理来说,Global Mapper(以下简称GM)就是一个较好的软件。
那么GM到底如何处理DEM呢?网上的教程太少?官方的帮助文档是英文?没关系!本文就会对6个功能点结合实际应用进行详细的讲解呢。
三、功能介绍
全球5米12米30米DEM样例数据免费下载:http://suo.im/5YUCpb
1. 晕渲图
网上下载或者项目发来的DEM,直接看上去是黑漆漆的一片,完全看不出地形的样子,这类数据到底如何查看呢?

黑漆漆一片的原因是因为,tif默认识别是图片,用图片浏览器查看dem由于是按图片的编码进行展示的,所以看不到具体的东西,展示出来就是一片黑。这里就需要使用GIS类软件对dem进行加载了,直接将tif拖入GM即可看到如下效果:

这么一看是不是就清楚多了,地形的高程以不同颜色显示着,一眼就看出了地形的样子。这个其实是dem的晕渲图效果,在工具栏中我们也可以根据不同的晕渲效果制作不同的专题图。

这样的话我们就可以根据不同的需求生成不同的晕渲图,并将其进行成图进行展示,如下我们选择边坡渲染效果,即可将坡度信息以可视化的形式直接显示出来。

然后我们将渲染图导出,即可直接获取jpg格式的图片,这样就可以在其他地方进行直接查看了。

这里我们选择JPG格式(也可以选择其他的图片格式)后点击确定进入下一步:

接下来是具体的输出配置界面,按照默认配置直接点击确定即可输出:

在选择保存的路径后,我们就可以完成导出,并且可以直接是用图片浏览器看到效果了呢。

2. 裁剪
在规划设计中,常常要使用无人机的航拍来的数据来制作dem以生成地形图,但是由于无人机航拍来相片是带有建筑的,所以最后生成的实则为dsm数据而非dem数据,并且整体的范围也会比所需要的地方大,这时候我们就需要对数据结果来进行裁剪操作。
这里我们将无人机建模获取到的dsm直接拖入GM中:

这里我们可以看到,右下角有明显的建筑轮廓,我们也可以点击3D按钮
切换到三维视角来进一步确认:

这里我们就需要通过裁剪功能来将我们不需要的建筑去除,并且将范围控制到我们实际需要的高坡部分。
首先我们先在软件中绘制一个范围所需要的范围:

在有了范围后我们即可对这个面用数字化工具
进行选择:

在左侧图层栏中对我们要进行的裁剪的dsm进行双击或者右击==>选项:

接下来弹出的高程选项界面中,我们点击裁剪按钮:

勾选“裁剪当前选定的多边形”这一条,然后点击确定即可完成裁剪:

这儿再将之前绘制的面进行隐藏,获取到的即为我们需要的dem数据:

但是到这一步,我们只是完成了一半,数据本身其实并没有被裁减,只是其他区域被进行了隐藏,如果要获取到最终裁减好的数据,我们必须对裁剪好的数据进行输出。
在菜单栏,我们选中文件菜单进行下拉,并选择“导出”选项中的“导出高程网格格式”功能:

这里我们选择GeoTIFF(tif)格式输出,点击确定进入下一步:

这里直接根据默认的选项点击确定进后选择输出路径即可输出:

3. 更改海拔
dem是有海拔基准的,我们一般GPS获取到的是大地高,在不同区域的高程面都可能不同,那我们如果需要实际规划设计时,就需要指定高程系的dem数据。有时候我们会碰到,获取到的dem和实际需要的高程系并不同,那么我们便需要对dem的高程值进行修改。
这里有一份从供货商那里拿到的dem,数据本身高程是大地高,而甲方需要的是85高的规划图,那我们就需要先对dem进行高程转换后再基于dem进行规划图的生成。
这里我们根据参数(不同高程系参数不同,并且参数是保密的)计算可以得出高程差为37.8m,接下来我们可以通过GM来直接进行高程的转换。
首先还是将dem拖入GM进行加载:

这里在左侧图层栏中对我们要进行的裁剪的dsm进行双击或者右击==>选项:

接下来弹出的高程选项界面中,我们点击“修改高程值”功能:

这里我们根据具体算出来的高程差进行输入,点击确定即可更改:

这里我们可以看到整体数值前后有了明显的变化:


同样,到了这一步我们的操作也只进行了一半,接下来则需要进行输出才能得到最终的结果:


4. 方量计算
在实际的施工建设中,我们需要在平地上进行建设,所以需要对高于基准面的地方进行挖出,对于低于基准面的地方进行填埋,即填挖方。计算填挖方量与平衡填挖方是竖向规划的一项重要内容。尤其在山地市,需要充分利用自然地形,合理确定规划用地和道路的设计标高,减少土石方工程量,力求填挖方就近平衡,从而降低工程造价。
那么在GM中我们如何实现对于填挖方量的加载呢?首先还是需要先将dem拖入软件进行加载:

然后我们需要绘制一个区域作为填挖方的基准面:

这时我们需要为这个基准面设置一个高度,我们需要使用图元信息工具
选中我们所绘制的面并对其高程赋值:

我们这里为其添加一个名为“ELEVATION”的属性,并赋值为1780,点击确定即可:

我们现在再使用数字化工具
选中刚才的绘制的面:

在选中的状态下右击该面然后点击“分析/测量”功能进行展开,选择“体积-测量体积(填挖方)”功能:

一般默认点击确定即可:

接下来即可获取到填挖方分析后的数值:

我们这里可以把它导出为csv,在excel中更详细的进行查看:

5. 地形求交
在应用中,我们可能会接触到各种精度的dem,那么我们可以对各个精度dem进行下比较,以下分别为90m,30m,12mdem在GM中加载效果:



可以明显看出dem精度越高,细节显示的越清晰,但是只是从图上看的话并不能看出具体的比较,我们可以借助于地形求交的方式,对各精度dem进行直接的比较。
首先,在分析菜单中选中“结合/比较地形图”功能:

这里我们选择“减法(差值)—有符号”选项,然后选择用30m精度的dem来和90m精度的dem进行比较,其他的设置选择默认即可:

点击确定即可进行求交分析:

这里可以看到,同高程的情况下,两者在细节方面还是有很多差别的,甚至在某些区域有着相对较大的细节差异:

用同样的方法,我们来看下12m精度dem和90m精度dem的差别,可以看出12m比起90m数据多出的细节更加丰富、清晰:

这样我们就可以通过地形求交的方法,直观地看到各精度dem的差异,我们也可以通过dem求差的结果,应用到实际的工程应用中,将工程规划设计图生成的dem与原始dem进行求差,并将求差的结果进行体积、面积计算,这样我们就可以快速的获得填挖方量的信息。
6. 地形3D可视化
在GM中,加载的地形显示的是平面的渲染图,在使用的过程中,不能直观的看到具体的地形效果,这时候我们就需要使用3D视图功能,将平面的地形用三维的方式进行渲染。
首先我们将dem拖入GM后,点击“3D”按钮:

这样, 3D的效果就直接展示在窗口中:

如果地形效果不够明显,还能通过点击“突出高度”按钮
进行地形的夸张:

反之,可以通过“限制高度”按钮进行
比例的收缩:

这里我们也可以绘制飞行路线,让地形自动进行展示并录制:

四、实战出真知
以上的所有用到数据都会在下面进行提供,与其看着教程不知所措,不如直接下载案例数据进行实操,通过具体操作结合教程来掌握GM的这些地形分析功能。
到手的DEM不会用?教你6个常用强大功能的更多相关文章
- 手把手教你编写一个具有基本功能的shell(已开源)
刚接触Linux时,对shell总有种神秘感:在对shell的工作原理有所了解之后,便尝试着动手写一个shell.下面是一个从最简单的情况开始,一步步完成一个模拟的shell(我命名之为wshell) ...
- Tkinter教程之Button篇(1)
本文转载自:http://blog.csdn.net/jcodeer/article/details/1811298 #Tkinter教程之Button篇(1)#Button功能触发事件'''1.一个 ...
- Navicat工具Oracle数据库复制 or 备用、恢复功能(评论都在谈论需要教)
GXPT它是一个分布式系统,该系统包括一个临时许可系统.基本系统.教学评价体系.考试系统,每个系统都有自己的oracle数据库.统,而评教系统的正常须要借助于权限系统和基础系统,详细的业务这里就不多解 ...
- 【干货】2个小时教你hexo博客添加评论、打赏、RSS等功能 (转)
备注:该教程基于Hexo 2.x版本,目前Hexo是3.x版本,照本教程实现有可能会出现404错误,笔者目前还未找时间去解决,待笔者找时间解决该问题后,再写一篇该问题的解决教程,给各位读者带来困扰,还 ...
- 还不知道如何使用 IDEA ?教你三招快速掌握 IDEA
前言 IntelliJ IDEA 是一个非常强大的 IDE,拥有许多功能.在 IDEA 中大部分功能都可以用快捷键去完成,如果掌握了大部分快捷键,可以只使用键盘开发了. ps: 最近正在练习快捷键,准 ...
- 移动端网站如何开发(电脑端网站到手机端网站我们需要在html代码中添加哪个meta标签)
移动端网站如何开发(电脑端网站到手机端网站我们需要在html代码中添加哪个meta标签) 一.总结 一句话总结: 添加viewport标签:meta name="viewport" ...
- Android | 教你如何用华为HMS MLKit 图像分割 SDK开发一个证件照DIY小程序
Android | 教你如何用华为HMS MLKit 图像分割 SDK开发一个证件照DIY小程序 引子 上期给大家介绍了如何使用如何用华为HMS MLKit SDK 三十分钟在安卓上开发一个微笑抓 ...
- 手把手教你定位常见Java性能问题
概述 性能优化一向是后端服务优化的重点,但是线上性能故障问题不是经常出现,或者受限于业务产品,根本就没办法出现性能问题,包括笔者自己遇到的性能问题也不多,所以为了提前储备知识,当出现问题的时候不会手忙 ...
- 《手把手教你》系列基础篇(八十六)-java+ selenium自动化测试-框架设计基础-Log4j实现日志输出(详解教程)
1.简介 自动化测试中如何输出日志文件.任何软件,都会涉及到日志输出.所以,在测试人员报bug,特别是崩溃的bug,一般都要提供软件产品的日志文件.开发通过看日志文件,知道这个崩溃产生的原因,至少知道 ...
随机推荐
- Pytorch实现的语义分割器
使用Detectron预训练权重输出 *e2e_mask_rcnn-R-101-FPN_2x* 的示例 从Detectron输出的相关示例 使用Detectron预训练权重输出 *e2e_keypoi ...
- pytorch seq2seq闲聊机器人
cut_sentence.py """ 实现句子的分词 注意点: 1. 实现单个字分词 2. 实现按照词语分词 2.1 加载词典 3. 使用停用词 "" ...
- pytorch 文本情感分类和命名实体识别NER中LSTM输出的区别
文本情感分类: 文本情感分类采用LSTM的最后一层输出 比如双层的LSTM,使用正向的最后一层和反向的最后一层进行拼接 def forward(self,input): ''' :param inpu ...
- Java 多线程 --死锁及解决方案
在java 多线程中 过多的同步造成相互不释放资源 从而相互等待,造成死锁线现象,一般发生于同步中持有多个对象锁 如以下代码: public class DeadLock { public stati ...
- 使用Reactor响应式编程
介绍 响应式编程 响应式编程不同于我们熟悉的命令式编程,我们熟悉的命令式编程即代码就是一行接一行的指令,按照它们的顺序一次一条地出现.一个任务被执行,程序就需要等到它执行完了,才能执行下一个任务.每一 ...
- 2019-2020-1 20199308《Linux内核原理与分析》第一周作业
Linux 基础入门(新版)学习笔记 实验二 基本概念及操作 重要快捷键 Tab 补全命令 Ctrl+c 强行终止当前命令 历史命令 方向上键↑,恢复之前输入过的命令 通配符 在命令行中获取帮助 某个 ...
- javescrip内嵌样式与外联样式怎么做?
对于前端初学者,个人JS样式常用的有两种:内嵌样式 ,外联样式:下面通过一个简单的鼠标点击出现设定的验证数字为例进行演示: 先看下效果: 鼠标点击前效果: 鼠标点击后效果: 图中的这个ojbk是我js ...
- nodejs实现定时爬取微博热搜
The summer is coming " 我知道,那些夏天,就像青春一样回不来. - 宋冬野 青春是回不来了,倒是要准备渡过在西安的第三个夏天了. 废话 我发现,自己对 coding 这 ...
- POJ2389 Bull Math【大数】
Bull Math Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 15040 Accepted: 7737 Descri ...
- Android Studio SVN配置忽略文件
1.用Android Studio创建一个项目,会在根目录和Module目录下自动生成.gitignore文件,貌似是Git的配置文件,和SVN没有关系. 2.打开Setting-Version Co ...
