测绘工程专业毕业设计论文山谷脊线的提取方法研究1模板.docx
《测绘工程专业毕业设计论文山谷脊线的提取方法研究1模板.docx》由会员分享,可在线阅读,更多相关《测绘工程专业毕业设计论文山谷脊线的提取方法研究1模板.docx(30页珍藏版)》请在冰豆网上搜索。
测绘工程专业毕业设计论文山谷脊线的提取方法研究1模板
山谷(脊)线的提取方法研究
作者姓名XXX专业测绘工程指导老师XXX
摘要
近年来对DEM的研究,主要是从其中提取需要的有用信息,其中山脊线与山谷线这类重要的地形信息是近几十年来国内外研究比较热门的方向。
论文首先介绍了ArcGIS关于山谷线山脊线的提取原理与步骤,然后又引入TauDEM软件,着重介绍了其关于山脊线与山谷线提取的原理,包括8方向(D8)流水方向计算以及D8有效邻域分析的原理与实现方法。
通过对负地形的生成、水流方向上洼地提取及填充、选择合适的阈值、D8水流方向的计算理论、D8有效邻域的分析与处理等的研究,提出用计算汇流量的原理提取等高线。
然后通过二值化舍去非山谷(脊)线的数据信息,即可得到清晰的山谷(脊)线。
关键词:
数字高程模型,地形分析,山谷(脊)线,水流方向
StudyOnMethodsofValley(Ridge)LinesExtraction
Abstract:
Inrecentyears,theresearchbasedonDEMaremostlyaboutextractingusefulinformationfromit,andextractingvalley(ridge)linesisoneofthemostextensivedirectionbothathomeandabroad.
Firstly,thearticlegivesadetaileddescriptionoftheextractingprinciplesandstepsonArcGIS,andthendescribestheTauDEMsoftware,whichemphaticallyintroducestheprincipleoftheextraction,includingeightdirections(D8)watercomputingaswellasanalysisandrealizationmethodsoftheD8contributionarea.
Thispapermainlystudiesthegeneratingofthenegativeterrain,theextractionandfillingofDepressioninthedirectionofflow,choosingasuitablethresholdtodeterminetheaccuracyofgriddataandsuitability,thecalculationoftheD8flow,andtheanalysisoftheD8contributionareas,thusproposinganewprincipletoextractthevalley(ridge)linesbasedoncalculatingtheflow.Thenbinariesandeliminatsnon-dataofvalley(ridge)lines.Finallywecangetthesharp-edgedvalley(ridge)lines.
Keywords:
DigitalElevationModel,TerrainAnalysis,TauDEM,Valley(Ridge)Line,TheDirectionOfFlow
目录
第1章前言1
1.1山谷(脊)线提取的目的和意义1
1.2山谷(脊)线提取技术的研究现状2
1.3山谷(脊)线提取的主要方法分类4
1.4本文研究内容及方法5
第2章基于ArcGIS的山谷(脊)线提取方法6
2.1ArcGIS软件简介6
2.2ArcGIS山谷(脊)线提取的基本原理6
2.3ArcGIS山谷(脊)线提取的方法步骤7
第3章基于TauDEM的山谷(脊)线提取方法17
3.1TauDEM软件简介17
3.2TauDEM山谷(脊)线提取的基本原理18
3.3TauDEM山谷(脊)线提取的方法步骤20
第4章山谷(脊)线提取结果的对比分析26
4.1TauDEM与ArcGIS山谷(脊)线提取结果对比分析26
4.2TauDEM山谷(脊)线提取结果优势总结28
4.3ArcGIS与TauDEM的结合处理29
结论31
致谢33
参考文献34
第1章前言
1.1山谷(脊)线提取的目的和意义
山谷线和山脊线是重要的地形特征信息,对地形及其相关领域的研究有重要的意义,山谷(脊)线的提取一直都受到相关研究人员的广泛关注。
通常,山谷(脊)线的提取是基于数字高程模型(DigitalElevationModel,DEM)完成的。
山谷(脊)线是一种自身具有特殊几何意义的特征线,它们不但具有特定的物理意义还具有一定的几何意义,它们构成了地形起伏变化的分界线(骨架线)。
之所以说它们是地形的骨架线(见图1-1所示),是因为它们能够以最小的数据量完整的表达地形的基本轮廓,在地形的表述中它们是必不可少的,没有其它的特征点、线能代替其重要的位置。
另外,由于山脊线具有分水性(故又称分水线),山谷线具有合水性(故又称合水线),山谷(脊)线的这一物理特性使得它在水文地质工程应用和研究方面都有着特殊的重要意义。
所以,对山谷线与山脊线提取方法的研究室很有必要的,也是非常重要的。
a栅格图b山谷线
图1-1栅格图与相应的山谷线
从以上两幅图中可以看出,山谷(脊)线可以形象的表述地形的骨架,我们不必再根据灰度值进行人为的判断,这方便我们对地形信息的后期处理。
例如在影像匹配中,我们需要选取一幅立体像对的公共点,在栅格图上不但不容易找出,而且人为的寻找容易出错,工作量较大,精度也不高。
对于提取后的山脊(谷)线,就不会出现这类问题,因为提取出来的山谷(脊)线上有许多与周围的灰度值有明显区别的特征点,这些点用计算机可以精确的识别出来,从而使影像匹配的结果更加精确,过程更加自动化。
另外,在测绘行业向数字化发展的今天,以数字化为特征的数字化测绘技术体系的建立,很多测绘产品的输出都经过数字化过程。
经过提取之后的山谷(脊)线线条清晰,不但有利于地形图的人工数字化,而且更有利于计算机的自动识别数字化,既提高了工作效率,又保证了较高的精度。
1.2山谷(脊)线提取技术的研究现状
目前提取山谷(脊)线的基础数据大多是DEM数据。
所谓的DEM数据是在一定范围内具有规则格网点的平面坐标(X,Y)及其高程(Z)的数据集。
它用一组有序数值阵列形式表示地面高程的一种实体地面模型,是数字地形模型(DigitalTerrainModel,DTM)的一个分支。
DEM主要描述区域地貌形态的空间分布,通过等高线或相似立体模型进行数据采集(包括采样和量测),然后进行数据内插而形成的。
它是对地貌形态的模拟表示,可派生出等高线、坡度图等信息,也可与数字正射影像图(DigitalOrthophotoMap,DOM)或其它专题数据叠加,用于和地形处理与应用相关的处理工作。
另外,其本身也是制作DOM的基础数据。
通常,人们认为DTM是描述包括高程在内的各种地貌信息,如坡度、坡向、坡度变化率等各种地形信息在内的线性与非线性组合的空间分布,其中的DEM是零阶单纯的单项数字地貌模型,其他如坡度、坡向及坡度变化率等地貌特性可在DEM的基础上派生。
因此,我们在进行地形有关信息研究时,通常用DEM数据作为原始的基础数据。
目前,已有的山脊线和山谷线提取算法按其原理大致分为两类,即基于地形表面集合形态分析的算法和基于地形表面流水分析的算法。
其中基于地形表面几何分析算法又分为等高线最大曲率判别法、等高线骨架化法和地形断面极值法;基于地形表面流水分析的算法有三维地形表面流水数字模拟法与等高线垂线(坡向)跟踪法两种。
(1)等高线曲率最大判别法,该曲率判别法是提取山谷(脊)线的基础方法,其与地形断面极值法操作步骤基本一样,都是首先从已有数据资料中提取一些可能的山脊线和山谷线上的点的候选点,然后再根据一定规则对这些候选点进行分析,从中提取每条山脊线和山谷线。
在提取山脊线和山谷线上的点的候选点时,该方法先计算每条等高线上各点处的曲率值,找出其局部曲率最大值点。
由于地形噪音的存在,判定山脊线和山谷线上的候选点时采用同一阈值,因而不能顾及区域地形变化的特殊规律。
当阈值选择过大时,会遗漏一些山脊线和山谷线上的点;反之,则会增加候选点中的噪音。
(2)等高线骨架化法(又称为中心轴化法),其主要应用于图像与图形处理。
在用该方法提取山谷(脊)线时,先求取每条等高线弯曲部分的骨架,然后连接相邻等高线的骨架,得到山脊线和山谷线,该方法将等高线弯曲部分两侧的地形视为对称变化。
但是,这与多数地形的实际变化不符合,因此用该方法所得到的山脊线和山谷线有很大程度的近似性。
(3)地形断面极值法,其采用的是计算地形断面和找出其高程极值点的办法。
由于地形断面极值法通常只采用两个正交方向上的地形断面,我们选择不同的断面方向得出的结果也会不同。
因此这种方法,对断面方向的选择要求较高,不然就会丢失某些方向的山脊线与山谷线的点。
另外,其也与等高线骨架化法一样会受阈值的限制,即阈值过大会遗漏山谷(脊)线点;而过小会增加噪音的影响。
(4)三维地形表面流水数字模拟法与等高线垂线(坡向)跟踪法,它们都是以山谷(脊)线的物理特性为依据,通过模拟和分析地形表面流水的运动状况以得到山脊线与山谷线。
具体操作都是先找出流水方向,然后计算汇水量或跟踪流水线,两者的不同之处在于前者主要利用的是数字计算模拟地形表面流水,而后者则是以几何分析通过跟踪坡向的方法得到山谷(脊)线。
但是由于地形噪音的存在,无论那一种方法,这种流水模拟的方法在地形复杂地区实施起来都十分困难并且会出现错误。
所以我们需要对原始的数据进行处理,洼地填充就是其中比较重要的方法。
另外这种方法通常采用规则格网的数据资料进行模拟,当格网较密时,不仅地形噪音增加而且计算量倍增,而当栅格数据较稀疏时,所提取的山脊线和山谷线精度较差。
所以,在测绘行业向自动化、数字化发展大趋势的今天,我们迫切需要一个方法简便,精度较高,计算量较小的提取算法,并且要有严密的方法理论。
本文以此为出发点,在基于原有的洼地填充等功能的前提下,又加入了有效邻域分析的功能,使得所得山谷(脊)线精度大大提高。
1.3山谷(脊)线提取的主要方法分类
目前,格网DEM特征线山脊(谷)的提取算法按所采用原理分,主要有基于图像处理技术原理、基于地表几何形态分析原理和地形表面水流方向分析的原理三种。
(1)基于图像处理技术的原理,是使用局部的分析窗口对格网数据进行扫描,记录局部分析窗口内部栅格数据中高程信息的最高点和最低点,然后连接成特征线,该法效率较高,但是对分析窗口的选择至关重要。
(2)基于地表几何形态分析的原理,是利用地形表面起伏处的变异规律来提取山脊线和山谷线。
根据分析数据结构的不同,又可分为基于地形表面几何形态原理和基于等高线弯曲的几何形态原理。
前者是针对栅格数据本身所描述的地形起伏状况,筛选其几何形态上变化最大处作为地形的特征点线。
操作方法有断面极值法、坡向变率法等,后者的依据的是特征线为等高线曲率最大处的连线,此类方法在将提取的特征点连接成线时健壮性较差。
而且在坡度变率参数的调整方面没有一个参照,我们只能根据调整之后的结果从新设置参数,工作量较大。
(3)基于地形表面流水分析的原理,是根据水流方向总是沿最陡方向流淌、并最终顺谷而流的客观自然规律,通过分析和模拟地形表面流水的运动状况来提取山谷(脊)线,其基本思想为按照流水从高至低的自然规律,顺序设计每一栅格上的汇水量,然后按汇水量单调的顺序确定出流域的汇水线。
该方法具体又分为地表流水数字模拟法和等高线垂线跟踪法两种。
另外,钟业勋根据拓扑学的理论给出了斜坡、山、山脊、凹地、谷地、鞍部等基本地貌形态的数学定义,使用拓扑学的方法来提取地形特征线[1]。
以上各法设计思想均有其合理性,但是在处理较大数据量时算法效率较低。
本文所采用是基于地形表面水流分析的原理,但是我们又补充了该原理在提取山谷(脊)线的过程中出现与实地不符这一现象的解决方法,并且在对流水方向确定时的D8分析计算,使得其确定的流水与现实模拟水流方向的一致性。
另外,我们在对噪音处理方面有加入了D8有效邻域分析的算法,使我们大大弱化了由噪音影响而产生的错误山谷(脊)线信息。
1.4本文研究内容及方法
本文主要研究利用ArcGIS与TauDEM进行山谷(脊)线提取的方法,通过对比说明TauDEM是一种高效率、高精度的山谷(脊)线的提取软件,其中主要介绍了山谷(脊)线的提取原理与步骤。
本文从地表起伏的几何形态出发,考虑到特征线本身的线状特点,采用D8水流方向计算为主要的算法,并且利用D8邻域分析补充该算法所产生的错误信息或者噪音,从而更加严密的检核了算法本身的缺陷(主要是边界部分水流方向的判断)。
由于山谷(脊)线可以用反地形的方式相互转化,所以本文利用反地形提取山脊线的原理与方法来提取山谷线。
从而在原理上也减少了操作流程的复杂,即用一种原理提取两种类型的特征线。
第2章基于ArcGIS的山谷(脊)线提取方法
2.1ArcGIS软件简介
ArcGIS是美国环境系统研究所(EnvironmentSystemResearchInstitute,ESRI)开发的新一代GIS软件,是世界上最广泛的GIS软件之一。
ArcGIS是ESRI在全面整合了GIS与数据库、软件工程、人工智能、网络技术及其他多方面的计算机主流技术之后,成功的推出的代表GIS最高技术水平的全系列GIS产品。
其中的ArcGIS9是ESRI发布的功能比较强大而且又完善的版本。
本文应用的是ArcGIS9.3版本,本文主要应用了此版本的以下三个基础模块:
(1)ArcMap模块,它是本文实验工作的主界面,也是ArcGIS桌面系统的核心应用程序,用于显示、查询、编辑和分析地图数据,具有地图制图的所有功能。
另外,ArcMap也提供了数据视图(DataView)和版面视图(LayoutView)两种浏览数据的方式,在此环境中完成一系列高级GIS任务。
(2)ArcCatalog模块,它是本文实验数据库的管理库工具,主要在ArcCatalog中进行数据的添加、删除和修改等工作,在ArcGIS中它是一个空间数据管理器。
它以数据为核心,用于定位、浏览、搜索、组织和管理空间数据。
用ArcCatalog还可以创建和管理数据库,定制和应用元数据,从而大大简化用户组织、管理和维护数据工作。
这点在本文的应用中有很重要的体现。
(3)GeoProcessing模块,它是本文实验的处理工具,GeoProcessing空间处理框架具有强大的空间数据处理和分析工具。
其框架主要包括ArcToolbox(空间处理工具的集合)和ModelBuilder(可视化建模工具)。
ArcToolbox包括了数据管理、数据转化、Coverage处理、矢量分析、地理编码以及统计分析等多种复杂的空间处理工具。
ModelBuilder为设计和实现空间处理模型(包括工具、脚本和数据)提供了一个图形的建模框架。
它们内嵌于ArcMAP和ArcToolbox之中。
总之,这三个模块是ArcGIS软件的基础和核心,相互联系。
2.2ArcGIS山谷(脊)线提取的基本原理
山谷线和山脊线的提取实质上也是分水线与汇水线的提取。
因此,可以用水文分析原理进行分析提取。
山脊线其本身就是分水线,而分水线的性质就是水流的起源点(也就是汇水量等于零的地方),所以,可以通过地表径流模拟计算后,这些栅格的水流方向都应该只具有流出方向而不存在流入方向,及栅格的汇流积累量为零。
因此通过对零值的提取,就可以得到分水线,即山脊线。
山谷线也可以利用计算其汇水量的值来提取,根据汇水量的多少形成不同灰度值的栅格图,山脊线的汇水量为零,在任何地方都是零这个定值,所以我们可以利用数学表达式公式计算得出。
而对于山谷线来讲,它可以利用反DEM提取山脊线的方式得到,也可以利用计算汇水量附上相应的灰度值来提取。
在利用反地形提取时,我们就必须假设一个模型,即利用一个较大的数值(相对于原始的DEM数据的最大值而言)减去原始的DEM数据,而得出一个与原始DEM地形相反的地形数据,使得原始的DEM中的山脊变成反地形的山谷,而原始DEM中的山谷在反地形中就变成了山脊。
再利用山脊线的提取方法就可以实现山谷线的提取。
但是此方法提取的山脊线与山谷线位置有些偏差,可以利用正、负地形与最后结果相乘而加以纠正。
从而就可以得到准确的山脊线与山谷线。
2.3ArcGIS山谷(脊)线提取的方法步骤
山谷(脊)线提取中,因为我们利用的是水文分析的原理,就是基于DEM地形表面流水物理模拟分析的原理。
其具体的方法是:
对于山脊线而言,由于它同时也是分水线,所以对于分水线上的那些栅格,可以直接通过地表径流模拟,计算之后,这些栅格的水流方向只具有流出方向,不具有流入方向,也就是栅格的汇流累计为零。
我们再通过对零值流域积累值的栅格的提取,就可以得到分水线,即山脊线。
对于山谷线来讲,因为山谷线具有的汇水性,那么对于山谷线的提取,可以利用反地形的特点,即利用一个较大的数减去原始的DEM数据,从而得到一组与原始地形完全相反的地形数据,也就是原始的DEM中的山谷线成负地形的山脊线,山脊线亦然,此时,我们就用提取正地形的山脊线的方法提取负地形的山脊线(即原始DEM的山谷线),从而得出原始地形的山谷线。
山谷(脊)线提取的具体流程图表2-1所示。
图2-1ArcGIS山脊线山谷线提取流程
具体提取步骤如下:
一、正负地形的提取
1、启动ArcToolbox,在AnalysisTool工具箱中打开hydrology工具集。
在图层管理器中加载研究区域的原始DEM数据;
2、加载SpatialAnalyst模块,点击其下拉菜单中的neighborhoodstatistics菜单工具,利用邻域分析的方法以11×11的窗口计算平均值。
分析结果命名为meandem;
3、点击SpatialAnalyst中的rastercalculator菜单工具,对原始DEM数据与邻域数据分析后的数据meandem做减法运算,并将运算结果重分为两级,分界线为0,那么大于0的区域在原始DEM上就是正地形区域,小于0的区域在原始DEM上就是负地形区域;
4、对上一步得到的数据进行两次重分类,一次将正地形区域属性值赋值为1,负地形区域属性赋值为0,命名为zdx;另一次将将正地形区域属性值赋值为0,负地形区域属性赋值为1,命名为fdx。
二、山脊线的提取
1、在ArcMap中加载研究区域的原始DEM数据。
此步骤中应该注意,进行数据转化时对输出结果的命名不要过长,否则不能正常进行下面步骤。
另外在格式栏中选择浮点型。
本文中研究时的命名为DEM528见下图2-2:
图2-2栅格数据加载设置
2、洼地填充:
双击hydrology工具集中的fill工具,进行原始DEM的洼地点填充。
在Inputsurfaceraster文本框中选择原始DEM数据dem528,将输出数据命名为fill_dem528,因为选择的是将所有洼地全部填充,所有在填充容限Zlimit为默认值,它是填充的阈值,即当设置一个数值时,在填充的过程中,那些洼地深度大于阈值的地方将作为真实的地形保留,不予填充,系统默认情况是不设阈值,也就是所有的洼地区域都将被填充。
(操作界面设置见图2-3所示)。
图2-3无洼地DEM填充设置
3、基于无洼地的水流方向的计算:
双击Hydrology工具中的FlowDirection工具,在Inputsurfaceraster文本框中选择填充过的无洼地DEM数据Fill_dem528,将输出的水流方向命名为FlowDir_Fill(见图2-4所示,计算后的图示如下图2-5所示):
图2-4水流方向计算设置
图2-5无洼地水流方向计算后
4、汇流累积量计算:
双击Hydrology工具集中的FlowAccumulation工具。
选择FlowDir_Fill作为输入的水流方向数据;输出名命名为Flowacc(输出结果见下图2-6所示)。
图2-6汇流量计算后处理结果
5、汇流积累量零值的提取:
加载SpatialAnalyst模块,单击SpatialAnalyst模块下拉菜单中的RasterCalculator菜单,打开栅格计算对话框,在文本框中填写汇流累积量零值的提取公式:
facc0528=(Flowacc==0),然后单击evaluate进行计算。
计算结果为所有的汇流累积量为零的栅格。
其汇流累积量零值提取后的图示如下图2-7所示:
图2-7汇流累积量零值提取图示
6、在ArcMap中打开facc0528,发现所提取的栅格很乱,有很多的地方不是山脊线的位置,因此应对这个数据进行处理。
利用邻域分析法处理,对提取出的汇流量等于零的数据进行3×3邻域分析进行光滑处理,然后命名为neiborfacc0。
处理后图像如下图2-8所示:
图2-8邻域分析处理后
7、单击SpatialAnalyst中的surferanalyst中的contour和hillshade菜单命令,分别生成原始DEM等值线图ctour和晕渲图hillshade。
8、打开neiborfacc0数据的属性信息,进行重新分类,将分类级别设置为两类,不断的调整分解数据的大小,并以DEM生成的等值线图和晕渲图为辅助判断数据。
在neiborfacc0中,属性值1的栅格越有可能是山脊线的位置,这里确定的分解阈值为0.330302。
结果如下图表2-9所示:
图2-9分级赋属性之后
9、将进行过二值化的neiborfacc0进行重分类为renribor,将属性值接近1的那一类的属性赋值为1,其余的赋值为0。
见下图2-10所示:
图2-10二值化分类赋属性后
10、将重分类过后的neiborfacc0数据与正地形数据zdx利用spatialanalyst菜单下的rastercalculator进行相乘运算,这样就消除了那些存在在负地形区域中的错误山脊线。
然后将计算结果进行重新分类,所有属性部位1的栅格属性赋值为NODATA。
就得到了山脊线。
最终结果见下图2-11所示:
图2-11山脊线提取图示
三、山谷线的提取
1、在ArcMap中加载原始DEM数据。
2、加载SpatialAnalyst模块,点击其菜单中的opinionrastercaculator菜单工具,打开栅格对话框;在文本框中填写反地形的计算公式:
fandem=(4000-dem)(不推荐使用fandem=Abs(dem-4000)在使用的时候容易出错),在点击evaluate进行计算。
计算结果与原始DEM地形完全相反的反地形数据。
(说明此处用的数据时4000,具体可根据左边的显示框而定,不过此时我们要选择的减数必须要比最大值要大,不然我们的不到反地形,而依然是与原始的DEM数据一样的栅格图像)。
正确的反地形栅格图如下图2-12所示:
图2-12反地形图示
而当减数我们选择小于最小值时结果与原始的图像完全一样如下图2-13所示:
图2-13无变化的错误反DEM转化
原因分析:
因为当所减的数值小于最小数据时,我们此时做