1、 南阳师范学院 20XX届毕业生 毕业 论文(设计) 题 目: 基于移动曲面拟合的 DEM 粗差探测算法 完 成 人: 班 级: 学 制: 专 业: 测绘工程 指导教师: 完成日期: 目 录 摘要 .(1) 1 绪论 . (错误 !未定义书签。 ) 1.1 DEM 的研究现状 . (错误 !未定义书签。 ) 1.1.1 地形的表达 .(1) 1.1.2 数字地形的表达 .(2) 1.1.3 DEM 的主要研究领域 .(2) 1.2 论文研究的基本思路 .(3) 2 DEM 粗差探测方法研究 .(3) 3 基于移动曲面拟合的 DEM 粗差探测算法 .(4) 3.1 移动曲面移动拟合 法剔除 DE
2、M 粗差的原理 .(4) 3.2 程序设计 .(6) 3.2.1 系统框架 .(6) 3.2.2 详细程序 .(6) 4 实验分析 . (13) 5 结论 . (14) 参考文献 . (15) Abstract . (15) 第 1 页 共( 16 页) 基于移动曲面拟合的 DEM 粗差探测算法 摘要 :数字高程模型作为地理信息系统的主要数据来源,它的数据质量问题成为人们关注的焦点。对于任何一个 DEM 项目 ,精度都是最重要的因素。粗差的存在会造成数字高程模型(DEM)空间上的严重扭曲 ,有时能导致 DEM 及其产品严重失真 ,甚至完全不能使用。本文在对现有的粗差探测算法分析的基础上 ,提出
3、了基于移动曲面拟合的 DEM 粗差探测算法,编辑相应 的程序来处理 DEM 数据,并采用实测的若干数据 DEM 数据对该算法进行检验 ,试验结果证实 ,该算法对 DEM 粗差的探测有效实用 ,证明该算法 的可行性。 关键词 :移动曲面拟合;数字高程模型;粗差检测 1 绪论 1.1 DEM 的研究现状 数字高程模型( Digital Elevation Model),简称 DEM。它是用一组有序数值阵列形式表示地面高程的一种实体地面模型,是数字地形模型 (Digital Terrain Model,简称 DTM)的一个分支,其它各种地形特征值均可由此派生。一般认为, DTM 是描述 包括高程在内
4、的各种地貌因子,如坡度、坡向、坡度变化率等因子 在内的线性和非线性组合的空间分布,其中 DEM 是零阶单纯的单项数字地貌模型,其他如坡度、坡向及坡度变化率等地貌特性可在 DEM的基础上派生 1。 1.1.1 地形的表达 早期由于测量知识的缺乏,对地形表面形态的描述主要采用象形绘图方法进行,例如山体用岩石堆符号表达,山体范围用一系列的 “ 鱼鳞 ” 符号或类似的锥形符号。 十七世纪以后,人们逐步意识到地面起伏变化对气温、植被、环境等的深刻影响,先后出现了透视写景图、晕滃法、斜视区域图、地貌写景图 、地貌形态图、地貌单元图等。 十八世纪,测绘技术的发展使高程数据和平面位置数据的获取成为现实,对地形
5、的表达也由写景式的定性表达逐步过渡到以等高线为主的量化表达。在等高线地形图上,地形起伏、地物等的描述不再是象形符号、色彩或明暗的变化,而是正交地投影在水平面上,相邻高程相等的点连接而成的闭合曲线表示地形起伏特征和形态结构,线划符号表示按比例缩小的地物。第 2 页 (共 16 页) 与各种线划图形相比,用影像记录景观现象无疑具有更大的优点,如地形特征表达细节丰富、直观逼真、图形获取快速等,因此摄影技术一经出现就被广泛的用来 记录丰富多彩、千姿百态的自然景观现象。航空摄影测量技术的出现,使得影像数据获取在周期、覆盖面、应用范围等方面大幅度提高。 1.1.2 数字地形的表达 二十世纪六十年代以后,空
6、间技术、通讯技术等的迅速发展,在航空摄影测量、航空地质探矿、航空像片判读应用发展的基础上诞生了遥感科学技术。伴随着 70 年代美国地球资源卫星( Land Sat)的升空,摄影测量从航空发展到航天,遥感技术获得极为广泛的应用。 1958年 Miller教授对计算机和摄影测量技术的结合在计算机辅助道路设计方面进行了试验,量取了设计道路两侧 大量的地形点三位空间坐标,由计算机取代人进行土方计算、方案比选等,成功地解决了道路工程计算机辅助设计问题。证明了用计算机进行地形表达的可行性、巨大应用潜力和经济效益。提出了 Digital terrain model DTM,数字地面模型,随后在测绘、遥感、农
7、林、土木工程、军事、地学分析等领域得到广泛深入地研究。 从此, 地形表达从模拟时代走向数字时代 。 1.1.3 DEM 的主要研究领域 地形数据采样 。建立 DEM 的基础是地形高程数据,因此地形数据获取是数字高程模型的首要环节。地形数据的分布、密度和精度对数 字高程模型的质量有着非常重要的影响。数据采样策略、高精度快速数据采样技术等一直是 DEM数据采样的主要研究议题之一。 地形建模与内插 。 DEM 是对地形表面的数字化表示,其建立过程实际上是一种数学建模过程,也就是说地形表面被一组相互组织在一起的地形采样点所表达,如果需要该数学表面上其它位置处的高程值,可应用一种内插方法来进行处理。高度
8、逼真、多尺度地形建模技术和快速高效的内插算法是数字高程模型永恒的主题 2。 数据组织与管理 。 DEM 是按一定结构组织在一起的地形数据,数据结构的好坏直接涉及 DEM 对地形的重建 精度。对于大规模的地形数据,需要通过数据库进行管理,数据库管理技术和空间索引技术是高效的数据查询、数据浏览、无缝漫游等的技术保证。 地形分析与地学应用 。 DEM 的应用主要包括两个部分,即基本应用和地学分第 3 页 (共 16 页) 析应用。基本应用主要是在 DEM 上实现等高线地形图上的地形分析功能,如高程内插、坡度坡向计算、土方计算、地形结构识别等;地学分析应用与具体学科相联系,主要研究基于 DEM的地学模
9、型、地学过程模拟等内容 3。 DEM 可视化 。实现以多种方式如等高线、晕渲图、线框透视、动画等在不同层面上对地形进行表达、 观察和浏览。 不确定性分析和表达 。数字高程模型的精度对 DEM 的生产者和使用者都具有十分重要的意义。 DEM精度研究包括 DEM 数据源精度、数据内插精度、数据模型精度、各种误差在 DEM 数据操作过程中的传播问题以及 DEM 数据生产中的质量控制策略等 4。 1.2 研究的基本思路 DEM 粗差探测算法有很多种,本文通过借鉴基于趋势面的粗差探测方法,基于坡度信息的粗差探测方法,可视化探测算法, 基于等高线拓扑关系的粗差探测算法 , 基于主成分分析的粗差检测 ,从而
10、提出了基于移动曲面拟合的 DEM粗差探测算法。通 过分析他们彼此优缺点,来分析该算法的精确性。这种算法需要用到 VB 软件,利用 VB 软件来编辑 移动曲面拟合法内插程序。通过程序来计算数据和处理数据。得到的结果仅仅是理论数据,需要用实际外业实验来验证该算法得到的数据的精确度,从而通过两者比较得知该算法是否可行。 2 DEM 粗差探测方法研究 传统的的粗差处理都是基于评查原理的,如果不存在平差问题,也就不能在平差过程中对粗差进行自动定位。因此,要检测 DEM 数据中的错误,要进行妥善的处理,而不能简单借用一般的平差方法;同时仅仅分析单个的独立数据也是不够的,只有从 整体或局部对数据进行分析处理
11、才能解决问题 5。 2.1 常见普通算法 基于趋势面的粗差探测方法。按照自然地形地貌的成因,绝大多数自然地形表面符合一定的自然趋势,表现为连续的空间渐变模型,并且这种变化可以用一种光滑的数字曲面来描述。对粗差的检测,可以通过模型误差即实际观测值与趋势面计算值之差来判定其是否属于异常数据。由此可见,可以采用趋势面分析找出偏离总趋势的一些可以数据,从而把问题局部化、简单化。但是,趋势面分析的一个缺点就是尽管可以找出可疑数据,但是不能确定数据是否是粗差。 第 4 页 (共 16 页) 基于坡度信息的 粗差探测方法。由于坡度是地表面的一个基础属性,因此,可以利用坡度的连续性喝一致性检测格网数据中的粗差
12、。如果在一个点的周围一定局部区域内约束的坡度和允许坡度变化量大于给定的约束条件,我们就可以认为改点可能存在粗差。这就是机遇局部区域的坡度约束技术的原理。 可视化探测算法。该方法采用 DEM 三维可视化技术,可以交互式地来检查DEM 中出现的可以数据,并剔除严重的影响数据质量的粗差或错误。一般对于一个特定的研究区域,在三维透视图上是否表现为粗差非常明显,很容易据此做出正确的判断。实际上,由于 DEM 有着非常适宜 于建立三维可视化的特点,所以可以首先通过目视效果来对粗差进行检测。通常有粗差的地形是很不自然的。因此在实际应用中,可以首先通过目视进行粗差的检测 6。 基于等高线拓扑关系的粗差探测算法
13、。 相邻等高线的高程值之间的关系有三种:递增、递减或相等,根据这些关系,可对等高线的高程值是否有错做一判断。在等高线地形图上由于存在等高线密集、注记的压盖、断崖地形等情况,常常造成等高线的不连续有时丢失的情形,因此不能仅仅依靠等高距来确定可疑处是否错误。在对所有的可疑处进行自动检测后,应当对每个可疑处根据等高线的关系由 人工进行检测并进行修改,剔除粗差。 基于主成分分析的粗差检测。主成分分析就是把多个指标化为少数几个综合指标的一种传统方法。主成分分析的基本方法通过构造原变量的适当的线性组合,以产生的一系列互不相关的新变量,从中选出少数几个新变量并使它们含有尽可能多的原变量带有的信息,从而使得用
14、这几个新变量代替原变量分析问题和解决问题成为可能当研究的问题确定之后,变量中所含的“信息 ”的大小通常用该变量的方差来度量 7。 3 基于移动曲面拟合的 DEM 粗差探测算法 3.1 移动曲面拟合 剔除 DEM 粗差 的原理 根据有 限个离散点的高程,采用多项式或样条函数求得拟合公式,再逐个计算各点的高程,得到拟合的 DEM。可反映总的地势,但局部误差较大 8。 可分为: 整体拟合:根据研究区域内所有采样点的观测值建立趋势面模型。 局部拟合:利用邻近的数据点估计未知点的值,能反映局部特征。 DEM 内插就是根据参考点上的高程求出其他待定点上的高程 ,在数学上属于第 5 页 (共 16 页) 插
15、值问题。任意一种内插方法都是基于邻近数据点之间存在很大的相关性 ,从而由邻近点的数据内插出待定点上的数据。移动曲面拟合法内插 ,是以每一待定点为中心 ,定义一个局部函数去 拟合周围的数据点。该方法十分灵活 ,一般情况精度较高 ,计算相对简单 ,不需很大计算机内存 ,其过程如下 : ( 1)根据实际内插要求 ,解算待定点 P 的平面坐标 ( pp yx, )。 ( 2)为了选取邻近的数据点 ,以待定点 P 为圆心 ,以为半径 R 作圆 (如图 1 所示 ) ,凡落在圆内的数据点即被选用。在移动曲面内插时 ,考虑到计算方便 ,将坐标原点移至该 DEM 格网点 P ( pp yx, )。 pii x
16、xx pii yyy 图 1移动曲面内插图 由于移动曲面系数个数为 6,要求选用的数据点个数 n6。当数据点 i ( ii yx, )到待定点 P ( pp yx, )的距离 Ryxdi )22( 时 , 该点即被选用。 ( 3) 选择移动曲面 FEyDxCyB x yAxZ 22 作为拟合面 ,则对应点的 误差方程为 ii ZFEyDxCyB x yAxV 22 由 n个数据点列出的误差方程为 ZMxZ ( 4)求解。根据平差理论,移动曲面系数为 PZMPMMX TT 1)( 由于坐标原点移至该 DEM格网点 P ( ppyx, ) , 待定点的高程值为 Zp。 3.2 程序设计 程序需要利
17、用 WINDOWS 计算机和 VB 软件来完成 9。 第 6 页 (共 16 页) 3.2.1 系统框架 否 是 打开程序 连接数据库 求解矩阵逆矩阵 链接到 Datagridview 求伴随矩阵 对矩阵赋值 求伴随矩阵余子式 求 n阶行列式的值 是否为 2*2 矩阵 求矩阵转置 矩阵相乘 结束 第 7 页 (共 16 页) 3.2.2 详细程序 程序采用平台 : vs2008-vb,access 数据库(存储已知点) 数据: 10 个点 程序代码: Imports System.Math Public Class Form1 Dim conn As OleDb.OleDbConnection
18、=New OleDb.OleDbConnection Dim cmd As OleDb.OleDbCommand=New OleDb.OleDbCommand Dimadapter As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter Dim datareader As OleDb.OleDbDataReader 数据库连接 Dim xe As Double,ye As Double,d(9) As Double, X(9) As Double, Y(9) As Double,Z(9,0) As Double Dim M(9,5) As
19、Double,P(9,9) As Double Dim Xz(5,0) As Double Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim i As Integer xe=110 ye=110 待定点坐标 DataSet1.Tables.Clear() DataGridView1.Columns.Clear() conn.ConnectionString=“Provider=Microsoft.Jet.OLEDB.4.0
20、;Data Source=“ & Application.StartupPath & “DEM.mdb“ cmd.CommandText = “select 点号 ,X,Y,Z from DEM “ cmd.Connection = conn conn.Open() OleDbDataAdapter1.SelectCommand = cmd OleDbDataAdapter1.Fill(DataSet1, “DEM“) 第 8 页 (共 16 页) DataGridView1.DataSource = DataSet1.Tables.Item(“DEM“) conn.Close() 连接数据库
21、,把数 据读到 Datagridview For i = 0 To 9 X(i)=DataGridView1.Rows.Item(i).Cells.Item(“X“).Value Y(i)=DataGridView1.Rows.Item(i).Cells.Item(“Y“).Value Z(i,0)=DataGridView1.Rows.Item(i).Cells.Item(“Z“).Value M(i,0)=(X(i)-xe) * (X(i)-xe) M(i,1)=(X(i)-xe) * (Y(i)-ye) M(i,2)=(Y(i)-ye) * (Y(i)-ye) M(i,3)=X(i)-x
22、e M(i,4)=Y(i)-xe M(i,5)=1 P(i,i)=1/Sqrt(Abs(X(i)-xe)*(X(i)-xe) +(Y(i)-ye)*(Y(i)-ye) Next 对矩阵赋初值 End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click TextBox1.Text=“ Dim i As Integer Xz = JZCF(JZCF(JZCF(NJZ(JZCF(JZCF(DZ(M),P),M),DZ(M),P),Z) TextBox1.Text = TextBox1.Text & “待定点的坐标: X=110,Y=110“ & vbCrLf & vbCrLf TextBox1.Text=TextBox1.Text&“误差方程为 :V=AXi2+BXiYi+CYi2+DXi+EYi+F-Zi“ & vbCrLf & vbCrLf TextBox1.Text=TextBox1.Text &“由 X=(M(T)PM)M(T)PZ“&vbCrLf TextBox1.Text=TextBox1.Text & “其中 X=(A B C D E F )(T) Z=(Z1