logo资料库

DEM内插法编程.doc

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
DEM 内插法编程实验报告 测绘 08-1 班 3080208102 李 XX 一、实习目的 掌握移动曲面法数字高程模型内插原理及其内插子程序的设计方法,了解其它逐点高程 内插方法的基本原理。 二、实习内容 根据提供的 10 个数据点的坐标(Xn,Yn,Zn)和待求点的平面坐标(Xp,Yp),要求利 用移动二次曲面拟合法,由格网点 P(Xp,Yp)周围的 10 个已知点内插出待求格网点 P 的 高程,编制相应的程序并进行调试,最后解算出格网点 P 的高程并提交源程序代码。 三、实习准备资料 已知数据点坐标 点号 1 2 3 4 5 6 7 8 9 10 X 102 109 105 103 108 105 115 118 116 113 Y 110 113 115 103 105 108 104 108 113 118 编程计算点(110,110)上的高程。 四、程序的代码 #include "stdafx.h" #include "SMatrix.h" #include "SingleImageResection.h" Z 15 18 19 17 21 15 20 15 17 22
int main(int argc, char* argv[]) { SMatrix X(10,1); 系数矩阵 SMatrix Y(10,1); 系数矩阵 SMatrix Z(10,1); 系数矩阵 X[0][0] = 102; X[1][0] = 109; X[2][0] = 105; X[3][0] = 103; X[4][0] = 108; X[5][0] = 105; X[6][0] = 115; X[7][0] = 118; X[8][0] = 116; X[9][0] = 113; Y[0][0] = 110; Y[1][0] = 113; Y[2][0] = 115; Y[3][0] = 103; Y[4][0] = 105; Y[5][0] = 108; Y[6][0] = 104; Y[7][0] = 108; Y[8][0] = 113; Y[9][0] = 118; 输入已知数据点坐标 输入已知数据点坐标 输入已知数据点坐标 输入已知数据点坐标 输入已知数据点坐标 输入已知数据点坐标 输入已知数据点坐标 输入已知数据点坐标 输入已知数据点坐标 输入已知数据点坐标 输入已知数据点坐标 输入已知数据点坐标 输入已知数据点坐标 输入已知数据点坐标 输入已知数据点坐标 输入已知数据点坐标 输入已知数据点坐标 输入已知数据点坐标 输入已知数据点坐标 输入已知数据点坐标 Z[0][0] = 15; 输入已知数据点坐标
Z[1][0] = 18; Z[2][0] = 19; Z[3][0] = 17; Z[4][0] = 21; Z[5][0] = 15; Z[6][0] = 20; Z[7][0] = 15; Z[8][0] = 17; Z[9][0] = 22; 输入已知数据点坐标 输入已知数据点坐标 输入已知数据点坐标 输入已知数据点坐标 输入已知数据点坐标 输入已知数据点坐标 输入已知数据点坐标 输入已知数据点坐标 输入已知数据点坐标 for(int i = 0 ;i <10;i++) { } X[i][0] = X[i][0] -110; Y[i][0] = Y[i][0] -110; SMatrix M(10,6); for(i = 0 ;i <10;i++) { } M[i][0] =X[i][0] *X[i][0] ; M[i][1] =X[i][0] *Y[i][0] ; M[i][2] =Y[i][0] *Y[i][0] ; M[i][3] =X[i][0]; M[i][4] =Y[i][0] ; M[i][5] = 1 ; SMatrix P(10,10); for(i = 0 ;i <10;i++)
{ } P[i][i] = 1/(X[i][0] *X[i][0]+Y[i][0] *Y[i][0]); SMatrix x(6,1); x = (M.T() * P * M).Invert() * M.T() * P * Z; printf("待定点的高程是:%f\n",x[5][0]); return 0; } 运行结果截图 五、操作步骤 1、首先要导入三个程序矩阵模块"stdafx.h" "SMatrix.h" "SingleImageResection.h" 2、输入已知点数据的坐标 3、选择二次曲面作为拟合曲面: Z  2 Ax  Bxy  Cy 2  Dx  Ey  F
列出误差方程: v i  ZFEYDXCYBYXAX      i i 2 i  2 i i i PMMX  ( T 1)  T PZM 4、组方程,求出 6 个系数: 5、计算出待求点高程。 六、实验小结 本次是实验是运用 C++进行 DEM 内插法的编程,了解 DEM 内插法的特点,实验过程 中,由于以前没有接触过 C++编程,所以运用起来比较困难,但其编写有一定的规律特点, 加上以前学习过VB编程,所以仔细研究后还是能了解其代码的含义,程序编写过程中还要 不断地调试。在编程过程中要有耐心、细心,发现错误要细心检查改正,最后得出想要的结 果。通过这次编程学习,主要培养的发现问题、思考问题和解决问题的能力,还要不断地学 习来完善自己。
分享到:
收藏