一、 实习目的

掌握移动曲面法数字高程模型内插原理及其内插子程序的设计方法,了解其它逐点高程内插方法的基本原理。

二、 实习内容

根据提供的10个数据点的坐标(Xn,Yn,Zn)和待求点的平面坐标(Xp,Yp),要求利用移动二次曲面拟合法,由格网点P(Xp,Yp)周围的10个已知点内插出待求格网点P的高程,编制相应的程序并进行调试,最后解算出格网点P的高程并提交源程序代码。

三、资料准备

已知数据点坐标

点号

X

Y

Z

1

102

110

15

2

109

113

18

3

105

115

19

4

103

103

17

5

108

105

21

6

105

108

15

7

115

104

20

8

118

108

15

9

116

113

17

10

113

118

22

编程计算点(110,110)上的高程。

四. 操作步骤

1、读入已知点的坐标,建立以待定点为原点的局部坐标系;

2、建立误差方程式:

3、组成法方程,解算六个系数:

4、整理计算结果,以实习报告的形式递交成果。

程序:

// 摄影测量实习2.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "iostream"
using namespace std;void InverseMatrix(double a[],int n)
{int *is,*js,i,j,k,l,u,v;double d,p;is = (int*)malloc(n * sizeof(int));js = (int*)malloc(n * sizeof(int));for(k = 0; k <= n - 1;k++){d = 0.0;for(i = k; i <= n - 1; i++)for(j = k; j <= n - 1; j++){ l = i * n + j; p = fabs(a[l]);if(p > d){ d = p; is[k] = i; js[k] = j;}}if(d + 1.0 == 1.0){ free(is); free(js); printf("err**not inv\n");return ;}if(is[k] != k)for(j = 0; j <= n - 1;j++){ u = k * n + j; v = is[k] * n + j;p = a[u]; a[u] = a[v]; a[v] = p;}if(js[k] != k)for(i = 0; i <= n - 1; i++){ u = i * n + k; v = i * n + js[k];p = a[u]; a[u] = a[v]; a[v] = p;}l = k * n + k;a[l] = 1.0/a[l];for(j = 0; j <= n - 1;j++)if(j != k){ u = k * n + j; a[u] = a[u] * a[l];}for(i = 0; i <= n - 1;i++)if(i != k)for(j = 0; j <= n - 1;j++)if(j != k){ u = i * n + j;a[u] = a[u] - a[i * n + k] * a[k * n + j];}for(i = 0; i <= n - 1;i++)if(i != k){u = i * n + k; a[u] = -a[u] * a[l];}}for(k = n - 1;k >= 0;k--){ if (js[k] != k)for (j = 0;j <= n - 1;j++){ u = k * n + j; v = js[k] * n + j;p = a[u]; a[u] = a[v]; a[v] = p;}if(is[k] != k)for(i = 0; i <= n - 1; i++){ u = i * n + k; v = i * n + is[k];p = a[u]; a[u] = a[v]; a[v] = p;}}free(is); free(js);
}typedef struct
{double X;double Y;double Z;
}DATA;int _tmain(int argc, _TCHAR* argv[])
{FILE *fp1;                                                                                                                 DATA data[10];                                                               fp1=fopen("Table.txt","r");                                                                                                       if(fp1==0)                                                                                                                     {                                                                                                                                printf("Error!Can't open it!\n");                                                                                            return 0;                                                                                                                    }    for(int i=0;!feof(fp1);i++)                                                                                                          {                                                                                                                                fscanf(fp1,"%lf %lf  %lf",&data[i].X,&data[i].Y,&data[i].Z);   data[i].X=data[i].X-110;data[i].Y=data[i].Y-110;}                                                                                                                      fclose(fp1);double L1[10];double result[6]={0};for(int i=0;i<10;i++){L1[i]=data[i].Z;}double A[10][6];for(int i=0;i<10;i++){A[i][0]=data[i].X*data[i].X;A[i][1]=data[i].X*data[i].Y;A[i][2]=data[i].Y*data[i].Y;A[i][3]=data[i].X;A[i][4]=data[i].Y;A[i][5]=1;}double AT[6][10];for(int i=0;i<10;i++){for(int j=0;j<6;j++){AT[j][i]=A[i][j];}}double t;double ATA[6][6];for(int i=0;i<6;i++){for (int m=0;m<6;m++){t=0;for (int j=0;j<10;j++){t=AT[i][j]*A[j][m]+t;     }ATA[i][m]=t;}    } InverseMatrix(*ATA,6);double A1[6][10];double tt;for(int i=0;i<6;i++){for (int m=0;m<10;m++){tt=0;for (int j=0;j<6;j++){tt=ATA[i][j]*AT[j][m]+tt;     }A1[i][m]=tt;}    }for(int  i=0;i<6;i++){  double o=0;for( int j=0;j<10;j++){o=A1[i][j]*L1[j]+o;}result[i]=o;}printf("%f %f %f %f %f %f ",result[0],result[1],result[2],result[3],result[4],result[5]);system("pause");return 0;
}

测绘-编写数字高程模型(DEM)内插程序相关推荐

  1. 地形图如何转换为数字高程模型(DEM)

    1.设置参考坐标信息 一般的地形图没有坐标参考,在ArcCatalog 10.7中打开地形图,右键属性-空间参考-编辑,选择对应的空间参考坐标信息. 2..地图配准 将地形图在ArcMap中打开,一般 ...

  2. 实现移动曲面拟合法的数字高程模型内插,数据格式X、Y、Z,数据量大,使用C++语言实现...

    移动曲面拟合法是一种数字高程模型的内插方法,用于在有限的测量点数据基础上建立数字高程模型. 在使用 C 语言实现移动曲面拟合法的数字高程模型内插时,需要先将数据存储到数组中,其中数组 X 存储着横坐标 ...

  3. 基于c#的相关性分析_基于数字高程模型的城市地貌与地名相关性分析——以兰州市为例...

    江西地名研究 基于数字高程模型的城市地貌与地名 相关性分析--以兰州市为例 文/张鹏丽,李育 提要:以兰州市为例,使用 ASTER 30米分辨率的数字高程模型DEM并提取了兰州市周边所有地名信息:通过 ...

  4. 倾斜摄影三维模型、激光点云、正射影像、数字高程模型如何实现在线浏览?

    四维轻云是成都远石技术团队基于浏览器打造的一款地理空间数据管理云平台,可实现TB级大规模倾斜摄影三维模型发布管理,并支持私有化部署和高阶功能定制化开发. 1.注册登录 首先在四维轻云官网点击「立即试用 ...

  5. 数据解惑 · 带你认识数字高程模型(DEM)

    01 什么是DEM? 数字高程模型(Digital Elevation Model),简称DEM,是用一组有序数值阵列形式表示地面高程起伏形态的一种实体地面模型.DEM数据在测绘.气象.地质.军事.土 ...

  6. 数字高程模型(DEM)—知识汇总

    数字高程的定义 数字高程模型(Digital Elevation Model,简称DEM)是DTM中最基本的部分,它是对地球表面地形地貌的一种离散的数学表达.DEM表示区域D上的三维向量有限序列,用函 ...

  7. 全国高精度数字高程模型 精度为5m的dem

    由于DEM描述的是地面高程信息,它在测绘.水文.气象.地貌.地质.土壤.工程建设. 通讯.军事等国民经济和国防建设以及人文和自然科学领域有着广泛的应用.如在工 程建设上,可用于如土方量计算.通视分析等 ...

  8. Three.js的DEM建模【数字高程模型】

    在这个教程中,我们将学习如何使用three.js渲染土耳其最高的Ağrı山脉的数字高程模型(DEM)数据,使用的工具包括Three.js.geotiff.webpack和QGIS. 我们将要使用的数据 ...

  9. 用matlab处理数字高程模型(DEM)之点云数据(point cloud data)

    数字高程模型(Digital Elevation Model,简称DEM)是通过有限的地形高程数据实现对地面地形的数字化模拟,它是用一组有序数值阵列形式表示地面高程的一种实体地面模型,是数字地形模型( ...

最新文章

  1. linux C之access函数
  2. 一直使用管理员权限打开PowerShell
  3. ios UIlabel
  4. php连接db2失败,PHP_浅谈DB2数据库故障处理及最佳实践,  当你在使用数据库时,可 - phpStudy...
  5. 2.数据中台 --- 什么是数据中台
  6. 两年内赚到60万美元?走近以色列在线攻击服务vDOS
  7. getmenuiteminfo无法读取内存_简单科普系列—内存为什么需要组双通道原理及其作用...
  8. linux生成密钥公钥,linux 生成密钥和公钥,实现免密登录
  9. Elk-Metricbeat配置Nginx的日志分析 (Metricbeat-part2)
  10. 校园网如何更改ip地址
  11. 一文带你认识HTML
  12. TeeChart Pro ActiveX教程(十九):TeeChart工具集(六)
  13. 计算机专业创新创业培养,中职计算机专业学生创新创业能力培养思考
  14. idea报错 No valid Maven installation found.maven不能用
  15. HDU 5810(伯努利实验、多校7、规律)
  16. 鸿蒙归蝶的反弹,诛仙鸿蒙副本怎么过
  17. 位运算符之---按位取反运算符(简单易懂)
  18. 5.4 控制器的功能和工作原理
  19. 【生活工作经验 一】程序员养生指南
  20. Prometheus和Grafana告警服务创建与对接腾讯云短信告警平台(prometheus_alert)

热门文章

  1. 电脑计算机怎么没有桌面显示器,电脑显示器没有全屏显示怎么解决
  2. CLIP学习笔记:Learning Transferable Visual Models From Natural Language Supervision
  3. 漫画:5G 到底是个什么玩意儿?
  4. httpd模块支持https请求模块mod_ssl
  5. WebGL 2.0实现Vertex Array Objects(VAO,顶点数组对象)
  6. 图像中目标or内容疏密程度判断
  7. python 条形图填充疏密_python matplotlib模块: fill_between(填充曲线)
  8. Unity3D Shader系列之描边
  9. QQ小程序下载文件到本地
  10. C语言学习之认识exit()函数