移动二次曲面拟合内插DEM程序
- 格式:docx
- 大小:66.98 KB
- 文档页数:13
使用二次曲面拟合来计算点云曲率的基本步骤下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!使用二次曲面拟合来计算点云曲率的基本步骤在三维点云数据处理中,计算曲率是评估表面形状和特征的重要步骤之一。
D EM 内插方法比较及 A R C ƒI N FO内插方法分析郭 清(湖南省测绘科技研究所)提 要 本文分析了几种常用的 D E M 空间内插方法, 并比较了它们的适用范围。
根 据 生 产 实 际 数 据 对 利 用 地 形 图 等 高 线 矢 量 化 生 产 D E M 的 精 度 进 行 了 分 析, 最 后 对 A R C ƒI N FO 的内插方法特别是在 T I N 模块上对加有断线处理的内插进行了较系统的分 析。
关键词 内插 比较分析 A R C ƒI N FOD E M 1 D E M 内插的概念及常用内插方法的比较 插等。
目前大多数 D E M 软件采用的是多项式(1) 内插的概念内 插 和 线 性 内 插, 如 A R C ƒI N FO 就 是 采 用 线D E M 性内插和五次多项式内插 (T I N ) 及双线性方程内插、三次卷积积分内插 (L a t t i ce ) , 这将在后面 详述。
D E M 是 英 文 D i g i ta l E leva t i o n M o d e l 即数字高程模型的缩写, 它是一定区域范围内规则格网点的平面及高程坐标的数据集, 该数据 集从数学上描述了该区域地貌形态的空间分 布。
D E M 的数据源可以是从航摄像对在解析 测图仪上描绘等高线所得, 也可以是从野外实 测碎部点, 或是从已成图的等高线扫描矢量化 所得, 但不论采取何种方法, 都要对这些数据进 行空间内插以获得不同于源数据、按规则格网 排列的数字高程模型 (D E M )。
(2) 空间内插方法的比较对于数字高程模型来说, 要拟合的面在数 学上可以用一个二元多次函数来表示:nn(a i X i Y i ) Z = f (X , Y ) = 2 2 (1)i = 0 j = 0从 (1) 式可以看出, 当 n ≥ 2 时, 在数学概念上来说, 则函数 f (X , Y ) 具有连续的一阶导数, 从 空间模型上来说即模型具有连续光滑的表面, 这点很重要, 后面还要说到。
基于不同权值的多种DEM内插方法比较和精度评定作者:谌一夫来源:《科技资讯》 2012年第33期谌一夫(武汉大学遥感信息工程学院湖北武汉 430079)摘要:数字高程模型DEM是利用遥感信息经过数字摄测量处理得到的经典产品之一,它是地理信息数据库的核心数据系统。
目前,世界发达国均建立了各自的数字高程模型,其广泛地应用于测绘、环境、资源和军事等多种领域,并且发挥着及其重要的作用。
由于地形表面的复杂性和多变性,本文给出了多种DEM生成方法,通过实验分析各种内插方法在取不同权值时的内插精度,地面数据点的数量和分布对内插精度的影响,并且分析高斯贝尔曲线的最小二乘法对地表模拟精度的因素。
最后综合分析了各种DEM生成方法相应的适用范围。
关键词:数字高程模型 DEM 内插精度评价中图分类号:P2 文献标识码:A 文章编号:1672-3791(2012)11(c)-0002-02数字高程模型源于美国麻省理工学院摄影测量实验室主任Miller提出的数字地面模型概念。
从数学意义上来说,数字高程模型DEM是数字地面模型DTM的一个地形分量,能够比较准确地反应地形表面的形态,它表示某个区域D上地形的三维向量有限序列,数学表达式表示为:。
其中,,表示平面位置,是相应的高程,当平面位置以规则形式排列时,DEM可简化成一维向量序列[1]。
DEM内插是利用若干数据点高程求出待定点上的高程值,在数学上属于插值问题。
任意一种内插方法都是基于原始地形起伏变化的连续光滑性,或者说邻近的数据点间有很大的相关性[2],才可能内插出待插点的高程。
数字高程模型(DEM),也称数字地形模型(DTM),是一种对空间起伏变化的连续表示方法。
由于DTM隐含有地形景观的意思,所以常用DEM单纯表示高程。
传统的地理信息系统的数据结构都是二维的,数字高程模型对空间三维数据的建立是一个必要的补充;与此同时,数字高程模型模拟其它二维表面的连续高度变化,如气温、降水量等。
基于DEM应用内插算法的分析
高扬
【期刊名称】《测绘科技》
【年(卷),期】1998(000)002
【摘要】本文介绍了基于DEM应用的几种内插方法,并对双三次内插法,移动曲面法两种主要方法做了试算及分析,讨论承不同情况的方法方法应用。
【总页数】5页(P35-39)
【作者】高扬
【作者单位】不详;不详
【正文语种】中文
【中图分类】P217
【相关文献】
1.基于等高线生成DEM的内插算法及其精度分析 [J], 杨晓云;唐咸远;梁鑫
2.基于抗差最小二乘配置的点云内插DEM算法研究 [J], 李成仁
3.基于不同地貌类型的DEM内插算法分析与选择 [J], 胡璐锦;王亮;陶坤旺
4.基于移动曲面拟合算法和加权平均算法的DEM内插算法改进 [J], 李胤;杨武年;杨容浩;曾涛
5.基于DLG精细化DEM的内插算法及其精度评价 [J], 翁进;陈亚凯;张禾裕
因版权原因,仅展示原文概要,查看原文内容请购买。
摄影测量试卷库9套一、单选题(在本题的每一小题的备选答案中,只有一个答案是正确的,请把你认为正确答案的题号,填入题干的括号内。
多选不给分。
每题2分,共20分)。
1、从像平面坐标系转换到像空间辅助坐标系,需要进行运算的元素有:()①内方位元素②外方位元素③内方位元素和外方位元素④无需运算元素2、摄影测量中通常用()坐标系来建立像点与地面点的坐标关系。
()①像平面坐标系②像空间坐标系③像空间辅助坐标系④物方空间坐标系3、全数字化摄影测量的核心问题是:()①坐标系之间的转换②数字影像相关③投影系转换④影像的相对位移4、数字影像相关匹配算法的方法不包括以下那一项:()①相关系数法②迭代法③协方差法④高精度最小二乘相关5、下列不属于特征匹配四个步骤的是:()①特征提取②特征描述③特征运算④特征匹配6、在影像匹配中,信噪比越大,则匹配精度的变化是:()①匹配的精度越高②匹配的精度越低③与影像的相关系数有关④两者无关7、用于表示地面特征的空间分布的数据阵列,称为:()①数字地面模型②数字高程模型③网格空间模型④规则矩阵网格8、有关不规则三角网TIN的特点不包括:()①数据量大②数据结构复杂③较精确地表示复杂地形表面④管理方便简单9、在用DEM内插求解待定点上的高程时,通常采用的差值方法是:()①整体函数内插②单个函数内插③局部函数内插④分步函数内插10、间接平差的函数模型是:()①法方程②误差方程③矩阵模型④共线方程二、判断题(下列各题,你认为正确的,请在题干的括号内打“√”。
错的打“×”。
每题1分,共10分)。
1、摄影测量的技术手段有模拟法、解析法、数字法。
()2、摄影机框架四边中点设有的框标记号,叫做光学框标。
()3、过投影点中心作像平面上一直线的平行线和物面的交点叫做合点。
()4、像平面坐标系通过内方位元素可以转化为像空间坐标系。
()5、铅垂线在像平面的构像位于以像底点n为辐射中心的相应辐射线上。
似水无痕一、二次曲面移动拟合法内插DEM的原理DEM内插就是根据参考点上的高程求出其他待定点上的高程,在数学上属于插值问题。
任意一种内插方法都是基于邻近数据点之间存在很大的相关性,从而由邻近点的数据内插出待定点上的数据。
移动曲面拟合法内插,是以每一待定点为中心,定义一个局部函数去拟合周围的数据点。
该方法十分灵活,一般情况精度较高,计算相对简单,不需很大计算机内存,其过程如下:(1)根据实际内插要求,解算待定点P的平面坐标( xP , yp )。
(2)为了选取邻近的数据点,以待定点P为圆心,以R为半径作圆(如图1所示) ,凡落在圆内的数据点即被选用。
在二次曲面内插时,考虑到计算方便,将坐标原点移至该DEM格网点P ( xP , yp )由于二次曲面系数个数为6,要求选用的数据点个数n > 6。
当数据点i ( xi , yi )到待定点P ( xP , yp )的距离di = sqr(x i2 - .y i2 ) i < R时,该点即被选用。
若选择的点数不够时,则应增大R的数值,直至数据点的个数n满足要求。
(3)选择二次曲面Z =Ax2 +B xy +Cy2 +Dx + Ey +F作为拟合面,则对应点的误差方程为vi = Ax2 +B xy +Cy2 +Dx + Ey +F - Z i由n个数据点列出的误差方程为v = MX - ZX = (M T PM) -1M T PZ由于坐标原点移至该DEM格网点P ( xP , yp ) ,所以系数F就是待定点的内插高程值ZP二、程序采用平台:,access数据库(存储已知点)数据:10个点程序代码:Imports System.MathPublic Class Form1Dim conn As OleDb.OleDbConnection = New OleDb.OleDbConnectionDim cmd As OleDb.OleDbCommand = New OleDb.OleDbCommandDim adapter As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapterDim 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 DoubleDim M(9, 5) As Double, P(9, 9) As DoubleDim Xz(5, 0) As DoublePrivate Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ClickDim i As Integerxe = 110ye = 110 '待定点坐标DataSet1.Tables.Clear()DataGridView1.Columns.Clear()conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\DEM.mdb"mandText = "select 点号,X,Y,Z from DEM "cmd.Connection = connconn.Open()OleDbDataAdapter1.SelectCommand = cmdOleDbDataAdapter1.Fill(DataSet1, "DEM")DataGridView1.DataSource = DataSet1.Tables.Item("DEM")conn.Close()'连接数据库,把数据读到DatagridviewFor i = 0 To 9X(i) = DataGridView1.Rows.Item(i).Cells.Item("X").ValueY(i) = DataGridView1.Rows.Item(i).Cells.Item("Y").ValueZ(i, 0) = DataGridView1.Rows.Item(i).Cells.Item("Z").ValueM(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) - xeM(i, 4) = Y(i) - xeM(i, 5) = 1P(i, i) = 1 / Sqrt(Abs((X(i) - xe) * (X(i) - xe) + (Y(i) - ye) * (Y(i) - ye)))Next'对矩阵赋初值End SubPrivate Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.ClickTextBox1.Text = ""Dim i As IntegerXz = JZCF(JZCF(JZCF(NJZ(JZCF(JZCF(DZ(M), P), M)), DZ(M)), P), Z)TextBox1.Text = TextBox1.Text & "待定点的坐标:X=110,Y=110" & vbCrLf & vbCrLfTextBox1.Text = TextBox1.Text & "误差方程为:V=AXi^2+BXiYi+CYi^2+DXi+EYi+F-Zi" & vbCrLf & vbCrLfTextBox1.Text = TextBox1.Text & "由X=(M(T)PM)'M(T)PZ" & vbCrLfTextBox1.Text = TextBox1.Text & "其中X=(A B C D E F )(T) Z=(Z1 Z2 Z3 ```Zn)(T)" & vbCrLfTextBox1.Text = TextBox1.Text & " M=(Xi^2 XiYi Yi^2 Xi Yi 1)" & vbCrLf & vbCrLfTextBox1.Text = TextBox1.Text & "求得X=("For i = 0 To 5TextBox1.Text = TextBox1.Text & Format(Xz(i, 0), "0.000") & " "NextTextBox1.Text = TextBox1.Text & ")" & vbCrLf & vbCrLfTextBox1.Text = TextBox1.Text & "由于坐标原点移至待定点上,因此待定点的高程Z=F" & vbCrLfTextBox1.Text = TextBox1.Text & "待定点高程Z=" & Format(Xz(5, 0), "0.000")End Sub'~~~~~~~~~~~~~~~~~求解矩阵的逆矩阵~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~Public Function NJZ(ByVal q(,) As Double) As Double(,)Dim BS(,) As Double, NJ(,) As Double, Qz As Double, h As Integer, l As Integer, n As Integern = q.GetUpperBound(0)ReDim BS(n, n)ReDim NJ(n, n)BS = BSJZ(q) '伴随矩阵Qz = HLei(q)If Qz <> 0 ThenFor h = 0 To nFor l = 0 To nNJ(h, l) = (1 / Qz) * BS(h, l) '求解矩阵的逆矩阵NextNextNJZ = NJElseMessageBox.Show("矩阵不可逆")NJZ = NothingEnd IfEnd Function'~~~~~~~~~~~~~~~~~求解矩阵的伴随矩阵~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~Public Function BSJZ(ByVal q(,) As Double) As Double(,) '求解矩阵的伴随矩阵Dim i As Integer, j As Integer, k As Integer, n As Integer, BS(,) As Doublei = 0j = 0k = 0n = q.GetUpperBound(0)ReDim BS(n, n)For i = 0 To nFor j = 0 To nBS(j, i) = YZS(q, i, j)NextBSJZ = BSEnd Function'~~~~~~~~~~~~~~~~~'求解矩阵的余子式的值~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~Public Function YZS(ByVal q(,) As Double, ByVal h As Integer, ByVal l As Integer) As Double '求解矩阵的余子式的值Dim i As Integer, j As Integer, x As Integer, y As Integer, n As Integer, YZ(,) As Doublei = 0j = 0n = q.GetUpperBound(0)ReDim YZ(n - 1, n - 1)For i = 0 To nIf i <> h ThenFor j = 0 To nIf j <> l Then '求得h,l位置的余子式YZ(x, y) = q(i, j)y += 1End IfNextx += 1End IfNextYZS = (-1) ^ (h + l + 2) * HLei(YZ) '余子式的值End Function'~~~~~~~~~~~~~~~~~''求解n阶行列式的值~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~Public Function HLei(ByVal q(,) As Double) As Double '求解n阶行列式的值Dim i As Integer, j As Integer, k As Integer, n As Integeri = 0j = 0k = 0If q.GetUpperBound(0) > 1 Then '判断是否为2*2矩阵,若不是则继续求其余子式n = q.GetUpperBound(0)Dim p(n - 1, n - 1) As Double '余子式方阵For k = 0 To nDim h As IntegerDim l As Integer '余子式的行列号h = 0For i = 1 To nl = 0For j = 0 To nIf j <> k Then '按第一列展开求余子式p(h, l) = q(i, j)l += 1End IfNexth += 1NextHLei = HLei + (-1) ^ (k + 2) * q(0, k) * HLei(p) '递归方法求行列式的值NextElseHLei = q(0, 0) * q(1, 1) - q(0, 1) * q(1, 0) ' 二阶行列式求值End IfEnd Function'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~求解矩阵的转置~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~Public Function DZ(ByVal q(,) As Double) As Double(,) '求解矩阵的转置Dim i As Integer, j As Integer, n As Integer, m As Integer, DZJZ(,) As Doublei = 0j = 0n = q.GetUpperBound(0)ReDim DZJZ(m, n)For i = 0 To nFor j = 0 To mDZJZ(j, i) = q(i, j)NextNextDZ = DZJZEnd Function'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~矩阵乘法~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~Public Function JZCF(ByVal a(,) As Double, ByVal b(,) As Double) As Double(,) '矩阵乘法Dim ha As Integer, la As Integer, hb As Integer, lb As Integer, c(,) As DoubleDim i As Integer, j As Integer, k As Integerha = a.GetUpperBound(0)la = a.GetUpperBound(1)lb = b.GetUpperBound(1)If la = hb ThenReDim c(ha, lb)For i = 0 To haFor j = 0 To lbFor k = 0 To lac(i, j) = c(i, j) + a(i, k) * b(k, j)NextNextNextJZCF = cElseMessageBox.Show("这两个矩阵不能相乘!")JZCF = NothingEnd IfEnd FunctionEnd Class。