1、基本分析方法

GIS做地形分析的基本步骤其实是非常简单的,网上也有非常多的教程进行阐述,其实大家按这个步骤也基本能做出来,但问题就出现在每个人所使用的基础数据都多多少少有不同的问题,因此在操作过程中就不同程度的受阻,因此本教程先列出最基本的操作步骤,再对所使用的数据及各操作步骤可能出现的问题进行分析并逐一列出解决方法。
GIS地形分析的基本步骤如下:

  1. 整理并添加带有高程属性的CAD等高线或者高程点;
  2. 将导入的等高线或高程点数据转换为GIS可编辑的Shapefile文件;
  3. 进一步整理、检查、修正Shapefile文件中的数据错误;
  4. 使用整理好的Shapefile生产数字高程三角模型TIN文件;
  5. 将TIN文件转换为栅格数字高程模型DEM文件;
  6. 基于DEM即可进一步进行基于地形的坡度、坡向、起伏度、汇水特征等专项分析了。

2、关于几类主要数据

GIS地形分析的核心是数字高程模型DEM数据,基于地形的高程、坡度、坡向、起伏度、汇水分析等都是基于DEM数据的,所以本教程首先重点介绍如何生成获得DEM数据,后续再介绍基于DEM的其他相关分析。
DEM的全称是Digital Elevation Model,非常直接的翻译,就是“数字”、“高程”、“模型”三个词的直接拼接,可谓是简单粗暴好理解,可到底什么是“数字高程模型”这个概念可能是经常困扰大家的问题,貌似很高大上,尤其是一些学术论文,经常只写其英文名,还是简称——DEM,可谓是故作高深,搞得不明真相的童鞋越发糊涂。其实很简单,高程这个概念不用说,“数字模型”就是把高程数字化后的模型嘛,数字化就是在电脑里面显示就是数字化咯,数字高程模型就是在电脑里面进行显示的高程数据嘛。我们搞建筑规划的童鞋肯定都是知道现状地形图里面的高程点、等高线的,从某种程度上来说高程点、等高线就是高程数据的一种数字模型,DEM只是把高程进行连续面状数字化了,那对应的等高线就是线状高程数字化模型,高程点就是点状高程数字化,这样就明白为什么我们可以用等高线或者高程点生成DEM了吧。当然DEM不只是用高程点或者等高线生产的,还有卫星遥感数据等渠道可以获取,这个后面会讲到。在ArcGIS里面用高程点或等高线生成DEM也不是直接生成,需要通过先生产TIN文件,在将TIN文件装换为DEM。

图1 数字高程模型DEM灰度可视化示意图

TIN的全称是Triangulated Irregular Network,翻译过来就是它的中文名——“不规则三角网”,其实也是一种数字模型,当然,TIN文件可以是表达高程的数字模型,也可以是表达其他数据的数字模型本文里面的TIN文件当然就是表达高程的数字模型了,它和DEM的区别就在于他是矢量的,而DEM是栅格的!为什么会这样呢?因为我们知道CAD里面的高程点和等高线都是矢量的,我们把它们导入GIS后依然还是矢量的,我们要把矢量的点状高程点或者线状等高线高程数据转换为连续面状的DEM高程数据模型是需要插值的(什么是插值?简单理解就是在空白地方增加数据,点状、线状转换为面状就是要增加数据的过程!),而这个插值过程是不能直接将矢量插值为栅格数据的,所以要先插值生成TIN格式的矢量数字三个网络模型,再将其转化为栅格数字高程模型DEM文件。

图2 不规则三角网模型TIN文件的可视化效果

我们常见的CAD高程数据基本就两种:高程点、等高线。做GIS地形分析对CAD高程点和等高线的要求都是必须带有高程属性!
高程点的高程属性比较简单,如图3所示,我们在CAD现状地形图中的大部分高程点都是如图这种高程点图块,图块带有一个高程点及其高程值标注,此时我们双击这个高程点标注文字是不能像传统文字那样编辑的。GIS也是不能直接识别CAD中这样的图块,所以我们不能直接将这一的高程点导入GIS,需要我们进行处理——炸块!但要注意的是此处的炸块不是用CAD中的X命令,如果用X命令对这个块进行炸裂,会发现整个图块就消失了,这是很多童鞋在处理这样高程点时会遇到的问题,正确的做法是通过湘源控规(请自行安装)里面的“工具-图块-炸属性块”对高程点图块进行炸块处理(图3)。输入这个工具命令后,会提示是删除还是保留隐藏属性,这里可以默认即可。炸属性块后根据不同情况会有不同显示,但标注高程点的文字肯定是会单独显示的,我们通过双击也发现是可以像传统文字那样进行编辑修改了,这正是我们需要用到的数据。

图3 常见CAD高程点示意图

图4 湘源控规炸属性块工具示意图

等高线的属性数据相对复杂一些,如图5所示,图中绿色的线即是我们需要提取使用的地形等高线,其中比较细的等高线叫做基本等高线,也叫首曲线,是一副地形图中按基本等高距绘制出的等高线;其中比较粗的等高线叫加粗等高线,也叫计曲线,是按每隔五条基本等高线加粗的一条等高线,主要是为了便于判读和计算高程使用。如图xx所示,两根计曲线的高程差为2.5米,则基本等高线的高程差为0.5米。

图5 CAD等高线数据示意图

各条等高线的高程查看方法为,在CAD中选中需要查看高程的等高线打开进入其属性查看Elevation属性值即为其高程。CAD查看图元属性可以通过PR(Properties)命令、Ctrl+1打开属性对话框或者通过LI(List)命令调取图元属性列表等方法,如图6。

图6 CAD等高线高程属性查询

如果我们所拿到的CAD现状图中具有以上特征的高程点或等高线,那我们基本就能导入GIS正确生成地形分析所需要的TIN文件和DEM数字高程模型,并做进一步的相关分析了。

3、生成DEM的具体操作步骤

  1. CAD高程点和等高线的添加

如前文所述,需要在CAD中准备好带高程的高程点和等高线数据。通常我们的现状地形图是多种图层叠加的,需要首先将这两个数据所在图层单独分离出来(也有是所有图元被合并在一个图层的,这种比较麻烦些,后面会讲怎么操作),图层的分离可以在CAD里面提前做好了再导入GIS,也可以导入GIS转换为Shapefile后再做分层处理,此处主要讲一下如何导入GIS后做分层处理(CAD比较简单,直接单独按图层单独选择并写块即可,但是如果数据量大的话在CAD里面会比较卡顿,所以建议先导入GIS再做分离)。
首先需要在CAD里面明确高程点和等高线各自的图层名,如本教程所采用数据对应的图层名分别为GCD、DGX。打开ArcGIS for Desktop中的其中一个软件ArcMAP,添加准备好的CAD现状地形图。
步骤为:
方法一:点击菜单栏“文件-添加数据-添加数据”;(图7)

图7 ArcMap中添加数据方法一

方法二:在菜单栏空白处点击鼠标右键确认标准工具栏打开,点击标准工具栏里的数据添加工具进行添加;(图8)

图8 ArcMap中添加数据方法二

方法三:打开ArcCatalog(在ArcGIS启动目录下)或者在标准工具栏里打开目录工具,找到对应的地形CAD文件直接拖入即可。(图9)

图9 ArcMap中添加数据方法三

  1. CAD高程点和等高线的提取

CAD添加进GIS后的数据列表如图10所示,我们可以看到一个CAD文件添加进GIS后会出现5个文件,分别是Annontation、Point、Polyline、Polygon、Multipatch(具体是什么后面会另外再讲,这里不展开,有兴趣的小伙伴也可以先自行百度),我们分别对高程点和等高线所属的Annotation和Polyline文件进行分离提取并生成对应的Shapefile文件。(注意:这一步是非常重要的一步)

图10 CAD导入GIS后的数据列表

操作步骤:
(1)通过标准工具栏打开工具箱(ArcToolbox)窗口,并依此展开至“分析工具-提取分析-筛选”(图11)

图11 CAD导入GIS后的数据列表

(2)双击“筛选”工具,在弹出的筛选工具窗口的输入栏选中Annotation数据;输出要素类位置可默认,也可按自己需要输入对应文件位置;表达式一栏点击后侧SQL表达式图标弹出表达式输入框,按图12 依此双击各参数并单击相应按钮,此处的表达式含义就是将CAD中图层(Layer)名为“GCD”的高程点数据提取出来。(前面说了要明确高程点和等高线的图层名就是此处要用到!)完成后点击确定即可生成对应的高程点Shapefile文件Annotation_Select1。

图12 通过属性筛选工具提取GCD图层数据示意

按相同的方法将等高线对应的Polyline文件进行提取分离,这次的表达式为"Layer"=“DGX”,对应生成等高线Shapefile文件Polyline_Select1。

  1. 高程数据的初步修正

通过上述1、2步的操作,我们已经成功的将CAD格式的高程点和等高线数据添加到ArcGIS中并将其各自转换为ArcGIS可编辑的Shapefile格式,对应的文件分别为Aannotation_Select1、Polyline_Select1。
按一般的正常步骤到了这一步即可开始生成TIN文件了,但是通常我们导入的数据或多或少都有些问题,尤其是高程值不正常会导致生成的TIN文件出现错误,下面就介绍一下如何检查高程值的错误以及修复方法。
(1)高程点错误数据的修正
在内容列表里右键点击Aannotation_Select1图层,选择“打开属性表”,在属性表里我们找到Elevation、Text两列属性值,其中Elevation即为高程点对应的高程值,Text即为CAD里面标注的高程值,此处的Elevation值是真实值我们可以用,但是如果此处的Elevation值为空或者全部为零我们就不能用这个值来计算TIN文件了,就需要用到Text来间接计算,方法见后续章节。我们实验数据里的Elevation值非空(图13),可以使用,但要检查数据的准确性,一是要检验其数据的正确性,检验方法是通过和Text数据列对比,如果基本是能一一对应的,那数据也就基本是准确的(图13);另外是要检查是否有错误值,检查方法是在表头处双击(啥是表头?就是显示Elevation这一列表的名字的地方!),切换数据按高低顺序显示,如图14,我们可以看到当Elevation数据列按从高到低排列后,出现了部分数据出现严重偏差,和Text数据列所标注高程不对等的情况,数据值为0甚至是负数,这是明显的错误高程值,需要对错误的高程点筛选出来进行修正,方法如下:

图13 检查高程点数据中Elevation和Text属性值的差异性

图14 Elevation和Text属性值存在偏差的部分

①点击属性表-表选项-按属性选择,打开属性选择对话框,如图15。

图15 在属性表中打开属性选择工具

② 在属性框中按图16所示操作顺序输入属性选择表达式“Elevation <=100”,点击应用。

图16 属性选择工具对话框

③ 在Elevation处右键点击“字段计算器”,打开字段计算器列表,图17,注意此时选中字段呈现浅蓝色背景表示第②步的数据选择成功,否则不要进行下一步操作,请移步第②步重新操作直至成功选中需要修正的数据项,否则会出现该列数据全部北替换且无法撤退的严重错误,切记!

图17 在属性表中打开字段计算器

④ 在打开的字段计算器对话框中按图18所示,双击Text字段名,使得Elevation=Text,其含义是将Text字段的高程值赋值给Elevation字段缺失的列表项。点击确认完成。

图18 在字段计算器中将Text字段值赋予Elevation字段

按以上步骤我们对小于100的错误高程值进行了修正,完成之后我们再在Elevation表头双击,让列表按从高到底的顺序再做排序查看,我们通过和Text数据列的对比发现有几个较高的高程值仍然是不对的,对此,我们重复上述操作步骤①至④完成对该类错误数据的修复。
至此我们将Elevation中错误的高程值筛选出来并更新为Text字段中正确的高程值。
(2)等高线错误数据的修正
类似对高程点的操作步骤,在内容列表里右键点击Polyline_Select1图层,同样选择“打开属性表”,此处我们只看Elevation属性列,该列数据即为等高线的高程值,同样在表头双击进行排序检查错误高程值,此处没有Text字段进行对比,其检查方法就是查看明显具有较大跨度的高程值一般都是错误的,比如我们的实验数据中,基本的高程都是分布在790-1042米之间,那通过排序我们发现里面出现了高程值为0和91600这样极低和极高的高程值都是明显的错误值,对等高线的这种明显的错误值建议的处理方法是直接删除。
删除方法:
①按高程点筛选错误数据的方法筛选出等高线中错误高程值;
②在菜单栏空白处右键,勾选编辑器工具,点击编辑器-开始编辑,进入等高线编辑状态;(图19)

图19 通过编辑器开始编辑等高线数据

③直接按Delete键即可删除,完成后点击编辑器中的“保存编辑内容”、“停止编辑”。
至此我们也完成了对高程点和等高线错误数据的初步修正,下一步我们可以进行TIN文件的生成了。之所以只是初步修正,是因为在现阶段数据基础上生产的TIN文件不一定百分百正确,我们只是对我们在这个阶段能检查到的处于极高和极低的明显错误高程进行修复,其实在内部也可能存在一些我们看似正确其实是错误的高程值,比如某条等高线正常应该是100米,但是其中有一段被错误赋值为200米了,这样的错误我们在这个阶段是发现不了的,必须通过生成TIN文件后才能看出来,这个我们在后面讲解如何修复。

  1. 生成TIN文件

基于上述处理好的高程点和等高线我们即可生成TIN文件了,由于使用高程点和等高线生成TIN文件的方法是一样的,此处为了避免重复,选用等高线进行示范操作讲解。
(1)如图20,在ArcToolbox中依此展开“3D Analyst-数据管理-TIN-创建TIN”,打开创建TIN工具;

图20 创建TIN工具所在ArcToolbox工具箱列表中的位置

(2)在创建TIN窗口按图21进行设置;

图21 创建TIN窗口的设置

(3)点击确认即可生成TIN文件,图22;

图22 生成的TIN文件可视化效果

说明:
(1)输出TIN的路径可根据需要自定义;
(2)坐标系暂时可不管,后续教程再讲如何设置正确的坐标系;
(3)高程字段请选择我们前面步骤修正后的高程字段,即Elevation字段;
(4)在图层列表里面TIN文件对应的图层名上双击可进入“符号系统”对其进行图示化设置,此处不展开讲解,后续再做图示化表达专题。

  1. 生成DEM文件

将第4步生成的TIN文件转换成DEM文件,方法比较简单,操作步骤为:
(1)在ArcToolbox中依此展开“3D Analyst工具-转换-由TIN转出-TIN转栅格”,双击打开“TIN转栅格”工具;(图23)

图23 TIN转栅格工具所在ArcToolbox工具箱列表中的位置

(2)如图xx,在“TIN转栅格”工具对话框中输入TIN文件选择第4步生成的TIN文件,采样距离选择CELLSIZE,其值设置为1。(注:此处的CELLSIZE的意思可以理解为生成DEM的精度,其取值默认不是1,设置为1的时候精度最高,当然对应数据量也最大,如果地形范围不大,建议此处尽量设置为1,如果地形范围太大可适当设置为5、10等数值)

图24 TIN转栅格工具对话框窗口选项设置

(3)点击确定,等待转换完成即可生产DEM栅格数据了,图25所示的createtin1_T图层即是我们生成的DEM原始效果,图例中945.5-1042的数值即是高程值的范围,通过双击图层进入符号系统可对其进行进一步的图示化表达。

图25 生成的DEM文件原始效果

至此我们成功通过ArcGIS将CAD中的高程数据(高程点、等高线)转换生成了我们在GIS中做地形分析所需要的DEM文件,后续我们常规的高程、坡度、坡向分析都是基于这个DEM文件进行的,该部分内容留作下次再讲解。

4、总结

本次教程的核心是讲解如何通过CAD高程数据生产GIS地形分析的核心数据——数字高程模型DEM文件,基于DEM的高程、坡度、坡向等其他相关地形分析在后续教程再做讲解。
从教程来看,生产DEM的核心是前期基础数据的处理,只要前面的数据处理好了,后面的生成操作是非常简单的,但是数据处理是一个相对麻烦的过程,尤其是不同来源的数据都有各自不同的问题,文中已经把我们常见的基本问题作了分析讲解,如果大家在自己操作中仍然出现了其他问题欢迎私信交流探讨。

ArcGIS DEM数字高程模型数据的生成相关推荐

  1. ArcGIS干货教程:DEM数字高程模型数据的生成

    1. 概述 现在ArcGIS在规划行业的使用逐渐流行起来,多规合一.地理设计.甚至还有大数据.编程设计等等各种高大上无不与ArcGIS多少有点关系,然而大多数行业小伙伴作为一个普通的规划师,只是想用A ...

  2. SuperMap iDesktop中DEM数字高程模型数据的生成

    作者:xinxin 一. 前言   DEM(Digital Elevation Model,数字高程模型)主要描述地表起伏形态特征的空间数据模型,由地面规则格网点的高程值构成的矩阵,形成栅格结构数据. ...

  3. ArcGIS案例学习笔记2_2_等高线生成DEM和三维景观动画

    ArcGIS案例学习笔记2_2_等高线生成DEM和三维景观动画 计划时间:第二天下午 教程:Pdf/405 数据:ch9/ex3 方法: 1. 创建DEM SA工具箱/插值分析/地形转栅格 2. 生成 ...

  4. arcgis根据经纬度xyz坐标点生成等高线

    arcgis根据经纬度xyz坐标点生成等高线 1.Excel to table 2.display X Y Data 3.Create TIN 4.生成DEM数据. 5.生成等高线. 有些小伙伴会说, ...

  5. arcgis DEM 提取流域范围(详细教程)(空间分析--Hydrology)

    arcgis DEM 提取流域范围(详细教程)(空间分析–Hydrology) 1:洼地填充 Fill(生成无洼地的DEM) 2:计算流向 Flow Direction(基于无洼地的DEM 计算流向) ...

  6. 【ArcGIS风暴】ArcGIS+CASS点云(.las)数据生成等高线方法案例精解

    本文讲解基于点云LAS数据,在ArcGIS+CASS平台上生成等高线的方法. 扩展阅读: 什么是点云?什么是Las数据集?一篇文章告诉你点云数据的奥秘 ArcGIS+CASS点云(.las)数据生成等 ...

  7. 学习笔记(10):ArcGIS之数字高程模型(DEM)分析上篇视频课程(GIS思维)-DEM的含义与应用...

    立即学习:https://edu.csdn.net/course/play/4071/71233?utm_source=blogtoedu DEM:以绝对高程和海拔表示的地形模型 数学意义上的数字高程 ...

  8. arcgis dem栅格立体感_如何使用ArcGIS从DEM数据中提取水系

    1. 概述 在比较偏远的地方,往往会缺少水文信息,我们可以通过ArcGIS对高程DEM数据进行水文分析,为地表水流建立模型,进而获取到该地的水文信息,DEM数据精度越高,获取到的水文数据精度也就越高, ...

  9. ArcGIS教程02:由高程点生成表面栅格及对应的等高线

    目录 1 问题描述 2 操作步骤 2.1 样条函数内插 2.2 由表面栅格生成等值线 由一组带某种高程值的离散点集,生成表面模型:然后根据表面模型,生成等值线. 1 问题描述 原始数据为一组高程点,如 ...

最新文章

  1. 06-Firmware Configuration Framework
  2. Java之主数据类型的包装
  3. Ifvisible.js – 判断网页中的用户是闲置还是活动状态
  4. 汇编 --- 从磁盘(扇区2到18)上读取数据到内存中
  5. 【LSB】图片隐写主体函数
  6. 孤儿进程、僵尸进进程
  7. Flink的设计与实现:集群资源管理
  8. 学习Scala: 初学者应该了解的知识
  9. java打包拆包_关于java中JDK5的打包,拆包以及==和equals的问题
  10. html5中地理位置,Chrome中的HTML 5地理位置提示
  11. CSDN助力HBuilder,为开发者提供源码托管服务
  12. php判断直线相交,zoj 1158 判断2线段完全相交
  13. 基于VHDL语言的数字电子钟设计
  14. FreeBSD使用网易镜像来安装软件
  15. 方程自己解(1)——物理信息神经网络(PINN)
  16. 为什么客户端最后还要等待2MSL?
  17. html5适配屏幕,HTML5屏幕适配标签设置
  18. Photoshop入门教程:画笔工具轻松打造轻纱效果
  19. 用matlab实现熵权法,熵权法原理及matlab代码实现
  20. 输出 2~n之间所有素数,并求和,n由键盘输入。素数是只能被1和自身整除的整数。要求编写函数判断自然数x是否为素数

热门文章

  1. 关于type_info与typeid
  2. 【SQLSERVER】清理alwayson过大的事务日志
  3. Internal error: : 8 [#1] PREEMPT SMP ARM,vmlinux反汇编命令调试查找错误的步骤
  4. C·cJSON库函数--cJSON_GetObjectItem
  5. 为什么电子邮件发送失败?电子邮件发送失败的原因及解决方法
  6. AutoMapper源码解析
  7. 网上看到的一个好文章,自勉
  8. Android Zxing识别图片二维码识别率低
  9. Benchmark分析[4]: parsec
  10. 华为手机怎么隐藏按键图标_原来华为手机右上角隐藏扫描仪!纸质档一键电子化,真的涨知识了...