用Matlab 实现移动曲面拟合法生成DEM
标签: Matlab 移动曲面拟合法 DEM 分类: [E]【 MATLAB 】2006-12-22 10:02
用Matlab 实现移动曲面拟合法生成DEM
杜玉军
(武汉大学测绘工程0408班 200431610007 武汉 430079)
摘要:移动曲面拟合法是DEM格网点内插常用的一种方法,利用Matlab可以轻松实现该方法生成DEM。
关键字:移动曲面拟合法 DEM Matlab
1. 概述
为了获取规则格网DEM,内插是必不可少的过程。内插的方法很多,其中移动曲面拟合法由于其方法灵活、计算简便、精度较高、占用内存较少等诸多优点而经常被使用。
2. 实现原理
移动曲面拟合法是一种以待定点为中心的逐点内插法,它以每个待定点为中心,定义一个局部函数去拟合周围的数据点。其过程为:
(1) 对每个格网点,从数据点中检索出邻近的个(至少6个)数据点。
以待定点()为圆心,以选定长为半径作圆,凡落入圆内的数据点都被采用。
Xpi=Xi-XYpi=Yi-Y
di2= Xpi2+Ypi2
di
分析
(1)关于移动曲面拟合法:
该方法基于平差理论,采用局部函数加权拟合,较为严密,但计算精度与参与平差的数据量()有关:若6,即没有多余数据,误差较大,故本人认为至少要有8~10个点,这样拟合的曲面才较为光滑。
拟合结果还与权的选择有关,这要根据实际地形决定,本例采用的是距离平方倒数定权的方式。
此外,移动曲面拟合法也有一些缺点,比如计算速度较慢。
(2)关于本程序:
在搜索每个点上邻近数据点时,经验做法是以数据点距该格网点最小距离的3倍为初始搜索半径;本程序采用的是预估计范围的方法,即:先计算出单个数据点平均占用的面积S0,继而得到个点的大致范围×S0,将其视为正方形,以其中心到正方形顶点的距离(对角线长一半)为初始搜索半径(R=(n×S0)× /2)。
可以看到,生成的DEM与原貌拟合的较好,程序运行效果较为满意。但本程序算法上还存在一些缺陷,如没有将数据进行分块,对于每个格网点都要进行全范围的搜索,计算所有数据点到该点的距离,使计算时间非常长。本例共15个数据点、32×32的格网,大约要1秒钟;若有100个数据点、200×200的格网,则计算时间达到2.5分钟;如果数据再多,则不会在短时间内完成。故还无法处理大量数据。
参考文献:
(1) 王佩军,徐亚明.摄影测量学(测绘工程专业).武汉大学出版社.2006.4
(2) 张祖勋,张剑清.数字摄影测量学.武汉大学出版社.2005.1
点坐标生成DEM(in matlab)
clear;
x=[1; 2; 3; 4; 5; 6; 7; 8; 9; 10];
y=[21; 12; 13; 14; 15; 16; 17; 18; 11; 19];
z=[21.2; 22.8; 21.7; 22.9; 21.2; 22.5; 21.3; 22.5; 21.5; 22.7];
step=[20 21 22 23 24 25 26]; % 等高距1m %
figure;
plot(x,y,'.','markersize',10);
tri=delaunay(x,y);
hold on;
triplot(tri,x,y);
hold off;
figure;
trimesh(tri,x,y,z);
[xi,yi]=meshgrid(0:0.1:11,10:0.1:22);
zi=griddata(x,y,z,xi,yi,'v4');
figure;
[c,h]=contour(xi,yi,zi,step);
clabel(c,h);
xlabel('x坐标');ylabel('y坐标');