详细介绍三角高程测量(赋计算代码) 您所在的位置:网站首页 高程误差闭合差怎么算 详细介绍三角高程测量(赋计算代码)

详细介绍三角高程测量(赋计算代码)

2024-06-02 15:09| 来源: 网络整理| 查看: 265

水准测量局限性:

        由图可知,在水准测量时由于受到尺长的限制,不利于坡度较大情况下的高差测量,在此情况下,可采用三角高程测量。

三角高程测量原理:

       由此可以看出,测站高程HA为已知值,测站A仪器高 i 以及待测点B仪器高 v 为测量值,平距离 D 及垂直角 α 为观测值。假设 H_{A} = 50, i = 1,v = 1.5,S = 100,α  =  45°,则

H_{B}=50+1+100\times tan45^{\circ}-1.5=149.5

H_{A} = 50, i = 1,v = 1.5,S = 500,α  =  45°,则

H_{B}=50+1+500\times tan45^{\circ}-1.5=549.5

远距离三角高程测量: 

      当距离较远(大于300m)时,考虑地球曲率和大气折光对高差的影响,应对观测得到的高差加上 “ 球差改正 ” 和 “ 气差改正 ” ,即 “ 两差改正 ”。

其中R为地球半径,假设观测距离为500m,那么高差的两差改正为

f=(1-0.14)\times 0.5\times 0.5\div 2\div 6371.393\approx 0.0000168722915km ≈ 17mm

此时A、B两点之间的高差为:

h_{AB}=Dtan\alpha +i-v+f_{1}+f_{2}

代码实例:

c语言代码及运行结果如下:

#define _CRT_SECURE_NO_WARNINGS 1 #include #include #define pi 3.141592653589793238463 #define R 6371.393 #define k 0.14 // 计算高程的函数 double computeElevation(double distance, double angle, double instrumentHeight) { // 计算高程,这里假设三角形的底边与地面平行 double elevation = distance * tan(angle) - instrumentHeight; return elevation; } //计算双差改正 double difference(double distance) { double f = (1 - k) * distance * distance / 1000.0/1000.0/ 2.0 / R; return f; } int main() { // 定义度分秒、或者度数小数形式,即选择参数 int num,num1; double du, fen, miao,jiaodu; double dushu; // 观测点数据,obsInstrumentHeight-观测站仪器高度,obsheight观测站高程 double obsInstrumentHeight, obsheight; // 观测站计算高度,即观测站高程+观测站仪器高度 double height; // 待测点数据,testDistance-观测距离,testAngle-观测角度,obsInstrumentHeightTest-待测点仪器高,testHeight-待测点高程 double testDistance, testAngle, testInstrumentHeightTest, testHeight; // 输入观测点数据 printf("观测点数据(高程 仪器高度):"); scanf("%lf %lf", &obsheight, &obsInstrumentHeight); height = obsheight + obsInstrumentHeight; // 输入待测点数据 printf("待测点数据(边长(m) 待测点仪器高度):"); scanf("%lf %lf", &testDistance, &testInstrumentHeightTest); // 定义弧度变量 double radian; // 处理输入角度 printf("输入为度、分、秒的形式选择1,输入为度的小数形式选择2\n"); scanf("%d", &num); if (num == 1) { scanf("%lf %lf %lf", &du, &fen, &miao); // 角度转弧度 jiaodu = du + fen / 60.0 + miao / 3600.0; radian = (jiaodu * pi) / 180; } else { scanf("%lf", &dushu); // 角度转弧度 radian = (dushu * pi) / 180; } printf("是否考虑双差改正:1)考虑 2)不考虑\n"); scanf("%d", &num1); if (num1 == 1) { // 计算待测点高程 testHeight = computeElevation(testDistance, radian, testInstrumentHeightTest) + difference(testDistance/1000.0)+height; } else { // 计算待测点高程 testHeight = computeElevation(testDistance, radian, testInstrumentHeightTest) + height; } // 输出结果 printf("观测点高程: %.10lf 米\n", obsheight); printf("待测点高程: %.10lf 米\n", testHeight); return 0; }

c++代码及运行结果如下:

#include #include #include #define pi 3.141592653589793238463 #define R 6371.393 #define k 0.14 // 计算高程的函数 double computeElevation(double distance, double angle, double instrumentHeight) { // 计算高程,这里假设三角形的底边与地面平行 double elevation = distance * tan(angle) - instrumentHeight; return elevation; } //计算双差改正 double difference(double distance) { double f = (1 - k) * distance * distance / 1000000.0 / 2.0 / R; return f; } int main() { //定义度分秒、或者度数小数形式,即选择参数 int num,num1; double du, fen, miao, jiaodu; double dushu; // 观测点数据,obsInstrumentHeight-观测站仪器高度,obsheight观测站高程 double obsInstrumentHeight , obsheight; //观测站计算高度,即观测站高程+观测站仪器高度 double height; // 待测点数据,testDistance-观测距离,testAngle-观测角度,obsInstrumentHeightTest-待测点仪器高,testHeight-待测点高程 double testDistance, testAngle, testInstrumentHeightTest, testHeight; // 输入观测点数据 std::cout > obsheight >> obsInstrumentHeight; height = obsheight + obsInstrumentHeight; // 输入待测点数据 std::cout > testDistance >> testInstrumentHeightTest; //定义弧度变量 double radian; //处理输入角度 std::cout > num; if (num == 1) { std::cin >> du >> fen >> miao; //角度转弧度 jiaodu = du + fen / 60.0 + miao / 3600.0; radian = (jiaodu * pi) / 180; } else { std::cin >> dushu; //角度转弧度 radian= (dushu * pi) / 180; }; std::cout > num1; if (num1 == 1) { // 计算待测点高程 testHeight = computeElevation(testDistance, radian, testInstrumentHeightTest) + difference(testDistance/1000.0)+height; } else { // 计算待测点高程 testHeight = computeElevation(testDistance, radian, testInstrumentHeightTest) + height; } // 输出结果 std::cout


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有